大家在做时序相关工作的时候基本都见过,就是相位噪声曲线上那些一眼就能看出来的尖峰。这种杂散一般都是不想要的干扰,而且在频率合成这块,低幅度的小杂散还特别常见,说白了,就跟倒啤酒起泡沫一样,难免会有。
我们用的这张相位噪声图,图1所示,来自一台任意波形发生器,设置的是输出100Mhz正弦波,外加1Mhz调频。
图1
很多人其实搞不清楚杂散到底有多重要,也不知道在实际应用和故障排查里该怎么显示、怎么考量这些杂散。另外,我们也可以人为刻意产生杂散,用来做器件和系统的性能评估、参数表征。
一、什么是杂散?
专业术语spur是spurious的缩写,源自拉丁语,本意是“非正规的、虚假的”,可以去牛津词典词条里查证。日常里spur还有另一个意思,指尖刺、突出物,就像牛仔马刺、NBA圣安东尼奥马刺队那个含义。巧的是,放在我们这个场景里,两层意思都挺贴切。
在这里,杂散指的是载波或时钟频率的频谱瑕疵,和相位噪声一样都是在频域测量的。但和相位噪声不一样的是:杂散是离散的单频点分量。也正因为这样,杂散有几个很特别、很关键的特性:
1. 杂散是确定性的;
2. 杂散功率和测量带宽无关;
3. 时域上,杂散带来的峰值抖动是有界、有限范围的。
下面我挨个把这几个特性给大家掰开讲讲。
二、杂散具有确定性
杂散一般都是无用干扰,要和方波、梯形波时钟本身必需的谐波区分开。看杂散出现的具体频率,能帮我们判断它的来源,以及影响大小。
比如常见成因:板子电源噪声、信号串扰、混频效应、调制干扰、锁相环架构本身、工频谐波等等,都能产生杂散。
锁相环本质上会对输入时钟做采样,一般通过鉴相鉴频器PFD实现,所以必须抑制更新速率杂散。另外,做小数分频输出频率的锁相环,本身也容易因为小数分频机制产生杂散。
三、杂散功率与测量带宽无关
所有离散单频信号基本都符合这个规律,用频谱仪就能直接看出来。反观非确定性的随机噪声,功率是跟带宽成正比的。
看下面两张并排的曲线图:100MHz正弦载波,叠加±100kHz调频边带,当作杂散来看。波形做了5次平均,频谱扫宽设为300kHz。两张图唯一区别就是分辨率带宽RBW不一样。
左图分辨率带宽6.25kHz,右图是291Hz。从红线标注能看出来:杂散峰值幅度基本没变,但从左到右,底噪明显降下去了。我肉眼估了下,两张图底噪差大概10dB。理论上,分辨率带宽从6.25kHz缩到291Hz,噪声降幅应该是:
10*log10(6.25kHz/291Hz)=10*log10(16)=12dB
肉眼估的10dB和理论值也算是比较接近了。另外能看到,离散杂散的谱线宽度也跟着变窄了。
图2
四、杂散在时域产生的峰值抖动是有界的
每一个杂散,都可以看成是载波上的相位调制边带,它的幅度大小,就决定了它能带来多大的峰值相位偏移。这个特性在测试中特别有用,反观随机相位噪声,它造成的峰值相位偏移没有上限。
五、杂散的折算与处理
相位噪声曲线上的数值,本质是功率谱密度,按每Hz来展示,单位是dBc/Hz。然后在设定的抖动带宽内做积分,就能算出均方根相位抖动。
单位逻辑也很好理解:dBc/Hz乘以Hz就变成dBc,表征相对于载波的均方根抖动功率。之后再用统计方法,估算同一带宽内的峰值相位抖动。顺便说下,相位噪声仪器并不是真的按1Hz一格去测量,而是根据频偏范围,选用更大的分辨率带宽RBW来测。
每个杂散对均方根抖动的贡献,都可以按下面公式计算。
这里的L(f)指的是:在载波频率f0、频偏为f处的杂散功率,单位是dBc。
在计算相位噪声叠加杂散的总均方根抖动时,正确做法是:把每一个杂散单独产生的抖动功率,跟纯相位噪声产生的均方根抖动功率,做均方根和(RSS,平方和开根号)叠加。
下面举个例子给大家直观说明。左边这张图,是标称100MHz时钟的相位噪声曲线,隐藏了所有杂散。右边是同一份相位噪声曲线,但是把杂散都识别出来,并用dBc数值明确标出来了。这款仪器会用和相位噪声不一样的颜色,来显示杂散电平。
第一种情况(不包含杂散),在12kHz~20MHz带宽内算出的均方根相位抖动是668.837fs。
第二种情况(包含杂散),测出来的均方根相位抖动为878.156fs。抖动增加了约209fs,增幅大概31%。
图3
有个很有意思的问题:相位噪声测试仪是怎么自动识别杂散的?通常的做法是:先根据滑动平均算出底噪的标准差,再设定一个门限,只要某个尖峰比底噪标准差高出一定幅度,就判定为杂散。仪器默认的杂散检测灵敏度设为3倍σ,实际工程里这个值用着非常合适。
为啥这些杂散会额外增加这么多抖动呢?你看,在12kHz~20MHz频偏范围内,一共出现了三个杂散。下面表格里列出了这三个杂散,还有套用公式分别算出来的各自贡献的均方根抖动。其中由调频产生的1MHz杂散贡献最大、占主导。(杂散的频偏位置和幅度,都是直接从仪器的杂散列表里读出来的。)
| 杂散频偏(Hz) | 功率(dBc) | 计算均方根抖动 (s) | 计算均方根抖动 (fs) |
| 0.180225 | -85.926 | 1.14×10⁻¹³ | 113.772 |
| 1.00×10⁶ | -72.1484 | 5.56×10⁻¹³ | 555.796 |
| 2.01×10⁶ | -94.2163 | 4.38×10⁻¹⁴ | 43.805 |
总均方根相位抖动(fs)
= √{(仅相位噪声的均方根抖动)² +(杂散1的均方根抖动)² +(杂散2的均方根抖动)² +(杂散3的均方根抖动)²}
=√{(668.837)²+(113.772)²+(555.796)²+ (43.805)²}
=√{4.47×10⁵+1.29×10⁴+3.09×10⁵+1.92×10³}= √{7.71×10⁵}=878.132 fs
这里提供一个在线计算jitter的网站,地址:
https://tools.skyworksinc.com/jittercalculator/phase-noise-jitter-calculator.aspx
你可能注意到了:最开始那张相位噪声图(图1)里的尖峰,和上面这张标了dBc的杂散图里的尖峰,看起来高度不一样(更矮了)。我们把两张图放一起对比就很清楚了。
左边那张图里,杂散用的是和相位噪声同一种颜色显示,而且单位是 dBc/Hz。仪器是怎么把杂散“压矮”的呢?其实是用分辨率带宽(RBW)做了归一化,公式是这样的:
杂散峰值(dBc/Hz) =杂散幅度(dBc)− 10×log₁₀(RBW)
图4
大多数仪器的分辨率带宽(RBW)会跟着频偏范围变,从几Hz到几MHz都有,一般是频偏的10%到1%左右。仪器不一定会直接显示RBW,但我们总能反推出来。
还记得右边那张图里,1MHz频偏处最大的杂散标着-72dBc吗?而左边那张图里,同一个杂散看起来像个尖尖的小三角,峰值大概是-117.5dBc/Hz,底部还稍微跨到了1MHz频偏的两边。所以我们就能算出1MHz频偏处的RBW了:
10log₁₀(RBW) = 杂散幅度 [dBc] − 杂散峰值 [dBc/Hz]= -72 [dBc] − (-117.5 [dB])= -72 + 117.5 = 45.5dB,所以:RBW = 10^(45.5/10) ≈ 35kHz
你可能会纳闷,“用dBc/Hz显示杂散” 这种方式有啥用?如果你只关心均方根相位噪声的整体影响,这种方式能帮你把杂散和无杂散的相位噪声放在同一维度下对比,看得更清楚。
右边那种(直接标dBc的)图看着太吓人,但其实两种图的信息是差不多的。反过来,右边那种图(直接标dBc的)更准,排查问题也更有用。就拿这个例子来说,左边(按dBc/Hz显示)算出来的均方根抖动是809.574fs,右边(直接标dBc)是878.156fs,差了大概8%。
而且,能直接看到杂散的dBc值,不用再去管仪器在这个频偏下的RBW是多少,对排查问题特别方便。下面这张表,我总结了三种杂散显示方式的优缺点,当然实际使用中还是得看你的具体情况。
| 杂散显示方式 | 优点 | 缺点 |
| 隐藏杂散 | - 画面简洁,适合看整体趋势- 排查问题时可用 | - 杂散显著时,结果会不准 |
| 归一化显示 [dBc/Hz] | - 低相位抖动应用的折中方案 | - 对低杂散场景不够用(如 ADC/DAC、无线通信) |
| 功率显示 [dBc] | - 最准确、信息最完整- 排查问题的首选 | - 可能干扰整体趋势判断- 杂散很小时容易造成误判 |
未完待续……
203