3、抖动分类:随机抖动与确定性抖动归纳总结

说到抖动分类,我个人习惯先把它拆成两大阵营:随机抖动(RJ)和确定性抖动(DJ)。为什么要这样分?其实很简单——它们的来源、统计特性和处理方法完全不同。你要是能把这两个大方向吃透,后面学抖动分解算法基本就通了。

我入行那会儿,第一次拿到示波器上的眼图测量结果,看到几十皮秒的抖动,心里直犯嘀咕:这么多抖动到底哪来的?后来带我的老工程师甩给我一句话:“先去分清是随机的还是确定的,别瞎分析。”嗯,从那以后我就记住了——分类是第一步。

3.1 随机抖动(RJ)——那个“不讲武德”的正态分布

RJ 的核心特征:没有上限,没有下限,理论上可以取任何值。它由热噪声、散粒噪声、闪烁噪声等物理效应产生。

  • 概率密度函数:高斯分布(正态分布)。
  • 峰值-峰值:理论上无穷大,实际工程中通常用 RMS(均方根)来表征,然后按某个误码率(如 10⁻¹²)换算峰峰值。
  • 不可消除:只能通过降低系统噪声来减小,但永远无法完全消除。
一点经验:我在项目中遇到过客户反复追问“RJ 的峰峰值到底是多少”,我告诉他们:你给一个 BER 门限,我反算一个等效峰峰值。不然光说 RJ 是高斯分布,对方总觉得你没给结论。

RJ 的数学模型很简单:σRJ 就是标准方差。多个独立随机源叠加后,总和仍然是高斯分布,方差相加。这一点在实际测量时特别好用——你测到的总 RJ 方差,可以直接看作是各独立随机源的方差之和。

3.2 确定性抖动(DJ)——有迹可循的“肇事者”

DJ 和 RJ 刚好相反,它有边界,有规律,甚至能追溯到具体电路节点。我常说,找 DJ 就像破案,只要线索足够,一定能找到元凶。

DJ 下面又可以分三个子类:

  1. 周期性抖动(PJ)——来自电源噪声、串扰、开关频率耦合。波形在时间轴上以固定周期出现,频率通常是已知的(比如开关电源的开关频率)。
  2. 数据相关抖动(DDJ)——也叫码间串扰(ISI),和传输数据的具体模式挂钩。比如“1010”和“1111”两种模式下边沿位置不同。你在 SPI 或 DDR 总线上常能见到。
  3. 占空比失真(DCD)——顾名思义,上升沿和下降沿的阈值点不对称导致的脉冲宽度偏移。常见于时钟分配路径。
随机抖动 vs 确定性抖动对比
特性 随机抖动 (RJ) 确定性抖动 (DJ)
概率分布 高斯分布(无界) 有界分布(如双峰、均匀)
峰值-峰值 理论无穷大(依赖 BER) 有明确上下界
产生根源 热噪声、闪烁噪声 电源、串扰、ISI、DCD
是否能消除 只能减小,不能消除 可以消除或大幅压缩
测量后处理方法 统计建模(拟合高斯) 取边界法、频谱分析

3.3 数学上的“合体”——卷积视角

实际测量到的总抖动,是 RJ 和 DJ 的卷积结果。你说这怎么理解?

把 DJ 看作一个确定性的“形状”,RJ 则是给它糊上一层高斯模糊。所以总抖动的概率密度函数(PDF)就是:

PDF_total(t) = PDF_DJ(t) ∗ PDF_RJ(t)

其中 ∗ 表示卷积。你想想看,如果 DJ 是双峰分布(比如占空比失真导致两个边沿位置),被高斯核一模糊,出来的形状就不那么明显了。这也是为什么有时候你在直方图上只能看到一个胖峰——其实是 RJ 把两个峰“涂”到一起了。

注意:如果直接拿总抖动的峰值-峰值来当 DJ 的峰峰值,结果会偏大。我曾有一次被测试报告坑过——对方把总抖动峰峰值直接当 DJ 算,结果裕量判断错误,板子改版后才发现问题。所以一定要先把 RJ 剥离出来,再做 DJ 分析。

3.4 我常用的一条决策链

在做抖动分解时,我给团队定了一个简单的流程:

  1. 采集大量过零点时间(至少 200k 个样点)。
  2. 画直方图,看形状。如果只有一个高斯峰,大概率全是 RJ;如果出现两个或多个峰,一定有 DJ 成分。
  3. 用双狄拉克法(Dual Dirac)分离 RJ 和 DJ——这个后面章节会细讲,这里先记下名字。
  4. 对 DJ 部分进一步做频谱分析,找周期性分量;再对比数据眼图模式,看 DDJ 和 DCD。
一句话总结:先分离 RJ / DJ,再细化子类。这个顺序不能乱。你直接去抓 PJ 源,万一 RJ 贡献了 80% 的抖动,那全是白费力气。
抖动分类结构图 总抖动 随机抖动(RJ) 高斯分布,无界 确定性抖动(DJ) 有界可定位 PJ(周期) DDJ(码间串扰) DCD(占空比失真) 说明:实际抖动是 RJ 与 DJ 的卷积。分离后 对 DJ 子类逐个排查源,能最大化测试效率。

你看到上面这个分类图了吧?左侧 RJ 只用一个节点,右侧 DJ 却分了三个子节点。这是因为 DJ 的排查方向更多,每个子类对应不同的根源和修复手段。

3.5 常见误区与避坑

  • 把总抖动的直方图直接当高斯拟合:如果 DJ 成分很强,拟合出来的 σ 会偏大。先做 DJ 剥离,再拟合。
  • 忘记 DCD 的双峰形态:我曾有一次分析 DDR 时钟,发现眼图张得不够开,直方图两个小峰。一开始以为是 PJ,后来用眼图模板一量,发现是差分信号有共模偏移,DCD 导致的。改驱动能力后就好了。
  • 忽视低频噪声对 RJ 测量的影响:低频闪烁噪声会让长时间测量下的 TIE 漂移,导致 RMS 越来越大。测量时间窗应该固定,或者在频谱上把低频成分单独处理。
我的习惯:刚拿到一组抖动数据时,先画时域 TIE 曲线,再看直方图,最后做频谱。三步下来,RJ/DJ 分得清清楚楚。不要直接上统计工具——先肉眼扫一遍数据,你会少走很多弯路。

分类这件事,看起来基础,但决定了后续所有分析的正确性。你要是把 RJ 当 DJ 去定位源,那花一个月也找不到。反过来,把 DJ 当 RJ 去容忍,那系统误码率永远降不下来。好了,分类这块先聊到这儿,后面我们正式进入分解算法。