跳至主要内容

Phase Noise → Jitter

先備:white_noise_to_phase_noise · stochastic_noise_basics | 接下來:serdes_clocking_connection

這頁回答一個工程上最常被問的問題:手上拿到一張 phase noise 圖(L(f)\mathcal{L}(f),dBc/Hz), 怎麼把它變成一個時域數字——rms jitter σt\sigma_t(fs)? 這是 frequency-domain(頻域, 通訊/RF 的語言)與 time-domain(時域,數位/SerDes 的語言)之間的橋。

整條鏈是四步:

L(f)  ×2, de-dB  Sϕ(f)  f1f2  σϕ2     σϕ  ÷(2πf0)  σt.\mathcal{L}(f)\ \xrightarrow{\ \times2,\ \text{de-dB}\ }\ S_\phi(f)\ \xrightarrow{\ \int_{f_1}^{f_2}\ }\ \sigma_\phi^2\ \xrightarrow{\ \sqrt{\ }\ }\ \sigma_\phi\ \xrightarrow{\ \div(2\pi f_0)\ }\ \sigma_t.

我們把每一步都拆開、帶單位、帶 dimension check,最後用 canonical 例 C (5 GHz、100-100 dBc/Hz @ 1 MHz、1/f² 斜率、1→100 MHz)算出 σt=447.9\sigma_t=447.9 fs。

物理直覺(先講結論):相位誤差 Δϕ\Delta\phi 就是「時鐘的指針偏了多少角度」; 把角度除以角速度 2πf02\pi f_0,就得到「指針偏了多少時間」Δt\Delta t。phase noise 圖 告訴你每個 offset 頻率有多少相位功率密度;把它們**全部加起來(積分)**就是總相位 變異數;開根號是 rms 相位;再除 2πf02\pi f_0 就是 rms timing jitter。整張圖被壓成一個 fs 數字。

第 1 步:phase error 為什麼能轉成 timing error

一個理想振盪 cos(2πf0t)\cos(2\pi f_0 t),加上 excess phase 後是 cos(2πf0t+Δϕ)\cos(2\pi f_0 t+\Delta\phi)。 把相位項提出來看 zero crossing(過零點)落在哪:

2πf0t+Δϕ=2πf0(t+Δϕ2πf0= Δt).2\pi f_0 t+\Delta\phi=2\pi f_0\Big(t+\underbrace{\frac{\Delta\phi}{2\pi f_0}}_{=\ \Delta t}\Big).

也就是說,多出 Δϕ\Delta\phi 的相位,等效於整條波形在時間軸上平移了 Δt\Delta t (規範第 3 節公式 17):

 Δt=Δϕ2πf0 \boxed{\ \Delta t=\frac{\Delta\phi}{2\pi f_0}\ }
  • 用到的物理:phase 與 time 之間的轉換率就是角頻率 ω0=2πf0\omega_0=2\pi f_0(rad/s)。
  • dimension check[rad]/[rad/s]=[s][\text{rad}]/[\text{rad/s}]=[\text{s}] ✓。注意分母是 2πf02\pi f_0 (rad/s),不是 f0f_0(Hz)——這個 2π2\pi 漏掉是最常見的錯。
  • 為何合理:在小相位(Δϕ1\Delta\phi\ll1 rad)下,相位偏移與邊緣時間偏移是線性、 一對一的。timing jitter 就是 zero crossing 的時間誤差,所以它 = Δϕ/(2πf0)\Delta\phi/(2\pi f_0)
  • 手感:5 GHz 下 Δϕ=1\Delta\phi=1 mrad Δt=31.8\Rightarrow\Delta t=31.8 fs(見 numerical_feeling Example 1)。

第 2 步:dBc/Hz 怎麼轉 linear,並還原 phase PSD

phase noise 圖的縱軸是 L(f)\mathcal{L}(f),SSB phase noise(single-sideband, 單邊帶相位雜訊),單位 dBc/Hz——意思是「在 offset ff 處、每 1 Hz 頻寬內, 單邊帶的雜訊功率比 carrier 低幾 dB」(dBc = dB relative to carrier)。

de-dB(從 dB 換回線性):dBc/Hz 是 10log10()10\log_{10}(\cdot),所以

Llin(f)=10L(f)/10[1/Hz].\mathcal{L}_{\text{lin}}(f)=10^{\mathcal{L}(f)/10}\quad[\text{1/Hz}].

再連到 phase PSD:小角近似下,SSB phase noise 與單邊 phase PSD 的關係是 (規範第 3 節公式 16):

 L(f)12Sϕ(f) Sϕ(f)=210L(f)/10 [rad2/Hz].\boxed{\ \mathcal{L}(f)\approx\tfrac12\,S_\phi(f)\ }\quad\Longrightarrow\quad S_\phi(f)=2\cdot10^{\mathcal{L}(f)/10}\ [\text{rad}^2/\text{Hz}].
  • 單位SϕS_\phirad2/Hz\text{rad}^2/\text{Hz}(相位變異數的密度)。Llin\mathcal{L}_{\text{lin}} 本身無因次/Hz;乘 2 後解讀成 rad2/Hz\text{rad}^2/\text{Hz}
  • 這個 12\frac12 從哪來:phase modulation 的功率平均分到上、下兩個 sideband, L\mathcal{L} 只算單邊,所以是 SϕS_\phi 的一半。這正是規範第 3 節那段「factor-of-2 教學註記」討論的記帳慣例;本站對 jitter 積分一律採 Sϕ=2LlinS_\phi=2\mathcal{L}_{\text{lin}}。 深入討論見 white_noise_to_phase_noise

