想象你正举着相机拍摄一个奔跑的孩子。你半按快门,镜头“嗬”地一声从模糊变得锐利;孩子跑远了,镜头又嗡嗡作响地重新聚焦,取景器里那张小脸始终清晰。这台相机的秘密,是一套“边拍边学”的对焦系统——每 1/60 秒,它都在问自己三个问题:现在清楚吗?该往哪边拧?拧多大?然后像一位老练的摄影师,小幅、连续地修正焦距,永远追着画面里的主角跑。 LMS(Least Mean Squares,最小均方)自适应滤波器,就是数字信号世界里的那套“自动对焦马达”。传统滤波器像定焦镜头,出厂时焦点焊死,只能服务一种环境;而自适应滤波器不用事先知道信号的统计规律,一边接收数据一边修正自己的系数,自动跟踪环境变化。这篇文章从左到右拆解这台“对焦马达”:为什么定焦镜头不够用,LMS 如何工作,怎么控制“拧镜头的力度”,以及它在回声消除、主动降噪、信道均衡里的实战表现。

岗位关联

掌握 LMS,你就拥有了信号处理领域最常用的自优化工具。无论做音频降噪、通信均衡还是控制系统,都能让滤波器自己适应环境,而不是每次环境一变就找人重新设计。

目录
  1. 可视化演示
  2. 问题起源:为什么“定焦镜头”不够用
  3. LMS核心思想:误差驱动的“对焦循环”
  4. 步长选择:拧镜头的力道学问
  5. 收敛条件:别越过稳定的天花板
  6. NLMS变体:给镜头装上“感光度自动调节”
  7. 典型应用:追焦、防抖与换镜
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示LMS迭代更新原理、步长收敛条件、变体对比与回声消除应用。

本节配有交互动效(进入视口后自动加载,约 3KB)。

LMS基本原理 无需预知信号统计特性边接收边更新系数 以Wiener最优解为目标逐步逼近 w(n+1) = w(n) + μ·e(n)·x(n) 梯度下降的随机近似实现自适应滤波

问题起源:为什么“定焦镜头”不够用

你买过老式定焦相机吗?焦距从出厂那天起就焊死了,拍远景清晰时,近处的人脸糊成一片;把镜头对准近处,远处的山又成了一团雾。它不是不好,只是“只能对好一个距离的焦”。传统数字滤波器也是这样的“定焦镜头”:工程师根据已知的场景,一次性算好一组系数,之后不管输入信号变成什么样,系数都纹丝不动。

问题在于,现实世界的信号几乎从不“安分”:电话线路的阻抗会随天气变化,房间的混响会随家具摆放改变,信道的多径效应会随基站人流波动。信号的统计特性——均值、方差、相关性——始终在变,而定焦镜头只认出厂时校准的那个场景。于是工程师们开始渴望一套“自动对焦系统”:不需要预先知道信号的统计规律,而是边看边调,永远追着目标跑。

固定滤波器的数学描述很简单,它就是一个加权求和的滑动窗口:

就这么一个简单的“加权滑动平均”结构,配上“系数永不更新”的死板约定,就成了定焦镜头最大的痛点。而接下来要登场的 LMS,本质上只做了一件事:把“永不更新”改成“每来一个样本就微调一次”。镜头从此活了过来。

y(n)=∑k=0M−1wk x(n−k)\displaystyle y(n)=\sum_{k=0}^{M-1} w_k\, x(n-k)
  1. 输入样本 x(n-k)x(n) 是当前时刻的输入信号,x(n-1) 是上一时刻的样本,x(n-k) 则是往前推 k 步的样本。这就像对焦环取景框里的一格一格的画面,每格对应一个不同时刻的快照。 x(n−k)x(n-k)
  2. 抽头系数 w_k每个历史样本都配一个权重,w_k 决定了“第 k 格快照”对最终输出有多大话语权。这就像镜头里每一片透镜的折射率,共同决定了焦点落在哪里。 wkw_k
  3. 求和运算把这 M 个“加权快照”累加,就得到当前滤波器的输出 y(n)。这就像多片透镜协同工作,把光汇聚成一个清晰的像。 ∑k=0M−1\sum_{k=0}^{M-1}
  4. 固定系数的局限如果所有 w_k 是一次性算好、之后再也不动,那这台“滤波器”就是纯粹的定焦镜头——它对焦准确的前提,是信号统计特性一直保持出厂时的样子。 wk=常数w_k = \text{常数}

