改进箕舌线变步长LMS 算法在自适应噪声抵消系统中的应用
作者: 张红
摘要:传统的最小均方误差(Least Mean Square, LMS) 算法具有计算量低、易于实现的优点,广泛应用于各种场景,但其平均收敛速度和稳态误差相互制约。基于箕舌线函数(Tongue Line) 的变步长LMS(Tongue Line Least Mean Square, TLLMS)算法引入箕舌线函数,改进了步长更新公式,从而提高了收敛速度并降低了稳态误差。然而,该算法的步长易受噪声干扰,导致滤波器权值在最优权值附近波动。为此,文章提出了改进箕舌线变步长LMS(Improved Tongue Line Least MeanSquare, ITLLMS) 算法。该算法进一步优化了步长更新公式,消除了输入端不相关噪声的干扰,以最小化收敛时的稳态误差,并加入上一步步长的影响以增强系统的跟踪能力。将ITLLMS算法应用于自适应噪声抵消系统的实验结果表明,与基于相关特性(Correlation Characteristic) 的箕舌线变步长LMS(Correlation Characteristic Tongue Line Least Mean Square,CCTLLMS) 算法相比,文章提出的ITLLMS算法具有更快的收敛速度、更低的稳态误差以及更低的计算量。
关键词:箕舌线;自适应滤波;变步长LMS算法;收敛速度;稳态误差;噪声抵消
中图分类号:G424 文献标识码:A
文章编号:1009-3044(2025)05-0081-03 开放科学(资源服务) 标识码(OSID) :
0 引言
最小均方算法(Least Mean Square,LMS) 是最具代表性的一类自适应算法。该算法因其简单性和适应性,广泛应用于系统识别、回声消除、有源噪声控制和信道均衡等领域[1]。LMS算法的参数可以根据误差梯度的最陡下降法自动调整为最佳滤波器,其权重更新公式为:
ω(n + 1) = ω(n) - μ∇J (n) (1)
式中:μ为迭代步长,J (n)为即时梯度。
将以上两式进行合并整理,则可得:
ω(n + 1) = ω(n) + 2μe (n) x (n) (3)
同时,算法应该满足收敛条件,λmax 代表输入信号的自相关矩阵最大特征值。
0 < μ < 1 /λmax (4)
可以得到输入信号 y(n)及其误差信号e(n):
y (n) = ωT(n) x (n) (5)
e (n) = d (n) - y (n) (6)
收敛时间τmax、稳态误差M 与迭代步长之间存在如下关系(其中,L代表自适应滤波器的长度) :
τmax = 1/2μλmin (7)
M = μLλov /2 (8)
步长μ是影响算法收敛速度和稳态误差大小的关键因素。当步长μ较大时,算法的收敛速度较快,但稳态误差会较大;步长较小时,稳态误差较小,但收敛速度较慢。同时,在LMS算法的运作中,抽头权重的调整量与抽头输入向量呈正相关。当输入向量相对较大时,LMS可能会面临因梯度噪声放大而引发的问题。
为了有效解决上述问题,研究者提出了多种改进方法。NLMS(Normalized LMS) 算法通过使用抽头输入向量的平方欧式范数对抽头权值调整量进行归一化,从而加快收敛速度并提高稳定性[2]。基于Sigmoid 函数的变步长最小均方算法[3]能够兼顾收敛速度与稳态误差,但在求解步长因子时需要进行指数运算,计算复杂度较高,且占用的硬件存储空间较大,不利于实际应用。文献[4]引入箕舌线函数改进LMS算法的步长控制,提出箕舌线变步长LMS(TLLMS) 算法,该算法在收敛速度、稳态误差和计算复杂度方面表现更优。为解决TLLMS算法步长更新公式易受噪声干扰的问题,文献[5]基于高斯白噪声相关性差的特性,提出了基于相关特性的箕舌线变步长LMS(CCTLLMS) 算法,加强了输入信号对误差的影响,从而显著增强了算法的抗噪声干扰能力。
本文在CCTLLMS算法的基础上,提出了改进箕舌线变步长LMS(ITLLMS) 算法。通过优化箕舌线函数调整步长更新公式,并加入上一步步长的影响,增强了系统的跟踪能力,最小化了收敛时的稳态误差,同时降低了计算复杂度。本文其余部分结构如下:第一部分介绍TLLMS算法;第二部分提出ITLLMS算法,并与CCTLLMS算法进行对比;第三部分将CCTLLMS 算法和ITLLMS算法应用于自适应噪声抵消系统[6],进行仿真分析;第四部分总结全文并得出结论。
1 箕舌线变步长LMS 算法
文献[4]提出的基于箕舌线变步长LMS(TLLMS) 算法如下。
式中: x(n) 表示 n 时刻的输入信号矢量, x(n) = [ x(n),x(n - 1),...,x(n - M + 1) ]T ; ω (n) 为 n 时刻的权值, ω(n) = [ ω0 (n),ω1 (n),...,ω ] M - 1 (n) T ; d (n) 为 n 时刻的期望输出信号。由于LMS算法收敛的条件是0 <μ < 1/ λmax。TLLMS算法中,由式(9)可知β 控制步长更新函数的取值范围,μ (n) < β,参数0 < β⩽ 1/ λmax,算法收敛。在算法收敛条件下,当α 固定时,算法的收敛速度随β 的增大而加速,但过大的β 值会增加算法的稳态误差;当β 固定时,算法的稳态误差随着参数α 的增大而减小,但过大的α 值会减慢算法的收敛速度;当α、β 都固定时,μ (n) 由 e(n) 唯一确定,当误差 e(n) 大时,步长 μ (n) 大;当误差 e(n) 小时,步长 μ (n) 小。在实际应用中,应选择合适的α、β,使得算法开始迭代时,初始误差e(n) 大,对应的初始步长μ (n)大,可保证算法最小均方误差快速下降;当算法趋向收敛时,误差e(n) 比较小,步长 μ (n) 也比较小,可保证算法逼近最优解,具有较小的稳态误差。
2 改进箕舌线变步长LMS 算法
TLLMS算法中,误差 e(n) 包含两部分: 信号误差分量和噪声干扰。在噪声干扰较为严重的环境中,即使自适应滤波器的系数根据最小均方误差准则收敛于目标系统,由于噪声的存在,误差e(n)仍然较大,步长也较大,从而使μ (n)无法达到一个很小的值。自适应算法只能在最优解附近波动,导致较大的收敛误差。因此,需要对步长迭代式(9) 进行改进,消除噪声干扰对步长μ(n)的影响,使步长μ (n)仅与误差e(n)中的信号分量有关。
文献[7]证明,自适应滤波器的主输入端即使存在较大的高斯白噪声干扰v (n),误差e(n)和输入信号x (n) 的互相关函数会随着迭代的进行不断减小。当自适应滤波算法收敛时,E [ e(n)x(n) ] = 0。因此,可以利用| e(n)x(n) |来控制步长,加强输入信号对误差的影响,从而提高收敛速度并减小稳态误差。
文献[5]基于高斯白噪声v 自相关性比较差的特性(即 E [ v(n)v(n - 1) ] = 0) ,提出了基于相关特性的箕舌线变步长LMS(CCTLLMS) 算法, 其步长更新公式为:
该步长更新公式受噪声影响很小,具有较强的抗噪声干扰能力。理论分析和仿真结果表明:若TLLMS 算法和CCTLLMS算法选取相同参数,则CCTLLMS算法具有更小的稳态误差;在保证算法收敛的条件下,CCTLLMS算法相对而言具有更快的收敛速度。
同样为解决TLLMS 算法容易受到输入端不相关噪声干扰的问题,文献[8]将步长更新公式改为式(11) 所示。算法步长更新公式用e (n)e (n - 1) 代替e2(n),从而有效消除了输入端不相关噪声的干扰。此外,加入的补偿项 0.5e(n),保证了算法的收敛速度。
在文献[8]的基础上,文献[9]将NLMS算法的思路引入TLLMS算法,对算法的步长因子进行了归一化处理,进一步提高了算法的更新速度。其步长更新公式由式(12) 所示。该算法在加快收敛速度的同时,计算复杂度也大大增加。
为了获得更好的收敛性能并降低计算复杂度,本文对CCTLLMS算法进行优化,提出了改进的箕舌线变步长LMS(ITLLMS) 算法,其步长更新公式由式(13) 所示。步长迭代公式中含 e(n)e(n - 1) ,根据输入信号与误差互不相关的分析,在算法的初始迭代阶段,由于 e(n)e(n - 1) 较大,可以获得较大的步长;根据噪声自相关性差的分析, e(n)e(n - 1) 可有效消除输入端不相关噪声的干扰,并在稳态阶段获得较小的步长。同时,步长更新公式中加入了上一步步长μ (n - 1) 的影响,避免了在算法尚完全收敛阶段因误差信号e (n)可能出现不相关而导致步长减小到最小值的情况,从而增强了系统的跟踪能力。相比CCTLLMS算法中E [ e(n)e(n - 1) ],ITLLMS算法的计算复杂度大大降低。
3 仿真分析
将CCTLLMS 算法和ITLLMS 算法应用于图1所示的自适应噪声抵消系统,仿真比较两种算法的滤波性能。自适应噪声抵消系统中,有用信号s经过传感器,会叠加主通道噪声信号n0后进入抵消系统,参考通道中噪声信号n1通过参数可调的数字滤波器,根据n1与n0相关、s和n0不相关的特性,利用自适应算法调节数字滤波器的参数,使输出信号y逼近噪声信号n0,抵消器的输出信号e功率最小,从而逼近有用信号s,达到降噪的目的。信号源产生随机双极性信号,干扰源为高斯白噪声,功率大小为0.64W。主信道为三阶 FIR 滤波器, 滤波器系数分别是 0.8、0.3 和 0.5 ,参考信道为二阶 FIR 滤波器,系数分别是0.4、-0.2;迭代次数是2 500。
CCTLLMS 算法和ITLLMS 算法在步长参数β =0.18,α = 50时,收敛过程及稳态误差曲线如图2所示。两种算法收敛速度基本相等,但ITLLMS算法的稳态误差明显小于CCTLLMS 算法。这表明 e(n)e(n - 1) 可有效消除输入端不相关噪声的干扰,并在稳态阶段e (n)e (n - 1) 获得较小的步长;从而显著减小收敛误差。该结果与理论分析一致,验证了ITLLMS算法的优越性。
当参数修改为β =0.2、α =50时,CCTLLMS算法和ITLLMS算法的收敛过程及稳态误差曲线如图3所示。可以观察到,ITLLMS算法的稳态误差依然明显小于CCTLLMS算法。相较于图2,两种算法的收敛速度均有所加快,但稳态误差也随之变大,与理论分析一致。
当图1 中的干扰源高斯白噪声的功率增大为1.44W,迭代次数增加至4 000 次,步长参数设置为β =0.2、α =50,其他参数保持不变时,CCTLLMS 算法和ITLLMS算法的收敛过程及稳态误差曲线如图4所示。结果表明,ITLLMS算法相比CCTLLMS算法具有更稳定的收敛过程、更快的收敛速度以及更小的稳态误差。这说明在高斯白噪声功率增大、干扰情况更加严重的情况下,ITLLMS算法的抗噪声干扰能力更强,其相对于CCTLLMS算法的优势更加明显。
4 总结
本文首先对 LMS 算法、箕舌线变步长 LMS ((TCLCLTMLLSM) 算S) 法算、法基等于进相行关了特分性析的归箕纳舌。线LM变S算步法长由LM于S步长因子固定,无法同时满足收敛速度快与稳态误差小的要求;TLLMS算法通过将传统的Sigmoid函数优化为箕舌线函数,降低了计算复杂度,且稳定性更高,解决了收敛速度与稳态误差之间的矛盾,但算法易受输入端不相关噪声的干扰,导致自适应滤波器权值在最优权值附近波动;CCTLLMS算法对TLLMS算法的步长更新公式进行了修正,用E [ e(n)e(n - 1) ]代替e2 (n),使步长更新公式受噪声影响较小,具有很强的抗噪声干扰能力,从而获得更小的稳态误差。