APP下载

基于噪音拟合的优化变步长滤波最小均方算法

2021-11-26钱拴高健珍代永平

电子技术应用 2021年11期
关键词:均方步长噪音

钱拴,高健珍,代永平

(1.南开大学 光电子薄膜器件与技术研究所,天津 300350;2.天津市光电子薄膜器件与技术重点实验室,天津 300350)

0 引言

随着城市化进程,环境的噪音问题日益突出[1],降噪的设备及相关算法逐渐成为了研究的热点问题[2],滤波最小均方算法(Filtered-x Least Mean Square,FxLMS)由于其计算量相对较小被大量应用于主动降噪设备[3]。最小均方算法的降噪步长决定了系统的降噪速度以及降噪精度,步长的迭代公式也决定了算法的运算量,进而影响设备降噪的速度[4]。FxLMS 可用于主动降噪设备以降低设备局部噪音,包含的降噪场景有电梯[5]、高铁、汽车[6]、耳机[7]以及潜艇等方面,在社会应用中有极大应用价值。

算法迭代步长是FxLMS 研究重要方向之一[8],较大的迭代步长可以使得FxLMS 算法收敛速度较快,但是系统的稳态性不高;较小的迭代步长可以提供较稳态的结果,但是系统的迭代次数过多,收敛速度较慢。针对以上问题,文献[9]提出归一化泄露FxLMS 算法,收敛步长受到误差信号的影响,同时也避免了因误差信号过小而导致的步长过大问题;马英博[5]改善变步长因子更新的方式是计算出误差信号与输入信号之间的相关性,再根据相关性更改步长的迭代;文献[10]使得步长以指数函数变化;文献[11]更改了步长因子的计算公式,使得算法在收敛初期步长小以实现算法的收敛,中期步长变大快速收敛,后期降低收敛因子提高收敛精度。

以上的改进变步长方式,都是根据消噪后的误差信号来调节现有的步长,当噪音信号发生较大的波动时,系统不能根据噪音的波动立即调节系统的步长,而是等待系统降噪后的误差反馈,忽略了噪音信号的一些特征[12]。实际上,在增加系统采样率之后,噪音信号在时序上是具有相关性的,可以统计噪音信号的特征,实时地对变步长进行调节。

针对上述问题,本文在传统变步长的基础上,统计了已有的噪音信号信息,对已有的噪音信号进行多项式拟合,判断出下一时刻的噪音波动情况,根据结合噪音的波动,对步长进行相应的调节。仿真结果表明,在相同的噪音环境下,达到相同的降噪信噪比时,根据噪音拟合所调节的变步长FxLMS 算法比常规变步长算法所需的迭代次数更少,鲁棒性也更好。

1 模型背景

1.1 经典FxLMS 算法模型

经典的FxLMS 算法[13]结构框图如图1 所示。图1 中,x(n)是噪声源信号,在经过初级通道P(z)后,信号变成了d(n),S′(z)是次级通道估计函数,噪音x(n)经过初级通道后,得到滤波参考信号f(n)。f(n)和e(n)作为控制器的输入,经过滤波器W(z)后得到次级控制信号y(n)。y(n)在经过次级通道S(z)后,变成了次级信号Ys(n),随后与d(n)相叠加,最终变成了误差信号e(n)。此时的噪音将会削弱。

图1 基于FxLMS 算法的前馈主动降噪控制系统框图

具体的FxLMS 算法步骤如下:

(1)采集噪声源信号x(n)和误差信号e(n);

(2)计算出滤波器的输出信号为:

其中,W(n)为滤波器参数。

(3)随后该参数将得到更新:

式中,μ 是滤波器的调节步长,是一个固定的常数。

(4)输出的误差信号e(n)为:

(5)得到新的e(n)之后,回到步骤(1),随后更新次级通道信号y(n)和滤波器系数W(n),直到最终的误差信号达到最小值。

1.2 其他学者变步长FxLMS 算法及其改进模型

