节拍信号图 Matlab

Posted

技术标签:

【中文标题】节拍信号图 Matlab【英文标题】:Beat Signal Plot Matlab 【发布时间】:2016-05-24 16:02:07 【问题描述】:

我是 Matlab 的新手,我正在尝试从包含多个心跳的 .wav 文件中提取单个心跳。我已经设法显示整个 .wav 文件,但我不知道如何检测心跳,尤其是绘制它。这就是我所做的:

[y,fs] = audioread('myfile.wav');
y = y(:,1);
    dt = 1/fs;
    N = length(y);
    t = linspace(0, N/fs, N);
    plot(t,y); xlabel('Seconds'); ylabel('Amplitude');

    threshold = 0.6; 
    if(max(y) > threshold) % Here I tried to dectect the first heartbeat but it doesn't work
        plot(t1,y); % t1 should be the duration of one heartbeat
    end

关于如何解决这个问题的任何想法?我试过了,但我认为 Matlab 版本有问题:http://labrosa.ee.columbia.edu/projects/beattrack/

【问题讨论】:

搜索QRS检测算法,matlab还自带例子:mathworks.com/help/dsp/examples/… 【参考方案1】:

使用 matlab 内置的findpeaks 函数。这里有一个reference 说明如何使用它。

【讨论】:

谢谢,但现在我有一个高峰,我想知道如何“放大”单个心跳,但我不知道如何用 plot 来做到这一点。 一旦你找到你的心跳,你就可以只绘制你选择的感兴趣的范围。因此,如果您在坐标 x 处找到峰值,这样您的最大峰值在 heartbeat(x) 处,您可以执行 plot(heartbeat(x-range:x+range),您可以在其中适当地定义范围以“缩放”你的巅峰

以上是关于节拍信号图 Matlab的主要内容,如果未能解决你的问题,请参考以下文章

matlab如何作出信号频谱图?

matlab 作出信号频谱图

在matlab中,如何画出一个信号的频谱图?

一个节拍信号的宽度是指 A.机器周期 B.指令周期 C.时钟周期 D存储周期

一维信号频谱图仿真——matlab

数字信号基于matlab轴承故障仿真信号时域波形图+幅度谱图含Matlab源码 001期