matlab的LMS算法 联系客服

发布时间 : 星期五 文章matlab的LMS算法更新完毕开始阅读7d90981ab7360b4c2e3f646f

一.LMS算法原理

最小均方算法即LMS算法是B.Widrow和Hoff[3][9]于1960年提出来的。由于实现简单且对信道统计特性变化具有稳健性,LMS算法获得了极为广泛的应用。LMS算法是基于最小均方误差准则(MMSE)的维纳滤波器[9]和最陡下降法提出的。在本节中,主要讨论LMS算法。在讨论LMS算法之前,先介绍一下推导LMS算法的准则,即均方误差的概念。

LMS 算法的推导以估计误差平方的集平均或时平均(即均方误差,MSE)为基础。下面先介绍MSE的概念。

设计一个均衡系统如下图所示:

待均衡的信道均衡器weq(n)判决器?(n)?y??d(n)

e(n)图2.1 均衡器的系统结构

图2.1中的均衡器为一FIR横式滤波器,其结构如图2.2所示。其输入矢量为

x(n)??x(n),x(n?1),?,x(n?M?1)? (2.1.1)

T加权矢量(即滤波器抽头系数矢量)为

w??w1,w2,?,wM? (2.1.2)

T可知滤波器的输出

?(n)??wi*x(n?i?1)?wHx(n)?xT(n)w* y(2.1.3)

i?1M?(n)?d(n)?wHx(n) (2.1.4)则有 e(n)?d(n)?y 其中H表示共轭转置。根据最小均方误差准则,最佳的滤波器抽头系数矢量wopt应

f(w)?E?e(n)2? (2.1.5)

使得性能函数—均方误差[9]为最小。式(2.1.5)称为均方误差性能函数。

x(n)z?1x(n?1)x(n?M?1)z?1z?1w1w2wM线性组合器??(n)y

图2.2 时域FIR横式滤波器

在指定的信道条件下,f(w)为各滤波器抽头系数的函数。现在来研究系统处于平稳状态时的情况。将式(2.1.4)代入式(2.1.5)可得

f(w)?E??E??E?e(n)d(n)d(n)222??E?e(n)e(n)?

??wr?(wr)?wRw ??2Re?wr??wRw (2.1.6)

*HH*HxdxdxxHHxdxx其中rxd表示d(n)和x(n)的互相关矢量。Rxx(n)表示x(n)的自相关矩阵。 对(2.1.6)式两端对w求导,并令导数为零,得到:

Rxxw?rxd (2.1.7) 当Rxx为满秩时,从而可得到该横式滤波器抽头系数的最优维纳解为[7][9]:

?1wopt?Rxxrxd (2.1.8)

由式(2.1.8)知Wiener滤波器的抽头系数的直接计算需要矩阵求逆,当M较大时,计算量较大且由于信号和干扰环境的变化常须对求逆过程不断进行。所以常用其它递推求解的方法。

下面我们介绍从最陡下降法来推导LMS算法。根据最陡下降法[7][9],有: w(n?1)?w(n)???wf(w) (2.1.9) 其中,?wf(w)为f(w)的梯度,而?为常数并被称为步长因子。又因为: ?wf(w)?2Rxxw?2rxd (2.1.10)

为了实现上述迭代算法需要知道梯度?wf(w)的精确值,这就要求输入信号

x(n)和d(n)平稳且其二阶统计特性已知

[7][9]

。这时才能根据信号x(n)和需要信号

d(n)的采样值来估计Rxx和rxd,从而寻找wopt。

为了克服上述困难和减少求解每次迭代的计算量的问题。一种粗略的但是却是十分有效的计算?wf(w)的近似方法是:直接取e(n)作为均方误差

E2?e(n)2?的估计值,即

?f(w)???E ?ww?2e(n)2???we(n)2 (2.1.11)

由式(2.1.4)可得

?we(n)??2e(n)x(n) (2.1.12)

将式(2.1.11)和式(2.1.12)代入式(2.1.9)得

w(n?1)?w(n)?2?e(n)x(n) (2.1.13) 上式就是B.Windrow在60年代初提出的LMS自适应迭代算法。LMS算法的流程归纳如下:

⑴ 初始化:wM?[00?0]T ⑵ 更新:n?1,2,?

?(n) e(n)?d(n)?yw(n?1)?w(n)?2?e(n)x(n)

在第二步中,若取?=常数,则称之为基本LMS算法;若取?=其中??(0,2),??0,则得到归一化LMS算法。

???x(n)x(n)H,

LMS算法的重要特点是将其期望值近似为瞬时值。故在迭代收敛后,加权矢量不会等于最优的加权矢量,而是在最优加权矢量附近随机性的波动,等效于在最优加权矢量上叠加了一个噪声,也就是说这种近似存在误差。所以,LMS算法又被称为随机梯度法。此法可以被视为最陡下降法的近似。其另一个重要的特点是每次迭代需要M?1次乘法和M次加法,因而运算处理相当简单。

二.仿真图

三.模块参数设置

1.不同的M值,LMS模块参数

M=18 M=24