3、抖动测量基础:眼图、直方图、浴盆曲线
抖动测量这件事,说白了就是用三种工具看同一个问题:信号过零点到底偏了多少?我个人刚入行时,老觉得眼图、直方图、浴盆曲线是三个东西。后来被导师骂过一次才明白,它们其实是同一个故事的三个章节。
你先用眼图把信号“摊开”,看看抖动长什么样;再用直方图把抖动数值“数出来”,分出随机和确定成分;最后用浴盆曲线“外推”到极低误码率,估算系统还有多少余量。今天我们就一次讲透。
3.1 眼图 — 抖动最直观的“照片”
眼图怎么来的?把重复的波形按比特周期重叠在一起。触发点对准时钟边沿,屏幕上一堆轨迹就叠出一个类似眼睛的形状。眼睛张开的大小、干净程度,直接反映信号质量。
核心参数一瞥
- 眼高 (Eye Height) — 垂直噪声+ISI 导致的电平损失
- 眼宽 (Eye Width) — 水平方向抖动导致的采样窗口缩小
- 抖动 (Jitter, p-p) — 过零点波动的峰峰值
- 信噪比 (SNR) — 眼图开度与噪声的比值
我在项目中遇到过最坑的事:用一台老采样示波器看 28 Gbps 信号,眼图看着挺张开,但实际误码率死活压不下去。后来发现示波器的带宽不够,把高频抖动给滤掉了。你想想看,示波器本身成了滤镜,这种坑踩一次就够了。
3.2 直方图 — 把抖动“数清楚”
眼图只能给你一个“整体感觉”,但抖动的构成我需要量化。这时就用到了时间间隔误差(TIE)直方图。
TIE 直方图的横坐标是时间偏差,纵坐标是出现的次数。假如抖动是纯随机(高斯分布),直方图就是单峰钟形;假如有确定性抖动(例如占空比失真),就会出现双峰甚至多峰——两个峰之间的距离恰好是 DJ 的大小。
| 指标 | 含义 | 用途 |
|---|---|---|
| σ (标准差) | 随机分量 (RJrms) | 估算高斯分布的扩散程度 |
| μ | 均值偏移 | DCD (占空比失真) 的大小 |
| 双峰间距 | DJ (峰峰值) | 确定性抖动的幅度 |
| 直方图尾部 | 非高斯尾部 | 判断是否有 PJ 等周期性分量 |
我的经验:在 FPGA 调试时,我习惯在眼图闭合的边沿处采集 TIE 直方图。如果直方图出现明显的周期性双峰(像两个汤圆黏在一起),多半是电源噪声耦合到了时钟上。这时候改个去耦电容布局都比调时序参数管用。
3.3 浴盆曲线 — 从概率角度看“眼还能不能闭上”
浴盆曲线(Bathtub Curve)是个很形象的叫法。你把眼图水平方向切开很多“切片”,在每个切片上测量 BER(误码率)。靠近眼中央 BER 极低,往两边 BER 快速上升,画出来就像个浴缸——底部是平的,两侧壁陡峭。
为什么要用浴盆曲线?因为示波器采到的抖动样本有限(比如 1M 个边沿),但通信系统要求 BER 到 10⁻¹² 甚至 10⁻¹⁵。直方图尾部的信息不够,必须用数学模型外推。传统双狄拉克法(Dual Dirac Model)把 RJ 假设为高斯分布,DJ 为双高斯偏移,然后算出总抖动 TJ = DJ + 2×Q×RJ,其中 Q 是 BER 对应的分位点(10⁻¹² 时 Q≈7.0)。
我曾踩过的坑:某次用这个公式算下来 TJ 很小,但实际系统经常丢包。后来发现确定性抖动不是双狄拉克能描述的——它有周期成分,而且低频 PJ 会缓慢漂移。浴盆曲线如果是“倒钟形”而不是标准浴缸形状,就说明有严重的低频抖动或钟形失真。这时候别再用简单公式了,得上频谱分析做 JTF(抖动传递函数)。
3.4 三者的关系 — 一张图说清
下面这张图是我个人的理解框架。眼图提供原始数据,直方图做统计分解,浴盆曲线用于误码率预测。三个工具缺一不可。
3.5 实用口诀 — 拿来就用
- 眼图看“形状”:眼睛睁得够不够大,交叉点漂不漂。
- 直方图看“成分”:单峰还是双峰?高斯尾巴还是周期突起?
- 浴盆曲线看“余量”:在目标 BER 下,眼宽还有多少皮秒?
我个人调试时习惯三步走:先开眼图,记一下抖动 p-p 值;然后切到 TIE 直方图,读一下双峰间距;最后设一个目标 BER(比如 1e-12),自动生成浴盆曲线。如果眼宽 > 0.3 UI 且浴盆曲线壁垂直度好,基本可以放心交板。
别小看这三个工具,很多高速链路问题就是靠它们一层层剥出来的。把这次内容反复看上两遍,下次看示波器就不会只盯着“眼好不好看”了。