本文对 LMS 算法作以介绍,如有表述不当之处欢迎批评指正。欢迎任何形式的转载,但请务必注明出处。

目录

  • 1. 引言
  • 2. 基本概念
    • 2.1. 横向滤波器
    • 2.2. 误差性能曲面
    • 2.3. 最陡下降法
  • 3. 实数 LMS 算法
  • 4. 复数 LMS 算法
  • 5. 后记
  • 6. 参考文献

1. 引言

LMS(Least Mean Square)算法,即最小均方算法。由美国斯坦福大学的 B. Widrow 和 M. E. Hoff 于 1960 年在研究自适应理论时提出,由于其容易实现而很快得到了广泛应用,成为自适应滤波的标准算法。

2. 基本概念

2.1. 横向滤波器

可参考之前的文章 自适应滤波器之横向滤波器。

2.2. 误差性能曲面

在滤波器优化设计中,采用某种最小代价函数或者某个性能指标来衡量滤波器的好坏,而最常用的指标就是均方误差,也把这种衡量滤波器好坏的方法叫做均方误差准则。用公式表示如下:
E{e2(n)}=E{[d(n)−y(n)]2}(1)E\{e^2(n)\} = E\{[d(n) - y(n)]^2\}\tag{1}E{e2(n)}=E{[d(n)−y(n)]2}(1)

其中,E{e2(n)}E\{e^2(n)\}E{e2(n)} 就是均方误差。e(n)=d(n)−y(n)e(n) = d(n) - y(n)e(n)=d(n)−y(n),d(n)d(n)d(n) 表示滤波器输入 x(n)x(n)x(n) 时所期望得到的响应或者输出,y(n)y(n)y(n) 表示输入 x(n)x(n)x(n) 经过滤波器后实际得到的滤波器的输出,e(n)e(n)e(n) 表示输入 x(n)x(n)x(n) 时,滤波器的期望响应和实际输出之间的误差。

将 y(n)y(n)y(n) 表示成抽头权值输入列向量 x⃗(n)\vec{x}(n)x(n) 和抽头权值列向量 h⃗(n)\vec{h}(n)h(n) 内积的形式:y(n)=h⃗T(n)x⃗(n)y(n) = \vec{h}^{T}(n) \vec{x}(n)y(n)=hT(n)x(n),然后代入式 (1)(1)(1) 中,可知式 (1)(1)(1) 是以 h⃗(n)\vec{h}(n)h(n) 为多维自变量的函数,由于自变量是多维的,所以该函数对应图形是一个超抛物面(可以想象成碗的样子)且是衡正的,该超抛物面就是误差性能曲面。超抛物面有一个总体的最小值,该最小值就是最小均方误差。如前面所述,均方误差是衡量滤波器好坏的一个常用指标。当均方误差达到最小值时,该滤波器性能达到最优,即误差性能曲面上取值为最小的点对应的坐标就是最优滤波器系数向量(即最期望的滤波器抽头权值向量)。

2.3. 最陡下降法

由前面所述可知,为了使在均方误差准则设计下的滤波器性能达到最优,需要找到误差性能曲面上的最小值,由此即可得到最优滤波器系数。

在误差性能曲面上寻找的一个非常自然的方法就是沿着曲面的切线方向,也即负梯度方向进行寻找,而这个寻找过程是一个迭代的过程。设第 nnn 次迭代得到的滤波器抽头权值列向量为 h⃗(n)\vec{h}(n)h(n),并设该次迭代得到的均方误差是 ε(n)\varepsilon(n)ε(n),那么第 n+1n+1n+1 次迭代得到的滤波器系数可由下式求出:
h⃗(n+1)=h⃗(n)−12g⃗(n)μ(n)(2)\vec{h}(n+1) = \vec{h}(n) - \frac{1}{2} \vec{g}(n) \mu(n) \tag{2}h(n+1)=h(n)−21​g​(n)μ(n)(2)

其中 g⃗(n)\vec{g}(n)g​(n) 是该次迭代时的梯度向量,−g⃗(n)-\vec{g}(n)−g​(n) 就是该次迭代的方向向量,μ(n)\mu(n)μ(n) 是第 nnn 次迭代时所用的步长,又称作收敛因子。且:
g⃗(n)=∂ε(n)∂h⃗(n)=∂E{e2(n)}∂h⃗(n)(3)\vec{g}(n) = \frac{\partial\varepsilon(n)}{\partial\vec{h}(n)}=\frac{\partial E\{e^2(n)\}}{\partial\vec{h}(n)} \tag{3}g​(n)=∂h(n)∂ε(n)​=∂h(n)∂E{e2(n)}​(3)

