Qiu-ZM

导航

自适应滤波之LMS算法

1. 前言
假设已知(可能是复数的)数据序列\(x(n)\)是由平稳随机过程中的样本组成,其自相关序列为

\[\begin{align} \gamma _{xx} (m) = E\left[x(n)x^*(n-m) \right] \end{align} \]

通过长度为\(M\),系数为\(h(n)\)的FIR滤波器,\(0 \le n \le M-1\),期望信号的估计为

\[\begin{align} \hat{d} (n)= \sum _{k=0}^{M-1}h(k)x(n-k) \end{align} \]

估计误差为

\[\begin{align} e(n) &= d(n) - \hat{d(n)}\nonumber \newline & = d(n) - \sum _{k=0}^{M-1}h(k)x(n-k) \end{align} \]

均方误差为

\[\begin{align} \xi _M &= E \left[| e(n)\vert ^2 \right] \nonumber \\ &= E \left[|d(n) - \sum _{k=0}^{M-1}h(k)x(n-k) \vert^2 \right] \nonumber \\ &= E\left\{|d(n)|^2 -2Re\left[\sum_{k=0}^{M-1}h^*(l)d(n)x^*(n-l) \right] +\sum_{k=0}^{M-1}\sum_{l=0}^{M-1}h^*(l)h(k)x^*(n-l)x(n-k) \right\} \nonumber\\ &= \sigma_d^2 -2Re\left[\sum_{l=0}^{M-1}h^*(l)\gamma_{dx}(l) \right] + \sum_{l=0}^{M-1}\sum_{k=0}^{M-1}h^*(l)h(k)\gamma_{xx}(l-k) \end{align} \]

其中\(\sigma_d^2 = E\left\{|d(n)|^2 \right\}\)

由上面的式子,可以看出MSE是滤波器系数的二次函数,因此,关于系数最小化\(\xi_M\)将得出\(M\)元线性方程组,

\[\begin{align} \sum_{k=0}^{M-1}h(k)\gamma _{xx}(l-k) = \gamma_{dx}(l), ~~ l = 0,1,\cdots,M-1 \end{align} \]

该方程组表示成矩阵形式,

\[\begin{align} \pmb{\varGamma_M}\pmb{h}_M = \pmb{\gamma}_d \end{align} \]

其中,\(\pmb{h}_M\)表示矢量系数(向量),\(\pmb{\varGamma_M}\)为一个\(M \times M\)的Hermitian自相关矩阵(复数共轭对称矩阵)
\(\pmb{\gamma}_d\)是元素为\(\gamma_{dx}(l)\)\(M\times 1\) 的互相关矩阵。
最优滤波器的系数解为

\[\begin{align} \pmb{h}_{opt} = \pmb{\varGamma}^{-1}_M \pmb{\gamma}_d \end{align} \]

可以通过通过梯度方法递归地求解\(\pmb{h}_{opt}\),即为本节介绍的LMS算法。

2. LMS算法
接下来讲述设计用于寻找多变量函数最小值的递归方法,在这种方法中,性能指标是MSE,即代价函数,因此,
该函数具有唯一的最小值,也就是我们要通过迭代搜索求解的值。

先假定自相关矩阵\(\pmb{\varGamma}_M\)和互相关向量\(\pmb{\gamma}_d\)是已知的,因此,\(\xi_M\)是系数为\(h(n)\)的已知函数,\(0 \le n \le M-1\),则滤波器系数更新迭代方程:

\[\begin{align} \pmb{h}_M(n+1) = \pmb{h}_M(n) + \frac{1}{2}\Delta(n)\pmb{S}(n) \end{align} \]

其中,\(\pmb{h}_M(n)\)为第n次迭代的滤波器系数向量,\(\Delta(n)\)是第n次迭代的步长,\(\pmb{S}(n)\)是第n次迭代的方向向量,起始向量\(\pmb{h}_M(0)\)是任意选择的。

最简单的寻找\(\xi_M\)最小值的递归方法是基于最陡下降搜索,在该方法中,方向向量\(\pmb{S}(n)=-\pmb{g}(n)\),其中\(\pmb{g}(n)\)是第n次迭代的梯度向量,定义为:

\[\begin{align} \pmb{g}(n) &= \frac{d \xi_M(n)}{d \pmb{h}_M(n)} \nonumber\\ &= 2\left[\pmb{\Gamma}_M \pmb{h}_M(n)- \pmb{\gamma}_d \right] , ~~ n=0,1,2,\cdots \end{align} \]

因此,每次迭代时都要计算梯度向量,并在梯度反方向上修改\(\pmb{h}_M(n)\)的值,这样基于最陡下降方法的递归算法就是

\[\begin{align} \pmb{h}_M(n+1) = \pmb{h}_M(n) - \frac{1}{2}\Delta(n)\pmb{g}(n) \end{align} \]

加入步长序列绝对可和,即当\(n\to\infty\)时,\(\Delta(n)\to 0\)\(\pmb{h}_M\to\pmb{h}_{opt}\)\(\pmb{g}(n)\to \mathbf{0}\)
3. 使用条件
\(\Delta\)步长应满足条件:

\[\begin{align} |1-\Delta\lambda_k| \le 1 \nonumber \\ 0 \le \Delta \le \frac{2}{\lambda_{max}} \end{align} \]

其中\(\lambda_{max}\)是自相关矩阵\(\pmb{\varGamma}_M\)的最大特征值。因为\(\pmb{\varGamma}_M\)是自相关矩阵,
所以它的特征值是非负的,由于计算特征值比较复杂,有时为了避免计算特征值,可采用计算矩阵迹的方法,因此有:

\[\begin{align} \lambda_{max} < t_r[\pmb{\varGamma }_M] \end{align} \]

这里\(t_r[\pmb{\varGamma }_M]\)是的迹,可以用输入信号的取样进行估计,即:

\[\begin{align} t_r[\pmb{\varGamma }_M] = \sum_{k=0}^{M-1}E[x_i^2(n)] \end{align} \]

因此有

\[\begin{align} 0 \le \mu \le t_r^{-1}[\pmb{\varGamma}_M] \end{align} \]

posted on 2022-09-30 19:38  Q建国  阅读(462)  评论(0编辑  收藏  举报