资源简介
心电信号R峰检测代码,用于检测R峰MATLAB代码,可供大家学习
代码片段和文件信息
%本程序实现基于小波变换的QRS波的检测 %
%郑秀玉 深圳大学德州仪器DSPs实验室 %
%2007年7月2日 %
clear all;
close all;
points=4096; level=4; sr=360;
%读入ECG信号
load ecgdata.mat;
ecgdata=mydata‘;
plot(ecgdata(1:points));grid on;axis tight;axis([1points-25]);
title(‘ECG信号‘);
swa=zeros(4points);
swd=zeros(4points);
signal=ecgdata(0*4096+1:1*4096);
%算小波系数和尺度系数
for i=1:points-3
swa(1i+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(1i+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);
end
j=2;
while j<=level
for i=1:points-24
swa(ji+24)=1/4*swa(j-1i+24-2^(j-1)*0)+3/4*swa(j-1i+24-2^(j-1)*1)+3/4*swa(j-1i+24-2^(j-1)*2)+1/4*swa(j-1i+24-2^(j-1)*3);
swd(ji+24)=-1/4*swa(j-1i+24-2^(j-1)*0)-3/4*swa(j-1i+24-2^(j-1)*1)+3/4*swa(j-1i+24-2^(j-1)*2)+1/4*swa(j-1i+24-2^(j-1)*3);
end
j=j+1;
end
%画出原信号和尺度系数,小波系数
figure;
subplot(level11); plot(ecgdata(1:points)); grid on;axis tight;
title(‘ECG信号及其在j=1234尺度下的尺度系数及小波系数‘);
for i=1:level
subplot(level+122*(i)+1);
plot(swa(i:)); axis tight;grid on;xlabel(‘time‘);
ylabel(strcat(‘a ‘num2str(i)));
subplot(level+122*(i)+2);
plot(swd(i:)); axis tight;grid on;
ylabel(strcat(‘d ‘num2str(i)));
end
%画出原图及小波系数
figure;
subplot(level11); plot(real(ecgdata(1:points))‘b‘); grid on;axis tight;
title(‘ECG信号及其在j=1234尺度下的小波系数‘);
for i=1:level
subplot(level+11i+1);
plot(swd(i:)‘b‘); axis tight;grid on;
ylabel(strcat(‘d ‘num2str(i)));
end
%**************************************求正负极大值对*****************************************%
ddw=zeros(size(swd));
pddw=ddw;
nddw=ddw;
%小波系数的大于0的点
posw=swd.*(swd>0);
%斜率大于0
pdw=((posw(:1:points-1)-posw(:2:points))<0);
%正极大值点
pddw(:2:points-1)=((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|nddw;
ddw(:1)=1;
ddw(:points)=1;
%求出极值点的值其他点置0
wpeak=ddw.*swd;
wpeak(:1)=wpeak(:1)+1e-10;
wpeak(:points)=wpeak(:points)+1e-10;
%画出各尺度下极值点
figure;
for i=1:level
subplot(level1i);
plot(wpeak(i:)); axis tight;grid on;
ylabel(strcat(‘j= ‘num2str(i)));
end
subplot(411); %不能缺少,指的是第一幅图上写下面的title
title(‘ECG信号在j=1234尺度下的小波系数的模极大值点‘);
interva2=zeros(1points);
intervaqs=zeros(1points);
Mj1=wpeak(1:);
Mj4=wpeak(3:);
%画出尺度3极值点
figure;
plot (Mj4);
title(‘尺度3下小波系数的模极大值点‘);
posi=Mj4.*(Mj4>0);
%求正极大值的平均
thposi=(max(posi(1:round(points/4)))+max(posi(round(points/4):2*round(points/4)))+max(posi(2*round(points/4):3*round(points/4)))+max(posi(3*round(points/4):4*round(points/4))))/4;
posi=(posi>thposi/3);
nega=Mj4.*(Mj4<0);
%求负极大值的平均
thnega=(min(nega(1:round(points/4)))+min(nega(round(points/4):2*round(points/4)))+min(nega(2*round(points/4):3*round(points/4)))+min
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-09-12 19:02 心电r波峰值检测算法\
目录 0 2018-09-12 19:02 心电r波峰值检测算法\心电信号R波检测\
文件 183133 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\A Real-Time Microprocessor QRS Detector System with a 1-ms Timing Accuracy for the Measurement of Ambulatory HRV.pdf
目录 0 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\QRSdetect\
文件 4558 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\QRSdetect\100.atr
文件 1950000 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\QRSdetect\100.dat
文件 143 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\QRSdetect\100.hea
文件 5673 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\QRSdetect\ecgdata.mat
文件 7176 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\QRSdetect\ecgdetect.m
文件 6646 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\QRSdetect\graduatedemo.asv
文件 5452 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\QRSdetect\rddata.m
文件 342760 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\一种高效的QRS波实时检测方法.pdf
文件 214674 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\基于Mexican_hat小波的QRS检测新方法.pdf
文件 526446 2014-12-08 18:18 心电r波峰值检测算法\心电信号R波检测\基于双正交样条小波的QRS波检测.pdf
文件 0 2018-09-12 19:02 心电r波峰值检测算法\心电信号R波检测\新建文本文档.txt
评论
共有 条评论