逐步推導:L12Sϕ\mathcal{L}\approx\tfrac12 S_\phi 從小角 PM(narrowband)來

上面那個 12\frac12 不是憑空塞的,它是窄頻相位調變(narrowband PM,相位擺動很小的調變) 的直接後果。我們把它一步步推出來,把「sideband 功率 =(ϕp/2)2=(\phi_p/2)^2」這件事講清楚。

第 1 步:寫出一個單音相位調變的載波。 設相位只被單一頻率 ωm\omega_m(offset 角頻率)以 小幅度 ϕp\phi_p(peak phase,相位擺動峰值,rad)調變:

v(t)=cos(ω0t+ϕ(t)),ϕ(t)=ϕpsinωmt,ϕp1 rad.v(t)=\cos\big(\omega_0 t+\phi(t)\big),\qquad \phi(t)=\phi_p\sin\omega_m t,\quad \phi_p\ll 1\ \text{rad}.
  • 用到的物理:這就是把 第 1 步 的 excess phase Δϕ\Delta\phi 換成一個會隨時間正弦擺動的相位;ϕp\phi_p 是它的振幅。
  • 單位ϕp\phi_pϕ(t)\phi(t) 都是 rad;ω0,ωm\omega_0,\omega_m 都是 rad/s。

第 2 步:用三角展開把相位調變攤開。 用和角公式 cos(A+B)=cosAcosBsinAsinB\cos(A+B)=\cos A\cos B-\sin A\sin B,令 A=ω0tA=\omega_0 tB=ϕ(t)B=\phi(t)

v(t)=cosω0tcos ⁣(ϕpsinωmt)sinω0tsin ⁣(ϕpsinωmt).v(t)=\cos\omega_0 t\,\cos\!\big(\phi_p\sin\omega_m t\big)-\sin\omega_0 t\,\sin\!\big(\phi_p\sin\omega_m t\big).

第 3 步:小角近似(這就是「small-angle」的全部內容)。 因為 ϕp1\phi_p\ll1

cos ⁣(ϕpsinωmt)1,sin ⁣(ϕpsinωmt)ϕpsinωmt.\cos\!\big(\phi_p\sin\omega_m t\big)\approx 1,\qquad \sin\!\big(\phi_p\sin\omega_m t\big)\approx \phi_p\sin\omega_m t.
  • 用到的數學:泰勒展開 cosx1x2/2\cos x\approx1-x^2/2sinxx\sin x\approx x,只留到一階(x=ϕpsinωmtx=\phi_p\sin\omega_m t, 其 x2x^2O(ϕp2)O(\phi_p^2) 可丟)。這正是 Bessel 展開 J01, J1ϕp/2J_0\approx1,\ J_1\approx\phi_p/2 的小幅度極限。

代回得到:

v(t)cosω0tϕpsinω0tsinωmt.v(t)\approx\cos\omega_0 t-\phi_p\sin\omega_0 t\,\sin\omega_m t.

第 4 步:把 sin×sin\sin\times\sin 拆成上下兩個 sideband。 用積化和差 sinαsinβ=12[cos(αβ)cos(α+β)]\sin\alpha\sin\beta=\tfrac12[\cos(\alpha-\beta)-\cos(\alpha+\beta)],令 α=ω0t\alpha=\omega_0 tβ=ωmt\beta=\omega_m t

v(t)cosω0tϕp2[cos(ω0ωm)tcos(ω0+ωm)t]=cosω0tcarrierϕp2cos(ω0ωm)t下邊帶+ϕp2cos(ω0+ωm)t上邊帶.\begin{aligned} v(t)&\approx\cos\omega_0 t-\frac{\phi_p}{2}\Big[\cos(\omega_0-\omega_m)t-\cos(\omega_0+\omega_m)t\Big]\\ &=\underbrace{\cos\omega_0 t}_{\text{carrier}}-\underbrace{\frac{\phi_p}{2}\cos(\omega_0-\omega_m)t}_{\text{下邊帶}}+\underbrace{\frac{\phi_p}{2}\cos(\omega_0+\omega_m)t}_{\text{上邊帶}}. \end{aligned}
  • 物理意義:相位調變把載波旁邊長出對稱的一對 sideband,各落在 ω0±ωm\omega_0\pm\omega_m, 振幅都是 ϕp/2\phi_p/2。這就是 [P1] Fig. 8 那種「載波被塗成裙帶」的時域起源。

第 5 步:每個 sideband 的相對功率。 carrier 振幅 11、功率 1\propto 1(取 1212\tfrac12\cdot1^2); 單一 sideband 振幅 ϕp/2\phi_p/2、功率 (ϕp/2)2\propto(\phi_p/2)^2。所以單邊帶相對載波的功率比

P1 sidebandPcarrier=12(ϕp/2)212(1)2=(ϕp2)2=ϕp24.\frac{P_{\text{1 sideband}}}{P_{\text{carrier}}}=\frac{\tfrac12(\phi_p/2)^2}{\tfrac12(1)^2}=\Big(\frac{\phi_p}{2}\Big)^2=\frac{\phi_p^2}{4}.
  • dimension check:功率比無因次 ✓;ϕp\phi_p(rad)平方後在「相位功率」語境下視為 rad2\text{rad}^2