LMS核心思想:误差驱动的“对焦循环”

相机自动对焦时,镜头里有一套精密的控制回路:先拍一张当前画面,对比“期望的清晰影像”和“当前的模糊影像”,算出差距,再把差距换算成“往左拧还是往右拧、拧多少”的指令。LMS 的整个思想,就是把这个回路搬进了滤波器。

它需要三个角色。第一个是期望信号 d(n),相当于“期望的清晰影像”——在回声消除里是近端语音,在信道均衡里是训练序列。第二个是滤波器输出 y(n),相当于“当前的实际影像”。第三个是误差 e(n),也就是 d(n) 和 y(n) 的差,相当于“当前的模糊程度”。LMS 的聪明之处在于:它不需要知道信号的整体统计特性,每来一个样本,就用这一瞬间的误差去修正系数——这就是“瞬时梯度下降”。

两个公式撑起整个 LMS:

对焦系统每 1/60 秒完成一次“拍—比—拧”循环,LMS 则是在每一个采样点完成一次“滤波—求误差—更新系数”循环。信号环境安静时,它悄悄维持着已有的清晰;环境突变时,它又能靠误差信号察觉到“糊了”,迅速重新聚焦。这就是它比定焦镜头强的地方——永远在学,永远在追。

e(n)=d(n)−y(n)\displaystyle e(n)=d(n)-y(n)
w(n+1)=w(n)+2μ e(n) x(n)\displaystyle w(n+1)=w(n)+2\mu\, e(n)\, x(n)
  1. 误差 e(n)=d(n)-y(n)期望信号减去滤波器输出。如果输出完全正确,e(n) 就是零,对焦完成;只要 e(n) 不为零,就说明镜头还有偏差。 e(n)=d(n)−y(n)e(n)=d(n)-y(n)
  2. e(n)·x(n)误差乘以当前输入样本。这个乘积的统计平均恰好指向“均方误差下降最快的方向”(负梯度方向),所以它就是“该往哪边拧镜头”的指南针。用瞬时值代替期望,正是 LMS 能在线学习的关键。 e(n) x(n)e(n)\, x(n)
  3. 系数 2μμ 是步长,控制每次拧镜头的幅度;系数 2 来自均方误差 J=E[e²] 对权重求梯度时落下的因子,数学上让公式更干净。 2μ2\mu
  4. w(n+1)=w(n)+…每来一个样本,系数就沿着修正方向迈一小步。这意味着滤波器永远在“边接收数据、边修正自己”,这就是“边滤边学”四个字的来历。 w(n+1)=w(n)+2μ e(n) x(n)w(n+1)=w(n)+2\mu\, e(n)\, x(n)

步长选择:拧镜头的力道学问

用过手动对焦的人都有体会:拧对焦环的力道是个玄学。拧得猛,画面“唰”地一下清晰,但稍一用力就过头,画面又糊了,只能来回小幅震荡;拧得轻,每一下都很稳健,但调了半天还在模糊区里磨蹭。老摄影师的做法是“先粗后细”:先大范围快速拧到差不多,再小幅度精修。

LMS 里的 μ 就是那只拧对焦环的手。它的第一个作用是决定收敛速度:μ 越大,系数每一步迈得越大,误差下降得越快,从“模糊”到“基本清晰”需要的样本数越少。它的第二个作用却是决定稳态失调量:由于 LMS 用的是瞬时梯度而不是真实梯度,收敛之后系数并不是静止在最优解上,而是在最优解附近随机游走,这个游走的幅度与 μ 大致成正比。

稳态失调的定量关系可以用一个简洁的公式描述:

工程上的标准解法与老摄影师如出一辙——分段步长:启动阶段用较大的 μ 快速“粗对焦”,误差降到一定程度后切换成小 μ 做“精对焦”和稳定跟踪。这个先粗后细的策略,让 LMS 既能快速响应环境突变,又不在稳态时哆哆嗦嗦。

