作者alan6615 (华华)
看板MATLAB
标题[讨论] 关於生医讯号
时间Fri May 25 16:10:45 2012
这次研究的是心电图(ECG),我的问题是R点找出来了,
但是如何计算两个R peak值间的距离,并且另外找出Q波和S波的峰值
以下是我的程式码
clc;
clear
y2=wavread('C:\Users\Alan\Desktop\matlab\test.wav');
c=y2';
c=fliplr(c); %因为贴片贴相反,图是相反的
fs=1000; %取样频率
t=[0:length(c)-1]/fs;
order=100; %滤波器阶数
wn=[20/(fs/2)];
b=fir1(order,wn);
[h,freq]=freqz(b,1,512,fs);
Y=filter(b,1,c);
plot(t,Y);
c=Y;
dc=diff(c,1);
adc=abs(dc);
tdc=t(1:length(dc));
ttt=abs(fft(dc));
order=200;
wn=[20/(fs)/2];
b=fir1(order,wn);
[h,freq]=freqz(b,1,512,fs);
YF=filter(b,1,adc);
%-------------------------------------------%以下是找R点
plot(tdc,YF*10);
z=[];%创造空矩阵
plot(Y*10);
hold on;
for x=1:length(Y);
if((Y(x)<min(Y)*0.9));
if(Y(x)<Y(x+1)&&Y(x)<Y(x-1));
plot(x,Y(x)*10,'or');
z=[z x];
else
end
else
end
end
hold off;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.35.139
1F:推 shooe:R wave找出来後把你z(i+1)-z(i)就可以计算出RRI的距离 05/29 10:54