APP下载

一种能量比调控的有源噪声控制算法∗

2020-09-24肖梦迪陈卫松钱隆彦

应用声学 2020年4期
关键词:步长噪声建模

肖梦迪 陈卫松 钱隆彦 吴 慧

(安徽师范大学物理与电子信息学院 芜湖 241000)

0 引言

有源噪声控制(Active noise control,ANC)主要应用于低频噪声控制领域,其原理是基于声波的相干相消[1]。目前有源噪声控制系统应用最广的算法是FXLMS算法[2],该算法需要预先获得次级通道的信息,即获得控制信号到误差传感器的传递函数。在ANC系统中,次级通道建模的准确性直接影响系统的降噪性能,次级通道建模分为离线建模和在线建模[3]。在线建模可以保证算法的精确性和实时性,它能对参数进行实时更新,当次级通道发生变化时能让系统快速恢复到稳定状态,但建模信号的引入会影响系统降噪量及收敛速度,同时存在控制信号与建模信号相互干扰的问题[4]。因此,降低建模信号和控制信号的相互影响、减弱建模辅助噪声对系统的影响,是有源噪声控制需要考虑的重要问题。

Eriksson 等[5]首次提出利用附加随机白噪声作为建模信号,对次级通道进行在线建模的策略。该方法改善了次级通道参数不能实时更新的缺点,但附加建模信号与控制信号之间存在相互干扰,大大降低了系统的降噪性能。为了减弱主动控制过程对建模过程的影响,Akhtar等[6]提出对次级通道采用变步长最小均方(Variable step size-Least mean square,VSS-LMS)算法,在不增加系统结构复杂度及计算量的情况下,获得良好的次级通道建模效果,同时也改善了Eriksson 等算法中主动控制信号对建模过程的影响。但Akhtar 等并未考虑建模信号对控制环节的影响,以及在系统收敛后,建模步长仍处于较大值,从而影响建模的精确性和系统稳定性。Kim 等[7]提出计划步长归一化最小均方(Scheduled-step size normalized LMS)算法,利用滤波器的均方差(Mean square deviation,MSD)来调节建模步长,使系统根据不同的状态选择合适的步长值。该算法提升了系统的收敛速度,大大降低了稳态误差但算法结构复杂,计算量较大,实际应用困难。张丽等[8]提出基于梯度下降的次级通道建模算法,采用控制模块与次级通道模块的步长值调节相结合的方式,在次级通道建模过程中对建模步长值进行梯度下降控制,利用检测函数使系统选择合适的建模步长值。该算法提高了系统收敛速度及建模精度,但算法涉及参数较多,实际调节困难,且未考虑附加辅助噪声对系统的影响。陈力等[9]提出一种新的变步长建模算法,将在线建模与控制模块的步长调节相结合,减弱了两者的相互影响,降低了系统的建模误差。但该算法未对附加辅助噪声进行控制,因此降噪量较低。

Xiao 等[10]提出对附加白噪声进行控制的策略,对建模步长值进行分段调控,并设置相应阈值,当步长值及误差值同时达到指定阈值时停止注入辅助噪声。该算法在降噪量和收敛速度方面均有较大提升,但算法涉及参数较多,环境发生变化时,需要重新调节阈值。袁军等[11]提出另一种针对附加白噪声进行控制的方法,利用误差函数来判断ANC系统的状态,当系统达到稳定状态时停止注入辅助白噪声,当系统发生突变时再重新注入辅助噪声进行建模。该方法提高了次级通道的收敛速度及建模精度,但未考虑建模信号对控制模块的影响,从而导致建模误差不稳定且误差值较大。

以上算法均未同时考虑附加建模信号对系统的影响以及建模信号与控制信号的相互影响。本文提出一种基于能量比调控的次级通道在线建模方法,改善建模信号与控制信号的相互影响,同时降低附加白噪声给系统带来的误差。

1 文献[6]次级通道建模算法