Jex≈μ⋅tr⁡(R)\displaystyle J_{\mathrm{ex}} \approx \mu \cdot \operatorname{tr}(\mathbf{R})
  1. 自相关矩阵 R它描述输入信号各抽头之间的相关强度,矩阵越大、相关性越强,说明镜头要应付的画面越“复杂”。 R=E[x(n)xT(n)]\mathbf{R}=E[\mathbf{x}(n)\mathbf{x}^{\mathsf T}(n)]
  2. 迹 tr(R)矩阵对角线元素之和,恰好等于输入信号的总功率(各抽头能量相加)。它衡量的是“镜头面临的整体光线强度”。 tr⁡(R)\operatorname{tr}(\mathbf{R})
  3. 失调量 J_ex收敛之后,均方误差等于理论最优值 J_min 加上一个额外的失调项。它表示“手抖”带来的额外模糊。 Jex≈μ⋅tr⁡(R)J_{\mathrm{ex}} \approx \mu \cdot \operatorname{tr}(\mathbf{R})
  4. 成正比的启示失调量与 μ 成正比,所以 μ 越大,最终画面越“抖”;μ 越小,画面越稳但到位越慢。这就是 LMS 最核心的矛盾。

收敛条件:别越过稳定的天花板

任何自动对焦马达都有物理极限:力矩不够,镜头转不到位;力矩太大,齿轮咔哒一声打滑甚至崩坏。LMS 同样有一道不能越过的天花板——步长 μ 不能超过某个上限,否则系数不但不收敛,反而会越调越离谱,误差像脱缰野马一样冲向无穷大,这就是“发散”。

这道天花板由输入信号的能量决定。直观理解:输入信号越强,误差乘上输入得到的修正量越大,同样的 μ 会造成更大幅度的系数跳动,所以必须把 μ 压得更低。

稳定性条件写作:

知道了天花板的位置,反而可以更大胆地在规则内“用力拧”——只要 μ 稳稳地落在稳定区里,LMS 就不会把齿轮打坏。这个简单的数值得到了工程界的反复验证:任何输入功率突变的环境里,先估一下 P_x,再按 2/(MP_x) 缩一截设 μ,几乎不会翻车。

0<μ<2λmax⁡≈2M⋅Px\displaystyle 0 < \mu < \frac{2}{\lambda_{\max}} \approx \frac{2}{M \cdot P_x}
  1. 最大特征值 λ_max输入自相关矩阵最大的特征值,对应输入信号在能量最强的那个方向上的功率。它是整个系统最“敏感”的方向——这个方向上系数一旦迈步太大就会失控。 λmax⁡\lambda_{\max}
  2. 2/λ_max稳定上限的精确形式,来源于对误差递推方程的分析:不满足这个不等式时,误差能量会随时间指数放大。 0<μ<2λmax⁡0 < \mu < \frac{2}{\lambda_{\max}}
  3. 近似式 2/(MP_x)当输入近似白噪声时,λ_max 可以用滤波器长度 M 乘以输入功率 P_x 近似。这个式子更实用,因为它只需要估一下输入功率就能算。 2M⋅Px\frac{2}{M \cdot P_x}
  4. 实际安全范围工程上通常取 μ 为上限的 10%~30%,既保证快速收敛,又留足安全余量,不给发散留机会。 μ∈(0, 2M Px) 的较小比例\mu \in \left(0,\ \frac{2}{M\,P_x}\right)\ \text{的较小比例}

NLMS变体:给镜头装上“感光度自动调节”

在光线很暗的房间里,自动对焦经常会“拉风箱”——镜头来回伸缩就是锁不住焦点,因为画面里缺少可供判断的明暗对比特征。于是相机厂商给对焦系统加了一项能力:检测环境亮度,自动提高感光度和辅助照明,让系统在任何光照下都能稳定工作。这就是“归一化”的直觉。

标准 LMS 有个尴尬的毛病:它的稳定边界绑定输入功率。一个在安静房间里调好的 μ,拿到嘈杂的工厂车间可能直接发散;而一个在嘈杂环境里调小的 μ,拿到安静环境又慢得像蜗牛。NLMS(归一化 LMS)做了顺手的一改:每步更新前,先看看当前输入向量有多“亮”,然后用这个亮度把修正量除一下——输入猛的时候自动收着点,输入弱的时候自动放大点。这样无论环境怎么变,系统的“有效步长”始终保持一致。

