LMS和NLMS有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LMS和NLMS有啥区别相关的知识,希望对你有一定的参考价值。

他们各自的全称是什么啊

参考技术A 最小均方算法和归一化最小均方算法

现代信号处理 14 - NLMS扩展

NLMS扩展

1. 概述

  我们先从LMS开始。LMS是把最优化迭代的时间尺度和采样的时间尺度进行了融合得到的自适应滤波器。

  LMS

θ ^ n + 1 = θ ^ n + μ Z ( n ) e ( n ) e ( n ) = d ( n ) − Z T ( n ) θ ^ n \\hat \\theta_n+1 = \\hat \\theta_n + \\mu Z(n)e(n) \\\\ e(n) = d(n) - Z^T(n) \\hat \\theta_n θ^n+1=θ^n+μZ(n)e(n)e(n)=d(n)ZT(n)θ^n

  为了消除LMS自适应滤波器对尺度变换的影响,我们需要对LMS做归一化。归一化就会除以Z(n)的平方,目的是为了兼顾Z(n)和e(n)的尺度

  因此就有了NLMS,归一化的LMS
  NLMS

θ ^ n + 1 = θ ^ n + μ Z ( n ) ∣ ∣ Z ( n ) ∣ ∣ 2 e ( n ) \\hat \\theta_n+1 = \\hat\\theta_n + \\mu \\fracZ(n)||Z(n)||^2e(n) θ^n+1=θ^n+μZ(n)2Z(n)e(n)

  但是我们想为这个操作找到一种理论依据。也就是找到一种优化问题,让这个优化问题的最优解就是NLMS。我们之前其实已经接触过了,但是NLMS还有其他角度的理解。因此这一部分就是主要介绍NLMS的推广

2.多角度解读NLMS

2.1 高年级考试考低年级的题目的角度

  之前在介绍欠定方程的时候提到过这种解读。

  我们提出了这样的优化问题。就是要让n+1时刻系数和n时刻系数距离最短,同时n+1时刻的系数要满足n时刻的最优条件。这是因为,n+1时刻的数据已经做过优化了,理论上应该是满足n时刻的优化条件的。同时我们还要花费最小的成本,让步进值最短。相当于最小的成本换取最大的利益。

  这个优化问题就类似于,我们要求高年级的同学去做低年级的题目,并且要求高年级的同学要拿满分,并且高年级和低年级的同学的年龄要尽可能小。
m i n ∣ ∣ θ ^ n + 1 − θ ^ n ∣ ∣ 2 s . t . d ( n ) = Z T ( n ) θ ^ n + 1 min ||\\hat \\theta_n+1 - \\hat \\theta_n||^2 \\\\ s.t. \\quad d(n) = Z^T(n)\\hat \\theta_n+1 minθ^n+1θ^n2s.t.d(n)=ZT(n)θ^n+1

  对这个优化问题进行求解的结果,就是NLMS。前面介绍过了,这里就不详细推导了。

1.2 高年级考试和低年级考试分数拉开差距的角度

  再换一个角度继续理解NLMS,我们引入这样两个量

  • e1是n时刻的数据和n时刻的系数产生的误差
  • e2是n时刻的数据和n+1时刻的系数产生的误差

e 1 ( n ) = d ( n ) − Z T ( n ) θ ^ n e_1(n) = d(n) - Z^T(n) \\hat \\theta_n e1(n)=d(n)ZT(n)θ^n
e 2 ( n ) = d ( n ) − Z T ( n ) θ ^ n + 1 e_2(n) = d(n)- Z^T(n) \\hat \\theta_n+1 e2(n)=d(n)ZT(n)θ^n+1

  这个式子理论上应该是第二个式子误差更小。因为n+1时刻的系数是对n时刻的系数通过优化迭代得到的,因此有

∣ e 2 ( n ) ∣ < ∣ e 1 ( n ) ∣ |e_2(n)| < |e_1(n)| e2(n)<e1(n)

  因此,我们希望e2和e1之间的误差要尽可能大

e 2 ( n ) − e 1 ( n ) = − Z T ( n ) ( θ ^ n + 1 − θ ^ n ) = − Z T ( n ) Δ θ ^ n + 1 m a x ∣ e 2 ( n ) − e 1 ( n ) ∣ = m a x ∣ Z T ( n ) Δ θ ^ n + 1 ∣ e_2(n) - e_1(n) = - Z^T(n)(\\hat \\theta_n+1 - \\hat \\theta_n) \\\\ = -Z^T(n) \\Delta\\hat \\theta_n+1 \\\\ max|e_2(n) - e_1(n) | = max|Z^T(n) \\Delta\\hat \\theta_n+1| e2(n)e1(n)=ZT(n)(θ^n+1θ^n)=ZT(n)Δθ^n+1maxe2(n)e1(n)=maxZT(n)Δθ^n+1

  这个极大化可以用柯西不等式来解

m a x ∣ Z T ( n ) Δ θ ^ n + 1 ∣ = ∣ ∣ Z T ( n ) ∣ ∣ ∗ ∣ ∣ Δ θ ^ n + 1 ∣ ∣ max|Z^T(n) \\Delta\\hat \\theta_n+1| = ||Z^T(n)||*||\\Delta\\hat \\theta_n+1|| maxZT(n)Δθ^n+1=ZT(n)Δθ^n+1

  等号成立条件

Δ θ ^ n + 1 = K ∗ Z ( n ) \\Delta \\hat \\theta_n+1 = K*Z(n) Δθ^n+1=KZ(n)
  即
∣ e 2 ( n ) − e 1 ( n ) ∣ = ∣ ∣ Z T ( n ) ∣ ∣ ∗ ∣ ∣ Δ θ ^ n + 1 ∣ ∣ = ∣ ∣ Z ( n ) ∣ ∣ ∗ ∣ K ∣ ∗ ∣ ∣ Z ( n ) ∣ ∣ ( i ) |e_2(n) - e_1(n) | = ||Z^T(n)||*||\\Delta\\hat \\theta_n+1|| \\\\ = ||Z(n)||*|K|*||Z(n)|| \\quad\\quad(i) e2(n)e1(n)=ZT(n)Δθ^n+1=∣以上是关于LMS和NLMS有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

滤波器归一化LMS自适应滤波器

滤波器归一化LMS自适应滤波器

滤波器归一化LMS自适应滤波器

用Matlab软件实现变长NLMS自适应滤波器算法

在 LMS 平台上 SQL 代码分级时“联合”和“联合全部”之间的区别

Matlab自适应滤波算法 LMS小白通俗易懂版