自适应滤波器

看了一个条理清晰、简明扼要的关于自适应滤波器的YouTube视频,这也是我这学期上的一门基础课“数字信号处理Ⅱ”的重点内容。

固定系数数字滤波器的局限性


  • 固定系数的数字滤波器
    • FIR, IIR
    • LP、HP等
  • 局限
    • 噪声频率随时间变化而变化
    • 信号和噪声的重叠带

自适应滤波器


adaptive_filter
  • 2个主要组成部分
    • 数字滤波器(有可调整的系数)
    • 自适应算法
  • 2个输入信号:$y_k$和$x_k$
    • $y_k = s_k + n_k$
    • $s_k$ = 预期信号
    • $n_k$ = 噪声
    • $x_k$ = 污染信号,与$n_k$**相关,提供$n_k$的估计值,即$hat{n_k}$
  • 目标:产生**最佳的$hat{n_k}$
    • $e_k = hat{s_k} = y_k - hat{n_k} = s_k + n_k - hat{n_k}$
  • 该定理最小化$e_k$,最大化信噪比

LMS 算法


维纳滤波器

wiener_filter
  • 输入信号 w(n) 与维纳滤波器 g(n) 进行卷积,并将结果与参考信号 s(n) 进行比较,得到滤波误差 e(n)
  • 判断标准:MMSE (最小均方误差)
    • 最小化 $J = E[e(n)^2] = E[(x(n) - s(n))^2] = E[(w(n) * g(n) - s(n))^2]$
    • J可用于绘制误差-性能表面
  • LMS 滤波器收敛于维纳滤波器

维纳-霍普夫解

HJ梯度为零,推导出
$H_{opt} = R_{xx}^{-1} R_{xs}$

其中
$R_{xx} = E(X_k X_k^T)$
$R_{xs} = E(y_k X_k)$

  • 需要知道$R_{xx}, R_{xs}$
  • 矩阵求逆很复杂
  • 对于非稳态,$H_{opt}$ 需要反复计算

LMS 自适应算法

版本1:$H(n+1) = H(n) + \mu (- \nabla(n))$
版本2:$H(n+1) = H(n) + \frac{1}{2}\delta (- \nabla(n))$

那么
$H(n+1) = H(n) + 2\mu e(n)X(n)$
或 $H(n+1) = H(n) + \delta e(n) X(n)$

其中
$e(n) = y(n) - H^T(n)X(n)$
$\mu$和$\delta$是步长

  • 基于最陡梯度下降算法(沿梯度的反方向更新H(n))
    $H(n+1) = H(n) + \mu (- \nabla(n))$
  • 使用瞬时估计,代替平均值(无偏)
    $J = E[e(n)^2] = e(n)^2$
    $nabla(n) = -2\mu E[e(n)X(n)] = -2\mu e(n)X(n) $
  • 步长决定了稳定性收敛率
    • 如果步长太大,波动太大
    • 如果步长太小,收敛速度太慢

局限性

  • 如果噪声是非稳态的,误差表现面将迅速变化
  • 如果$x(n)$与$y(n)$成正比,信号将被抹杀
  • H(n)从未达到理论上的最佳状态(有波动)

应用


  • 声学回声消除
  • 从受污染的脑电图EEG中消除眼电,获得正确的脑电图
  • 在分娩过程中消除母体心电图从而获得胎儿心电图

附录


YouTube视频

Adaptive Filters

课程主页

数字信号处理 II

MATLAB 基础 Git & Github 入门

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×