解决了!
% 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中使用“声音”播放信号并在外部心率监测器上对其进行测量时,我无法输出生成的心跳信号。我得到了与模拟值不同的读数。但是似乎只有在60 Bpm到100 Bpm之间才是正确的。需要包括最高200 Bpm的心率。换句话说,我在高Bpm时会得到很多不稳定的输出。
最佳答案
更改
delay = ((60/HR)/2)-(0.5*pulse_width);
进入
delay = 30/HR;
tripuls
不会更改时间输入t1
的任何内容,因此不应从时间 vector 中减去脉冲宽度。您可以通过设置来查看这是正确的
pulse_width = 60e-4;
% (try)
pulse_width = 60e-10;
% (try again)
您应该看到,您的结果越来越缓慢地朝着正确的心率方向发展(前提是您的外部设备能够处理如此短的脉冲)。
关于matlab - 如何使用Matlab准确地以高BPM输出生成的心跳信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17424168/