如何使用matlab在高BPM下准确输出生成的心跳信号?

时间:2013-07-02 11:17:18

标签: matlab audio heartbeat beat-detection

解决!

 % Function to Generate ECG of heart beat signal for specified duration
%---------------------------------------

function [Heartbeat,t] = ECG_Gen (HR,pulse_width,Amp,duration)

Fs = 48000;

delay = (60/HR);

t = 0 : 1/Fs : duration;         % 48000 kHz sample freq for duration (secs)
d = 0 : delay : duration; 

Heartbeat = Amp*pulstran(t,d,'tripuls',pulse_width);

当我在matlab中使用Sound播放信号并在外部心率监视器上测量时,我输出生成的心跳信号时出现问题。我得到了与模拟值不同的读数。但似乎只有在每周晚上60点到100点后才能正确。需要包括高达200 Bpm的心率。换句话说,我在高Bpm时会得到很多不稳定的输出。

1 个答案:

答案 0 :(得分:0)

更改

delay = ((60/HR)/2)-(0.5*pulse_width);

进入

delay = 30/HR;

tripuls不会将任何内容更改为时间输入t1,因此应从时间向量中减去的脉冲宽度。

您可以通过设置

来确定这是正确的
pulse_width = 60e-4;
% (try)

pulse_width = 60e-10;
% (try again)

你应该看到你的结果慢慢朝着正确的HR(如果你的外部设备能够处理这么短的脉冲)。