NLMS 的更新公式只比 LMS 多了一个分母:

今天几乎所有商用自适应系统——从你的蓝牙耳机到电信基站——默认使用的都是 NLMS 或它的变体。它把“自动对焦”升级成了“全天候自动对焦”:无论信号环境是亮是暗、是吵闹还是安静,它都能稳稳地找到焦点。

w(n+1)=w(n)+μ e(n) x(n)∥x(n)∥2+ε\displaystyle w(n+1)=w(n)+\frac{\mu\, e(n)\, x(n)}{\|x(n)\|^2+\varepsilon}
  1. 输入能量 ‖x(n)‖²当前输入向量各元素的平方和,也就是这一瞬间“画面有多亮”。它实时反映了镜头面临的光照强度。 ∥x(n)∥2=∑k=0M−1x2(n−k)\|x(n)\|^2=\sum_{k=0}^{M-1}x^2(n-k)
  2. 除以能量能量大时,修正量被自动压缩;能量小时,修正量被自动放大。这好比相机根据测光结果自动切换感光度。 e(n) x(n)∥x(n)∥2\frac{e(n)\,x(n)}{\|x(n)\|^2}
  3. 小常数 ε防止输入全为零时除以零的保险。它像一个极小的“夜灯”,保证画面全黑时镜头也不会死机。 ∥x(n)∥2+ε\|x(n)\|^2+\varepsilon
  4. 归一化后的 μ现在 μ 的取值范围变为恒定的 0<μ<2,与输入功率无关。工程上再也不需要实时估算输入功率,调参变得省心得多。 0<μ<20 < \mu < 2

典型应用:追焦、防抖与换镜

自动对焦技术真正打动人的,是它走进生活的那些瞬间:拍视频时焦点咬住奔跑的孩子不松口,手持相机时画面再抖也能稳住主体,换一个场景按下快门瞬间重新合焦。LMS 在工程界的三大经典应用,恰好对应这三种能力。

回声消除是“追焦”。打电话开免提时,扬声器声音被麦克风重新采集,形成刺耳回声。让 LMS 以扬声器信号为参考输入 x(n),以“近端语音+回声”为期望 d(n),它就能自动估计出回声路径,输出 y(n) 作为回声副本,用 e(n)=d(n)-y(n) 把回声抵消掉,只留下清晰的人声。主动降噪是“防抖”。耳机外侧的参考麦克风采集环境噪声,LMS 实时估计噪声到达耳膜的路径,并生成反相波形抵消它,让噪声“突变”成静音。信道均衡是“换镜”。接收端不知道信道的畸变特性,就周期性地发送训练序列,让 LMS 在线逼近信道逆滤波器;训练完成后切回正常数据传输,信道一旦漂移,下一轮训练又把它拉回准心。

这些应用的数学核心是同一套对消模型:

你发现规律了吗?三个应用都有同一个结构:有一个参考信号当“眼睛”,有一个干扰信号要被消除,LMS 当“手”,不停调整自己的系数去贴合变化的环境。只要“眼睛”和“手”配合好,无论干扰怎么变,LMS 都能追着它、抵消它。这就是为什么工程师们常说:有参考,就有自适应。

e(n)=d(n)−y(n),d(n)=s(n)+v(n)\displaystyle e(n)=d(n)-y(n),\qquad d(n)=s(n)+v(n)
  1. v(n)待消除的干扰:回声、环境噪声或信道畸变,都是混进麦克风/接收端的脏东西,是需要对焦掉的“杂散光”。 v(n)v(n)
  2. s(n)想要的目标:近端语音、心仪的音乐或原始数据,是照片里真正的主角,必须被保留。 s(n)s(n)
  3. y(n)干扰的估计副本:LMS 找到的“干扰的替身”——它需要另一个参考信号作为眼睛,才能看清干扰长什么样。 y(n)≈v(n)y(n) \approx v(n)
  4. 残差 e(n)≈s(n)期望信号减去估计副本,干扰被抵消,目标被成功抢救出来。 e(n)=d(n)−y(n)≈s(n)e(n)=d(n)-y(n)\approx s(n)