在FxLMS 算法中,影响算法的一个因素是步长μ 的选取,当步长μ 较大时,算法的收敛速度快,但是算法误差e(n)相对会比较大[14],如果步长选择得过大,系统会趋向于发散,那么FxLMS 算法将不起作用;如果选择比较小的步长,算法的收敛速度将会变慢[15-16]。因此,有学者提出了变步长的思想,在算法收敛前期,步长较大;在误差信号趋于稳定后,采用小步长使得误差信号趋向于一个更精确值。如马英博[5]提出的变步长滤波最小均方算法(CFxLMS),它的步长公式为:

其中,α 为收敛因子,C(n)是参考信号x(n)和误差信号e(n)的相关函数,e2(n)是算法在迭代过程中所有的误差平方和,β 是一个较小的正常量,防止误差过小导致的步长失调。李雪蕊[10]提出算法步长按照指数减小,即:

其中,参数p 是比例系数,误差e(n)越大,步长μ(n)也越大;误差较小时,步长也就变小。但是上面的步长算法在计算机计算步长时,涉及大量的积分运算或者指数运算,算法运行的复杂度将会提高,运算效率受到限制,实用性不强。可以根据误差信号e(n)的大小以及x(n)信号的变化情况,计算出具体的步长公式,如令:

其中,α 为常数,在变步长的更新公式中,变步长μ(n)仅仅受到误差信号e(n)的影响。由于不涉及指数运算,因此算法的计算量大大减少。也可以将步长公式更改为分段函数形式,使得算法能够兼顾速度与精度。

2 噪音统计及处理模型

在传统的FxLMS 算法中,默认的噪音输入信号是不相关的,评价算法的优缺点时,一般使用的是随机噪音。但是在实际的应用中,声音幅值信号大多是连续的,增加声音信号的采样率后,声音幅值在时间上大多数具有相关性,并非完全独立。可以给FxLMS 结构上加一个噪音统计估计模块,它的主要功能是对已有的噪音信号进行多项式拟合,然后根据多项式的变化,对下一时间的噪音信号进行预判,通过预判结果来调节FxLMS 算法的步长,使得算法能够最快地收敛,最终得到最小误差信号。这样,在自适应电路工作时,可以根据噪音的变化与误差信号的幅值对自适应算法进行实时调节,更快地消除误差信号。新提出的噪音统计预估调节FxLMS 步长算法框如图2 所示,其中,新加的模块为Q(z),它的输入为误差信号e(n)与输入信号矩阵D=[d1d2d3… dn]。现在将输入的信号矩阵数据拟合,假设这个矩阵元素分别是多项式在自变量为[x1x2x3… xn]时的因变量,则多项式可表示为:

此时,可以将上面的矩阵化为标准型矩阵:

此时,输入的数据可以拟合在多项式中:

其中,a、b、γ、δ等系数为确定常数,均可通过已有的噪音信号计算出。当下一个时刻数据来临之前,可以事先计算出曲线的下一状态f(xn+1)以及f(xn+1)-f(xn)的值,根据f(xn+1)的变化幅度,对FxLMS 的步长进行调节,以便更快地使算法收敛。图2 中W(z)为一个8 阶滤波器,滤波器的更新公式为:

图2 改进的噪音统计补偿FxLMS 算法框图

式中,a 可以是确定的比例系数,Δf(x)=f(xn+1)-f(xn),为噪音统计预估信号对下一时间的噪音信号预估变化量。即噪音信号x(n)的波动Δf(x)占x(n)的百分比对μ(n)进行调节。

3 仿真实验与分析

本节通过仿真对比在相同噪音信号输入情况下,传统FxLMS 算法与经过信号统计分析后的FxLMS 算法的收敛性能。本实验的噪音信号为1.6 kHz 的正弦波叠加随机信号,噪音信号具体的公式为:

信号的采样频率为100 kHz。算法使用的8 阶自适应滤波器,改进的步长函数为:

其中,k 为分段函数。具体取值为:

为了能够直观地反映ANC 系统的降噪性能,可以使用如下的公式定义:

