Как я могу точно вывести сгенерированный сигнал сердцебиения с высоким BPM, используя matlab?
Решено!
% 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 ударов в минуту, может быть, 100 ударов в минуту. Необходимо учесть частоту сердечных сокращений до 200 ударов в минуту. Другими словами, я получаю много нестабильных выходных данных при высоких оборотах в минуту.
1 ответ
+ Изменить
delay = ((60/HR)/2)-(0.5*pulse_width);
в
delay = 30/HR;
tripuls
ничего не меняет время ввода t1
, поэтому длительность импульса не должна вычитаться из вектора времени.
Вы можете увидеть это правильно, установив
pulse_width = 60e-4;
% (try)
pulse_width = 60e-10;
% (try again)
Вы должны видеть, что ваши результаты постепенно все больше приближаются к правильному ЧСС (при условии, что ваше внешнее оборудование способно обрабатывать такие короткие импульсы).