急!在线等,求解答:一个小波去噪的matlab程序,高手进下面这个程序是什么意思,具体每一步每一句话是什么意思,尽量详细啊!很急明天就验收了%%%%%%%%%%%%%%%%%%心电信号降噪%%%%%%%%%%%%%%%Birge-Massart

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 18:38:40

急!在线等,求解答:一个小波去噪的matlab程序,高手进下面这个程序是什么意思,具体每一步每一句话是什么意思,尽量详细啊!很急明天就验收了%%%%%%%%%%%%%%%%%%心电信号降噪%%%%%%%%%%%%%%%Birge-Massart
急!在线等,求解答:一个小波去噪的matlab程序,高手进
下面这个程序是什么意思,具体每一步每一句话是什么意思,尽量详细啊!很急明天就验收了
%%%%%%%%%%%%%%%%%%心电信号降噪
%%%%%%%%%%%%%%%Birge-Massart策略阈值降噪
%基于小波变换的心电信号的降噪
ecg=fopen('100.dat','r'); // 调用心电数据库 r为只读
N=1201;
data=fread(ecg,N,'int16'); //从一个流中读数据
data=data/10000;
fclose(ecg);
x=data;
wavename='db5'; //选择db5小波,小波进行三层分解, 这里就是小波分解
level=4;
[c,l]=wavedec(x,level,wavename); //多级小波分解 由第一层的高频系数估计噪声标准差
alpha=1.5; //设置当前坐标系中对象的透明度属性
sorh='h'; //为硬阈值
[thr,nkeep]=wdcbm(c,l,alpha);%使用阈值给信号降噪 alpha为分解到第几层
[xc,cxc,lxc,perf0,perfl2]=wdencmp('lvd',c,l,wavename,level,thr,sorh); //小波压缩重构后的图像
t1=0:0.004:(length(x)-1)*0.004;
figure(4);
subplot(211); //画图
plot(t1,x);
title('从人体采集的原始的ECG信号');
subplot(212);
plot(t1,xc);
title('Birge-Massart策略阈值降噪后的ECG信号(wname=db5 level=4)');

急!在线等,求解答:一个小波去噪的matlab程序,高手进下面这个程序是什么意思,具体每一步每一句话是什么意思,尽量详细啊!很急明天就验收了%%%%%%%%%%%%%%%%%%心电信号降噪%%%%%%%%%%%%%%%Birge-Massart
供参考:
lev=5;
[c,l]=wavedec(x,lev,wname);
sigma=wnoisest(c,l,1);
alpha=2;
thr1=wbmpen(c,l,sigma,alpha)
[thr2,nkeep]=wdcbm(c,l,alpha)
xd1=wdencmp('gbl',c,l,wname,lev,thr1,'s',1);
[xd2,cxd,lxd,perf0,perfl2]=wdencmp('lvd',c,l,wname,lev,thr2,'h');
[thr,sorh,keepapp]=ddencmp('den','wv',x)
xd3=wdencmp('gbl',c,l,wname,lev,thr,'s',1);
subplot(411);plot(x);title('原始信号','fontsize',12);
subplot(412);plot(xd1);title('使用penalty阈值降噪后信号','fontsize',12);
subplot(413);plot(xd2);title('使用Birge-Massart阈值降噪后信号','fontsize',12);
subplot(414);plot(xd3);title('使用缺省阈值降噪后信号','fontsize',12);
s=[-1.58 0.42 0.46 0.78 -0.49 0.59 -1.3 -1.42 -0.16 -1.47 -1.35 0.36 -0.44 -0.14 1 -0.5 -0.2 -0.06 -0.6 0.42 -1.52 0.51 0.76 -1.5 0.16 -1.29 -0.65 -1.48 0.6 -1.65 -0.55];
[C,L]=wavedec(s,1,'db3');
ca1=wrcoef('a',C,L,'db3',1);
x1=ca1 ;
[C,L]=wavedec(s,2,'db3');
ca2=wrcoef('a',C,L,'db3',2);
x2=ca2 ;
[C,L]=wavedec(s,3,'db3');
ca3=wrcoef('a',C,L,'db3',3);
x3=ca3 ;
[C,L]=wavedec(s,4,'db3');
ca4=wrcoef('a',C,L,'db3',4);
x4=ca4 ;
cg = wrcoef('a',C,L,'sym5',1);
x5=cg;
p=1:31;
subplot(6,1,1);plot(p,s);ylabel('s');
subplot(6,1,2);plot(p,x1);ylabel('ca1');
subplot(6,1,3);plot(p,x2);ylabel('ca2');
subplot(6,1,4);plot(p,x3);ylabel('ca3');
subplot(6,1,5);plot(p,x4);ylabel('ca4')
subplot(6,1,6);plot(p,x5);ylabel('ca5') %加入的重构,是不是你要的?