在文献[6]采用变步长进行次级通道建模,算法框图如图1所示。P(n)为初级通道,S(n)为次级通道,仿真实验时常用传递函数来模拟这两个物理通道。x(n)是输入参考信号即噪声源,d(n)为x(n)通过P(n)输出的期望信号。为x(n)经建模滤波器而得的输出信号,该信号为控制环节的输入信号。其中e(n)为该系统的残余误差信号,f(n)为建模滤波器及主滤波器的误差信号,两者能量分别定义为Pe、Pf,如式(1)、式(2)所示,两者之比为ρ(n),如式(3)所示。式(4)中µsmin为最小建模步长值,µsmax最大建模步长值,其值由实验得出。

图1 文献[6]算法结构图Fig.1 The sketch of the algorithm in Literature [6]

该算法的建模步长值随着ρ(n)的变化进行调整,d(n)−ys(n)为控制环节对建模环节的影响。在系统初始阶段,控制模块并未开始收敛,因此d(n)−ys(n)的误差较大,此时P[d(n)]≫P[vs(n)],即有ρ(n)≈1,为了保持建模环节及控制环节的稳定性,建模步长值应采用小步长。随着系统逐渐收敛,d(n)−ys(n)逐渐变小,控制模块的能量逐渐减弱,建模信号对控制模块的影响逐渐变大,ρ(n)约为0,此时建模步长值应采用较大值。文献[6]算法的调节公式如下:

文献[6]算法提高了系统建模精度,但该法并未考虑建模信号对控制信号的影响以及附加辅助噪声给系统带来的误差。同时当系统收敛时,次级通道建模步长值仍处于较大值,对系统的建模准确性及稳定性造成了一定的影响。

2 本文算法

为改善文献[6]算法中控制模块和次级建模模块更新的相互影响以及附加辅助噪声对系统的影响,本文提出一种基于能量比调控的在线建模有源噪声控制算法。改进算法如图2虚线框内所示。

图2 改进算法结构图Fig.2 The sketch of improved algorithm

图中附加白噪声v(n)是建模环节的输入信号,v(n)和控制信号y(n)经过次级通道产生vs(n)和ys(n),输出ys(n)−vs(n),在建模环节v(n)经过输出。C(n)为步长值检测函数,G(n)是对辅助噪声进行控制的条件。式(6)为控制环节自适应滤波器W(n)的更新公式,式(7)是建模滤波器的更新公式[5]。

2.1 在线建模及控制模块步长值的调控

由文献[6]算法可知,在降噪初始阶段,控制模块对建模系统影响较大。随着系统的收敛,控制模块能量逐渐降低,建模信号对控制模块的影响变大。因此,建模步长值µs(n)应逐渐变大,控制模块步长值µw(n)逐渐减小。考虑到参考输入信号的强度对系统的影响,输入信号能量增加会导致系统发散,信号能量减小时,较小的步长值又会降低降噪量和收敛速度,因此步长值应与输入信号能量呈反向关系。因此本文对控制模块µw(n)的更新方式调整为

其中,β、∂为固定参数,ε为避免分母为零而设置的大于零的修正因子,此处取为0.2。

在线模块步长值µs的更新方式为[8]

其中,a、b、µ为固定参数,ρ(n)为本次运算所得能量值,ρ(n−1)为上次运算所得的能量值。

2.2 基于步长值减小的次级通道建模方法

在上述系统收敛过程中,在线建模步长值µs(n)由小到大变化,但较大步长值会影响建模精度,降低系统稳定性,甚至导致系统发散。因此,为了获得较好的稳定性和建模效果,需对建模步长值进行分段调控。前期步长值随能量比增加而增大,后期应减小步长值,步长值的减小程度需要根据系统实际来确定。本文利用tanh函数来控制步长值,使其随着tanh函数的变化而减小。信号能量比ρ(n)的值起始在1附近,随着系统的收敛逐渐减小至0。tanh函数在(1,0)范围内呈单调递减趋势,且最大值不超过0.6。因此在该范围内,步长值满足次级通道建模的要求。