AI 应用场景

智能音箱远场语音识别前的回声消除

阶段:数据预处理 / 音频前处理

解决的问题:智能音箱播放音乐或发出提示音时,麦克风会同时采到扬声器的声音和用户的语音。传统降噪算法无法区分“自己发出的声音”和“用户的声音”,导致语音识别准确率暴跌。LMS 以扬声器播放的信号为参考,实时估计回声路径,把麦克风信号中的回声分量抵消掉,让语音识别引擎只听到干净的人声指令。

具体案例:你在客厅喊“天猫精灵,播放周杰伦”,音箱正大声放着歌。NLMS 滤波器在几十毫秒内完成回声路径估计,扬声器输出越大、它抵消得越坚决;你说话时,识别准确率仍能保持在 95% 以上。

TWS 耳机混合主动降噪

阶段:实时信号处理(嵌入式推理)

解决的问题:地铁、飞机上的噪声不是平稳的,固定参数的降噪滤波器对突变噪声几乎无效。LMS 让滤波器实时跟踪环境噪声的变化,用参考麦克风采到的噪声生成反相声波,在耳道处“以毒攻毒”地抵消噪声。

具体案例:某款旗舰降噪耳机的降噪深度可达 45dB。当高铁驶过隧道、噪声频段骤然变化时,LMS 在毫秒级时间内重新收敛,佩戴者几乎感觉不到噪声的“突袭”。

5G 毫米波信道均衡

阶段:物理层在线估计与补偿

解决的问题:5G 高频信号经过墙壁反射、人体遮挡后,会产生严重的多径畸变,符号之间互相干扰。固定均衡器无法适应移动用户快速变化的信道。LMS 在帧头训练序列期间快速收敛,用“边滤边学”的方式实时跟踪信道变化,保证下行数据正确解调。

具体案例:在室分场景下,用户以 3km/h 步行,信道相干时间约 10ms。LMS/NLMS 在 200 个符号内完成均衡系数收敛,误码率从 1e-2 降至 1e-5 量级。

Python 演示

python43 行
import numpy as npimport matplotlib.pyplot as plt np.random.seed(42)N = 2000M = 2h = np.array([0.8, -0.3]) u = np.sin(0.12 * np.arange(N)) + 0.5 * np.sin(0.31 * np.arange(N) + 1.0)u += 0.15 * np.random.randn(N) d = np.zeros(N)for n in range(N):    d[n] = h[0] * u[n] + (h[1] * u[n - 1] if n >= 1 else 0.0)d += 0.02 * np.random.randn(N) mu = 0.03w = np.zeros(M)err = np.zeros(N)w_history = np.zeros((N, M))for n in range(M - 1, N):    x = u[n - M + 1:n + 1][::-1]    y = w @ x    e = d[n] - y    w = w + 2 * mu * e * x    err[n] = e    w_history[n] = w print("收敛后的权重:", np.round(w, 4))print("真实权重:    ", h)print("误差均方根:  ", np.sqrt(np.mean(err[M - 1:] ** 2))) fig, axes = plt.subplots(2, 1, figsize=(8, 6))axes[0].plot(err, lw=0.6)axes[0].set_ylabel("误差 e(n)")axes[1].plot(w_history[:, 0], label="w0")axes[1].plot(w_history[:, 1], label="w1")axes[1].axhline(h[0], color="gray", ls="--")axes[1].axhline(h[1], color="gray", ls="--")axes[1].set_ylabel("权重")axes[1].legend()plt.tight_layout()plt.show()
目的:模拟一台“未知系统”(类似一个需要被辨识的黑盒),用 LMS 在线学习它的内部参数,验证边滤边学是否真的能逼近真实权重。
  1. d[n] = h[0] * u[n] + (h[1] * u[n - 1] if n >= 1 else 0.0)模拟未知系统的输出,这就是我们要学习的目标信号“期望画面”。
  2. x = u[n - M + 1:n + 1][::-1]取出最近 M 个输入样本并倒序排列,构成本时刻的滤波输入向量。
  3. y = w @ x当前滤波器输出,相当于“自动对焦拍出的当前画面”。
  4. e = d[n] - y期望与实际的误差,判断“糊了多少”。
  5. w = w + 2 * mu * e * xLMS 核心更新:沿误差下降方向微调权重。
  6. w_history[n] = w记录每一步权重,方便后面画出收敛轨迹。
  7. axes[1].axhline(h[0], color="gray", ls="--")画真实权重虚线,验证 LMS 是否骗人。