其中,R 为信噪比系数,反映了系统降噪性能。首先,在实验中,使用了固定步长的方式来仿真系统的降噪效果,然后对比一下变步长的仿真结果,如图3 所示。在图中,点线、点画线与直线依次是步长为μ(n)=0.000 01~0.000 21 的算法仿真结果,可以看到,定步长FxLMS 算法中,步长并非越大越好或者越小越好,步长越大,其收敛的误差也就越大,同时如果步长过大,则系统会趋于发散;当步长变小时,算法收敛所花的时间将变长。如果降噪的步长过小,则步长的变化跟不上噪音信号的变化,此时自适应算法的性能变差。因此,可以统计噪音信号的一些特征,根据噪音信号的变化特征相应地调整步长。同时,变步长最小均方算法在迭代650 次之后,算法的降噪效果比定步长最小均方算法降噪幅度更好。可见变步长最小均方算法相对于定步长最小均方算法,降噪效果更优。

图3 各步长FxLMS 算法仿真结果图

由上面可知,FxLMS 算法的收敛步长与降噪的效果并不具有相关性,可以通过误差信号的值与噪音信号的变化来调节步长,以达到快速收敛的效果。

普通的变步长FxLMS 算法的原理是步长大小受到误差信号e(n)的影响,在新提出的算法中,步长不仅仅受到误差信号e(n)的影响,还受到输入信号波动影响。新提出算法的仿真结果如图4 所示,常规变步长FxLMS 算法为虚线,仅仅通过误差信号的反馈调节步长,实线是综合误差信号与噪音拟合补偿模块的输出调节步长,这样,在噪音信号发生变化时,步长也能够及时调节到最适宜步长,这使得新变步长算法降噪速度更快,降噪效果更好。

图4 常规变步长与新变步长FxLMS 降噪效果仿真对比

随后,基于不同的噪音频率数据,对两种变步长FxLMS算法进行仿真实验,仿真结果如表1 所示。由表1 可知,新提出的算法在降噪深度达到10 dB 和35 dB 时,其迭代的运算次数均比普通变步长算法要少,在噪音信号包含不同的频率信号时,新算法均能有效降噪并且比原算法降噪幅度更好。为了验证新算法的鲁棒性,可以设置噪音信号为:

表1 两种变步长同等降噪效果迭代次数对比

此时噪音信号可以发生更大幅值的瞬时突变,可以检测新的主动降噪系统对突变噪音降噪能力,即系统的鲁棒性。可以由上表得出,新提出的主动降噪算法降噪迭代次数更少,即鲁棒性优于原变步长主动降噪系统。此时,新旧算法的降噪能力分别如图5 和图6 所示,对比两种算法的仿真结果,可以注意到在相同的迭代次数情况下,新算法的残余噪音e(n)幅值更小。

图5 原变步长LMS 算法降噪效果图

图6 新变步长FxLMS 算法降噪效果图

4 结论

本文针对生活中产生噪音的场景,使用变步长FxLMS自适应算法对噪音信号进行降噪处理。针对传统变步长算法降噪过程的特点,改进变步长方式。首次提出对现有的噪音数据进行数据的拟合,然后对下一时刻的信号进行预估,获得信号变化量,结合变化量占噪音信号比例,对变步长FxLMS 步长进行相应的调整。随后在MATLAB 上面,使用新旧变步长FxLMS 算法对相同的噪音数据进行降噪,发现提出的变步长算法分别在降噪深度达到10 dB、20 dB、30 dB 和35 dB 时,迭代的次数减少了4 次~60 次,迭代次数更少。此后,还增加了噪音随机的突变值,在鲁棒性方面,新算法降噪迭代次数更少,降噪更快也更稳定。

猜你喜欢

均方步长噪音
一类随机积分微分方程的均方渐近概周期解
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
噪音,总是有噪音!
Beidou, le système de navigation par satellite compatible et interopérable
无法逃避的噪音
噪音的小把戏
白噪音的三种用法
基于抗差最小均方估计的输电线路参数辨识
基于逐维改进的自适应步长布谷鸟搜索算法
基于随机牵制控制的复杂网络均方簇同步