第 6 步:把它連到 SϕS_\phiϕ(t)=ϕpsinωmt\phi(t)=\phi_p\sin\omega_m t,相位的均方值(變異數)是

ϕ2(t)=ϕp2sin2ωmt=ϕp22.\langle\phi^2(t)\rangle=\phi_p^2\langle\sin^2\omega_m t\rangle=\frac{\phi_p^2}{2}.

這個單音的全部相位功率 ϕp2/2\phi_p^2/2 集中在 ωm\omega_m 這一根;把它解讀成「在 ωm\omega_m 處的單邊 phase PSD 強度」就是 Sϕ(ωm)=ϕp2/2S_\phi(\omega_m)=\phi_p^2/2(per-Hz,當作一根的權重)。

第 7 步:兩者相除,12\frac12 出現。 L\mathcal{L}(SSB)= 單一 sideband 功率比 =ϕp2/4=\phi_p^2/4Sϕ=ϕp2/2S_\phi=\phi_p^2/2。所以

 L=ϕp2/41=12ϕp22=12Sϕ \boxed{\ \mathcal{L}=\frac{\phi_p^2/4}{1}=\frac12\cdot\frac{\phi_p^2}{2}=\frac12 S_\phi\ }
  • 一句話總結L\mathcal{L} 只數一個 sideband(功率 (ϕp/2)2=ϕp2/4(\phi_p/2)^2=\phi_p^2/4),而 SϕS_\phi全部相位功率密度(ϕp2/2\phi_p^2/2,等於兩個 sideband 加起來)。單邊 ÷ 全部 =12=\tfrac12, 這就是 factor-of-12\tfrac12 的全部來源。
  • 失效條件:一旦 ϕp\phi_p 不再 1\ll1,第 3 步的高階 Bessel 項(J2,J3,J_2,J_3,\dots)長出更多 sideband, L=12Sϕ\mathcal{L}=\tfrac12 S_\phi 不再成立——大相位時 carrier 還會「掉功率」給高階 sideband。
  • 小角近似條件L12Sϕ\mathcal{L}\approx\frac12 S_\phi 只在 σϕ1\sigma_\phi\ll1 rad 成立 (Bessel 展開只留一階)。本例 σϕ=14\sigma_\phi=14 mrad 1\ll1,OK。
  • canonical 數值:在 1 MHz、L=100\mathcal{L}=-100 dBc/Hz: Llin=10100/10=1010\mathcal{L}_{\text{lin}}=10^{-100/10}=10^{-10}Sϕ(1MHz)=2×1010 rad2/HzS_\phi(1\text{MHz})=2\times10^{-10}\ \text{rad}^2/\text{Hz}

第 3 步:為什麼對 phase PSD 積分能得到 variance