常见误区

误区我第一次跑 LMS 的实验时,发现步长调大后误差掉得飞快,心里暗喜:既然步长越大收敛越快,那把 μ 拉到最大不就行了?结果系统直接发散,输出变成一片噪声。

正解大 μ 在收敛初期确实占尽优势,但代价是稳态失调也随 μ 增大。失调量正比于 μ·tr(R),μ 太大时,系数在最优解附近剧烈跳动,滤波器的输出始终带着明显的“抖动模糊”;一旦越过 2/(MP_x) 这道天花板,更是直接发散。工程上常用两段式策略:启动用大 μ 快速粗收敛,再用小 μ 精跟踪。

为何常见:收敛曲线的前半段太有欺骗性,初学者盯着“误差快速下降”就误以为大 μ 全面占优,忽视了后半段稳态性能的恶化。

误区既然叫“自适应滤波”,那是不是把麦克风信号丢进去,随便什么噪声都能被滤得干干净净?我拿 LMS 去滤一段纯随机白噪声,结果噪声一点没少,还以为代码写错了。

正解LMS 能消除的,只是“与参考信号相关的干扰”。它本质是估计干扰信号的副本然后相减,如果干扰和参考完全不相关(比如麦克风自带的电路热噪声),LMS 根本没有“眼睛”可看,自然无从下手。就像相机无法对焦到画面里不存在的东西上。

为何常见:把“自适应”想象成万能的噪声过滤器,忽略了它需要参考信号这一根本前提。

误区我以为 LMS 跑完 5000 个样本,权重就跟理论推导的维纳解完全一致,误差会变成 0。用代码一打印,发现权重在小数点后三位还在不断微小变化,误差也稳在一个小值上不再下降。

正解LMS 用的是瞬时梯度代替真实梯度,每步更新都带着“噪声”。因此收敛后系数不会定死在最优解上,而是在最优解附近随机游走,形成一个“失调区”。这就像手持相机对焦完成后再稳,手部的呼吸也会让焦点有微米级的浮动。想要更精确,可以切换到更复杂的算法或随收敛减小步长。

为何常见:教材上的收敛图通常画成平滑曲线,容易让人以为 LMS 是精确逼近,忽略了它随机逼近的本质。

误区我记住了 μ < 2/(MP_x) 这个条件,以为只要满足它,LMS 就一定会收敛到我要的答案。结果我喂给它一个单频正弦波,收敛出来的权重跟真实系统对不上。

正解稳定性条件只保证“不发散”,不保证“收敛到真值”。如果输入信号信息量不足——比如只有单一频率——LMS 只能辨识出该频带内的响应,其他频带的系数根本无法被激励。这就像纯色墙面前,自动对焦系统找不到任何可参考的纹理特征。工程上要求输入满足“持续激励”条件,保证能量覆盖所有关心的频率范围。

为何常见:只记住了数值边界,忽略了输入信号性质对可辨识性的决定性影响。

面试题

Q1. LMS 算法的全称是什么?

单选题 · easy

  • A.线性最小平方
  • B.最小均方算法← 正确答案
  • C.最大似然估计
  • D.最小二乘滤波

答案:B。LMS 是 Least Mean Squares 的缩写,中文译为“最小均方”。它通过最小化误差平方的均值来更新权重。线性最小二乘(LS)是批量处理的另一种方法,最大似然估计是统计学概念,最小二乘滤波也不是 LMS 的准确名称。

Q2. LMS 相比固定 FIR 滤波器最大的特点是什么?

单选题 · easy

  • A.计算速度更快
  • B.无需预知统计特性← 正确答案
  • C.阶数一定更低
  • D.稳定性完全不受限