本文利用建模精度来检测步长值是否需要调整,同时设置阈值T,其为系统接近收敛时的建模误差值。图2中C(n)为在线建模精度的实时值,将其作为检测函数,S代表系统建模误差。函数表达式为

基于步长值减小的次级通道建模具体方法为:在系统初始阶段步长值采用µs(n)的形式,收敛过程中,当检测函数C(n)>T时,建模步长值采用µs1(n)的形式,从而实现对步长值µs(n)的下降。反之,则继续采用原步长值µs(n),计算公式如式(9)所示。µs1(n)表达式为

其中,ε1为避免分母为0 而设置的大于零的修正因子,此处取为0.04。对函数进行平方是为了避免步长出现负值的情况。

2.3 附加建模白噪声的控制

在次级通道建模中当系统达到稳定状态时,将控制模块和在线建模两者步长值调节方式相结合,µs(n)和µw(n)均收敛到某个固定范围内。若此时再不断注入附加白噪声,会增大系统误差,降低系统的降噪量。因此,本文对附加噪声进行控制,当系统达到稳态时,停止附加白噪声的注入。若次级通道发生突变,则重新加入附加白噪声,启动次级通道建模。改进框图如图2所示,调节准则如下:

在停止注入附加白噪声后,若次级通道再次发生变化则重新加入附加白噪声。根据残留误差功率判断次级通道的变化[12]:

其中,Pe为残余误差信号的能量,计算公式如式(1)所示。具体调节准则为:当建模步长值等于µ1且误差功率满足式(14)的要求时G(n)为0,即此时的附加白噪声为0;反之G(n)为1,继续注入附加噪声。µs为次级通道建模步长值,µ1是当系统未对辅助噪声进行控制时,仿真实验中系统接近收敛时的建模步长值。

3 仿真结果分析

为验证改进算法的性能,以混频信号作为输入信号,在MATLAB中将文献[6]算法、文献[8]算法和本文算法进行仿真实验。建模误差∆S反映系统在线建模的收敛性及精度,降噪量R反映系统的降噪效果,其表达式分别为

控制滤波器长度和建模滤波器长度分别设置为32和16。因两者均为物理通道,从信号处理的角度,两通道的传递函数可表示如式(18)所示[13],为体现仿真比较的一致性,改进算法中两通道参数hk的设置与文献[8]相同。初级通道和次级通道的传递函数分别设置如下:

3.1 混频信号降噪性能仿真分析

初级声源为50 Hz、150 Hz、300 Hz的单频信号等幅组合后叠加白噪声信号,信噪比为30 dB。次级通道建模所需辅助信号为均值为0、方差为0.05的高斯白噪声。文献[6]和文献[8]参数均按照各自原文设置。多次实验得出进行步长下降时的建模误差S,以及系统达到稳态时的建模定步长µ1分别为1×10−6、1×10−3。其他参数设置如表1所示。

仿真结果如图3所示,图中纵坐标是系统的建模误差。文献[6]算法最终达到的建模误差值和本文算法相似。文献[8]算法中将步长值分为3段,使得建模步长更适应于系统实际需求,因此该算法的建模误差最终能达到一个较为精确的值。在次级通道辨识过程中,次级通道模型参数能够快速收敛到一个比较接近真实模型的值,比收敛到十分精确的值更重要。从图3中看出,3种算法均收敛至30 dB以下,此时系统已十分接近真实模型,系统建模误差对控制算法的影响较小。而本文改进算法在迭代至2500次时系统已接近收敛,而另外两种算法迭代至5000次时才接近收敛,表现了改进算法更加优越的收敛性能。

图3 混频信号下的次级通道建模误差Fig.3 The modeling error of secondary path in mixed signals

图4是3种算法的系统降噪量随迭代次数的变化关系,由仿真图知,文献[6]算法采用变步长的策略,但后期未对步长值进行控制,系统残余误差较大,从而导致降噪量较小。而文献[8]算法采用步长值下降的策略,使得系统降噪量得到提升,但该算法并未考虑系统稳定后,附加白噪声会降低系统的降噪性能的问题,因此降噪量未能取得较大值。本文将步长值进行分段调控,并对附加噪声进行控制,降低了系统的残余误差,使得降噪量接近23 dB,由降噪量的计算公式可得此时系统的残余误差接近为0,同时改进算法在降噪量和降噪速度上均优于另外两种算法。