這一步是純粹的 Parseval / Wiener–Khinchin:把 PSD 對頻率積分,得到時域的變異數 (規範第 3 節公式 18):

 σϕ2=f1f2Sϕ(f)df \boxed{\ \sigma_\phi^2=\int_{f_1}^{f_2}S_\phi(f)\,df\ }
  • 用到的數學Sϕ(f)S_\phi(f) 是「每單位頻寬的相位功率」;把它在關心的 offset 頻段 [f1,f2][f_1,f_2] 上加總(積分)就是總相位功率 = 變異數 σϕ2\sigma_\phi^2。這跟 stochastic_noise_basics 第 3 節把電流 PSD 積成 in2\overline{i_n^2}同一招
  • dimension check(rad2/Hz)×Hz=rad2(\text{rad}^2/\text{Hz})\times\text{Hz}=\text{rad}^2 ✓。
  • 為什麼積分頻寬 [f1,f2][f_1,f_2] 很重要:phase PSD 在低 offset 通常是 1/f²(甚至 1/f³), 積分量會被下限 f1f_1 主導。改 f1f_1 一個 decade,jitter 可能差好幾倍。所以報 jitter 一定要標積分頻寬,否則數字沒有意義。
    • 上限 f2f_2:物理上由系統頻寬決定(SerDes 是 PLL loop bandwidth 或 Nyquist)。
    • 下限 f1f_1:對開環振盪器積到 DC 會發散(random walk),實務上由量測時間或 PLL 把它「拉住」的頻率決定。
  • 小角近似(sinΔϕΔϕ\sin\Delta\phi\approx\Delta\phi:把相位調變的功率近似成 σϕ2\sigma_\phi^2, 同樣要求 σϕ1\sigma_\phi\ll1 rad。

1/f² 的封閉積分(本例的核心)

把第 2 步的 1/f² 形狀以 fref=1f_{ref}=1 MHz 錨定:

Sϕ(f)=Sϕ(fref)(freff)2=2×1010(106f)2.S_\phi(f)=S_\phi(f_{ref})\Big(\frac{f_{ref}}{f}\Big)^2=2\times10^{-10}\Big(\frac{10^6}{f}\Big)^2.

代入積分(注意 f2df=1/f\int f^{-2}df=-1/f):

σϕ2=2×1010(106)2106108dff2=2×102(11061108)=200×(106108)=200×9.9×107=1.98×104 rad2.\begin{aligned} \sigma_\phi^2&=2\times10^{-10}\,(10^6)^2\int_{10^6}^{10^8}\frac{df}{f^2} =2\times10^{2}\Big(\frac{1}{10^6}-\frac{1}{10^8}\Big)\\ &=200\times(10^{-6}-10^{-8})=200\times9.9\times10^{-7}=1.98\times10^{-4}\ \text{rad}^2. \end{aligned}

開根號:

σϕ=1.98×104=1.407×102 rad=14.07 mrad.\sigma_\phi=\sqrt{1.98\times10^{-4}}=1.407\times10^{-2}\ \text{rad}=14.07\ \text{mrad}.
  • 手感確認:括號裡 10610810^{-6}\gg10^{-8},所以「1/f11/f_1」這項主導——再次印證下限主導。 把 f2f_2 從 100 MHz 拉到 1 GHz 幾乎不改變答案;把 f1f_1 從 1 MHz 降到 100 kHz 卻會 讓 jitter 暴增 103.2\sqrt{10}\approx3.2 倍。

第 4 步:phase variance → rms jitter

把第 1 步的 Δt=Δϕ/(2πf0)\Delta t=\Delta\phi/(2\pi f_0) 套用到 rms 量(規範第 3 節公式 19):

 σt=σϕ2πf0=12πf0f1f2Sϕ(f)df \boxed{\ \sigma_t=\frac{\sigma_\phi}{2\pi f_0}=\frac{1}{2\pi f_0}\sqrt{\int_{f_1}^{f_2}S_\phi(f)\,df}\ }

代入本例(f0=5f_0=5 GHz、σϕ=1.407×102\sigma_\phi=1.407\times10^{-2} rad):

σt=1.407×102 rad2π×5×109 Hz=1.407×1023.1416×1010 s=4.479×1013 s=447.9 fs.\sigma_t=\frac{1.407\times10^{-2}\ \text{rad}}{2\pi\times5\times10^{9}\ \text{Hz}} =\frac{1.407\times10^{-2}}{3.1416\times10^{10}}\ \text{s} =4.479\times10^{-13}\ \text{s}=447.9\ \text{fs}.
  • dimension check[rad]/[rad/s]=[s][\text{rad}]/[\text{rad/s}]=[\text{s}] ✓。
  • 這就是 canonical 例 C(規範第 8 節):5 GHz、100-100 dBc/Hz @ 1 MHz、1/f²、 積 1→100 MHz σϕ=14.07\Rightarrow\sigma_\phi=14.07 mrad、σt=447.9\sigma_t=447.9 fs。
  • scaling 手感:phase noise 好 10 dB(L=110\mathcal{L}=-110Sϕ\Rightarrow S_\phi 小 10 倍 σt\Rightarrow\sigma_t103.2\sqrt{10}\approx3.2142\to\sim142 fs。好 20 dB(120-120\Rightarrow 小 10 倍 45\to\sim45 fs(見 numerical_feeling 的參考點)。

由 L(f) 積分得 rms jitter

上圖(simulations/lab_08_jitter_integration.py)畫出 100-100 dBc/Hz @ 1 MHz 的 1/f² skirt,以及累積積分如何隨頻寬收斂到 447.9 fs;數值積分與上面手算的解析式完全一致。 這是 toy / 解析示範(單一 1/f² 源、小角近似),非 transistor-level。

一行驗證(用內建函式)

import numpy as np
from simulations.common.noise_utils import leeson_one_over_f2, integrate_rms_jitter

f = np.logspace(6, 8, 4000) # 1 MHz -> 100 MHz
L = leeson_one_over_f2(f, L_ref_dbc=-100, f_ref=1e6) # 1/f^2 skirt
sigma_t, sigma_phi = integrate_rms_jitter(f, L, f0=5e9, fmin=1e6, fmax=100e6)
print(sigma_phi*1e3, "mrad ;", sigma_t*1e15, "fs") # -> 14.07 mrad ; 447.9 fs

jitter 的四種「方言」(用 notation 頁的表)

同樣是「jitter」,量到的可能是完全不同的東西。下表沿用 notation 的定義(規範第 2 節):

名稱定義直覺跟 phase noise 的關係
random jitter (RJ)高斯、無上界,用 σ\sigma 描述隨機踢出來的抖動就是上面積分出的 σt\sigma_t;SerDes BER 用它估 eye 閉合
period jitterTkTT_k-T(單一週期相對 nominal)這一拍多長/多短SϕS_\phi 加一個 sin2(πf/f0)\sin^2(\pi f/f_0) 類高通權重後積分
cycle-to-cycle jitterTk+1TkT_{k+1}-T_k(相鄰兩拍差)拍與拍之間變化多快對相鄰差分,更強的高通加權,最不受 close-in 影響
accumulated / long-term jitter相隔 Δt\Delta t 兩 edge 誤差,σΔt=κΔt\sigma_{\Delta t}=\kappa\sqrt{\Delta t}開環振盪器越跑越偏random-walk;對應 1/f² 積到很低 offset([P2] Eq.(8))
  • 為什麼要分清楚:period / cycle-to-cycle jitter 對 SϕS_\phi 施加高通型權重 (差分會壓低低頻、放大高頻),所以它們不被 close-in 1/f² 主導;而上面算的 random / 整合型 jitter(zero-crossing 絕對時間誤差)被下限主導。報數字時要說清楚 是哪一種,否則會差好幾個數量級。
  • accumulated jitter:自由振盪器沒有絕對時間參考,相位是 random walk, σΔt=κΔt\sigma_{\Delta t}=\kappa\sqrt{\Delta t}([P2] Eq.(8), p.792,claim C6)。 ring 細節見 [P2] 與 serdes_clocking_connection

period / cycle-to-cycle / accumulated jitter 的權重核(逐步推導)

上表的「高通加權」不是手揮,它有確切的權重核。關鍵觀念:不同種類的 jitter 是同一條相位過程 ϕ(t)\phi(t) 的不同「差分」,而時域差分在頻域就是乘上一個 transfer function。我們一步步把核推出來。

第 1 步:把每個 edge 的時間誤差寫成相位的取樣。kk 個 edge 名目上落在 tk=kTt_k=kT, 其時間誤差就是該瞬間相位除以角速度(沿用第 1 步的 Δt=Δϕ/(2πf0)\Delta t=\Delta\phi/(2\pi f_0)):

Δtk=ϕ(kT)2πf0.\Delta t_k=\frac{\phi(kT)}{2\pi f_0}.

第 2 步:三種 jitter = 三種差分。 由定義(規範第 2 節):

period jitter:Jkper=Δtk+1Δtk=ϕ((k+1)T)ϕ(kT)2πf0(相位的一階差分),cycle-to-cycle:Jkc2c=Jk+1perJkper(相位的二階差分),accumulated:Δtk=ϕ(kT)2πf0(不差分,直接是相位本身).\begin{aligned} \text{period jitter:}\quad &J^{\text{per}}_k=\Delta t_{k+1}-\Delta t_k=\frac{\phi((k{+}1)T)-\phi(kT)}{2\pi f_0}\quad(\text{相位的一階差分}),\\ \text{cycle-to-cycle:}\quad &J^{\text{c2c}}_k=J^{\text{per}}_{k+1}-J^{\text{per}}_k\quad(\text{相位的二階差分}),\\ \text{accumulated:}\quad &\Delta t_k=\frac{\phi(kT)}{2\pi f_0}\quad(\text{不差分,直接是相位本身}). \end{aligned}

第 3 步:差分在頻域 = 乘上 (1ej2πfT)(1-e^{-j2\pi fT}) 對一個頻率分量 ϕ(t)ej2πft\phi(t)\propto e^{j2\pi ft}, 延遲一個週期 TT 就是乘 ej2πfTe^{-j2\pi fT}。所以「現在減去一個週期前」這個一階差分算子的頻率響應是

Hper(f)=1ej2πfT,Hper(f)2=1ej2πfT2=4sin2(πfT).H_{\text{per}}(f)=1-e^{-j2\pi fT},\qquad \lvert H_{\text{per}}(f)\rvert^2=\big\lvert 1-e^{-j2\pi fT}\big\rvert^2=4\sin^2(\pi fT).
  • 代數展開1ejθ2=(1cosθ)2+sin2θ=22cosθ=4sin2(θ/2)\lvert 1-e^{-j\theta}\rvert^2=(1-\cos\theta)^2+\sin^2\theta=2-2\cos\theta=4\sin^2(\theta/2), 代 θ=2πfT\theta=2\pi fT 即得 4sin2(πfT)4\sin^2(\pi fT)
  • 為什麼是高通:在 f0f\to0sin2(πfT)(πfT)20\sin^2(\pi fT)\approx(\pi fT)^2\to0——低頻被狠狠壓掉; 在 f=f0/2=1/(2T)f=f_0/2=1/(2T) 達到最大 44。這就是 period jitter「不被 close-in 1/f² 主導」的數學原因。

第 4 步:把核套進 phase-variance 積分。 相位變異數密度乘上 H2\lvert H\rvert^2 再積分、 最後除以 (2πf0)2(2\pi f_0)^2 換成時間(規範第 10.2 節 period/cycle-to-cycle jitter 核):

σT2=1(2πf0)20Sϕ(f)1ej2πfT2df=1(2πf0)20Sϕ(f)4sin2(πfT)df.\sigma_{T}^2=\frac{1}{(2\pi f_0)^2}\int_0^{\infty}S_\phi(f)\,\big\lvert 1-e^{-j2\pi fT}\big\rvert^2\,df =\frac{1}{(2\pi f_0)^2}\int_0^{\infty}S_\phi(f)\,4\sin^2(\pi fT)\,df.

cycle-to-cycle 是再做一次差分,所以核平方再平方(二階差分 = 一階差分作用兩次):

σcc2=1(2πf0)20Sϕ(f)1ej2πfT4df=1(2πf0)20Sϕ(f)16sin4(πfT)df.\sigma_{cc}^2=\frac{1}{(2\pi f_0)^2}\int_0^{\infty}S_\phi(f)\,\big\lvert 1-e^{-j2\pi fT}\big\rvert^4\,df =\frac{1}{(2\pi f_0)^2}\int_0^{\infty}S_\phi(f)\,16\sin^4(\pi fT)\,df.

accumulated jitter 則沒有差分核(核 =1=1),所以它由低頻主導(1/f² 積到很低 offset 才發散), 這正是它隨 Δt\sqrt{\Delta t} random-walk 成長的頻域對應([P2] Eq.(8), p.792;κ 由 Eq.(12), p.793)。

  • dimension checkSϕS_\phirad2/Hz\text{rad}^2/\text{Hz})× 無因次核 × Hz\text{Hz} = rad2\text{rad}^2, 再除 (2πf0)2(2\pi f_0)^2rad2/s2\text{rad}^2/\text{s}^2)= s2\text{s}^2 ✓,開根號得秒。
  • 三句話對照:accumulated 核 =1=1(低頻主導);period 核 1ej2πfT2\lvert1-e^{-j2\pi fT}\rvert^2 (一階高通);cycle-to-cycle 核 1ej2πfT4\lvert1-e^{-j2\pi fT}\rvert^4(二階高通,最不吃 close-in)。

註(常數慣例):上式採「單邊 SϕS_\phi0\int_0^\infty」慣例;若改用雙邊或不同 SSB 記帳, 前置常數可能差 factor-of-2,與規範第 3 節 factor-of-2 教學註記同源。本站對 jitter 一律採 Sϕ=2LlinS_\phi=2\mathcal{L}_{\text{lin}}、單邊積分。確切常數見各文獻定義差異。

canonical 數值:由 SϕS_\phi 積出 period jitter

承例 Cf0=5f_0=5 GHz(T=200T=200 ps)、L(1MHz)=100\mathcal{L}(1\text{MHz})=-100 dBc/Hz、1/f² 斜率。 求 period jitter σT\sigma_T(積 1 MHz→100 MHz,與例 C 同頻段以便對照)。

把第 3 步的 1/f² 形狀 Sϕ(f)=2×1010(106/f)2S_\phi(f)=2\times10^{-10}(10^6/f)^2 代入 period 核。先看核在這個頻段的大小: T=2×1010T=2\times10^{-10} s,πfT\pi fTf=106f=10^6π×106×2×1010=6.28×1041\pi\times10^6\times2\times10^{-10}=6.28\times10^{-4}\ll1, 在 f=108f=10^86.28×10216.28\times10^{-2}\ll1。所以整段都可用小角 sin2(πfT)(πfT)2\sin^2(\pi fT)\approx(\pi fT)^2

1ej2πfT24(πfT)2=(2πfT)2.\big\lvert 1-e^{-j2\pi fT}\big\rvert^2\approx 4(\pi fT)^2=(2\pi fT)^2.

代入 period 積分:

σT2=1(2πf0)2106108 ⁣2×1010(106f)2(2πfT)2df=(2πT)2(2πf0)22×1010(106)2106108 ⁣df=T42×1010(106)2106108 ⁣df.\begin{aligned} \sigma_T^2&=\frac{1}{(2\pi f_0)^2}\int_{10^6}^{10^8}\!2\times10^{-10}\Big(\frac{10^6}{f}\Big)^2(2\pi fT)^2\,df\\ &=\frac{(2\pi T)^2}{(2\pi f_0)^2}\,2\times10^{-10}(10^6)^2\int_{10^6}^{10^8}\!df =T^4\cdot 2\times10^{-10}(10^6)^2\int_{10^6}^{10^8}\!df. \end{aligned}

把常數收乾淨:(2πT)2/(2πf0)2=T2/f02=T2T2=T4(2\pi T)^2/(2\pi f_0)^2=T^2/f_0^2=T^2\cdot T^2=T^4(因 f0=1/Tf_0=1/T),且 ff 的兩個冪次相消(f2f2=1f^{-2}\cdot f^{2}=1),積分變成 106108df=9.9×107\int_{10^6}^{10^8}df=9.9\times10^7 Hz:

σT2=T42×1010(106)2(9.9×107)=(2×1010)42×101010129.9×107.\begin{aligned} \sigma_T^2&=T^4\cdot 2\times10^{-10}\cdot(10^6)^2\cdot(9.9\times10^7)\\ &=(2\times10^{-10})^4\cdot 2\times10^{-10}\cdot10^{12}\cdot9.9\times10^7. \end{aligned}

逐項算:T4=(2×1010)4=16×1040=1.6×1039T^4=(2\times10^{-10})^4=16\times10^{-40}=1.6\times10^{-39}2×10101012=2×1022\times10^{-10}\cdot10^{12}=2\times10^{2};再乘 9.9×1079.9\times10^71.98×10101.98\times10^{10}。所以

σT2=1.6×1039×1.98×1010=3.17×1029 s2    σT=5.6×1015 s=5.6 fs.\sigma_T^2=1.6\times10^{-39}\times1.98\times10^{10}=3.17\times10^{-29}\ \text{s}^2 \;\Rightarrow\;\sigma_T=5.6\times10^{-15}\ \text{s}=5.6\ \text{fs}.
  • 手感對照:同一張 phase noise 圖、同一積分頻段,accumulated/RJ 的 σt=447.9\sigma_t=447.9 fs (例 C,下限主導),但 period jitter 只有 5.6\sim5.6 fs——小了快兩個數量級!原因正是高通核 (2πfT)2(2\pi fT)^2 把 close-in(1 MHz 那端,貢獻 RJ 的主力)狠狠壓掉,period jitter 反而由高頻端 累積。這就是「報 jitter 一定要講清楚是哪一種」的最佳教材。
  • dimension checkT4T^4s4\text{s}^4×(rad2/Hz)×Hz×f0\times\,\text{(rad}^2/\text{Hz)}\times\text{Hz}\times f^{0} 收乾後得 s2\text{s}^2 ✓。
import numpy as np
from simulations.common.noise_utils import phase_psd_to_l_dbc_per_hz # noqa: F401
# period jitter: 對 S_phi 乘上 |1-e^{-j2πfT}|^2 = 4 sin^2(πfT) 再積分、除 (2πf0)^2
f = np.logspace(6, 8, 200000)
f0 = 5e9; T = 1.0/f0
S_phi = 2e-10 * (1e6/f)**2 # 1/f^2, 由 -100 dBc/Hz @1MHz 還原
kernel = np.abs(1 - np.exp(-1j*2*np.pi*f*T))**2 # = 4 sin^2(πfT) 高通核
sigma_T = np.sqrt(np.trapezoid(S_phi*kernel, f)) / (2*np.pi*f0)
print(sigma_T*1e15, "fs period jitter") # -> ~5.6 fs(遠小於 447.9 fs 的 RJ)

適用與失效條件

條件成立時失效時
小角 σϕ1\sigma_\phi\ll1 radL12Sϕ\mathcal{L}\approx\frac12 S_\phiΔt=Δϕ/(2πf0)\Delta t=\Delta\phi/(2\pi f_0) 線性大相位 → 要用完整 Bessel,L12Sϕ\mathcal{L}\neq\frac12 S_\phi
積分頻寬有限且明確σt\sigma_t 收斂、可重現1/f² 積到 DC 發散;不標頻寬數字無意義
單一 1/f² 形狀(本例)解析封閉式可用真實有 1/f³ + flat floor,要分段或數值積
RJ 為高斯σ\sigma 估 BER有 deterministic jitter (DJ) 時要 RJ/DJ 分解

對應的 paper / 公式

  • Δt=Δϕ/(2πf0)\Delta t=\Delta\phi/(2\pi f_0)σϕ2=Sϕdf\sigma_\phi^2=\int S_\phi dfσt=σϕ/(2πf0)\sigma_t=\sigma_\phi/(2\pi f_0)L12Sϕ\mathcal{L}\approx\frac12 S_\phi:規範第 3 節公式 16–19。
  • accumulated jitter σΔt=κΔt\sigma_{\Delta t}=\kappa\sqrt{\Delta t}:[P2] Eq.(8), p.792(claim C6)。
  • phase noise 本身的來源(白噪 → 1/f²):[P1] Eq.(21), p.185。
  • 圖:phase_noise_to_jitter_integration.png(lab_08),對應規範第 4 節。

Worked examples 數值例題

下面兩題把整頁的鏈條與權重核各跑一遍。格式:題目 → 逐步代入(帶單位)→ 結果 → dimension check → 一行 Python 驗證(引用 simulations/common/)。

例 C:phase noise plot → rms jitter(canonical,100-100 dBc/Hz → 447.9 fs)

題目f0=5f_0=5 GHz、L(1MHz)=100\mathcal{L}(1\text{MHz})=-100 dBc/Hz、1/f² 斜率、積 1 MHz→100 MHz, 求 rms(accumulated/RJ)jitter σt\sigma_t

步驟 1(de-dB + 還原 SϕS_\phiLlin=10100/10=1010\mathcal{L}_{\text{lin}}=10^{-100/10}=10^{-10}Sϕ(1MHz)=2Llin=2×1010 rad2/HzS_\phi(1\text{MHz})=2\mathcal{L}_{\text{lin}}=2\times10^{-10}\ \text{rad}^2/\text{Hz}

步驟 2(1/f² 形狀)

Sϕ(f)=2×1010(106f)2.S_\phi(f)=2\times10^{-10}\Big(\frac{10^6}{f}\Big)^2.

步驟 3(積分得 variance,f2df=1/f\int f^{-2}df=-1/f

σϕ2=2×1010(106)2 ⁣106108 ⁣dff2=2×102(11061108)=200×9.9×107=1.98×104 rad2.\sigma_\phi^2=2\times10^{-10}(10^6)^2\!\int_{10^6}^{10^8}\!\frac{df}{f^2} =2\times10^{2}\Big(\frac{1}{10^6}-\frac{1}{10^8}\Big)=200\times9.9\times10^{-7}=1.98\times10^{-4}\ \text{rad}^2. σϕ=1.98×104=1.407×102 rad=14.07 mrad.\sigma_\phi=\sqrt{1.98\times10^{-4}}=1.407\times10^{-2}\ \text{rad}=14.07\ \text{mrad}.

步驟 4(換成時間)

σt=σϕ2πf0=1.407×1022π×5×109=4.479×1013 s=447.9 fs.\sigma_t=\frac{\sigma_\phi}{2\pi f_0}=\frac{1.407\times10^{-2}}{2\pi\times5\times10^{9}}=4.479\times10^{-13}\ \text{s}=447.9\ \text{fs}.
  • 結果σϕ=14.07\sigma_\phi=14.07 mrad、σt=447.9\sigma_t=447.9 fs。
  • dimension check:步驟 3 (rad2/Hz)×Hz=rad2(\text{rad}^2/\text{Hz})\times\text{Hz}=\text{rad}^2 ✓; 步驟 4 [rad]/[rad/s]=[s][\text{rad}]/[\text{rad/s}]=[\text{s}] ✓。
  • 手感:積分被下限 f1=1f_1=1 MHz 主導(1/f11/f21/f_1\gg1/f_2);報 jitter 必標頻寬。
import numpy as np
from simulations.common.noise_utils import leeson_one_over_f2, integrate_rms_jitter
f = np.logspace(6, 8, 4000) # 1 MHz -> 100 MHz
L = leeson_one_over_f2(f, L_ref_dbc=-100, f_ref=1e6) # 1/f^2 skirt
sigma_t, sigma_phi = integrate_rms_jitter(f, L, f0=5e9, fmin=1e6, fmax=100e6)
print(sigma_phi*1e3, "mrad ;", sigma_t*1e15, "fs") # -> 14.07 mrad ; 447.9 fs

例 D:同一張 L(f) → period jitter(套高通核 1ej2πfT2\lvert1-e^{-j2\pi fT}\rvert^2

題目:同例 C(f0=5f_0=5 GHz、T=200T=200 ps、100-100 dBc/Hz @ 1 MHz、1/f²、積 1→100 MHz), 改求 period jitter σT\sigma_T,看它跟例 C 的 RJ 差多少。

步驟 1(核的小角化):本頻段 πfT6.28×1021\pi fT\le 6.28\times10^{-2}\ll1,故 1ej2πfT2=4sin2(πfT)(2πfT)2\lvert1-e^{-j2\pi fT}\rvert^2=4\sin^2(\pi fT)\approx(2\pi fT)^2

步驟 2(代入 period 積分並消冪):前置 T2/f02=T4T^2/f_0^2=T^4,且 f2f2=1f^{-2}\cdot f^{2}=1

σT2=T42×1010(106)2 ⁣106108 ⁣df=T42×102(9.9×107).\sigma_T^2=T^4\cdot2\times10^{-10}(10^6)^2\!\int_{10^6}^{10^8}\!df =T^4\cdot2\times10^{2}\cdot(9.9\times10^7).

步驟 3(代 T=2×1010T=2\times10^{-10} s)T4=1.6×1039 s4T^4=1.6\times10^{-39}\ \text{s}^4,後段 =1.98×1010=1.98\times10^{10}rad2Hz\text{rad}^2\cdot\text{Hz},與 T4T^4 相乘後得 s2\text{s}^2):

σT2=1.6×1039×1.98×1010=3.17×1029 s2    σT=5.6 fs.\sigma_T^2=1.6\times10^{-39}\times1.98\times10^{10}=3.17\times10^{-29}\ \text{s}^2 \;\Rightarrow\;\sigma_T=5.6\ \text{fs}.
  • 結果σT5.6\sigma_T\approx5.6 fs,是例 C 之 RJ(447.9 fs)的約 1/801/80
  • dimension checkT4(s4)×(rad2/Hz)×HzT^4(\text{s}^4)\times(\text{rad}^2/\text{Hz})\times\text{Hz} 收乾後 =s2=\text{s}^2 ✓。
  • 物理:period 的一階差分核 (2πfT)2(2\pi fT)^2 把 close-in(RJ 的主力)壓掉,period jitter 由高頻端 累積 → 同一張圖、不同 jitter 種類,數字差兩個量級。
import numpy as np
f = np.logspace(6, 8, 200000)
f0 = 5e9; T = 1.0/f0
S_phi = 2e-10 * (1e6/f)**2 # 由 -100 dBc/Hz @1MHz 還原
kernel = np.abs(1 - np.exp(-1j*2*np.pi*f*T))**2 # 4 sin^2(πfT) 高通核
sigma_T = np.sqrt(np.trapezoid(S_phi*kernel, f)) / (2*np.pi*f0)
print(sigma_T*1e15, "fs period jitter") # -> ~5.6 fs(<< 447.9 fs RJ)

重點回顧

  • 四步鏈:dBc/Hz ×2,de-dBSϕσϕ2σϕ÷2πf0σt\xrightarrow{\times2,\text{de-dB}} S_\phi\xrightarrow{\int}\sigma_\phi^2 \xrightarrow{\sqrt{}}\sigma_\phi\xrightarrow{\div2\pi f_0}\sigma_t
  • Δt=Δϕ/(2πf0)\Delta t=\Delta\phi/(2\pi f_0):相位除角速度 = 時間;分母是 2πf02\pi f_0(rad/s),別漏 2π2\pi
  • Sϕ=210L/10S_\phi=2\cdot10^{\mathcal{L}/10}L12Sϕ\mathcal{L}\approx\frac12 S_\phi 只在小角成立。
  • 1/f² 的 jitter 積分被下限 f1f_1 主導——報 jitter 一定要標積分頻寬。
  • canonical 例 C:5 GHz、100-100 dBc/Hz @ 1 MHz、1/f²、1→100 MHz \Rightarrow σϕ=14.07\sigma_\phi=14.07 mrad、σt=447.9\sigma_t=447.9 fs。
  • 四種 jitter:RJ / period / cycle-to-cycle / accumulated,加權與主導頻段不同。
  • L=12Sϕ\mathcal{L}=\tfrac12 S_\phi 的根:小角 PM 長出對稱 sideband,單邊功率 (ϕp/2)2=ϕp2/4(\phi_p/2)^2=\phi_p^2/4, 全部相位功率 ϕp2/2\phi_p^2/2單邊 ÷ 全部 =12=\tfrac12
  • 權重核:accumulated 核 =1=1(低頻主導)、period 核 1ej2πfT2=4sin2(πfT)\lvert1-e^{-j2\pi fT}\rvert^2=4\sin^2(\pi fT) (一階高通)、cycle-to-cycle 核 1ej2πfT4\lvert1-e^{-j2\pi fT}\rvert^4(二階高通)。
  • 同一張 100-100 dBc/Hz 圖:RJ σt=447.9\sigma_t=447.9 fs,但 period jitter 只有 5.6\sim5.6 fs——高通核壓掉 close-in。

延伸閱讀