解决!
% 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时会得到很多不稳定的输出。
答案 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(如果你的外部设备能够处理这么短的脉冲)。