表1 3种算法的参数设置Table1 Parameters setting of the three algorithms

图4 混频信号下3种算法降噪量对比Fig.4 Comparison of noise reduction of the three algorithms in mixed signals

3.2 次级通道变化时算法降噪性能仿真分析

在实际情况中,次级通道并不是一成不变的,而是随时间不断变化。这就需要控制算法可以快速跟踪这种变化。为体现系统的时变能力,假设系统迭代至一定次数时次级通道发生突变,其他仿真条件和3.1节相同。次级通道的传递函数为[8]

图5为系统迭代至30000次时发生突变,3种算法的次级通道建模误差变化情况。由图可看出,开始控制时,3种算法的建模误差迅速下降,获得较为精确的次级通道模型。发生突变后,改进算法通过误差能量比自适应调节步长值,使系统快速恢复至稳态,恢复速度快于另外两种算法,同时仍保持其较快的收敛速度。

图5 次级通道突变时的建模误差Fig.5 The modeling error when the secondary path changed abruptly

图6为系统迭代至30000次时,3种算法的系统降噪量变化。相较于其他两种算法,本文算法依旧保持较快的降噪速度和较高的降噪量。由以上仿真结果得,本文在降噪量、降噪速度和系统收敛性能方面都大有改进。与文献[6]算法相比,计算量有所增加,因涉及下降阈值较少,计算量小于文献[8]算法。

图6 次级通道突变时的降噪量Fig.6 The noise reduction when the secondary path changed abruptly

3.3 宽带低频噪声信号降噪性能仿真分析

由均值为0、方差为1的高斯白噪声通过通带为100∼400 Hz带通滤波器产生宽带信号[14],将其作为参考信号,仿真条件及参数与3.1相同,仿真结果如图7和图8所示。

图7 宽带噪声下的次级通道建模误差Fig.7 The modeling error of secondary path in broad-band noise

图7为算法建模误差的比较,由仿真结果看出,改进算法的建模误差未受影响,仍保持较快的收敛速度同时波动性较小,从而使系统较为稳定。图8为算法降噪量的比较,本文算法与已有算法相比降噪量提高了约10 dB,当迭代至1000次时,其他两种算法降噪量已达到稳定状态,而改进算法的降噪量仍在持续增加。因此得出,改进算法对于宽带噪声的控制效果优于现有算法。

图8 宽带噪声下3种算法降噪量对比Fig.8 Comparison of noise reduction of the three algorithms in broad-band noise

4 结论

基于文献[6]次级通道建模算法,本文提出一种利用建模滤波器和主滤波器的误差信号能量比调控步长值与附加噪声的方法。通过对步长值的分段调控提高系统的建模收敛速度,当系统接近稳态时,停止附加噪声,从而增大降噪量。仿真结果表明对于低频噪声控制,改进算法与现有算法相比,降噪量高于原算法且达到收敛所需的迭代次数远小于已有算法,即改进算法具有收敛速度快和降噪量大的优点。当次级通道发生突变时,改进算法通过步长函数将步长值调节至最佳值,使系统保持稳态,同时仍保持较快的收敛速度和较高的降噪量。由于本文算法采用信号能量比来调节建模步长值的下降,故步长值下降后不能稳定于某一定值,所以建模误差最终未能达到一个十分精确的值。后期需要在该方面进一步的研究改进。

猜你喜欢

步长噪声建模
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
噪声可退化且依赖于状态和分布的平均场博弈
基于随机森林回归的智能手机用步长估计模型
基于Armijo搜索步长的几种共轭梯度法的分析对比
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
控制噪声有妙法
基于动态步长的无人机三维实时航迹规划
一种基于白噪声响应的随机载荷谱识别方法