基于小波变换阈值去噪算法的改进
2021-11-17李维松许伟杰
李维松,许伟杰,张 涛
(1. 中国科学院声学研究所东海研究站,上海 201815;2. 中国科学院大学,北京 100089)
1 引言
在信号的采集、处理和转发过程中,由于环境干扰,信号中总会夹杂有噪声。如果对带有噪声的信号直接处理,就会产生很大的误差,甚至会造成错误。因此,对信号的噪声去除在信号处理的过程中显得尤为必要。信号去噪处理的方法有很多,小波分析克服了传统傅里叶分析中的诸多不足,能够同时在时域和频域对信号分析,具有较好的局部化和多分辨率特性,是近年来对含噪信号进行滤波去噪应用最广泛的方法之一。
目前比较常见的小波去噪方法有:模极大值去噪算法、相关性去噪算法和小波阈值去噪算法,其中阈值去噪算法应用最为广泛。传统的阈值去噪法主要包括硬阈值去噪、软阈值去噪[1],以及Garrote阈值去噪[2-3],这三类算法都存在有自身固定的缺陷,本文在在充分吸取以上三类算法优点的基础上,提出一种改进的阈值函数,并采用新的阈值确定方法,取得了更优地去噪效果。
2 小波阈值去噪原理
小波阈值去噪算法的主要原理是[4]:小波变换有很强的去数据相关性,它把信号的能量集中到小波域中一些较大的小波系数上,而所含的白噪声在正交基上的变换都是白噪声,小波变换则将其能量分布于整个小波域内大多数的展开系数上。因此,经过小波分解后,原始信号的小波系数幅值要大于噪声的系数幅值,并且信号小波系数个数远远少于噪声小波系数。幅值比较大的小波系数一般以信号为主,而幅值比较小的系数在很大程度上都是噪声。所以可将幅值较大的系数保留,将幅值较小的系数置零,得到估计的小波系数,再对其进行信号重构,即可达到去除噪声的目的。
小波阈值去噪算法流程如图1所示[5]。
图1 小波阈值去噪一般算法流程
2.1 小波阈值去噪基本步骤
1)选择合适的小波基函数和分解层数,对含噪信号进行小波分解,常用的小波主要有dbN小波、symN小波、coifN小波、Haar小波和biorNr.Nd小波等,分解层数一般选取3-5层。
2)选取合适的阈值和阈值函数[6]。小波阈值直接影响去噪效果,若所选阈值过大,则会丢失掉一部分原始信号信息,导致重构后的信号产生失真;若所选阈值过小,则会保留过多噪声分量,去噪效果大打折扣。常用的阈值主要有基于无偏似然估计(rigsure)阈值、固定(sqtwolog)阈值、启发式(heursure)阈值和最小极大方差(minimaxi)阈值。而常见的阈值函数主要有软阈值函数、硬阈值函数和Graaote阈值函数三类。
3)将处理后的小波系数进行离散小波逆变换,得到重构去噪信号。
2.2 阈值函数
1)硬阈值函数
(1)
2)软阈值函数
(2)
3)Garrote阈值函数
(3)
这三类函数在信号处理中经常用到,但它们各自都存在一定的不足。用硬阈值函数处理信号时,去噪后的信号边缘性比较好,但由于函数本身具有不连续性,可能会导致重构后的信号存在不必要的震荡;软阈值函数具有很好的连续性,去噪结果更为平滑,但当小波系数较大时,估计的小波系数与原始系数之间存在固定的偏差,使得信号高频部分遭到损失,导致重构后的信号与原信号相比逼近度差,容易产生失真;Garrote阈值结合了软、硬阈值函数的优点,信号连续性好,且小波系数较大时,固定的偏差会趋向于零,有效克服了软、硬阈值函数存在的不足,但它忽略了噪声在小波变换下随尺度的增大而减小的特性[7],并且针对突变信号,其去噪效果仍有不足之处[8]。三类阈值函数图像如图2所示。
图2 软、硬阈值函数和Garrote阈值函数对比
3 改进的阈值去噪方法
3.1 一种新的阈值函数
由于上面所提的三类传统阈值函数都存在各自的缺陷,故在充分考虑这三类函数各自优点的前提下,构造出一种新的阈值函数,具体表达式如下式(4)所示。
(4)
由(4)式可以看出新的阈值函数具有如下特征:
1)新的阈值函数仍是连续函数,它保留了软阈值函数连续性好的特点。
2)在|di,k|≥λ的很短区间内新阈值函数能够迅速的逼近硬阈值函数,因此有效地解决了软阈值函数存在的固定偏差问题。
图3和图4分别为N取10和100时的四类函数对比情况。
图3 当N=10时,四类阈值函数对比
图4 当N=100时,四类阈值函数对比
3.2 新的阈值获取方法
经过小波变换后,原始信号对应的小波系数幅值随着分解尺度的增大而变大,而噪声对应的小波系数幅值随分解尺度的增大而减小,根据这一特性,可以对不同分解层选取不同的阈值。
由文献[9]和文献[10]可知
|Wfjx(t)|≤K2jα
(5)
式中,Wfjx(t)表示第j层小波系数,j表示分解层数,α表示Lipschitz指数,K为常数。该式表明,存在一个常数K,使得小波变换系数的模极大值为K2jα。
对于原始信号成分来说,α>0,则根据(5)式可知:
max{|Wfjx(t)|}≤2αmax{|Wfj+1x(t)|}
(6)
可以看出原始信号小波系数尺度比值>2,即第j+1层小波系数幅值大于第j层的两倍;而对于噪声成分来说,其α=-0.5-ε(ε>0)[10],带入(5)式中可得
(7)
(8)
4 仿真研究
本文使用Matlab仿真软件对该改进的阈值函数进行仿真,以验证其去噪能力是否得到改进。对比较平滑的Heavysine信号和波形突变性很强的Block信号分别加入高斯白噪声,然后对含噪信号进行阈值去噪处理[11],其去噪效果通过信噪比(SNR)和均方误差(MSE)进行定量判定,其中SNR和MSE分别通过如下式(9)和(10)得到
(9)
(10)
式(9)和(10)中,s(i)表示原始信号,y(i)表示去噪后的信号。
信噪比是衡量信号去噪效果的重要依据,去噪后的信噪比越高说明信号的提取效果越好;均方误差则反映了信号的失真程度,去噪信号与原始信号的均方误差越小,说明失真程度越小,信号提取的越完整,去噪效果越好。
首先采用硬阈值函数、软阈值函数、Garrote阈值函数以及本文提出的改进阈值函数对加噪Heavysine信号做去噪处理,采用sym8小波对加噪信号做5层小波分解,调节因子N取100,采用固定(sqtwolog)阈值作为第一层阈值,公式为:
(11)
式中,σ为噪声标准方差,N为信号长度,硬阈值函数、软阈值函数和Garrote阈值函数去噪方法采取固定阈值方式,而改进的阈值函数去噪方法则采用分层变阈值方式,选取规则按照(8)式进行,仿真结果如图5所示。
图5 四类阈值函数对Heavysine信号去噪结果
由图5可知,用四类阈值函数去噪处理后,重构信号与原始信号逼近度很高,重构出的信号总体上较为平滑,都保留了大部分有用信息,直观上较难分辨出处理效果的好坏。因此再对四类重构信号做定量分析,表1列出了用这四类函数对Heavysine信号去噪后的信噪比和均方误差。
表1 Heavysine信号的四种去噪结果定量比较
由上表可知,软阈值去噪效果优于硬阈值去噪,而Garrote去噪和软阈值去噪相比差别并不大,改进后的阈值去噪方法在SNR和MSE两个方面都要优于其余三类方法。
其次用四类阈值函数对加噪Block信号做去噪处理,采用db1小波对加噪信号做5层小波分解,调节因子N取10,采用固定(sqtwolog)阈值作为第一层阈值,硬阈值函数、软阈值函数和Garrote阈值函数去噪方法采取固定阈值方式,本文改进阈值函数去噪则采用分层变阈值方式,仿真结果如图6所示。
图6 四类阈值函数对Block信号去噪结果
由图6可知,硬阈值去噪方法对Block信号中的上升沿、下降沿等突变部分保留得较好,但信号不够平滑,波形中存在尖峰、毛刺;软阈值去噪后的信号整体过于平滑,对波形的突变部分保留的不完整,存在明显的失真现象;用Garrote阈值法去噪后,波形整体去噪效果比软阈值去噪要好,但仍有少量失真;用改进的阈值去噪方法处理后,重构的信号波形不再存在尖峰毛刺,信号的突变部分信息保留得也较好。
再对四类重构信号做定量分析,表2列出了用这四类函数对Block信号去噪后的信噪比和均方误差。
表2 Block信号的四种去噪结果定量比较
由表2可知,对突变性强的Block信号做去噪处理,采用硬阈值去噪效果明显优于软阈值去噪,Garrote阈值去噪效果稍次于硬阈值去噪,而改进的阈值去噪方法信噪比最高、均方误差最小,可以看出其去噪效果最好。
5 结论
小波变换在信号的滤波降噪处理中有着广泛应用,本文基于小波阈值去噪的基本原理,针对传统小波阈值去噪算法中软、硬阈值函数以及Garrote阈值函数的不足,构造出了一个新的阈值函数,并采用新的阈值确定方法,克服了传统阈值函数的不足,同时对信号的去噪处理更加灵活。最后仿真结果表明,改进的阈值去噪方法对平滑信号以及突变性信号降噪效果都要优于传统的三类阈值去噪方法。