小波分析在信号去噪中的应用(最新整理)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小波分析在信号去噪中的应用
摘要:利用小波方法去噪,是小波分析应用于实际的重要方面。小波去噪的关键是如何选择阈值和如何利用阈值来处理小波系数,通过对几种去噪方法不同阀值的选取比对分析和基于MATLAB 信号去噪的仿真试验,比较各种阀值选取队去噪效果的影响。
关键词:小波去噪;阀值;MATLAB 工具
1、 小波去噪模型的建立
如果一个信号被噪声污染后为,那么基本的噪声模型就可以表示为()f n ()s n ()()()
s n f n e n σ=+式中:为噪声;为噪声强度。最简单的情况下为高斯白噪声,且=1。()e n σ()e n σ小波变换就是要抑制以恢复,从而达到去除噪声的目的。从统计学的()e n ()f n 观点看,这个模型是一个随时间推移的回归模型,也可以看作是在正交基上对函数无参估计。小波去噪通常通过以下3个步骤予以实现:
()f n a)小波分解;
b)设定各层细节的阈值,对得到的小波系数进行阈值处理;
c)小波逆变换重构信号。
小波去噪的结果取决于以下2点:
a)去噪后的信号应该和原信号有同等的光滑性;
b)信号经处理后与原信号的均方根误差越小,信噪比越大,效果越好。
如何选择阈值和如何利用阈值来量化小波系数,将直接影响到小波去噪结果。
2、小波系数的阈值处理
2.1由原始信号确定阈值
小波变换中,对各层系数降噪所需的阈值一般是根据原信号的信噪比来决定的。在模型里用这个量来表示,可以使用MATLAB 中的wnoisest 函数计算得到σσ值,得到信号的噪声强度后,根据下式来确定各层的阈值。
thr =式中n 为信号的长度。
2.2基于样本估计的阈值选取
1)无偏似然估计(rigrsure):是一种基于Stein 无偏似然估计原理的自适应阈值选择。对于给定的阈值T ,得到它的似然估计,再将似然T 最小化,就得到了所选的阈值,这是一种软件阈值估计。
2)阈值原则(sqtwlolg):固定阈值T 的计算公式为。
3)启发式阈值原则(heursure):是无偏似然估计和固定阈值估计原则的折
中。如果信噪比很小,按无偏似然估计原则处理的信号噪声较大,在这种情况下,就采用固定阈值形式。
4)极值阈值原则(minimax):采用极大极小值原理选择阈值,它产生一个最小均方误差的极值,而不是没有误差。统计学上,这种极值原理用来设计估计器。因为被消噪的信号可以看作与未知回归函数的估计器相似,这种极值估计器可在给定的函数中实现最大均方误差最小化。
2.3软阈值和硬阈值
在确定阈值后,可以采用硬阈值或软阈值的处理方法对小波系数做阈值处理。硬阈值法只保留大于阈值的小波系数并将其他的小波系数置零,其表达式如下:
软阈值法将小于阈值的小波系数置零,并把大于阈值的小波系数向零做收缩,其表达式如下:
3 、小波去噪的MATLAB 仿真对比试验
给定函数作为原始信号,然后加一组随机噪声,然后分别cos(10)x f e x -=选取不同阀值对信号用小波以为信号的自动消噪进行去噪处理。采用的小波为sym8,分解层数为5,小波函数为wden 。结果如图一所示
图一 不同阀值系数软阀值去噪效果图
由图一可大致看出去噪效果对比heusure 和minimaxi 阀值的去噪效果较好,sqtwolo 阀值降噪效果相对较差。而rigrsure 看不出明显差别。
图二 不同阀值系数硬阀值去噪效果图
图二可看出,对硬阀值去噪minimaxi 阀值的效果最差。
为了精确的表示去噪效果,可与计算去噪后的信噪比()和均方根误差(SN R )。计算公式如下:RMSE 2()10log [()()]n SN n x n R x n x n ⎡⎤⎢⎥=⎢⎥'-⎢⎥⎣⎦
∑∑
RMSE =
信号的信噪比越高,原始信号和去噪信号的均方根误差越小,去噪信号就越接近原信号,去噪的效果也就越好。表一给出了各种阀值选取得信噪比和均方根误差的比较。
表一 几种阀值软阀值去噪后的和SN R RMSE heusure
rigrsure sqtwolog minimaxi (均方
RMSE 根误差)0.21720.1499
0.09420.0739(信噪比)
SN R 2.5758 5.79799.831611.93944、结论
本文对基于小波分析的去噪方法进行了研究,指出小波去噪阀值的选取对去噪效果的影响,并利用MATLAB 的小波分析工具箱进行了仿真试验,试验表明利用
小波分析方法可以达到良好的去噪效果,并且minimaxi阀值的去噪效果最好。
参考文献:
[1] 胡昌华李国华基于MATLAB 6.0的系统分析与设计——小波分析西安电子科技大学出版社
[2] 吴伟,蔡培升基于MATLAB的小波去噪仿真(西安石油大学机械工程学院,陕西西安710065)
附:
Matlab程序
clear
clc
x=0:0.01:3;
f=exp(-x).*cos(10*x);%原始信号函数
subplot(3,2,1);
plot(f);title('原始信号图形');%画出原始信号图形
noise=0.2*randn(size(f));
f1=f+noise; %噪声信号
subplot(322)
plot(f1); title('加噪后语音图像')
lev=5;
%对f1用sym8小波分解到第五层,并对高频系数用heusure硬阀值
xd=wden(f1,'heursure','h','one',lev,'sym8');
subplot(323)
plot(xd); title('用heusure硬阀值去噪后图像')
D=f-xd;
MSE=sqrt(sum(D(:).*D(:))/prod(size(f))) %均方根误差
PSNR=10*log10(sum(f(:).*f(:))/sum(D(:).*D(:))) %信噪比
%用rigrsure阀值对信号的标准差单车估计,并降噪
xd1=wden(f1,'rigrsure','h','one',lev,'sym8');
subplot(324)
plot(xd1); title('用rigrsure硬阀值去噪后图像')
D1=f-xd1;
MSE1=sqrt(sum(D1(:).*D1(:))/prod(size(f))) %均方根
PSNR1=10*log10(sum(f(:).*f(:))/sum(D1(:).*D1(:)))%信噪比
%用sqtwolog阀值对信号的标准差单车估计,并降噪
xd2=wden(f1,'sqtwolog','h','sln',lev,'sym8');
subplot(325)
plot(xd2); title('用sqtwolog硬阀值去噪后图像')
D2=f-xd2;
MSE2=sqrt(sum(D2(:).*D2(:))/prod(size(f))) %均方根