上述选择误差性能曲面上负的梯度向量作为搜索时的方向向量的方法称为“最陡下降法”。

3. 实数 LMS 算法

在利用上述的最陡下降法计算 g⃗(n)\vec{g}(n)g​(n) 时需要知道一些先验知识,而这在实际工作中是无法实现的,因此必须得到 g⃗(n)\vec{g}(n)g​(n) 的估计值 g^⃗(n)\vec{\widehat{g}}(n)g​​(n)。

B. Widrow 和 M. E. Hoff 提出的思路是利用瞬时误差能量 e2(n)e^2(n)e2(n) 来代替均方误差能量 E{e2(n)}E\{e^2(n)\}E{e2(n)}。可知:
g^⃗(n)=∂e2(n)∂h⃗(n)=−2e(n)x⃗(n)(4)\vec{\widehat{g}}(n)=\frac{\partial e^2(n)}{\partial\vec{h}(n)}=-2e(n)\vec{x}(n) \tag{4}g​​(n)=∂h(n)∂e2(n)​=−2e(n)x(n)(4)

进一步令 μ(n)\mu(n)μ(n) 为常数 μ\muμ,则可得到新的迭代公式:
h⃗(n+1)=h⃗(n)+μe(n)x⃗(n)(5)\vec{h}(n+1)=\vec{h}(n)+\mu e(n)\vec{x}(n) \tag{5}h(n+1)=h(n)+μe(n)x(n)(5)

上式即为 LMS 算法,又称随机梯度法。为了使 LMS 算法收敛,经过推导 μ\muμ 的取值范围应该是:
0<μ<2/MPx(6)0<\mu<2/MP_x\tag{6}0<μ<2/MPx​(6)

其中 MMM 为滤波器的长度,PxP_xPx​ 为输入信号的功率。

4. 复数 LMS 算法

上述描述的算法均是在实数上定义的,下面给出了在复数上定义的 LMS 算法(具体推导过程可参考 论文笔记之 CLMS)。
y(n)=h⃗T(n)x⃗(n)(7){\bm y(n)} = \vec{{\bm h}}^{T}(n) \vec{{\bm x}}(n) \tag{7}y(n)=hT(n)x(n)(7)

e(n)=d(n)−y(n)(8){\bm e(n)} = {\bm d(n)} - {\bm y(n)} \tag{8}e(n)=d(n)−y(n)(8)

h⃗(n+1)=h⃗(n)+μe(n)x⃗∗(n)(9)\vec{{\bm h}}(n+1) = \vec{{\bm h}}(n) + \mu {\bm e(n)} \vec{{\bm x}}^{*}(n)\tag{9}h(n+1)=h(n)+μe(n)x∗(n)(9)

其中,黑体表示复数信号,∗*∗ 表示复数共轭。

在一些文献中,读者还能看到以下复数形式:
y(n)=h⃗H(n)x⃗(n)(10){\bm y(n)} = \vec{{\bm h}}^{H}(n) \vec{{\bm x}}(n) \tag{10}y(n)=hH(n)x(n)(10)

e(n)=d(n)−y(n)(11){\bm e(n)} = {\bm d(n)} - {\bm y(n)} \tag{11}e(n)=d(n)−y(n)(11)

h⃗(n+1)=h⃗(n)+μe∗(n)x⃗(n)(12)\vec{{\bm h}}(n+1) = \vec{{\bm h}}(n) + \mu {\bm e}^{*}(n) \vec{{\bm x}}(n)\tag{12}h(n+1)=h(n)+μe∗(n)x(n)(12)

其中,HHH 表示复数共轭转置。

5. 后记

LMS 算法提出之后,研究者们又提出了许多改进版的 LMS 算法。其中,最常用的当属归一化 LMS(NLMS) 算法,对该算法的介绍可参考 自适应滤波器之 NLMS 算法。

6. 参考文献

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

