1

解决了!

 % 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 Bpm 到 100 Bpm 时才是正确的。需要包括高达 200 Bpm 的心率。换句话说,我在高 Bpm 时得到了很多不稳定的输出。

4

1 回答 1

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)

你应该看到你的结果慢慢地越来越接近正确的心率(假设你的外部设备能够处理这么短的脉冲)。

于 2013-07-02T11:58:32.807 回答