Как я могу точно вывести сгенерированный сигнал сердцебиения с высоким 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)

Вы должны видеть, что ваши результаты постепенно все больше приближаются к правильному ЧСС (при условии, что ваше внешнее оборудование способно обрабатывать такие короткие импульсы).

Другие вопросы по тегам