自适应滤波器之 LMS 算法相关推荐

  1. 【语音信号处理】自适应滤波方法——LMS算法

    LMS 算法(最小均方算法) 滤波器--改变信号频谱 模拟滤波器: 由R.L.C构成的模拟电路. 数字滤波器: 由数字加法器.乘法器.延时器构成,基于数字信号运算实现. 自适应滤波器: 一种能够根据输 ...

  2. matlab lms自适应滤波,基于LMS算法的自适应滤波收敛性的Matlab仿真

    Author :Jeffrey 白噪声经过AR模型的输出作为LMS滤波器的输入,已知:a1=1.558:a2=-0.81:白噪声方差为1.0,均值为0:u=0.002:利用Matlab实现: (1)给 ...

  3. Matlab算法DSP移植验证,DSP计算机作业 自适应噪声抵消LMS算法Matlab仿真

    [实例简介] 自适应噪声抵消LMS算法Matlab仿真,DSP计算机作业 数字信号处理 自适应 1) 借助MATLAB画出误差性能曲面和误差性能曲面的等值曲线: 2) 写出最陡下降法, LMS算法的计 ...

  4. 自适应滤波(LMS,RLS)

    1.背景及相关知识介绍 自适应滤波存在于信号处理.控制.图像处理等许多不同领域,它是一种智能更有针对性的滤波方法,通常用于去噪. 图中x(j)表示 j 时刻的输入信号值,y(j)表示 j 时刻的输出信 ...

  5. 传统语音增强——最小均方(LMS)自适应滤波算法

    一.语音降噪的意义 语音降噪主要研究如何利用信号处理技术消除信号中的强噪声干扰,从而提高输出信噪比以提取出有用信号的技术.消除信号中噪声污染的通常方法是让受污染的信号通过一个能抑制噪声而让信号相对不变 ...

  6. rls lms 对比 matlab,自适应均衡器的LMS和RLS两种算法的特性与仿真分析

    自适应均衡属于自适应信号处理的应用范畴,各种各样的自适应均衡算法如迫零(ZF)算法.最小均方(LMS)算法.递归最小二乘(RLS)算法.变换域均衡算法.Bussgang算法.高阶或循环统计量算法.基于 ...

  7. LMS自适应滤波matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 LMS(Least Mean Square), 由 Widrow 和 Hoff 于1960年提出,也称Δ规则.该算法与感知器网 ...

  8. 基于matlab的LMS自适应滤波仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 LMS(Least Mean Square), 由 Widrow 和 Hoff 于1960年提出,也称Δ规则.该算法与感知器网 ...

  9. lms算法的verilog实现_基于FPGA和LMS算法的系统建模

    © 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved.    http://www.c ...

最新文章

  1. 2021年大数据Flink(十四):流批一体API Connectors JDBC
  2. html5之form表单
  3. Journey to Un‘Goro 贪心,找规律,搜索(沈阳)
  4. [译] Go: 理解 Sync.Pool 的设计
  5. RIPv2与EIGRP的自动汇总区别
  6. 面试官最爱问的并发问题
  7. QQ空间小秘书 V1.70 Beta1 ~~ 天空原创软件
  8. 日期条控件 DateFieldControl
  9. 不重启mysqld更改root密码
  10. BOLT UI界面引擎是如何工作的?(BOLT UI入门教程)
  11. vbs返回结果给java_返回vbs脚本
  12. 无人机探测雷达软硬件解决方案
  13. python 爬虫 美女_使用Python爬虫爬取网络美女图片
  14. 计算机上那里可以看产品密钥,使用Windows Key Viewer一键轻松查看当前计算机的产品密钥...
  15. vue+elementUI 表格下载为excel
  16. 小米手机v3.exo 合并_eXo发布Web Content Management 2.0作为开源
  17. 2018年我跑去做淘宝了(续篇)
  18. iPhone轻松共享wifi密码给好友
  19. input框点击时去掉默认的外层边框
  20. 浅谈对信息管理的认识

热门文章

  1. 超声波定向传送:驱动功率电路制作
  2. OJ1051: 平方根的和(C语言)(关于循环体求和和求中间量先后问题)
  3. 计算机二级Excel.PPT.
  4. java邮箱发送附件过大_Spring Mail发送大附件邮件,会报IOException,是什么原因呢...
  5. 关于c51如何使用左移_crol_、右移_cror_函数
  6. 淦,服务器被人传了后门木马。。。
  7. matlab四分之一模型车+人体和座椅
  8. 金山界面库分析(8)
  9. 《数字电子电路》 课程设计:十字路口红绿灯自动控制系统(下)(multisim仿真及PCB实现)
  10. 117Echarts - 热力图(Heatmap - 2w data)