NLMS算法

如有不当之处欢迎指正批评

目录

  • 1. 概述
  • 2. 算法描述
  • 3. 总结
  • 4. 参考文献

1. 概述

  NLMS即归一化LMSnormalized LMS)算法,是LMS,点击此处学习LMS算法的改进版。

2. 算法描述

  NLMS算法描述为一下公式:
h ( n + 1 ) = h ( n ) + μ ( n ) e ( n ) x ( n ) (1) \mathbf{h}(n+1)=\mathbf{h}(n)+\mu (n)e(n)\mathbf{x}(n)\tag{1} h(n+1)=h(n)+μ(n)e(n)x(n)(1)

  可以看出NLMSLMS算法的不同之处在于步长:LMS算法中的步长为一个给定的常数,NLMS算法中的步长为一个随时间变化的量,且定义如下:
μ ( n ) = α M P ^ x ( n ) (2) \mu(n)=\frac{\alpha}{M\widehat{P}_x(n)}\tag{2} μ(n)=MP x(n)α(2)

  其中 M M M为滤波器长度, P ^ x ( n ) \widehat{P}_x(n) P x(n)是在 n n n时刻估计出的信号的功率,即
P ^ x ( n ) = x T ( n ) x ( n ) M (3) \widehat{P}_x(n)=\frac{\mathbf{x}^T(n)\mathbf{x}(n)}{M}\tag{3} P x(n)=MxT(n)x(n)(3)

  为了使算法收敛, α \alpha α应该满足:
0 < α < 2 (4) 0<\alpha<2\tag{4} 0<α<2(4)

  实际中为了避免当 P ^ x ( n ) \widehat{P}_x(n) P x(n)过小时产生大的步长 μ ( n ) \mu(n) μ(n),可进一步进行修改:
μ ( n ) = α M P ^ x ( n ) + c (5) \mu(n)=\frac{\alpha}{M\widehat{P}_x(n)+c}\tag{5} μ(n)=MP x(n)+cα(5)

  其中 c c c是一个很小的常数。

3. 总结

  NLMS是归一化的LMS算法,即乘积向量 e ( n ) x ( n ) e(n) \mathbf{x}(n) e(n)x(n)相对于抽头输入向量的平方欧式范数进行了归一化,可把NLMS看做时变步长参数的LMS。无论对于不相关数据还是相关数据NLMS要比标准LMS可能呈现更快的收敛速度。

4. 参考文献

[1]《数字信号处理理论,算法与实现》(第三版) 作者:胡广书

你可能感兴趣的:(信号处理)