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

  • 滤波器的作用:改变信号频谱
  • 自适应滤波器:一种能够根据输入信号自动调整自身参数的数字滤波器。不需要事先知道输入信号和噪声的统计特性,是处理非平稳信号的有效手段。

1 定义

  1. 滤波器参数 N N N个独立的滤波器系数组成的向量
    w ( n ) = [ w 0 ( n ) , w 1 ( n ) , ⋯   , w N − 1 ( n ) ] T \mathbf{w}(n)={[w_0(n),w_1(n),\cdots,w_{N-1}(n)]}^T w(n)=[w0(n),w1(n),,wN1(n)]T
  2. 输入信号:假设是一个实数信号(语音时域信号)
    x ( n ) = ( [ x ( n ) , x ( n − 1 ) , ⋯   , x ( n − N + 1 ) ] ) T \mathbf{x}(n)=([x(n),x(n-1),\cdots,x(n-N+1)])^T x(n)=([x(n),x(n1),,x(nN+1)])T
  3. 输出信号:滤波器系数和输入信号的线性卷积,为实际输出
    y ( n ) = ∑ i = 0 N − 1 w i ( n ) x ( n − i ) = w T ( n ) x ( n ) = x T ( n ) w ( n ) y(n)=\sum_{i=0}^{N-1}w_i(n)x(n-i)=\mathbf{w}^T(n)\mathbf{x}(n)=\mathbf{x}^T(n)\mathbf{w}(n) y(n)=i=0N1wi(n)x(ni)=wT(n)x(n)=xT(n)w(n)
  4. 期望输出 d ( n ) d(n) d(n)
  5. 误差信号——后验误差:用 n n n时刻的滤波器系数向量去计算 n n n时刻的误差
    e ( n ) = d ( n ) − y ( n ) = d ( n ) − w T ( n ) x ( n ) e(n)=d(n)-y(n)=d(n)-\mathbf{w}^T(n)\mathbf{x}(n) e(n)=d(n)y(n)=d(n)wT(n)x(n)
  6. 目标函数:最小均方误差(MMSE)准则
    J ( w ) = E { ∣ e ( n ) ∣ 2 } = E { ∣ d ( n ) − w T ( n ) x ( n ) ∣ 2 } J(\mathbf{w})=E \{{|e(n)|}^2\}=E\{|d(n)-\mathbf{w}^T(n)\mathbf{x}(n)|^2\} J(w)=E{e(n)2}=E{d(n)wT(n)x(n)2}
  7. 最小化目标函数:令 J ( w ) J(\mathbf{w}) J(w) w \mathbf{w} w的导数为 0 \mathbf{0} 0
    E { x ( n ) x T ( n ) } w ( n ) − E { x ( n ) d ( n ) } = R w − r = 0 E\{\mathbf{x}(n)\mathbf{x}^T(n)\}\mathbf{w}(n)-E\{\mathbf{x}(n)d(n)\}=\mathbf{Rw-r=0} E{x(n)xT(n)}w(n)E{x(n)d(n)}=Rwr=0
    (1) E { x ( n ) x T ( n ) } E\{\mathbf{x}(n)\mathbf{x}^T(n)\} E{x(n)xT(n)}包含了输入向量 x ( n ) \mathbf{x}(n) x(n)相关矩阵的信息,记作 R \mathbf{R} R
    (2) E { x ( n ) d ( n ) } E\{\mathbf{x}(n)d(n)\} E{x(n)d(n)}包含了输入向量 x ( n ) \mathbf{x}(n) x(n)和期望输出信号 d ( n ) d(n) d(n)之间的相关向量,记作 r \mathbf{r} r
  8. 维纳(Wiener)滤波器:均方误差最小意义上的统计最优滤波器
    w o p t = R − 1 r \mathbf{w}_{opt}=\mathbf{R}^{-1}\mathbf{r} wopt=R1r

2 Wiener滤波器的优缺点

  • 优点:有非常高的理论价值
  • 缺点:本质上不是自适应滤波器,不适用于非平稳过程或信号
  • 分析:求期望时必须利用全部的历史数据( N N N时刻之前)和当前数据( N N N时刻)来估计当前信号的统计值。一旦下一时刻( N + 1 N+1 N+1时刻)来了新的采样点 x ( n + 1 ) x(n+1) x(n+1),需要重新更新计算期望值( R R R r r r)。这样一来:
    (1)很不划算
    (2)输入的若为非平稳信号,由于其统计特性随时间变化而变化,会使得求解不准确

3 基本LMS算法

  1. 为了避免涉及数学期望,使用目标函数的瞬时梯度代替数学期望:
    ▽ ^ ( n ) = − 2 e ( n ) x ( n ) \hat{\triangledown}(n)=-2e(n)\mathbf{x}(n) ^(n)=2e(n)x(n)
  2. 基于采样点更新的标准时域LMS算法的逐点更新公式:新时刻的滤波器系数向量=老时刻的滤波器系数向量+(负梯度方向的)调整量
    w ( n + 1 ) = w ( n ) + 2 μ x ( n ) e ( n ) \mathbf{w}(n+1)=\mathbf{w}(n)+2\mu\mathbf{x}(n)e(n) w(n+1)=w(n)+2μx(n)e(n)
    其中, μ \mu μ为调整步长,是一个经验值

4 标准LMS算法的执行流程

  1. 滤波器初始化: w ( 0 ) 、 x ( 0 ) \mathbf{w}(0)、\mathbf{x}(0) w(0)x(0)
  2. 每一个新的输入采样 x ( n ) x(n) x(n),计算输出信号 y ( n ) y(n) y(n)
  3. 利用更新公式更新滤波器系数 w ( n ) \mathbf{w}(n) w(n)
  4. 循环2~3直到得到输出序列和误差序列

5 总结

  1. LMS算法的基本思想:梯度下降

瞬时梯度的数学期望 = 真实梯度(瞬时梯度是真实梯度的无偏估计)

  1. LMS算法的优点:算法简单,容易实现
  2. LMS算法的缺点:收敛速度慢,跟踪性能差

因为估计方差(即梯度噪声)不为0,对于每一步来讲,瞬时梯度一定不等于真实梯度,即中间的估计存在噪声

梯度噪声:会导致滤波器的每一次更新都不会严格按照真实梯度方法进行,而是有一定偏差
但梯度噪声并不是一无是处,它能够帮助跳出那些可能存在的局部最优值,从而向全局最优值方法继续移动

  1. LMS算法的改进思路:block LMS

block LMS:累计block个采样点后更新一次滤波器系数
优点:可以减少梯度噪声

每一个block的梯度仍然是每一个采样点产生的瞬时梯度的求和,因此它仍然是真实梯度的无偏估计
但由于累积的采样点更多,因此方差更小

6 逼逼叨

…好累啊这个,不想弄了…

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

社恐患者

赚钱不易呜呜呜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值