答案:B。LMS 的核心优势是“边滤边学”——不需要预先知道信号的统计特性,边接收数据边更新系数。它并不会天然更快或阶数更低;稳定性也要受 μ 约束,并非完全不受限。

Q3. 更新公式 w(n+1)=w(n)+2μe(n)x(n) 中,e(n) 表示什么?

单选题 · mid

  • A.期望信号的能量
  • B.期望与输出的误差← 正确答案
  • C.输入信号的瞬时值
  • D.权重的梯度模长

答案:B。e(n)=d(n)-y(n),是期望信号与滤波器输出之差,相当于“对焦偏差”。它驱动整个更新过程:误差越大,修正量越大;误差为零则不修正。A、C、D 描述的都是别的量。

Q4. 步长 μ 取值偏大时,最主要的风险是什么?

单选题 · mid

  • A.收敛速度明显变慢
  • B.稳态失调增大或发散← 正确答案
  • C.计算量显著增大
  • D.系统功耗显著上升

答案:B。μ 过大时,虽然初期收敛快,但稳态失调(正比于 μ·tr(R))也随之增大;若 μ 超过 2/(MP_x),系统直接发散。大 μ 不会让速度变慢,也不会增加计算量或功耗。

Q5. 输入功率 P_x=0.5、滤波器长度 M=4 时,LMS 的步长 μ 需满足什么才稳定?

单选题 · hard

  • A.小于 0.5
  • B.小于 1← 正确答案
  • C.小于 2
  • D.大于 1

答案:B。稳定性边界约为 2/(M·P_x)=2/(4×0.5)=1,所以 μ 必须小于 1。这要求对输入功率有一定估计,工程上还会再留安全余量。

Q6. NLMS 与标准 LMS 最主要的区别是什么?

单选题 · mid

  • A.用参考信号归一化输入
  • B.用输入能量归一化步长← 正确答案
  • C.用期望信号归一化误差
  • D.用误差信号归一化权重

答案:B。NLMS 在更新公式中除以输入向量能量 ‖x‖²,相当于根据输入功率自动缩放步长,让系统在不同环境下都稳定工作。它不改变输入、误差或权重的定义,只调整修正量的尺度。

Q7. NLMS 更新公式中多加的小常数 ε 主要作用是什么?

单选题 · easy

  • A.加速收敛速度
  • B.防止除零异常← 正确答案
  • C.增大稳态失调
  • D.降低输入能量

答案:B。当输入向量全为零(静音或断流)时,‖x(n)‖²=0,直接除法会除零崩溃。ε 是一个极小的正数,保证分母始终大于零,就像全黑环境下的“夜灯”。

Q8. 下列哪些场景适合使用 LMS 自适应滤波器?

多选题 · mid

  • A.扬声器回声消除← 正确答案
  • B.耳机主动降噪← 正确答案
  • C.通信信道均衡← 正确答案
  • D.图片无损压缩

答案:ABC。回声消除、主动降噪、信道均衡都是“有参考信号、干扰时变”的场景,正好是 LMS 的用武之地。图片无损压缩属于数据编码领域,没有实时更新的滤波需求,不适用 LMS。

Q9. 下列因素中,哪些会影响 LMS 的收敛速度?

多选题 · hard

  • A.步长 μ 的大小← 正确答案
  • B.输入信号的功率← 正确答案
  • C.输入自相关特征值← 正确答案
  • D.滤波器的初始相位

答案:ABC。μ 直接决定每步迈多大;输入功率影响有效信噪比和稳定边界;自相关矩阵的特征值扩散比决定了各模式收敛的时间常数差异。滤波器初始相位不是 LMS 收敛速度的讨论范畴。

Q10. 关于 LMS 稳态特性的描述,正确的有哪些?

多选题 · extreme

  • A.系数在最优解附近随机游走← 正确答案
  • B.稳态误差有可能降为零
  • C.失调与 μ 大致成正比← 正确答案
  • D.输入不丰富时系数不可辨识← 正确答案

答案:ACD。LMS 用瞬时梯度估计,收敛后系数不会静止,而是在维纳解附近随机游走,因此稳态误差不为零(B 错);失调量 J_ex≈μ·tr(R),与 μ 成正比;输入信号若缺乏持续激励,部分系数根本无法被辨识。