第3章 信号模型与信道建模基础

做均衡器绕不开信道模型。说白了,你得先知道信号是怎么被折腾的,才能想怎么把它拉回来。我入行那会儿,直接用理想信道仿真,结果板子调通后眼图惨不忍睹——后来才明白,模型没建对,均衡系数全是白费。

信道模型分类

信道模型按复杂程度大致分这几类,我平时做工程预研时常用的就是下面几种:

模型类型特点应用场景
AWGN只加白噪声,无多径极限性能评估
多径衰落多个到达路径,有延迟扩展无线/有线互连
频率选择性信道带宽内增益变化PCIe Gen5 长通道
时变信道参数随时间变化移动通信、高速场景

你想想看,Gen5 均衡器最头疼的就是频率选择性衰落。信道越长、速率越高,反射越严重,单靠一个抽头根本压不住。

基带等效信号模型

实际系统里我们处理的是基带复包络。发送信号 s(t) 经过信道冲激响应 h(t),再加上噪声 n(t),接收信号就是:

r(t) = s(t) * h(t) + n(t)

这里 * 表示卷积。离散化之后,采样得到 r[k],就是均衡器的输入。

我个人习惯 用复基带建模,因为能统一处理I/Q两路。有一次客户反馈眼图闭了,我换成复基带模型一跑,立马定位到是I/Q失衡导致的。

抽头延迟线模型(TDL)

工程里最常用的就是抽头延迟线模型。把信道切成若干段,每段一个系数,多径就体现在不同延迟的抽头上。

  1. 确定符号周期 T 和采样间隔 Ts(通常是 T/2 或 T/4)
  2. 设定最大延迟扩展 τ_max
  3. 计算抽头数 L = floor(τ_max / Ts) + 1
  4. 每个抽头赋复系数,代表幅度和相位
小提示: 我建议 TDL 的抽头数不要超过 32 个,否则均衡器的收敛速度会变慢。Gen5 均衡器一般用 8~16 个前馈抽头就够了。

分数间隔采样与均衡器关系

为什么用分数间隔(Fractionally Spaced, FSE)?因为符号间隔采样容易遇到频谱折叠,噪声会混进来。FSE 用 T/2 或 T/4 采样,可以避免这个问题。

# 生成一个简单的多径信道
import numpy as np
Ts = 1e-12 / 2  # T/2 分数间隔
delays = [0, 3, 7, 12]  # 单位:采样点
gains = [1.0, -0.3, 0.1, 0.05]
h = np.zeros(16)
for d, g in zip(delays, gains):
    h[d] = g
print(h)

这段代码生成一个16抽头的信道,第一个抽头是主径,后面是多径反射。我调试时经常先这么造一个信道,然后看均衡器能不能把后三个抽头压下去。

注意: 分数间隔采样会带来额外的计算量。我曾经把采样率设成 T/4,结果 FPGA 资源不够,被迫降回 T/2。平衡好精度和实现成本,才是实战真需求。

实战中的信道建模注意事项

  • 测量数据优先: 用 VNA 实测 S 参数,转成时域脉冲响应。仿真模型只能参考,实测才是金标准。
  • 噪声功率要匹配: 根据接收机噪声系数设置 SNR,别用太理想的噪声值。
  • 考虑非线性: 如果 TX/RX 有非线性,均衡器很难补偿,需要在信道模型里加一个幅度压缩。

下图展示了从发送信号到接收信号的建模流程,以及均衡器作用点:

信号模型与信道建模关系 发送信号 s(t) 信道冲激响应 h(t) 加性噪声 n(t) 接收信号 r(t) 均衡器输入 均衡器在接收信号上工作,目标是逆卷积恢复发送信号

把模型建好,均衡器的系数更新才能对症下药。下一刀怎么切?我会用这个模型去跑 LMS 算法,看看收敛曲线是不是合理。