• 大小: 694KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: 其他
  • 标签: 小波变换  

资源简介

运用小波变换实现对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


评论

共有 条评论