clear all
close all
clc
load noisbump
x=noisbump;
%%%%调用工具箱中的函数计算阈值
%用sym6小波对信号做5层分解
level=5;
wav='sym6';
[c,l]=wavedec(x,level,wav);
%求阈值
[thr,sorh,keepapp]=ddencmp('den','wv',x);
%重建信号
s=wdencmp('gbl',c,l,wav,level,thr,sorh,1);
subplot(211)
plot(x)
grid
title('原含有噪声的信号')
subplot(212)
plot(s)
grid
title('使用缺省的阈值对系数处理后重建的信号')
p1=norm(s)/norm(x) %重建后的信号在原信号中占有的能量成分
erro1=norm(s-x)
%%最简单的实现方法:保留近似系数,对细节系数进行适当的处理%%%%%
%%%%该方法比较粗糙,高频部分不能得到有效的恢复%%%%%%%%%%
l0=1+l(2):l(level+2);
c(l0)=c(l0)/5; %%%%%%可以根据需要调整分母的大小,即细节系数的大小
s=waverec(c,l,wav);
figure
subplot(211)
plot(x)
grid
title('原含有噪声的信号')
subplot(212)
plot(s)
grid
title('使用缺省的阈值对系数处理后重建的信号')
p2=norm(s)/norm(x) %重建后的信号在原信号中占有的能量成分,
erro2=norm(s-x)%标准差