第 10 章 自适应滤波 / Adaptive Filtering
8.1 为什么需要自适应滤波
经典 FIR/IIR 滤波器的设计前提是已知信号的统计特性——截止频率、通带纹波、阻带衰减等参数在设计阶段就已确定。然而在真实通信系统中,这一前提常常不成立:
- 时变信道 (Time-Varying Channel):移动通信中,多径衰落信道冲激响应随终端运动、环境变化而持续演变。
- 未知环境 (Unknown Environment):声学回声路径取决于房间几何与温度,无法预先精确建模。
- 非平稳信号 (Non-Stationary Signal):干扰信号的频率和功率可能随时改变。
自适应滤波器 (Adaptive Filter) 的核心思想是:不预设滤波器系数,而是利用输入信号与期望响应实时调整系数,使滤波器自动逼近最优解。
graph LR
A["输入 x[n]"] --> B["自适应滤波器
w[n]"]
B --> C["输出 y[n]"]
D["期望 d[n]"] --> E["误差 e[n] = d[n] - y[n]"]
C --> E
E -->|"反馈调整"| B
style B fill:#1a1a2e,color:#ffffff
style E fill:#16213e,color:#ffffff
8.2 维纳滤波器 / Wiener Filter
8.2.1 MMSE 准则
维纳滤波器是自适应滤波的理论基准——它给出了均方误差 (Mean Square Error, MSE) 意义下的最优线性滤波器。
定义代价函数:
$$J(\mathbf{w}) = E\left[|e[n]|^2\right] = E\left[|d[n] - \mathbf{w}^H \mathbf{x}[n]|^2\right]$$
其中 $\mathbf{x}[n] = [x[n], x[n-1], \ldots, x[n-M+1]]^T$ 为输入向量,$\mathbf{w}$ 为 $M \times 1$ 系数向量。
8.2.2 最优解
对 $J(\mathbf{w})$ 求导并令其为零,得到 Wiener-Hopf 方程:
$$\nabla J = -2\mathbf{p} + 2\mathbf{R}\mathbf{w} = 0$$
最优解为:
$$\boxed{\mathbf{w}_o = \mathbf{R}^{-1}\mathbf{p}}$$
其中:
- $\mathbf{R} = E[\mathbf{x}[n]\mathbf{x}^H[n]]$ —— 输入自相关矩阵 (Autocorrelation Matrix)
- $\mathbf{p} = E[\mathbf{x}[n]d^*[n]]$ —— 输入与期望的互相关向量 (Cross-correlation Vector)
最小均方误差为:
$$J_{\min} = \sigma_d^2 - \mathbf{p}^H\mathbf{R}^{-1}\mathbf{p}$$
工程问题:直接求解 $\mathbf{w}_o$ 需要计算 $\mathbf{R}^{-1}$,计算复杂度为 $O(M^3)$,且要求信号统计特性已知(通常不现实)。因此需要迭代算法来在线逼近最优解。
8.3 LMS 算法 / Least Mean Squares
8.3.1 梯度下降的随机近似
最陡下降法 (Steepest Descent) 的迭代公式为:
$$\mathbf{w}[n+1] = \mathbf{w}[n] - \frac{\mu}{2}\nabla J(\mathbf{w}[n])$$
LMS 的关键贡献:用瞬时梯度代替统计梯度,即用单次样本近似期望值:
$$\hat{\nabla} J = -2,e[n],\mathbf{x}[n]$$
代入得到 LMS 迭代公式:
$$\boxed{\mathbf{w}[n+1] = \mathbf{w}[n] + \mu \cdot e[n] \cdot \mathbf{x}[n]}$$
其中误差 $e[n] = d[n] - \mathbf{w}^H[n]\mathbf{x}[n]$,$\mu$ 为步长参数 (Step Size)。
8.3.2 步长参数 $\mu$ 的选择
步长 $\mu$ 是 LMS 最关键的设计参数,控制着稳定性、收敛速度与稳态误差三者的平衡。
稳定性条件(充分条件):
$$0 < \mu < \frac{2}{M \cdot \sigma_x^2}$$
其中 $M$ 为滤波器阶数,$\sigma_x^2$ 为输入信号功率。工程实践中常用 $\lambda_{\max}$($\mathbf{R}$ 最大特征值)表示为:
$$0 < \mu < \frac{2}{\lambda_{\max}}$$
权衡关系:
| 参数 | 大 $\mu$ | 小 $\mu$ |
|---|---|---|
| 收敛速度 | 快 | 慢 |
| 稳态误差 (Misadjustment) | 大 | 小 |
| 跟踪能力(时变环境) | 强 | 弱 |
| 稳定性风险 | 高 | 低 |
8.3.3 LMS 伪代码
| |
计算复杂度:每次迭代 $O(M)$ 次乘加,非常适合实时嵌入式实现。
8.4 NLMS 算法 / Normalized LMS
8.4.1 动机
LMS 的收敛性能高度依赖输入功率 $\sigma_x^2$。当输入信号功率波动较大时(如语音信号),固定步长难以兼顾不同功率段的收敛需求。
8.4.2 归一化步长
NLMS 将步长归一化为输入向量功率的倒数:
$$\boxed{\mathbf{w}[n+1] = \mathbf{w}[n] + \frac{\tilde{\mu}}{|\mathbf{x}[n]|^2 + \delta} \cdot e[n] \cdot \mathbf{x}[n]}$$
其中:
- $\tilde{\mu}$ 为归一化步长,通常 $0 < \tilde{\mu} < 2$
- $\delta$ 为正则化常数,防止 $|\mathbf{x}[n]|^2 \to 0$ 时除零
优势:收敛速度对输入功率不敏感,是回声消除等应用的首选算法。
| |
8.5 RLS 算法 / Recursive Least Squares
8.5.1 指数加权最小二乘
RLS 直接在线求解加权最小二乘问题,代价函数为:
$$J_{RLS}[n] = \sum_{i=0}^{n} \lambda^{n-i} |d[i] - \mathbf{w}^H\mathbf{x}[i]|^2$$
其中 $\lambda$($0 \ll \lambda \leq 1$)为遗忘因子 (Forgetting Factor),使新数据权重更大,适应非平稳环境。
8.5.2 迭代公式
利用矩阵求逆引理 (Matrix Inversion Lemma),避免每次直接求逆:
$$\mathbf{k}[n] = \frac{\lambda^{-1}\mathbf{P}[n-1]\mathbf{x}[n]}{1 + \lambda^{-1}\mathbf{x}^H[n]\mathbf{P}[n-1]\mathbf{x}[n]}$$
$$e[n] = d[n] - \mathbf{w}^H[n-1]\mathbf{x}[n]$$
$$\mathbf{w}[n] = \mathbf{w}[n-1] + \mathbf{k}[n] \cdot e[n]$$
$$\mathbf{P}[n] = \lambda^{-1}\mathbf{P}[n-1] - \lambda^{-1}\mathbf{k}[n]\mathbf{x}^H[n]\mathbf{P}[n-1]$$
8.5.3 与 LMS 的对比
| 特性 | LMS | RLS |
|---|---|---|
| 收敛速度 | 慢(与特征值扩散度相关) | 快(约 $2M$ 次迭代) |
| 计算复杂度 | $O(M)$ | $O(M^2)$ |
| 稳态误差 | 中等 | 较低 |
| 数值稳定性 | 好 | 需注意 $\mathbf{P}$ 正定性 |
| 适用场景 | 计算资源受限 | 快速跟踪要求高 |
| |
graph TD
A["算法选择"] --> B{"计算资源充足?"}
B -->|"是"| C{"收敛速度要求高?"}
B -->|"否"| D["LMS / NLMS"]
C -->|"是"| E["RLS"]
C -->|"否"| D
D --> F{"输入功率波动?"}
F -->|"是"| G["NLMS"]
F -->|"否"| H["LMS"]
style A fill:#0f3460,color:#ffffff
style E fill:#e94560,color:#ffffff
style G fill:#533483,color:#ffffff
style H fill:#16213e,color:#ffffff
8.6 四种经典配置
自适应滤波器的强大之处在于,同一算法框架可应用于不同的信号连接拓扑,形成四种经典配置。
graph TB
subgraph A["系统辨识"]
direction LR
A1["x[n]"] --> A2["未知系统 H(z)"] --> A3["d[n]"]
A1 --> A4["自适应滤波器"] --> A5["y[n]"]
A3 --> A6["e[n]=d-y"]
A5 --> A6
end
subgraph B["逆建模"]
direction LR
B1["x[n]"] --> B2["未知系统 H(z)"] --> B3["x[n]+噪声"]
B3 --> B4["自适应滤波器"] --> B5["y[n]≈x[n]"]
end
style A fill:#1a1a2e,color:#ffffff
style B fill:#1a1a2e,color:#ffffff
8.6.1 系统辨识 (System Identification)
目标:用自适应滤波器建模未知系统。
- 输入 $x[n]$ 同时送入未知系统和自适应滤波器
- 期望 $d[n]$ 为未知系统输出(含噪声)
- 收敛后 $\mathbf{w} \approx$ 未知系统的冲激响应
应用:信道探测、声学回声路径估计、工业过程建模。
8.6.2 逆建模 / 均衡 (Inverse Modeling / Equalization)
目标:构造未知系统的逆系统,补偿失真。
- 期望 $d[n]$ 为原始发送信号(训练序列)
- 自适应滤波器学习信道的逆滤波器
- 收敛后级联响应近似单位冲激
应用:信道均衡 (Channel Equalization)、去卷积 (Deconvolution)。
8.6.3 噪声消除 (Noise Cancellation)
目标:从含噪信号中消除噪声分量。
- 主通道:$d[n] = s[n] + n[n]$(信号 + 噪声)
- 参考通道:$x[n]$ 为与 $n[n]$ 相关的噪声参考
- 自适应滤波器学习从参考噪声到主通道噪声的映射
- 误差输出 $e[n] \approx s[n]$
关键前提:参考信号 $x[n]$ 与噪声 $n[n]$ 相关,但与信号 $s[n]$ 不相关。
8.6.4 预测 (Prediction)
目标:预测信号未来值。
- 输入 $x[n]$ 为信号的延迟版本
- 期望 $d[n]$ 为当前信号值
- 收敛后输出 $y[n]$ 为最佳线性预测
应用:线性预测编码 (LPC)、频谱估计、信号检测。
8.7 工程应用
8.7.1 声学回声消除 (Acoustic Echo Cancellation, AEC)
在免提通话中,扬声器的输出经房间反射后被麦克风拾取,形成回声。AEC 的核心是系统辨识配置:
graph LR
A["远端信号 x[n]"] --> B["扬声器"]
B --> C["房间声学
回声路径 h[n]"]
C --> D["麦克风
d[n]=s[n]+echo"]
A --> E["自适应滤波器
ŵ[n]"]
E --> F["ŷ[n]"]
D --> G["e[n]=d-ŷ≈s[n]"]
F --> G
style E fill:#e94560,color:#ffffff
style G fill:#0f3460,color:#ffffff
工程要点:
- 典型滤波器阶数 $M$:128–1024(取决于房间混响时间)
- 算法选择:NLMS(最常用),结合双端通话检测 (Double-Talk Detection) 防止近端语音干扰自适应
- 挑战:回声路径时变(人走动、门开关),需要持续跟踪
8.7.2 信道均衡 (Channel Equalization)
数字通信中,信道多径效应导致码间干扰 (Inter-Symbol Interference, ISI)。自适应均衡器通过逆建模配置消除 ISI。
工作流程:
- 训练阶段:发送已知训练序列 (Training Sequence),均衡器利用 LMS/RLS 快速收敛
- 跟踪阶段:切换到判决引导模式 (Decision-Directed Mode),用均衡器输出判决值代替训练序列作为期望
典型参数:
- 均衡器阶数:与信道延迟扩展成正比
- 步长:训练阶段较大加速收敛,跟踪阶段较小降低误码
- 4G/5G 系统中常与 OFDM 结合,频域均衡简化为逐子载波复数乘法
8.7.3 主动降噪 (Active Noise Control, ANC)
ANC 通过产生反相声波来抵消环境噪声,本质是前馈 + 反馈的自适应控制结构。
前馈 ANC (Feedforward):
- 参考传声器拾取上游噪声 $x[n]$
- 自适应滤波器计算抵消信号 $y[n] = -\hat{h}[n] * x[n]$
- 误差传声器验证残余噪声 $e[n]$
反馈 ANC (Feedback):
- 仅使用误差传声器信号
- 自适应滤波器同时估计噪声和次级通道
- 结构更简单但稳定性设计更复杂
实际产品:降噪耳机(如 AirPods Pro、Sony WH-1000XM 系列)中 ANC 滤波器阶数约 64–256,采用改进的 Filtered-x LMS (FxLMS) 算法处理次级通道延迟。
8.8 小结
| 算法 | 核心思想 | 复杂度 | 收敛速度 | 适用场景 |
|---|---|---|---|---|
| Wiener | MMSE 最优解 | $O(M^3)$(离线) | — | 理论基准 |
| LMS | 随机梯度下降 | $O(M)$ | 慢 | 资源受限、平稳环境 |
| NLMS | 功率归一化 LMS | $O(M)$ | 中等 | 回声消除、功率波动 |
| RLS | 递推最小二乘 | $O(M^2)$ | 快 | 快速跟踪、高精度 |
自适应滤波是 DSP 中理论与实践结合最紧密的方向之一。理解 LMS 的简洁性、NLMS 的鲁棒性、RLS 的快速性,以及四种配置拓扑的灵活应用,是解决实际信号处理问题的基础。
进一步阅读:
- Haykin, S. Adaptive Filter Theory, 5th ed.
- Widrow, B. & Stearns, S. D. Adaptive Signal Processing
- ITU-T G.168 — 数字网络回声消除器标准