资源简介
运用小波变换实现对MIT-BIH心电数据库中的数据进行读取,是我毕业设计的一部分内容,拿出来与大家一起分享
代码片段和文件信息
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(‘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(nega(3*round(points/4):4*round(points/4))))/4;
nega=-1*(nega %找出非0点
interva=posi+nega;
loca=find(in
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4558 2007-04-03 13:34 QRSdetect\QRSdetect\100.atr
文件 1950000 2007-04-03 13:34 QRSdetect\QRSdetect\100.dat
文件 143 2007-04-03 13:34 QRSdetect\QRSdetect\100.hea
文件 5673 2009-06-08 14:55 QRSdetect\QRSdetect\ecgdata.mat
文件 7142 2009-06-13 01:21 QRSdetect\QRSdetect\ecgdetect.asv
文件 6998 2006-07-01 06:17 QRSdetect\QRSdetect\ecgdetect.m
文件 6646 2005-07-01 22:05 QRSdetect\QRSdetect\graduatedemo.asv
文件 5448 2007-04-03 13:35 QRSdetect\QRSdetect\rddata.asv
文件 5183 2009-06-08 14:55 QRSdetect\QRSdetect\rddata.m
文件 5446 2009-06-04 10:29 QRSdetect\QRSdetect\新建 文本文档.txt
目录 0 2009-06-03 23:10 QRSdetect\QRSdetect
目录 0 2009-06-03 23:10 QRSdetect
----------- --------- ---------- ----- ----
1997237 12
相关资源
- 基于小波变换mallat算法的雷达回波去
- 一种基于可逆小波变换的盲数字水印
- 小波变换Fortran代码,可供学习
- SVD_DWT水印的嵌入和提取
- mallat算法实现二维小波变换(详细过
- 论文研究-基于小波变换和均值滤波相
- 基于小波和神经网络的齿轮箱故障诊
- 双树复小波变换源代码 DT-CWTcode
- 基于小波变换的镁碳质耐火材料受压
- 基于小波变换的图像去噪算法及代码
- 小波变换的三层分解
- 基于小波变换和奇异值分解的数字水
- 4层DWT离散小波变换
- 小波变换的源程序DWT
- 小波变换c代码(供初学者使用)
- 基于小波变换和奇异值分解相结合的
- 基于小波变换的方法识别ECG信号的中
- 基于小波变换的图像修复算法
- 基于小波变换的时间序列负荷预测
- 第二代小波变换源码-第二代小波变换
- 基于小波变换的自适应多阈值图像去
- 图像融合算法实现源代码很加权平均
- 基于小波变换的数字水印算法设计论
- BP神经网络算法激励函数采用小波变换
- 小波与小波变换.pdf
- 双树复数小波变换纹理特征提取算法
评论
共有 条评论