3、均衡基本原理:线性均衡结构与迫零算法、MMSE准则

讲到均衡,咱们先得把“线性均衡”这个东西搞清楚。说白了,它就是一个FIR滤波器。我在项目里跟年轻同事讲的时候,经常拿它比作一个能调权重的滑动窗口——输入信号进来,每个抽头乘上系数,然后加起来输出。就这么简单。但真正关键的,是这些系数该怎么算。今天我们就来聊两个最经典的准则:迫零(ZF)和最小均方误差(MMSE)。

3.1 线性均衡器的结构

一个典型的线性均衡器长什么样呢?看下面的结构图就清楚了。

线性均衡器结构与准则选择 输入 r(t) T T T w₀ w₁ w₂ w₃ Σ 判决器 输出 â(k) 迫零准则 (ZF) MMSE准则 准则决定系数 wᵢ ZF: 强制消除ISI MMSE: 权衡ISI+噪声

你看这个图,输入信号经过抽头延迟线,每个抽头乘以一个系数,然后求和。这些系数 w₀, w₁, w₂, w₃ 就是均衡器要优化的目标。不同准则会给出不同的一组 w。

3.2 迫零算法(Zero Forcing)

迫零算法,名字很直白:强迫码间干扰(ISI)为零。它不考虑噪声,只想着怎么把信道冲激响应的拖尾完全抵消掉。数学上,就是让均衡器和信道的组合响应在采样点上满足“只在当前符号处为1,其余时刻为0”。

我早年在一个8PSK系统里就吃过亏。当时信道多径很严重,我用迫零均衡,明明眼图张开了,但星座图还是散得厉害。后来才发现——噪声被放大了!因为迫零本质上是逆信道的幅频特性,如果信道在某个频点衰减很厉害,迫零就会在这个频点拼命增益,噪声也跟着放大。所谓“零强制”的代价,就是噪声增强。

迫零系数的求解:
如果用矩阵表示,设信道矩阵为 H,均衡器系数向量为 w,迫零准则要求:
wT H = [0 … 0 1 0 … 0]
说白了就是解一个线性方程组。实际中常用自适应算法(比如LMS)来逼近。

我曾经犯过的错:直接对信道估计矩阵求伪逆来算迫零系数,结果矩阵病态,算出来的系数值巨大。后来加上一个小对角加载(Tikhonov正则化)才稳定。嗯,其实那就是往MMSE方向靠了一步。

3.3 MMSE准则(最小均方误差)

MMSE准则就不一样了。它不追求把ISI完全消除,而是找个折中——在残留ISI和噪声增强之间取得平衡。数学上,它最小化均衡器输出与发送符号之间的均方误差:
min E[| â(k) – a(k) |²]

我个人的习惯,在信噪比比较低的环境下优先选MMSE。你想想看,迫零在低SNR时效果往往很差,因为它把噪声抬上来了。而MMSE会主动“让一部分ISI留着”,以此换取噪声不被过分放大。代价是会有残留ISI,但在实际系统中,后面往往还有FEC解码,这点残留ISI大部分能被纠错码扛过去。

MMSE的闭式解也很经典:
wMMSE = (HHH + σ²I)⁻¹ HH r
其中σ²是噪声方差,I是单位阵。你看多了一个σ²I,正是这个东西抑制了噪声增益。

3.4 两个准则的对比

为了让你更直观地理解,我整理了一张表。平时在项目评审时,我常拿这张表跟算法组对口径。

属性 迫零 (ZF) MMSE
目标 完全消除ISI 最小化误差+ISI+噪声
噪声影响 可能放大噪声 抑制噪声,不放大
适用场景 高SNR,信道深度衰落可控 低SNR,或信道特性不稳定
计算复杂度 较低(只解线性方程) 稍高(需要噪声方差估计)
数值稳定性 差,病态矩阵易发散 好,正则化项自动稳定
实战建议:如果你的系统信噪比高于20dB,且信道估计比较准,迫零足够用,省资源。但如果环境嘈杂或者移动场景,请直接上MMSE。我在LTE上行链路里做过对比,MMSE比ZF在误块率上大约低2-3dB增益。

3.5 两种准则的自适应实现

实际工程中,我们不会每次都去求矩阵逆。太慢了。一般用自适应滤波器迭代更新系数。常见的算法:

  • LMS(最小均方):简单,但收敛慢。对于MMSE,使用 e(k) = a(k) – y(k) 来更新。
  • RLS(递归最小二乘):收敛快,但计算量大。适合需要快速跟踪的信道。
  • 盲均衡(CMA等):不需要训练序列,适用于无导频的场景。

我个人的经验:能上RLS就上RLS,尤其在做硬件加速时,RLS用矩阵求逆引理实现,其实资源量是可控的。不过如果在FPGA上做,还是LMS更稳妥——我记得有一个项目,为了省几个乘法器,硬是用LMS迭代了好几万步才收敛,但最终稳定后的性能和MMSE解析解几乎一样。

调试小技巧:当你在仿真中看到均衡器系数发散,第一步别急着改步长——先检查信道估计里有没有直流偏移或者低频噪声。我曾经被一个直流分量坑了三天,滤波器系数一路跑到饱和还不停。

3.6 小结一下

线性均衡器的核心就是选系数准则。迫零简单暴力,但怕噪声;MMSE聪明平衡,但需要噪声估计。没有的好坏,只有场景的选择。你在做系统设计时,不妨留一个可配置的参数,让上层软件根据SNR动态切换准则。我就这么干过,效果不错。

其实,很多时候真正的挑战不是准则本身,而是实现过程中的数值稳定性、定点化精度、以及实时更新速度。希望今天的这些内容能给你一个扎实的起点。后面我们会深入更多均衡结构,但今天先把这些基础打牢。