我如何区分八度音程中的数组值?

时间:2014-11-29 18:14:19

标签: arrays matlab command octave

我实现了将ECG信号作为一维阵列文件输入的分配,进行一些处理以检测心率。

第一步是使用5点差分方程来区分值来摆脱低频值,我已经搜索了八度音阶的微分,但我发现的只是多项式。那么如何在octave / mat-lab命令中实现呢?

感谢

2 个答案:

答案 0 :(得分:0)

根据我的经验,也许你想用5点计算信号的斜率(导数的近似值),这可以很容易地用例如:

load ecg;
n=5
for i=n+1:length(ecg)
    Y(i-n) = (ecg(i) - ecg(i-n))/n;
end

subplot(2,1,1); plot(ecg)
subplot(2,1,2); plot(Y)

这是你期望的结果吗? enter image description here

答案 1 :(得分:0)

您可以在R峰检测上使用Pan-Tompkins方法,

ecgSig是您的ECG信号,采样频率为Fs

t=(0:size(ecgSig,2)-1)/Fs;
ecgSig = circshift(ecgSig,[0 5]) - ecgSig;

subplot(211)
plot(t,ecgSig);
subplot(212)
plot(t,ecgSig);

enter image description here