使用差分演化算法优化小波参数以提升其降噪性能
1. 背景
实际采集信号的过程中,由于数据采集环境和完成数据采集任务的仪器仪表自身的原因不可避免的存在其他信号的干扰和噪声,噪声的存在对于数据采集和信号测量之后的科研和生产工作会造成不利的影响,这些噪声信号将掩盖我们所需要的有用信号,因此在对信号进行处理之前必须对实际采集的信号处理,以便消除噪声信号,有效地表现原始信号中的有用信息。消噪的效果将直接影响到后续的基于信号的分析、诊断、识别等方面的工作进行,为了提高技术指标,提取出准确的信号,去除干扰信号与随机噪声信号是非常重要的。小波变换具有低熵性、多分辨率、去相关性和选基灵活的特点,使其成为特征提取和低通滤波功能的综合,相当于对信号同时进行低通和高通滤波,其低频系数主要反映信号的信息,而高频系数主要反映噪声和信号细节的信息,在信号处理中有相当大的优势,尤其是在对非平稳信号的处理中有着傅立叶变换不可比拟的优势。
2. 小波变换的发展和原理
2.1 傅里叶变换
对于小波的理解,首先我们可以将其与傅里叶变换做对比,小波是在傅里叶函数的影响下提出的。傅里叶变换通过无限长不衰减的三角函数波段表示,其公式如下所示:
F
(
w
)
=
∫
−
∞
+
∞
f
(
t
)
e
−
j
w
t
d
t
F(w)=\int_{-∞}^{+∞}f(t)e^{-jwt}{\rm d}t
F(w)=∫−∞+∞f(t)e−jwtdt上式中
w
w
w是表示频率的变量,
t
t
t表示时间。
通过上式可以明显的观察到傅里叶变换实现了将信号从时域转变到频域,实现了将信号通过频率划分为不同的部分。但是,傅里叶变换在解决非连续平稳信号问题上就出现了缺陷。例如存在两段频率相同但在对应时域上不同的非平稳信号,通过FFT(快速傅里叶变换)得到的频谱图却完全相同。所以说,傅里叶变换虽然可以实现时域到频域的转换,但是却无法将两者结合起来。对于傅里叶变换来讲,他只适用于处理平稳信号,对于非平稳信号的分析,傅里叶变换只能单一分析出一段信号所包含的各个频率成分,但在时间上却无法使其对应,这便是傅里叶变换所存在的短板。
但对于这个问题,Gabor对傅里叶变换引入了“加窗”这一思想,所谓“窗”,即是指对信号的时域进行限宽。其基本思路是将信号的时域按窗分为等长的时间间隔,通过移动时间窗,用傅里叶函数分别对该段窗口内的信号进行处理,从而对信号的局部化特征进行分析。这一思想被称作短时傅里叶变换,其表达式如下所示:
f
(
t
)
=
1
2
π
∫
R
g
(
t
−
b
)
G
f
(
w
,
b
)
e
−
j
w
t
d
b
f(t)=\frac{1}{2π}\int_{R}g(t-b)G_f(w,b)e^{-jwt}{\rm}db
f(t)=2π1∫Rg(t−b)Gf(w,b)e−jwtdb其中,t代表时间,
G
f
(
w
,
b
)
G_f(w,b)
Gf(w,b)表示信号
f
(
x
)
f(x)
f(x)在时间
b
b
b的频谱信息。这里设置
g
(
t
)
g(t)
g(t)代表窗函数,由上式可以明显看出,
f
(
t
)
f(t)
f(t)随着时间窗函数
g
(
t
−
b
)
g(t-b)
g(t−b)的移动被分段,从而对每段进行分析,这样一来,就解决了傅里叶变换所存在的短板,可以得到一个信号的时频图。
虽然说通过“加窗”的思想从一定角度上解决了傅里叶变换无法分析时域的问题。但是短时傅里叶变换也存在着一定程度上不足之处,当“窗口”的大小一旦确定及
g
(
t
)
g(t)
g(t)定下来后,将无法再使其变更,因为随着
(
t
−
b
)
(t-b)
(t−b)的改变,只能改变窗口的位置,而无法调整窗口的形状,这样便不能对信号的所有细节特点处做到细致的分析,所以短时傅里叶变换并不能较好的适用于非平稳信号的分析。于是人们便引出了“小波”这一概念。
2.2 小波理论原理
所谓“小波”,即一段很小的波,他通过使用一段会衰减的波段来代替傅里叶所使用的无限长三角函数,并通过不断地平移和伸缩小波基来实现对信号的处理。小波变换的表达式如下式所示: W T ( a , τ ) = 1 a ∫ − ∞ + ∞ f ( t ) ∗ φ ( t − τ a ) d t WT(a,τ)=\frac{1}{\sqrt{a}}\int_{-∞}^{+∞}f(t)*φ(\frac{t-τ}{a})dt WT(a,τ)=a1∫−∞+∞f(t)∗φ(at−τ)dt上式中, a a a代表尺度因子, τ τ τ代表平移因子,其中 φ ( t ) φ(t) φ(t)表示小波函数,小波函数通过a,τ两值的影响,将表达式 1 a ∗ φ ( t − τ a ) \frac{1}{\sqrt{a}}*φ(\frac{t-τ}{a}) a1∗φ(at−τ)称为连续小波基。从上式可以观察到,小波变换在某种程度上也属于积分变换,与傅里叶变换存在相似之处。但是,两者的区别也非常明显,傅里叶变换的变量只有 w w w频率一个,而小波变换存在两个不同的变量参数 a a a和 τ τ τ, a a a(尺度)就相对应于频率, τ τ τ就相当于时间,所以最终 f ( t ) f(t) f(t)将会被投影到时间-尺度平面。
2.3 小波阈值降噪原理
基于小波阈值降噪的方法最早是由Weaver等人提出的,小波降噪问题从数学的角度来讲其实是一个函数逼近问题,他主要目的还是希望通过小波函数来寻找实际信号的最佳映射。小波降噪的具体思想是:首先要选取合适的小波函数并确定信号分解的层数,将得到的含有噪声的信号通过选取的小波进行变换,得到一系列的小波系数,然后通过设定的各层去噪阈值对得到的小波系数进行修改,最后将得到的调整后的小波系数经行逆变换操作,从而得到降噪后的信号。
小波变换将信号分解为高频和低频两部分,高频反应图像细节,低频部分也称近似系数,将第一次分解得到的低频信号再通过分解得到第二层的低频和高频信号,重复同样的操作直到达到指定分解层数。以上操作被称为分解树操作。如图1所示:
图1:分解树的三层分解图
其中,
S
S
S代表原信号,
D
j
D_j
Dj,
j
∈
(
1
,
2
…
n
)
j∈{(1,2…n)}
j∈(1,2…n)代表高频信号,
A
j
A_j
Aj,
j
∈
(
1
,
2
…
n
)
j∈{(1,2…n)}
j∈(1,2…n)代表低频信号。一般来讲,分解的层数越多,噪声的小波系数就越小。
2.4 小波阈值降噪原理
由2.3节所知,小波降噪的基本思想是通过对图像有效信号的选取,在将图像转换为信号后,通过设置一个合适的阈值来对小波系数进行约束。对大于该设定阈值的小波系数进行了保留,小于的则进行清除,以此来达到对图像信息的还原。但是阈值的设定通常具有一定的方式,其值若过大,会造成对有效系数的过度收束;若太小,则滤波效果不明显,不能很好的去除噪声。
这里给出一些通用的阈值设定标准:
(1)通用阈值:
λ
=
δ
2
l
n
(
N
)
λ=δ\sqrt{2ln(N)}
λ=δ2ln(N)其中,
δ
δ
δ为噪声的标准差,
N
N
N代表信号长度。
(2)BayesShrink 阈值:
λ
=
δ
2
δ
x
λ=\frac{δ^2}{δ_x}
λ=δxδ2(3)极大极小值阈值(minimaxi):
λ
=
{
0.3936
+
0.1829
(
l
n
N
l
n
2
)
,
x
<
0
0
,
x
≥
0
λ= \left \{\begin{array}{cc} 0.3936+0.1829(\frac{lnN}{ln2}), &x <0\\ 0, & x≥0 \end{array}\right.
λ={0.3936+0.1829(ln2lnN),0,x<0x≥0 本文采用通用阈值的方式对噪声图像的信号进行阈值计算,通过计算发现,每一层阈值上限的计算结果均在[2,0]之内浮动,所以本文将每层阈值的上下限设定为[2,0]用来作为后续遗传算法种群中基因值的设定。
2.5 阈值函数
在小波传统的阈值处理方式中,分为硬阈值和软阈值两种。
硬阈值处理的基本思想是将小波系数的绝对值与给定的阈值进行了比较,将小于阈值的小波系数赋为0,不改变大于阈值的部分。其硬阈值的数学表达式如下所示:
w
=
{
w
,
∣
w
∣
≥
λ
0
,
∣
w
∣
<
λ
w= \left \{\begin{array}{cc} w, &|w| ≥λ\\ 0, & |w| <λ \end{array}\right.
w={w,0,∣w∣≥λ∣w∣<λ 软阈值处理的基本思想与硬阈值不同,他将大于阈值的小波系数减去阈值作为有效的小波系数,而小于阈值的部分依旧设置为0。其数学表达式如下式所示:
w
λ
=
{
[
s
g
n
(
w
)
(
∣
w
∣
−
λ
)
]
,
∣
w
∣
≥
λ
0
,
∣
w
∣
<
λ
w_λ= \left \{\begin{array}{cc} [sgn(w)(|w|-λ)], &|w| ≥λ\\ 0, & |w| <λ \end{array}\right.
wλ={[sgn(w)(∣w∣−λ)],0,∣w∣≥λ∣w∣<λ 软阈值函数的处理得到的小波系数连续性好,所得到的图像在整体上较为平滑,但是由于计算可能会导致信号的偏差,会使得处理后的图像与原始图像相似度下降的情况。硬阈值则在处理效果上一定程度上的优于软阈值,但是由于其约束条件所存在的不连续性,则会导致处理后所得到的图像出现“震荡现象”,使图像显得不平滑。
3. 差分演化算法(differential evolution, DE)
差分进化算法(Differential Evolution Algorithm,DE)是一种高效的全局优化算法。它也是基于群体的启发式搜索算法,群中的每个个体对应一个解向量。差分进化算法的进化流程则与遗传算法非常类似,都包括变异、杂交和选择操作,但这些操作的具体定义与遗传算法有所不同。
差分进化算法(Differential Evolution,DE)由Storn和Price于1995年首次提出。主要用于求解实数优化问题。该算法是一类基于群体的自适应全局优化算法,属于演化算法的一种,由于其具有结构简单、容易实现、收敛快速、鲁棒性强等特点,因而被广泛应用在数据挖掘、模式识别、数字滤波器设计、人工神经网络、电磁学等各个领域。1996年在日本名古屋举行的第一届国际演化计算(ICEO)竞赛中,差分进化算法被证明是速度最快的进化算法。以下将对DE算法的基本流程进行简要介绍。
3.1 初始化
种群Pop从整个可行空间中均匀随机抽样组成,个体
X
X
X产生的方式如下:
X
i
t
=
l
b
+
(
u
b
−
l
b
)
∗
r
a
n
d
X_i^t=lb+(ub-lb)*rand
Xit=lb+(ub−lb)∗rand其中,lb和ub分别代表可行解空间的上界和下界,rand为0到1之间的随机数。
3.2 变异
变异作为DE中最为重要的环节,对算法的收敛性能起着很大的影响。DE算法通过差分策略实现个体变异,常见的差分策略是随机选取种群中两个不同的个体,将其向量差缩放后与待变异个体进行向量合成。变异个体
V
V
V产生的方式如下:
V
i
t
=
X
r
1
t
+
F
∗
(
X
r
2
t
−
X
r
3
t
)
V_i^t=X_{r1}^t+F*(X_{r2}^t-X_{r3}^t)
Vit=Xr1t+F∗(Xr2t−Xr3t)其中,
X
r
1
t
,
X
r
2
t
和
X
r
3
t
X_{r1}^t,X_{r2}^t和X_{r3}^t
Xr1t,Xr2t和Xr3t分别为种群中随机选取的个体。
3.3 交叉
交叉操作的目的是随机选择个体,因为DE也是一种随机算法,交叉操作的方法是:
U
i
,
j
t
=
{
X
i
,
j
t
,
r
a
n
d
j
<
C
R
V
i
,
j
t
,
o
t
h
e
r
w
i
s
e
U_{i,j}^t= \left \{\begin{array}{cc} X_{i,j}^t, &rand_j<CR\\ V_{i,j}^t, & otherwise \end{array}\right.
Ui,jt={Xi,jt,Vi,jt,randj<CRotherwise其中,CR为交叉概率,属于[0,1]。
3.4 选择
在DE中采用的是贪婪选择的策略,即选择较优的个体作为新的个体。
X
i
,
j
t
+
1
=
{
X
i
t
,
i
f
f
(
U
i
t
)
>
f
(
X
i
t
)
U
i
t
,
o
t
h
e
r
w
i
s
e
X_{i,j}^{t+1}= \left \{\begin{array}{cc} X_{i}^t, &if\ f(U_{i}^t)>f(X_{i}^t)\\ U_{i}^t, & otherwise \end{array}\right.
Xi,jt+1={Xit,Uit,if f(Uit)>f(Xit)otherwise
图2描绘了DE算法的流程图:
图2:DE算法流程图
4. 实验仿真
分别选用“symlets小波系”、“dbN小波系”和“Coiflet小波系”来与DE优化小波参数后的结果进行对比。
4.1 实验所设计到的小波系
4.1.1 symlets小波系
这里分别给出“sym4”,“sym6”,“sym8”, “sym10”小波的尺度函数和小波函数图:
图3:sym4的尺度函数与小波函数图
图4:sym6的尺度函数与小波函数图
图5:sym8的尺度函数与小波函数图
图6:sym10的尺度函数与小波函数图
4.1.2 dbN小波系
这里分别给出“db4”, “db6”, “db8”三种小波的尺度函数和小波函数图:
图7:db4的尺度函数与小波函数图
图8:db6的尺度函数与小波函数图
图9:db8的尺度函数与小波函数图
4.1.3 Coiflet小波系
这里分别给出“coif2”, “coif4”两种种小波的尺度函数和小波函数图:
图10:coif2的尺度函数与小波函数图
图11:coif4的尺度函数与小波函数图
4.2 实验结果
4.2.1 实验所采用的测试图像
图12:“Lena”,“Peppers”和“Barbara”测试图像
4.2.2 降噪结果
其中,DE的参数设置为:NP=100,D=10,F=0.5,CR=0.9.
- 对Lena的原始灰度图像添加密度为0.3的椒盐噪声来模拟采集到的噪声图像。
椒盐噪声图像 sym4处理结果 sym6处理结果 sym8处理结果
sym10处理结果 db4处理结果 db6处理结果 db8处理结果
coif2处理结果 coif4处理结果 DE处理结果
图13:Lena图像去除密度为0.3的椒盐噪声结果 - 对Peppers的原始灰度图像添加均值为0,方差为0.5的高斯噪声来模拟采集到的噪声图像。
高斯噪声图像 sym4处理结果 sym6处理结果 sym8处理结果
sym10处理结果 db4处理结果 db6处理结果 db8处理结果
coif2处理结果 coif4处理结果 DE处理结果
图13:Peppers图像去除均值为0,方差为0.5的高斯噪声结果 - 对Lena的原始灰度图像添加均值为0,方差为0.7的加性噪声来模拟采集到的噪声图像。
高斯噪声图像 sym4处理结果 sym6处理结果 sym8处理结果
sym10处理结果 db4处理结果 db6处理结果 db8处理结果
coif2处理结果 coif4处理结果 DE处理结果
图13:Barbara图像去除均值为0,方差为0.7的加性噪声结果
4.2.3 结果分析
通过采用三种不同的噪声分别对三幅不同的测试图进行模拟,可以观察到本文采用的9种通用小波去噪结果相较一致,去噪的程度从直观上来看效果差距不大。但是可以明显的看出,经过差分演化算法来实现的去噪效果从直观上明显由于传统小波去噪效果。