资源描述:
《qrs波检测程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、clearall;closeall;points=1000;level=4;sr=360;%读入ECG信号%loadecgdata.mat;loadecgdata.txt;%ecgdata=mydata;plot(ecgdata(1:points));gridon;axistight;axis([0,points,-2,5]);title('ECG信号');swa=zeros(4,points);swd=zeros(4,points);signal=ecgdata(0*1000+1:1*1000);%算小波系数和尺度
2、系数fori=1:points-3swa(1,i+3)=1/4*signal(i+3-2^0*0)+3/4*signal(i+3-2^0*1)+3/4*signal(i+3-2^0*2)+1/4*signal(i+3-2^0*3);swd(1,i+3)=-1/4*signal(i+3-2^0*0)-3/4*signal(i+3-2^0*1)+3/4*signal(i+3-2^0*2)+1/4*signal(i+3-2^0*3);endj=2;whilej<=levelfori=1:points-24swa(j,i+2
3、4)=1/4*swa(j-1,i+24-2^(j-1)*0)+3/4*swa(j-1,i+24-2^(j-1)*1)+3/4*swa(j-1,i+24-2^(j-1)*2)+1/4*swa(j-1,i+24-2^(j-1)*3);swd(j,i+24)=-1/4*swa(j-1,i+24-2^(j-1)*0)-3/4*swa(j-1,i+24-2^(j-1)*1)+3/4*swa(j-1,i+24-2^(j-1)*2)+1/4*swa(j-1,i+24-2^(j-1)*3);endj=j+1;end%画出原信号和尺度
4、系数,小波系数figure;subplot(level,1,1);plot(ecgdata(1:points));gridon;axistight;title('ECG信号及其在j=1,2,3,4尺度下的尺度系数及小波系数');fori=1:levelsubplot(level+1,2,2*(i)+1);plot(swa(i,:));axistight;gridon;xlabel('time');ylabel(strcat('a',num2str(i)));subplot(level+1,2,2*(i)+2);plo
5、t(swd(i,:));axistight;gridon;ylabel(strcat('d',num2str(i)));end%画出原图及小波系数figure;subplot(level,1,1);plot(real(ecgdata(1:points)),'b');gridon;axistight;title('ECG信号及其在j=1,2,3,4尺度下的小波系数');fori=1:levelsubplot(level+1,1,i+1);plot(swd(i,:),'b');axistight;gridon;ylabe
6、l(strcat('d',num2str(i)));end%**************************************求正负极大值对*****************************************%ddw=zeros(size(swd));pddw=ddw;nddw=ddw;%小波系数的大于0的点posw=swd.*(swd>0);%斜率大于0pdw=((posw(:,1:points-1)-posw(:,2:points))<0);%正极大值点pddw(:,2:points-1)
7、=((pdw(:,1:points-2)-pdw(:,2:points-1))>0);%小波系数小于0的点negw=swd.*(swd<0);ndw=((negw(:,1:points-1)-negw(:,2:points))>0);%负极大值点nddw(:,2:points-1)=((ndw(:,1:points-2)-ndw(:,2:points-1))>0);%或运算ddw=pddw
8、nddw;ddw(:,1)=1;ddw(:,points)=1;%求出极值点的值,其他点置0wpeak=ddw.*swd;wpe
9、ak(:,1)=wpeak(:,1)+1e-10;wpeak(:,points)=wpeak(:,points)+1e-10;%画出各尺度下极值点figure;fori=1:levelsubplot(level,1,i);plot(wpeak(i,:));axistight;gridon;ylabel(strcat('j=',num2str(i