4、抖动分解的基本框架
你有没有想过,一个信号里的抖动,其实可以像剥洋葱一样,一层层拆开来看?
我过去给一个高速ADC做测试,总抖动测出来很大,但始终找不到根因。后来才意识到,我根本没把抖动拆开看。今天我们就聊聊这个“拆”的框架。
4.1 总抖动的拆解
总抖动 (TJ),说白了就是所有抖动来源叠加之后的结果。按照行业惯例,我们一般把它分成两大块:
- 随机抖动 (RJ) —— 无界、服从高斯分布。
- 确定性抖动 (DJ) —— 有界、可重复、有规律可循。
DJ 里边还能再细分。我个人习惯这么分:
| 类型 | 缩写 | 典型来源 |
|---|---|---|
| 数据相关抖动 | DDJ | 码间干扰、传输线损耗 |
| 周期相关抖动 | PJ | 电源噪声、时钟串扰 |
| 占空比失真 | DCD | 上升/下降时间不对称 |
| 不相关有界抖动 | BUJ | 邻近通道耦合 |
你想想看,RJ 是随机游走的,DJ 是有迹可循的。正是这个差异,给了我们分离它们的可能。
4.2 分解的数学基础
抖动的数学本质是概率密度函数 (PDF) 的卷积。嗯,这里要注意:
h_TJ(t) = h_RJ(t) * h_DJ(t)
其中 h 代表各分量的 PDF。我们在示波器上看到的总抖动直方图,就是 RJ 的钟形曲线和 DJ 的双峰(或更复杂)分布卷积出来的结果。
数学上分离它们,常见三条路:
- 矩估计法:利用峰度和偏度直接计算 RJ 方差。
- 频谱分析法:在频域看 PSD,抽掉 PJ 的谱线。
- 直方图拟合法:用双狄拉克模型拟合 TJ 双尾,倒推 DJ。
核心公式(双狄拉克模型):
TJ(BER) ≈ DJ + 2 × Q(BER) × RJ,其中 Q 是逆误差函数。
这个公式一出来,你就知道为什么高频数字测试要测那么多眼图了——不拟合尾部,根本算不出 TJ。
4.3 基本假设
既然是模型,必然有假设。我记得有次团队讨论得特别激烈,就是因为有人忽略了下面这些前提:
常用技巧:
我建议在做 PJ 分离之前,先用频谱分析看看有没有明显的单频尖峰。如果电源纹波 50MHz 对应的谱线太突出,那先用滤波器掐掉它,再做分解,结果会干净很多。
三个最关键的假设:
- RJ 是严格高斯分布 —— 如果有非高斯尾部(比如闪烁噪声),模型会低估。
- DJ 是有界的 —— 稳态双峰假设,非周期抖动冲击不适用。
- 各分量统计独立 —— 实际上 RJ 和 PJ 可能存在交互,比如热噪声调制时钟频率。
常见陷阱:
我曾经在一个案例中,忽略了 RJ 的非高斯尾部。结果算出来的 TJ 偏小 30%,导致系统误码率阈值得到了错误结论。一句话:模型再漂亮,也别忘了回头看一眼原始数据。
——————
当然,你还可以选用密度图、瀑布图等视觉工具交叉验证。但核心始终不变:理解 TJ 的组成,选对数学工具,并时刻问自己:“我的假设站得住脚吗?”
一句话总结:总抖动是一个多层次叠加问题。你只有拆出了 RJ 的尾巴,才能真正确定信道的误码率边界。而这一切,从接受“高斯假设”开始,到质疑“高斯假设”结束。