LMS算法全称最小均方算法(least mean square),是一种线性自适应滤波算法。它不需要计算相关函数,也不需要矩阵求逆计算。由于其简单性(计算量小),LMS算法成为其它线性自适应滤波算法的参照标准。
LMS一般包含两个基本过程:
- 滤波过程:a. 计算线性滤波器输出对输入信号的响应;b. 通过比较输出结果与期望响应产生估计误差
- 自适应过程:根据估计误差自动调整滤波器参数
1. LMS自适应滤波器基本理论
1.1 基本框架
典型的LMS自适应滤波器结构如下图所示:
其中,
u
(
n
)
\bold u(n)
u(n)是输入,
d
(
n
)
\bold d(n)
d(n)是期望输出,
e
(
n
)
\bold e(n)
e(n)是误差信号,
d
^
(
n
∣
U
n
)
\bold{\hat{d}(n|U_n)}
d^(n∣Un)是滤波后的信号,
U
n
\bold{U_n}
Un代表由
u
(
n
)
\bold u(n)
u(n)张成的线性空间。
LMS算法对信号的要求与维纳滤波一致:输入信号
u
(
n
)
\bold u(n)
u(n)和期望响应
d
(
n
)
\bold d(n)
d(n)广义联合平稳。
1.2 公式推导
先看下最速下降法用于维纳滤波的迭代公式,如下:
∇
J
(
n
)
=
−
2
p
+
2
R
w
(
n
)
\nabla {\bold J(n)}=-2\bold p+2\bold R \bold w(n)
∇J(n)=−2p+2Rw(n)
w
(
n
+
1
)
=
w
(
n
)
+
μ
[
p
−
R
w
(
n
)
]
{\bold w(n+1)}=\bold w(n)+μ[\bold p - \bold{Rw}(n)]
w(n+1)=w(n)+μ[p−Rw(n)]
其中,
R
\bold R
R是输入信号的相关矩阵,
p
\bold p
p是输入与期望响应之间的互相关向量。
如果每一次迭代时都可以精确计算梯度向量
∇
J
(
n
)
\nabla J(n)
∇J(n),而且步长参数
μ
μ
μ选取合适,那这就是最速下降法在维纳滤波中的应用了,最终抽头权值向量将收敛于维纳解。这当然很完美。
但是,这需要事先知道输入信号的相关矩阵
R
R
R以及输入与期望响应之间的互相关向量
p
p
p。在实际应用中,这一般是不可能的。
最明显的方法是利用输入信号和期望响应对R和p进行估计,这就是LMS算法!仅考虑实信号时,公式如下:
R
^
(
n
)
=
u
(
n
)
u
T
(
n
)
\hat{\bold R}(n)=\bold u(n)\bold u^T(n)
R^(n)=u(n)uT(n)
p
^
(
n
)
=
u
(
n
)
d
(
n
)
\hat{\bold p}(n)=\bold u(n)\bold d(n)
p^(n)=u(n)d(n)
这时,每次迭代时梯度向量的瞬态估计为
∇
^
J
(
n
)
=
−
2
u
(
n
)
d
(
n
)
+
2
u
(
n
)
u
T
(
n
)
w
^
(
n
)
\hat{\nabla}{\bold J}(n)=-2\bold u(n)\bold d(n)+2\bold u(n)\bold u^T(n)\hat{\bold w}(n)
∇^J(n)=−2u(n)d(n)+2u(n)uT(n)w^(n)
将上式用于最速下降算法,即可得LMS算法的抽头权值更新公式:
w
^
(
n
+
1
)
=
w
^
(
n
)
+
μ
u
(
n
)
[
d
(
n
)
−
u
T
(
n
)
w
^
(
n
)
]
\hat{\bold w}(n+1)=\hat{\bold w}(n)+μ\bold u(n)[\bold d(n)-\bold u^T(n)\hat{\bold w}(n)]
w^(n+1)=w^(n)+μu(n)[d(n)−uT(n)w^(n)]
方括号中其实就是估计误差。
因此,最速下降算法和LMS算法的本质区别是:前者用事先知道的R和p,每次迭代时的梯度是精确的,而LMS是每次迭代时都对梯度进行瞬态估计。
1.3 LMS算法的特性
- 收敛条件
LMS算法是一个高度非线性的滤波算法,并且带有反馈。既然带有反馈,就存在滤波器是否收敛的问题。参考文献[1]中推导了LMS滤波器的收敛条件,结论如下:
当LMS滤波器 的长度M为中等长度或较大长度时,LMS收敛的必要条件是:
0 < μ < 2 M S m a x 0<μ<\frac{2}{MS_{max}} 0<μ<MSmax2
其中 S m a x S_{max} Smax表示输入信号功率谱密度的最大值。
当当LMS滤波器 的长度M较小时,没有关于 μ μ μ的具体上届。 - 额外均方误差和失调
在迭代次数趋向无穷大时,最速下降法可达到最优,并且可获得最小均方误差 J m i n J_{min} Jmin。
但是,LMS算法仅是最速下降法的近似。在无穷次迭代后,LMS无法达到最优,记LMS可获得的均方误差为 J ( ∞ ) J(∞) J(∞)。则:
J ( ∞ ) − J m i n J(∞)-J_{min} J(∞)−Jmin称为额外均方误差;
J ( ∞ ) J m i n \frac{J(∞)}{J_{min}} JminJ(∞)称为失调
2. 归一化LMS自适应滤波器
2.1 基本思想与理论推导
如前所述,由于每次迭代时利用当前的输入数据和期望输出估计
R
\bold R
R和
p
\bold p
p,导致LMS算法相对最速下降法存在失调。当输入数据
u
(
n
)
\bold u(n)
u(n)较大时,标准LMS算法的梯度噪声进一步放大,失调量与
u
(
n
)
\bold u(n)
u(n)成正比。
重新考虑标准LMS算法中
w
^
(
n
+
1
)
\hat{\bold w}(n+1)
w^(n+1)的更新公式:
w
^
(
n
+
1
)
=
w
^
(
n
)
+
μ
u
(
n
)
[
d
(
n
)
−
u
T
(
n
)
w
^
(
n
)
]
\hat{\bold w}(n+1)=\hat{\bold w}(n)+μ\bold u(n)[\bold d(n)-\bold u^T(n)\hat{\bold w}(n)]
w^(n+1)=w^(n)+μu(n)[d(n)−uT(n)w^(n)]
其中,步长参数
μ
μ
μ是固定的。一个简单的想法是,在
u
(
n
)
\bold u(n)
u(n)增大时
μ
\bold μ
μ如果能相应减小,就可以在一定程度上减轻上述问题。
基于此思想,便可得到归一化LMS的迭代公式,如下:
w
^
(
n
+
1
)
=
w
^
(
n
)
+
μ
~
∣
∣
u
(
n
)
∣
∣
2
u
(
n
)
[
d
(
n
)
−
u
T
(
n
)
w
^
(
n
)
]
\hat{\bold w}(n+1)=\hat{\bold w}(n)+\frac {\widetilde μ}{||\bold u(n)||^2}\bold u(n)[\bold d(n)-\bold u^T(n)\hat{\bold w}(n)]
w^(n+1)=w^(n)+∣∣u(n)∣∣2μ
u(n)[d(n)−uT(n)w^(n)]
上述迭代公式,本质上是在权值更新最小以及均方误差最小(二者以欧式范数为标准评价)的共同约束下,求解的结果。具体推导过程见参考文献[1]。
2.2 优点
- 通过将 u ( n ) \bold u(n) u(n)的模进行归一化,减轻了 u ( n ) \bold u(n) u(n)增大时梯度噪声放大进而引起失调增大的问题。
- 无论输入数据 是否相关,归一化LMS的收敛速度都可能比标准LMS滤波器快。
参考文献:
- 郑宝玉 等译,自适应滤波器原理,第四版,第5章