小波去噪和小波包去噪的对比.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小波去噪和小波包去噪的对比
问题 1:试生成一个含噪声信号,利用matlab 中的小波去噪和小波包去噪函数去除噪声,比较两者的性能差异。
程序如下:
clc
clear all
load noisdopp
x=noisdopp;
subplot(311)
plot(x);
title(' 原始信号的波形图 ')
axis tight;
[thr,sorh,keepapp]=ddencmp('den','wv',x);
xwd=wden(x,'rigrsure','s','one',4,'sym4');
subplot(312)
plot(xwd)
title(' 小波降噪信号 ')
axis tight
[thr1,sorh1,keepapp1,crit]=ddencmp('den','wp',x);
xwpd=wpdencmp(x,'h',4,'sym4','sure',thr1,1);
subplot(313)
plot(xwpd)
title(' 小波包降噪信号 ')
axis tight
运行结果如下:
原始信号的波形图
5
-5
1002003004005006007008009001000
小波降噪信号
5
-5
1002003004005006007008009001000
小波包降噪信号
5
-5
1002003004005006007008009001000
区别:小波变换在低信噪比情况下的去噪效果较好,小波包分解去噪后信号更
加的平滑;小波分解主要是针对细节成分全置 0 或者给定软(硬)阈值去噪,容易丢失信号中的有用信息。
问题 2:研究小波包分解树中各节点的重构系数,给出其频谱分布,讨论波包分解的频带划分
程序如下:
clc
clear all
load noisdopp;
s=noisdopp;
wpt=wpdec(s,3,'sym1');
plot(wpt);
r20=wprcoef(wpt,[2 0]);
subplot(621)
plot(r20)
title('r20')
subplot(623)
hua_fft(r20,10000,1)
title('r20 的 FFT')
r21=wprcoef(wpt,[2 1]);
subplot(622)
plot(r21)
title('r21')
subplot(624)
hua_fft(r21,10000,1)
title('r21 的 FFT')
r22=wprcoef(wpt,[2 2]);
subplot(625)
plot(r22)
title('r22')
subplot(627)
hua_fft(r22,10000,1)
title('r22 的 FFT')
r23=wprcoef(wpt,[2 3]);
subplot(626)
plot(r23)
title('r23')
subplot(628)
hua_fft(r23,10000,1)
title('r23 的 FFT')
r10=wprcoef(wpt,[1 0]);
subplot(629)
plot(r10)
title('r10')
subplot(6,2,11)
hua_fft(r10,10000,1)
title('r10 的 FFT')
r11=wprcoef(wpt,[1 1]);
subplot(6,2,10)
plot(r11)
title('r11')
subplot(6,2,12)
hua_fft(r11,10000,1)
title('r11 的 FFT')
程序运行结果如下:
Tree Decomposition data for node: (0) or (0,0).
10
(0,0) 8
6
4
(1,0) (1,1)
2
-2
(2,0) (2,1) (2,2) (2,3)
-4
-6
(3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) -8
-10
200
400 600 800 1000
问题 3:生成最优树结构,给出其熵值
程序如下:
clc
clear all
load noisdopp;
x=noisdopp;
wpt=wpdec(x,3,'sym4');
wpt=wpsplt(wpt,[3 0]);
plot(wpt)
bt=besttree(wpt);
plot(bt)
ent=read(wpt,'ent',allnodes(wpt))
T=entrupd(bt,'shannon');
ent=read(wpt,'ent',allnodes(bt))
Tree Decomposition data for node: 0 or (0,0).
10
(0,0) 8
6
(1,0) (1,1) 4
2
(2,0) (2,1) (2,2) (2,3) 0
-2
(3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) -4
-6
(4,0) (4,1) -8
-10
200
400 600 800 1000
图 1 小波包树
Tree Decomposition data for node: (0) or (0,0).
10
(0,0) 8
6
(1,0) (1,1) 4
2
(2,0) (2,1) (2,2) (2,3) 0
-2
(3,0) (3,1) (3,2) (3,3) -4
-6
(4,0) (4,1) -8
-10
200
400 600 800 1000
图 2 最优小波包树