前情提要

归一化最小均方(Normalized Least Mean Square, NLMS)算法是在LMS算法的基础上进行改进,主要改进在于引入了自适应步长的调整机制。详细原理可参考此篇博客传统回声消除算法框架及LMS推导。LMS算法的步长值是$μe(n)x(n)$,步长值会受输入信号$x(n)$大小的影响。NLMS算法根据输入信号$x(n)$的小自适应调整步长值,使得滤波器系数更新的时候能够更好地适应输入信号的动态范围。

NLMS算法推导

NLMS算法是最小扰动原理的一种表现形式,从一次迭代到下一次迭代中,自适应滤波器系数$\hat{W}(n)$应当以最小方式改变,用公式(1)描述。而且受到更新的滤波器输出所施加的约束,用公式(2)描述:

使用拉格朗日乘子法$^{ [3] }$解决改约束问题,代价函数为:

代价函数$J(n)$对$\hat{w}(n+1)$求导可得:

令公式(4)等于0可得:

将公式(5)代入约束条件公式(2):

求得$\lambda$:

滤波器更新公式变为:

其中$\mu$为常数,$\epsilon$是一个极小的正数,用来防止分母为零。$\mu$的作用是控制步长的大小,即控制算法的收敛速度和稳定性。通常情况下,$\mu$的选择需要根据具体的应用场景和实验结果进行调整,以达到最佳的性能。更大的$\mu$值会导致步长变大,算法收敛速度更快,但可能会影响稳定性;而较小的
$\mu$值则会使步长变小,算法收敛速度较慢,但更稳定。

参考

[1] 自适应滤波器(二)NLMS自适应滤波器
[2] 自适应滤波器之 NLMS 算法
[3] Rockafellar R T. Lagrange multipliers and optimality[J]. SIAM review, 1993, 35(2): 183-238.