折腾音频链路或者高速接口的人,兜兜转转都会撞上这三个词:预加重、去加重、均衡。它们经常挤在同一张框图里,位置不同、叫法不同,但指向的其实是同一件事的三个侧面——通道把高频吃掉了,那就在发的时候先把它抬起来,收的时候再压回去,或者在接收端做一次反向补偿,让最后的频响重新变平。听起来简单,真动手的时候坑多得要命:时间常数被前后级阻抗拉偏、标志位在抓轨环节悄悄丢掉、SerDes 的加重比例看错了归一化基准、把响度均衡和电池均衡混成一锅粥。
这篇东西把我这些年在这三个词上推过的公式、量过的数据、翻过的车整理一遍。范围从 FM 模拟广播的 50 µs / 75 µs,到 CD 的 50/15 µs 预加重标志位,再到今天 GHz 级链路上的 FFE、CTLE、DFE,最后把被用滥的"响度均衡"和"电池均衡"掰扯清楚——它们和频率响应压根不是一回事,但搜索结果里总是混在一起。搞硬件的、玩音频回放的、被眼图折磨过的,应该都能在里面找到能直接抄的部分。
1. 高频总是第一个被牺牲:三个角色其实在干同一件事
1.1 通道对高频做了什么
任何一条真实的传输通道——同轴线、双绞线、PCB 走线、磁带的磁头间隙、FM 的调制解调链路——都有两个共同的毛病:低频几乎原样通过,高频被一层层削掉。原因主要有两个。一是趋肤效应,导体里电流往表面挤,等效电阻随频率的平方根上升,损耗也就跟着涨;二是介质损耗,绝缘材料的损耗角正切让衰减基本和频率成正比。两者叠在一起,插入损耗曲线就是一条单调上升的斜线,在中高频段近似按 f 或者 √f 往上走。
打个比方:低频信号像一辆满载的重卡,路上有减速带也能稳稳压过去;高频信号像摩托车,同样的减速带就能把它颠散架。所以一条二十英寸的背板走线,在几百兆赫兹上可能只掉两三个 dB,到 5 GHz 就能掉二十个 dB 以上,而数字信号的能量恰恰就在那一段。
1.2 三个角色的分工差异
很多人第一次看到预加重和去加重,会以为一个是"加强"、一个是"减弱",是对立的两套东西。其实它们是一对互补的曲线,必须成套出现才有意义。
| 角色 | 位置 | 做什么 | 实现方式 |
|---|---|---|---|
| 预加重 pre-emphasis | 发送端 / 录制端 | 按固定曲线抬高高频 | 高通网络、FIR 抽头、模拟 RC |
| 去加重 de-emphasis | 接收端 / 回放端 | 按互补曲线压低高频 | 一阶 RC 低通、DAC 内部数字滤波 |
| 均衡 equalization | 接收端(可自适应) | 按实际通道响应做补偿 | CTLE、DFE、自适应 FFE、参量 EQ |
关键区别在于:预加重和去加重是固定配对的,曲线由标准或者协议规定死,两边必须严丝合缝;而均衡是弹性的,它面对的是这条具体的线、这块具体的板,甚至可以随温度、电压、老化实时调整。把这两个概念混在一起,是后面所有调试混乱的源头。
1.3 用一个乘式把它们串起来
整个链路可以写成一个简单的乘式,假设系统在带内是线性的:
H_pre(f) × H_channel(f) × H_de(f) × H_eq(f) ≈ 1
理想情况下,H_pre × H_de 等于 1,预加重和去加重互相抵消,剩下的 H_eq 专门去抵消 H_channel。如果最后这个乘积在带内是一条平线,说明补偿到位了;如果高频还有残留的凸起或者凹陷,说明某一段没对准。这个框架看着朴素,但它是后面所有调试动作的判断依据——你可以先测出 H_channel,再看还差多少 dB,就知道该往预加重上加、还是该往均衡器上加。
另外有一点值得强调:预加重抬高高频的同时,也抬高了高频的噪声,但去加重把信号和噪声一起压了回去,所以在接收端看来,高频段信噪比是净改善的。这就是为什么这个技巧活了快一个世纪还没被淘汰——它不是修频响,它是用发送端的余量换接收端的信噪比。代价是发送端的峰值摆幅变大,功放或者驱动器的线性范围被吃掉一块,这才是它真正的成本。
2. FM 广播里的 50 µs 和 75 µs:时间常数不是拍脑袋定的
2.1 一阶 RC 就是全部
模拟时代的去加重电路简单到不可思议,就是一颗电阻加一颗电容构成的低通:
输入 o----[R]----+----o 输出 | [C] | GND它的传输函数是 H_de(s) = 1 / (1 + sτ),其中 τ = R × C。预加重就是它的严格倒数 H_pre(s) = 1 + sτ,幅频响应是 A(f) = √(1 + (f / f1)²),转折频率 f1 = 1 / (2πτ)。在 f1 以下几乎平直,过了 f1 就以每倍频程 6 dB 的斜率往上冲。
50 µs 对应 f1 = 1 / (2π × 50e-6) ≈3183 Hz;75 µs 对应 f1 = 1 / (2π × 75e-6) ≈2122 Hz。这两个数字是整个模拟预加重体系的地基,后面所有计算都从它们出发。
2.2 手算一遍 15 kHz 到底抬了多少
理论推完总要落到具体的数字上,否则调试的时候心里没底。把 f1 代进去算各个频点的提升量,结果如下表:
| 频率 | 50 µs 预加重 | 75 µs 预加重 |
|---|---|---|
| 1 kHz | +0.41 dB | +0.87 dB |
| 5 kHz | +5.40 dB | +8.16 dB |
| 10 kHz | +10.36 dB | +13.66 dB |
| 15 kHz | +13.66 dB | +17.06 dB |
| 转折点 f1 | +3.01 dB(3183 Hz) | +3.01 dB(2122 Hz) |
拿 50 µs、15 kHz 这一格验算一遍,过程写出来,方便你自己套用其它数值:
- 比值 f / f1 = 15000 / 3183 ≈ 4.713
- 平方得 22.21,加 1 得 23.21
- 开根号得 4.818
- 取对数乘 20:20 × log10(4.818) ≈13.66 dB
表里有个漂亮的对称:50 µs 在 10 kHz 处的提升,和 75 µs 在 15 kHz 处的提升,都是 13.66 dB。这不是巧合,是两条曲线在各自频率轴上同比例拉伸的结果。
顺便注意到 1 kHz 处的 +0.41 dB。这个零点几 dB 的偏移是真实存在的,它意味着标准测试音在预加重链路里会被略微抬起来一点点,做电平校准时如果忽略它,会带来千分之几的系统误差。
2.3 电阻电容怎么选,以及最常见的那个坑
按 τ = RC 反推,想要 50 µs:R = 10 kΩ 配 C = 5 nF;R = 6.8 kΩ 配 C = 7.5 nF 得到约 51 µs。想要 75 µs:R = 10 kΩ 配 C = 7.5 nF;R = 15 kΩ 配 C = 5 nF 也刚好。
注意:这里有个新手十有八九会踩的坑——把 RC 网络直接挂在某个输出端后面。后级的输入阻抗会并到 R 上,等效电阻变小,时间常数跟着变小,转折频率往上跑,高频就没压够。
举个具体的例子。你设计了 R = 10 kΩ、C = 5 nF,理论 τ = 50 µs。但后级输入阻抗是 10 kΩ,并联之后等效 R 变成 5 kΩ,实际 τ 只剩 25 µs,转折频率从 3183 Hz 升到 6366 Hz。结果 15 kHz 处本该压掉 13.66 dB,实际只压掉约 8.5 dB,剩下的 5 dB 高频原封不动地进了功放,听感上就是发亮、齿音刺、镲片像砂纸。
正确做法只有一条:用低阻源驱动这个网络,再用高阻缓冲器把信号取走。运放跟随器是最省事的方案,输入阻抗做到兆欧级,对 RC 的扰动基本可以忽略。如果用的是分立晶体管,那就得老老实实算输入阻抗,别偷懒。
2.4 时间常数用错了会怎样
50 µs 的节目内容,用 75 µs 的去加重网络回放,会是什么效果?把两条曲线在 15 kHz 处相减:-17.06 dB + 13.66 dB =-3.4 dB。也就是高频被多压了三个多 dB,声音发闷、通透感丢失、空气感整个没了。
反过来,75 µs 的内容用 50 µs 去加重,则是在 15 kHz 处多抬了 3.4 dB,听感上偏亮偏燥,长时间听会累。这种错误在跨地区使用老设备的时候特别常见——同一个年代的器材,不同地区采用的时间常数不一样,说明书上又往往只写"已符合当地广播标准",不写具体数值。可以自己搭一个简单电路去测:输入 15 kHz 正弦波,量输出幅度,比中频段掉了多少,就能反推出时间常数。这个方法我实测过很多次,比翻资料靠谱。
3. CD 和数字音频:那个总被人忽略的预加重标志位
3.1 50/15 µs 的搁架曲线
CD 标准里的预加重和 FM 那套不太一样,它用了一条搁架式曲线,涉及两个时间常数:50 µs 和 15 µs。对应两个转折频率 3183 Hz 和 10610 Hz。低频段平直,过了 3183 Hz 开始以 6 dB/倍频程上升,到 10610 Hz 之后不再继续涨,而是变成一条水平线。这个天花板的高度是:
20 × log10(50 / 15) ≈ 20 × log10(3.333) ≈ 10.46 dB所以 CD 预加重的最大提升是10.46 dB,不会像 FM 那样一路涨到 15 kHz 还在爬。这条曲线的中点是两个转折频率的几何平均 √(3183 × 10610) ≈ 5811 Hz,在这个频率上去加重大约是 -5.23 dB。
3.2 标志位到底藏在哪
问题来了:一张 CD 到底有没有带预加重,回放端怎么知道?答案是 IEC 60958 通道状态字里的一个 emphasis 标志位。这个标准同时覆盖了消费级的 S/PDIF 和专业级的 AES3,两者在通道状态字的格式上略有差别,但都留了位置来标示"这段音频有没有预加重"。播放器读到这个位,就应该自动切换到对应的去加重曲线;DAC 芯片很多也提供内部去加重功能,可以通过引脚或者寄存器位使能。
实际抓包的时候,你可以在通道状态字的第 0 字节里找到这个字段。消费格式下通常用一位表示有无,专业格式下同理,具体的位编号和编码查一下手边器件的手册就能确认。用软件工具(比如 Linux 下的 iecset)可以直接读取和设置这些标志,做实验很方便。
3.3 三个环节最容易掉链子
这条链路看起来严密,实际上有三个地方经常出问题,而且都不容易察觉。
第一个是抓轨环节。有些抓轨软件在写文件的时候压根不保留预加重标志,抓出来的音频文件看着正常,实际上已经丢了这个信息。回放端读不到标志,自然不会做去加重,结果就是高频被多抬了最多 10.46 dB,听着非常亮、颗粒感重。这也是圈子里讨论"早期 CD 为什么听着刺耳"的时候经常被提起的一个技术原因。
第二个是转码和重采样环节。从一种容器换到另一种容器、从 44.1 kHz 重采样到 48 kHz,标志位经常在中间被丢掉。更有意思的是,如果重采样器不知道源material带了预加重,它会把这条本来就倾斜的曲线当成正常节目内容原样搬过去,于是标志丢了、曲线还在,双重损失。
第三个是回放端自作聪明。有的播放器默认关闭去加重,理由是"大部分内容没有预加重,开着反而容易误伤"。这个逻辑可以理解,但代价是那些真的带预加重的老录音永远得不到正确回放。
判断方法其实不复杂:找一段你熟悉的、确知年代的高频丰富的素材(镲片、弦乐泛音、人声齿音),在开关去加重之间来回切。如果差异在 10 kHz 以上能听出七八个 dB 的能量变化,那说明标志位是起作用的;如果开关毫无变化,那要么是源本身没有预加重,要么就是标志在某个环节丢了。用频谱工具看更直观,10 kHz 附近七八个 dB 的落差是肉眼可见的。
4. 高速数字链路:从 TX FFE 到 RX 的 CTLE 与 DFE
4.1 预加重和去加重,其实是同一个波形的两种叫法
这一条必须放在最前面说,因为它造成的误解最多。在高速串行链路里,发送端做的这件事,有人叫它 pre-emphasis,有人叫它 de-emphasis,两者的波形完全一样,差别只在归一化的参考点是哪个。
具体的波形长这样(以简单的 2 抽头 FIR 为例,比特序列 0001010001):连续相同的比特会稳定在某个幅度 A,而紧跟在一个跳变之后的那个"孤立比特",幅度是 B,且 B > A。如果你把参考点定在 A 上,那这个动作叫"去加重"——因为稳定态被相对地压低了;如果你把参考点定在 B 上,那它就叫"预加重"——因为跳变比特被相对地抬高了。
提示:看器件手册的时候,第一件事是确认它给的百分比或者 dB 值是以哪个电平为基准的。同一个波形,两种说法算出来的数字能差出一倍以上,调的时候会差得很远。
4.2 抽头系数怎么算
用标准的 2 抽头 FIR:y[n] = c0 × x[n] + c1 × x[n-1],约束条件 c0 + c1 = 1,保证长时间连比特时的直流增益为 1。当 c1 取负值时 c0 就大于 1,跳变比特被抬起来。可能的输出电平有三个:0、1(连续比特稳定态)、c0(孤立跳变比特)。
| 目标加重量 | c0 | c1 | 三电平取值 |
|---|---|---|---|
| 0 dB(关闭) | 1.00 | 0.00 | 0 / 1 |
| 3.5 dB | 1.50 | -0.50 | 0 / 1 / 1.5 |
| 6 dB | 2.00 | -1.00 | 0 / 1 / 2 |
| 9 dB | 2.82 | -1.82 | 0 / 1 / 2.82 |
验证一下 3.5 dB 那一行:孤立跳变比特的幅度是 c0 = 1.5,连续比特稳定态是 c0 + c1 = 1.0,比值 1.5 / 1.0,取对数乘 20 得 20 × log10(1.5) ≈ 3.52 dB,对上了。
从表里能看出一个很实际的问题:加重量越大,c0 越大,驱动器的峰值摆幅要求越高。9 dB 的情况下峰值是稳态的 2.8 倍,如果你的驱动器供电和线性范围撑不住,信号会在顶部削平,眼图不但没改善反而更糟。这就是为什么实际项目里很少有人把 TX 加重开到 9 dB 以上,宁可把一部分补偿任务丢给接收端的均衡器。
4.3 接收端的 CTLE 和 DFE 各管什么
TX 加重只能补偿通道损耗的一部分,剩下的得靠接收端。主流的两件武器是 CTLE 和 DFE,它们的特性完全不同,配合使用才能覆盖完整。
CTLE(连续时间线性均衡器)本质是一个带峰化的放大器,传输函数形如 H(s) = A_dc × (1 + s/ωz) / (1 + s/ωp),零点频率低于极点频率,于是高频段的增益比低频段高,形成一个"峰"。典型参数是 DC 增益 -8 dB 左右,在奈奎斯特频率处有 8 到 12 dB 的峰化,净效果是把倾斜的通道响应拉平。它的优点是宽带、实时、不需要判决反馈;缺点是它不区分信号和噪声,把高频抬起来的同时也把高频噪声一起抬起来了。
DFE(判决反馈均衡器)走的是另一条路。它根据已经判决出来的历史比特,预测当前比特会受到的码间干扰,然后从输入里减掉。因为用它减的是"已知的历史比特造成的干扰",所以它不放大噪声,这是它最大的优势。缺点有三个:只能处理后标干扰(前标干扰得靠 FFE 或者 CTLE),存在错误传播的风险(判决错了会连着错下去),以及抽头数量受限。
实际链路里的顺序通常是:信号先进 CTLE 做粗略的宽带补偿,把眼图从"完全闭合"救到"勉强能睁开",然后进 DFE 处理残余的后标干扰,把眼高再往上抬一截。
4.4 粗算一下链路预算
以一块典型的 FR4 背板为例,插入损耗大致是每英寸每 GHz 零点几 dB 的量级,而且随频率上升得比线性更快。一根 20 英寸的走线在 5 GHz 附近掉 18 到 22 dB 是很常见的事。
把补偿能力摆在一起看:
| 环节 | 典型补偿能力 | 代价 |
|---|---|---|
| TX FFE 预加重 | 3.5 ~ 9 dB | 峰值摆幅、驱动器线性度 |
| RX CTLE | 8 ~ 12 dB | 同时放大高频噪声 |
| RX DFE | 6 ~ 10 dB | 只对后标有效,有错误传播风险 |
三者相加看着能到 25 dB 以上,但不能简单相加,因为每一级的噪声增益不一样,DFE 那部分是不带噪声代价的,CTLE 那部分是带的。真实的预算计算需要把每一级的噪声系数、通道的 S 参数、以及接收机的灵敏度一起丢进仿真里跑。我一般会先做一次通道 S21 测量,把实测曲线和仿真模型对一下,确认模型没跑偏,再去调抽头。
5. "均衡"这个词被用滥了:三个完全不同的东西
5.1 响度均衡不是频率均衡
在播放器或者视频软件里看到"响度均衡"这个选项,绝大多数情况下它跟频率响应一点关系都没有。它做的是把不同节目之间的整体响度拉到同一个水平线上,技术上通常基于 ITU-R BS.1770 这套响度测量方法,单位是 LUFS 或者 LKFS。它用一个 K 加权滤波器模拟人耳的频率敏感度,把整个节目的响度积分成一个数字,然后再算出一个增益,让所有内容都朝目标值靠拢。
注意这里的操作是整体增益,不是分段 EQ。一段音乐被压低 3 dB,是所有频段一起低 3 dB,频响形状一点没变。很多人以为开了"响度均衡"声音会变厚变暖,其实是心理声学在起作用——响度变化本身就会被感知成音色变化。
还有一个更容易混淆的概念是动态范围压缩。压缩是把大音量的部分压下去、小音量的部分抬上来,改变的是动态范围;响度均衡改变的是整体电平。有些软件把这两件事打包在一个开关里,还起了个模糊的名字,用之前最好看一下它的说明文档。
5.2 等响曲线和音量联动的低频补偿
这个才是真正和频率响应有关的"均衡",也是唯一一个能跟预加重扯上关系的东西。人耳的频率敏感度是随声压级变化的:在 40 phon 这种偏小的听音量下,20 Hz 要和 1 kHz 听起来一样响,声压级得高出五六十个 dB;而在 80 phon 的大音量下,这个差距会缩到十几 dB 甚至更小。这就是著名的等响曲线(ISO 226),也是老式功放上那个"Loudness"按钮存在的理由。
它的实现方式通常是这样的:在音量小的时候,按一条搁架式曲线把低频抬起来几个 dB,高频也略微抬一点;音量上去之后,补偿量逐渐收回,到某个参考音量时完全归零。这个参考音量一般取混音时的标准监听声压级。
有意思的是,这条补偿曲线的形状和前面讲的 CD 预加重搁架曲线,在数学上是同一种结构——都是两个转折频率之间的一段过渡。区别只在于控制量:预加重的控制量是频率,等响补偿的控制量是音量旋钮的位置。
提示:如果音源本来就带预加重、而你的播放链路上又开了一个高频提升的 EQ,那就是两次补偿叠在一起,高频会被抬得离谱。调试的时候一定要先确认音源状态,再动 EQ。
5.3 电池均衡:同名不同物的另一个世界
搜索这三个词的时候,很容易撞到"EG2153 锂电均衡驱动电路图"这类结果。这里的"均衡"指的是电量均衡,跟频率响应没有任何关系。
串联的锂电池组,每一节电芯的容量、内阻、自放电率都有微小差异,而且这个差异会随着循环次数放大。充电的时候,先到上限的那一节会触发保护,整组就停了;放电的时候,最先到底的那一节又限制了整组。这就是典型的木桶效应——整组的可用容量由最弱的那一节决定。
解决思路分两大类。被动均衡最直接:每节电芯并联一个开关加一个耗散电阻,检测到电压偏高的那节就把开关合上,把多出来的电放掉。结构简单、成本低,缺点是能量白扔掉、会发热,均衡电流通常只有几十毫安。主动均衡走能量搬运的路线,用电容、电感或者变压器把电量从高的那节搬到低的那节,效率高得多,但拓扑复杂、元器件数量多、成本上去了。
那为什么会有"均衡驱动电路"这种专门的芯片?因为串联电芯的每一节参考电位都不一样,越往上越高。要驱动第 N 节电芯的均衡开关,就得有能耐住 N 倍电芯电压的驱动级和电平搬移电路。专用芯片把多路驱动、电平转换、耐压都集成在一起,省掉了大量分立器件。具体到某个型号的引脚定义和外围参数,还是得回到对应型号的手册上去看,不同厂家、不同代次的产品差别不小。
这里有个实际工程上的心得值得说:均衡是"锦上添花",不是"雪中送炭"。它解决的是不一致问题,不是容量不足问题。算一笔账就明白了——如果两节电芯差了 100 mAh,用 50 mA 的被动均衡去拉平,需要整整两个小时,而实际充电过程未必有这么久。所以真正靠谱的做法是在成组之前做严格的分选配组,把容量和内阻接近的电芯挑到一起,均衡只在运行过程中处理那些缓慢积累的漂移。
6. 从扫频到眼图:怎么确认补偿真的做对了
6.1 模拟链路用反相叠加法验证
这是我最常用的一个方法,原理简单但非常灵敏。核心思路是:如果预加重和去加重真的互为倒数,那把它们串起来,整个链路的传输函数应该等于 1,也就是一个理想的冲激响应——一个孤零零的尖峰,前后没有任何拖尾。
具体操作:在发送端灌一段最大长度序列或者粉红噪声,从接收端采集输出。对采集到的数据做反卷积,得到整个链路的冲激响应。如果补偿准确,你会看到一个主峰加上几乎平坦的底噪;如果时间常数对不上,主峰前面或者后面会出现明显的旁瓣——旁瓣的位置直接告诉你误差是超前还是滞后,旁瓣的幅度告诉你差了多少。这个方法比单纯扫频看幅频曲线要直观得多,因为相位信息也在里面了。
没有条件做反卷积的话,退化版的做法是纯扫频:输入频率从 20 Hz 慢慢扫到 20 kHz,记录输出幅度,画出来的曲线应该是一条平线。偏差在 ±0.5 dB 以内就可以认为合格,超过 1 dB 就需要检查时间常数了。
6.2 数字音频链路的两条客观判据
对于 CD 或者 S/PDIF 这条链路,除了用耳朵听,我更推荐两个客观判据。
第一条是带宽能量对比。取一段高频丰富的素材,分别强制开启和关闭去加重,用频谱分析工具看 10 kHz 以上的总能量差。按照 50/15 µs 曲线的计算,10 kHz 附近的理论差异是 7 到 8 dB,15 kHz 附近是 10.46 dB。实测出来的差值落在这个范围内,说明开关正确定义并生效了;如果差值明显偏小,检查是不是网络参数不对;如果差值是零,那就是标志位根本没传到。
第二条是标准测试碟。早期发行的很多测试碟里包含专门录制的预加重扫频信号,用它做参考最省事。可惜这类碟片不容易搞到,退而求其次,用一段自己用软件生成的 50/15 µs 预加重扫频信号烧成盘也可以,方法是一样的。
6.3 高速链路:眼图和浴盆曲线
GHz 级链路没法靠听,全靠量。标准流程是走三步。
先测通道。用矢量网络分析仪量出通道的 S 参数,重点是 S21 的幅频和相频曲线。这一步的意义在于确认通道模型和实际情况一致——如果仿真里用的是理想 FR4 模型、实际板子用的是低损耗材料,后面所有抽头计算都是白算。
再做仿真。把 S 参数导入通道仿真工具,扫一遍发送端加重量的组合,看哪个组合的接收端眼高最大。这里要注意仿真里有没有包含封装和过孔的模型,很多人忽略了 BGA 封装那一小段走线,结果仿真眼图漂亮、实测眼图闭合。
最后实测验证。用采样示波器或者误码仪量眼图和浴盆曲线。要看的不只是眼高眼宽这两个数字,还要看眼图的对称性。如果眼图明显偏向一侧,说明前标和后标的补偿不平衡——TX 的预加重主要管后标,如果眼图的左半边被压扁,可能需要加一个前标抽头,或者调 CTLE 的零点位置。
误码率方面,目标线通常是 1e-12 或者 1e-15,直接跑到这个量级太慢,实际都用外推:测几个较高的误码率点,画浴盆曲线,外推到目标误码率对应的眼宽。外推的时候要注意抖动分解——总抖动由随机抖动和确定性抖动组成,随机抖动是无界的,外推有没有意义就看这一步做得对不对。
6.4 我实际踩过的几个坑
最后一个部分聊聊具体翻过的车,都是文档里不会写、但真动手一定会遇到的。
归一化基准看错。器件手册写"6 dB de-emphasis",我按预加重的思路理解,调出来比预期少了 3.5 dB。后来才反应过来,它是相对于稳态电平归一化的。现在我的习惯是:拿到任何加重参数,先自己按两个基准各算一遍,看哪个能和手册给的寄存器值对上,再去配置。
抓轨工具悄悄丢标志。这个坑害我找了半天。同一张碟,用两个不同的软件抓出来的文件,一个听感正常一个明显偏亮,用频谱一看高频差了将近 10 dB。最后定位到是其中一个工具在处理 cue 和元数据的时候把通道状态信息丢了。现在的做法是抓完轨之后用工具核对一下标志位,多花十秒钟省下两小时。
CTLE 峰化过头反而恶化眼图。有一次调一个背板链路,通道损耗很大,我一路把 CTLE 的峰化往上加了 12 dB,结果眼图不但没改善,抖动还变大了。原因是高频噪声被一起放大了,噪声引起的抖动在判决时刻把眼高吃掉了。正确的做法是把 CTLE 停在一个适中的位置,剩下的余量交给 DFE 去处理——DFE 不放大噪声这一点在这一刻体现得非常明显。
加重量超出驱动器摆幅。还有一次为了补偿一个特别长的通道,把 TX 加重开到 9 dB 以上,实测眼图顶部出现削平,误码率反而上升。这个错误很隐蔽,因为在时域波形上不太容易看出来,必须把发送端的输出单独引出来看才明显。后来我把加重降到 6 dB,多出来的部分交给接收端,问题就解决了。
RC 网络被负载拉偏。这个坑前面提过,但我还是又踩了一次——用了一个输入阻抗只有 20 kΩ 的后级,直接把 50 µs 的网络拉成了 33 µs,转折频率从 3183 Hz 升到 4800 Hz,15 kHz 处少压了将近 4 dB。现在我的固定做法是在 RC 后面永远放一级跟随器,不管后级号称输入阻抗有多高。