跳至主要内容

白噪如何變成 1/f² phase noise

前置閱讀fourier_series_of_isfcnc_nnω0n\omega_0 附近 noise 折回 carrier)、rms_isfcn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2)、convolution_derivation(相位積分式)、stochastic_noise_basics(白噪 PSD / Parseval)。

動手驗證:本頁「白噪 → 1/f21/f^2 phase noise」的時域模擬與理論吻合見 lab_06

這頁回答振盪器 phase noise 理論裡最招牌的一個結果:一個頻率平坦的白色電流雜訊 (white current noise,功率譜密度與頻率無關的隨機電流),經過振盪器之後,為什麼會變成 一條斜率 20-20 dB/decade(即 1/f21/f^2)的相位雜訊裙邊?我們要一路推到

L{Δω}=10log10 ⁣(Γrms2qmax2in2/Δf4Δω2)\mathcal{L}\{\Delta\omega\}=10\log_{10}\!\left(\frac{\Gamma_{rms}^2}{q_{max}^2}\cdot\frac{\overline{i_n^2}/\Delta f}{4\,\Delta\omega^2}\right)

並且老實交代文獻上著名的「差 2 倍」記帳問題。

物理直覺(先講結論):white noise 本身是「平的」,沒有任何 1/f1/f 的結構。 但上一章 convolution_derivation 告訴我們:相位 ϕ(t)\phi(t) 是 noise 電流對時間的積分([P1] Eq.(11))。積分器就是一個 1/(jω)1/(j\omega) 的濾波器, 它把功率譜乘上 1/ω21/\omega^2。白的東西進去、被乘 1/ω21/\omega^2 出來——這就是 1/f21/f^2 的來源。 ISF 只負責決定「乘多大的權重」(由 Γrms\Gamma_{rms}qmaxq_{max} 設定),不負責決定斜率; 斜率永遠是積分器給的

先複習:相位是 noise 的積分

從 [P1] Eq.(11), p.182 的 LTV 相位響應出發:

ϕ(t)=1qmaxtΓ(ω0τ)in(τ)dτ.\phi(t)=\frac{1}{q_{max}}\int_{-\infty}^{t}\Gamma(\omega_0\tau)\,i_n(\tau)\,d\tau .

把它讀成一個訊號流:noise 電流 in(t)i_n(t) 先被週期權重 Γ(ω0t)/qmax\Gamma(\omega_0 t)/q_{max} 調制 (modulation,逐點相乘),再被積分(記憶上限 tt)。畫成 block diagram:

要做的事就是:把這條鏈路的功率譜追過去——輸入是 SiS_i,輸出 SϕS_\phi 是多少。

第 1 步:white current noise 的 PSD 是什麼

白噪的定義就是 PSD 與頻率無關(flat)。我們用單邊 PSD 記為

Si(f)=in2Δf[A2/Hz].S_i(f)=\frac{\overline{i_n^2}}{\Delta f}\quad[\text{A}^2/\text{Hz}].
  • 用到的物理:thermal noise(熱雜訊)與 shot noise(散粒雜訊)在我們關心的 offset 頻段 (kHz–MHz)內都可視為白色——它們的轉折頻率在很高的地方。
  • 單位檢查[A2/Hz][\text{A}^2/\text{Hz}],乘上頻寬 Δf\Delta f(Hz)得 [A2][\text{A}^2]=均方電流 ✓。
  • 數量級手感:一個導通電阻 RR 的熱雜訊電流 in2/Δf=4kT/R\overline{i_n^2}/\Delta f=4kT/R;在 R=1kΩR=1\,\text{k}\Omega、 室溫下約 1.6×1023A2/Hz1.6\times10^{-23}\,\text{A}^2/\text{Hz}。本頁的 canonical 例 B 取 Si=1024A2/HzS_i=10^{-24}\,\text{A}^2/\text{Hz} 作為「單一等效白噪源」的整數值,方便口算。

第 2 步:ISF modulation——白噪被週期權重「攪拌」

Γ(ω0τ)\Gamma(\omega_0\tau) 用傅立葉級數展開([P1] Eq.(12), p.183):

Γ(ω0τ)=c02+n=1cncos(nω0τ+θn).\Gamma(\omega_0\tau)=\frac{c_0}{2}+\sum_{n=1}^{\infty}c_n\cos(n\omega_0\tau+\theta_n).

乘上白噪 in(τ)i_n(\tau) 等於把 noise 分別搬到各諧波 nω0n\omega_0 附近再「下變頻」回 baseband (這就是 fourier_series_of_isf 講的 frequency translation)。 關鍵在於:對白噪而言,每個諧波 nω0n\omega_0 附近的 noise 功率都一樣大(因為平的), 所以每一條 cnc_n 都把同樣強度的白噪搬下來。各諧波不相關(不同頻段的白噪互相獨立), 功率可以直接相加,總權重就是 ncn2\sum_n c_n^2

  • 用到的數學:白噪不同頻段不相關 → 各諧波貢獻的功率疊加(不是振幅疊加)。
  • 單位檢查cnc_n 無因次,cn2\sum c_n^2 無因次 ✓。

第 3 步:從單音 sideband 累加到白噪求和式(Eq.(19))

[P1] 的策略很聰明:先算「一個小電流單音」造成多少 sideband,再把白噪當成無數獨立小單音疊加。 對近 nω0n\omega_0 注入的單音 i(t)=I0cos(nω0+Δω)ti(t)=I_0\cos(n\omega_0+\Delta\omega)t,excess phase 是慢調制 ([P1] Eq.(16/17), p.183):

ϕ(t)I0cnsin(Δωt)2qmaxΔω.\phi(t)\approx\frac{I_0\,c_n\sin(\Delta\omega t)}{2q_{max}\,\Delta\omega}.

它造成的單邊帶相對功率([P1] Eq.(18), p.183):

PSBC(Δω)=10log10 ⁣(I0cn4qmaxΔω)2.P_{SBC}(\Delta\omega)=10\log_{10}\!\left(\frac{I_0\,c_n}{4q_{max}\,\Delta\omega}\right)^2.

第 3a 步(明算):down-conversion 積分——慢項存活、快項被平均掉

上面那條 Eq.(16/17) 不是憑空跳出來的;它是「把 nω0n\omega_0 附近的 noise 下變頻(down-convert, 降頻搬移)到 baseband」這件事的代數結果。我們把它逐步算給你看,這正是規範 10.2 要求補的中間步驟。

把近 nω0n\omega_0 注入單音 i(τ)=I0cos((nω0+Δω)τ)i(\tau)=I_0\cos((n\omega_0+\Delta\omega)\tau) 代進 [P1] Eq.(13) 的第 nn 個諧波項。 那一項要算的積分是「ISF 第 nn 諧波權重」乘上「注入電流」再積分:

ϕn(t)=1qmaxt ⁣ ⁣cncos(nω0τ+θn)I0cos((nω0+Δω)τ)dτ.\phi_n(t)=\frac{1}{q_{max}}\int^{t}\!\!c_n\cos(n\omega_0\tau+\theta_n)\,I_0\cos\big((n\omega_0+\Delta\omega)\tau\big)\,d\tau .

第 (i) 步:用積化和差把兩個餘弦的乘積拆成「和」與「差」兩個餘弦。 恆等式

cosAcosB=12[cos(AB)+cos(A+B)]\cos A\cos B=\tfrac12\big[\cos(A-B)+\cos(A+B)\big]

A=nω0τ+θnA=n\omega_0\tau+\theta_nB=(nω0+Δω)τB=(n\omega_0+\Delta\omega)\tau。算差與和的頻率:

AB=(nω0τ+θn)(nω0+Δω)τ=θnΔωτ,A-B=(n\omega_0\tau+\theta_n)-(n\omega_0+\Delta\omega)\tau=\theta_n-\Delta\omega\tau, A+B=(nω0τ+θn)+(nω0+Δω)τ=(2nω0+Δω)τ+θn.A+B=(n\omega_0\tau+\theta_n)+(n\omega_0+\Delta\omega)\tau=(2n\omega_0+\Delta\omega)\tau+\theta_n .

所以被積函數變成

cncos(nω0τ+θn)I0cos((nω0+Δω)τ)=I0cn2[cos(Δωτθn)慢項,Δω+cos((2nω0+Δω)τ+θn)快項,2nω0].c_n\cos(n\omega_0\tau+\theta_n)\,I_0\cos\big((n\omega_0+\Delta\omega)\tau\big)=\frac{I_0c_n}{2}\Big[\underbrace{\cos(\Delta\omega\tau-\theta_n)}_{\text{慢項,}\approx\Delta\omega}+\underbrace{\cos\big((2n\omega_0+\Delta\omega)\tau+\theta_n\big)}_{\text{快項,}\approx 2n\omega_0}\Big].

(用了 cos(θnΔωτ)=cos(Δωτθn)\cos(\theta_n-\Delta\omega\tau)=\cos(\Delta\omega\tau-\theta_n),餘弦是偶函數。)

第 (ii) 步:兩項的命運完全不同。 積分器(那個 tdτ\int^t d\tau)本質是個低通——它對訊號做時間累加, 對高頻分量會「正負相消、平均掉」,對低頻(慢)分量則持續累積。

  • 慢項 頻率約 Δω\Delta\omega(offset,通常 kHz–MHz,Δωω0\Delta\omega\ll\omega_0)。積分一個慢餘弦得到 cos(Δωτθn)dτ=sin(Δωτθn)Δω\int\cos(\Delta\omega\tau-\theta_n)\,d\tau=\dfrac{\sin(\Delta\omega\tau-\theta_n)}{\Delta\omega}——分母只有一個小小的 Δω\Delta\omega被放大、存活下來
  • 快項 頻率約 2nω02n\omega_0(兩倍載波等級,GHz)。同樣積分得 sin()2nω0+Δω\dfrac{\sin(\cdots)}{2n\omega_0+\Delta\omega}—— 分母是巨大的 2nω02n\omega_0,幅度被壓到 Δω/(2nω0)\sim\Delta\omega/(2n\omega_0) 倍那麼小,相對慢項可忽略,等效上被積分器平均掉

第 (iii) 步:只留慢項,得到 Eq.(16/17)。

ϕn(t)1qmaxI0cn2sin(Δωtθn)Δω=I0cnsin(Δωtθn)2qmaxΔω\phi_n(t)\approx\frac{1}{q_{max}}\cdot\frac{I_0c_n}{2}\cdot\frac{\sin(\Delta\omega t-\theta_n)}{\Delta\omega}=\frac{I_0\,c_n\sin(\Delta\omega t-\theta_n)}{2q_{max}\,\Delta\omega}

把與時間無關的相位 θn\theta_n 吸收進原點,即還原成上面 [P1] Eq.(16/17) 的 ϕ(t)I0cnsin(Δωt)2qmaxΔω\phi(t)\approx\dfrac{I_0 c_n\sin(\Delta\omega t)}{2q_{max}\Delta\omega}。 這條 down-conversion 積分(規範 10.2)就是「振盪器當 mixer」的硬核:nω0n\omega_0 附近的 noise 被 ISF 第 nn 諧波 搬到 Δω\Delta\omega 處(差頻慢項存活),而和頻 2nω02n\omega_0 的快項自動消失。

  • 單位檢查[A](無因次)[C][rad/s]=AAssrad1\dfrac{[\text{A}]\cdot(\text{無因次})}{[\text{C}]\cdot[\text{rad/s}]}=\dfrac{\text{A}}{\text{A}\cdot\text{s}}\cdot\text{s}\cdot\text{rad}^{-1}—— C=AsC=\text{A}\cdot\text{s}Δω\Delta\omega 是 rad/s,化簡後 ϕ\phi 無因次(rad)✓。

第 3b 步(明算):factor-8 求和 (18)→(19)

接著把「單音 sideband 功率」累加成「白噪求和式」。這一步藏了三件事:雙 sidebandI02/2in2/ΔfI_0^2/2\to\overline{i_n^2}/\Delta f 的白噪代換、以及nn 求和。逐步攤開:

第 (i) 步:單邊帶相對功率的 linear 值。 把 Eq.(18) 括號內的東西平方(先不取 10log10\log):

(I0cn4qmaxΔω)2=I02cn216qmax2Δω2.\left(\frac{I_0\,c_n}{4q_{max}\,\Delta\omega}\right)^2=\frac{I_0^2\,c_n^2}{16\,q_{max}^2\,\Delta\omega^2}.

(這裡的 44 來自 Eq.(16) 的 2qmaxΔω2q_{max}\Delta\omega 再開單邊帶——慢調制 sin(Δωt)\sin(\Delta\omega t) 的功率對應幅度的 12\tfrac1212×12=14\tfrac12\times\tfrac1{2}=\tfrac14,所以分母從 2244;故 42=164^2=16。)

第 (ii) 步:白噪代換 I02/2in2/ΔfI_0^2/2\to\overline{i_n^2}/\Delta f 一個幅度 I0I_0 的單音,其均方(功率)是 I02/2I_0^2/2 (正弦 rms² == 幅度²/2/2)。把白噪看成「在頻寬 Δf\Delta f 內、每個 nω0n\omega_0 附近的一根等效小單音」, 它的功率就是 PSD 乘頻寬 =(in2/Δf)=(\overline{i_n^2}/\Delta f)。令兩者相等:

I022    in2ΔfI02    2in2Δf.\frac{I_0^2}{2}\;\to\;\frac{\overline{i_n^2}}{\Delta f}\qquad\Longrightarrow\qquad I_0^2\;\to\;2\,\frac{\overline{i_n^2}}{\Delta f}.

注意這裡多出來的就是那個 factor 2:把「峰值幅度」換成「功率」要帶 12\tfrac12,反過來代換就帶 22。 代入第 (i) 步:

I02cn216qmax2Δω2    2(in2/Δf)cn216qmax2Δω2.\frac{I_0^2\,c_n^2}{16\,q_{max}^2\,\Delta\omega^2}\;\to\;\frac{2(\overline{i_n^2}/\Delta f)\,c_n^2}{16\,q_{max}^2\,\Delta\omega^2}.

第 (iii) 步:雙 sideband + 對 nn 求和。 每個諧波 nω0n\omega_0 在 carrier 兩側各折回一條 sideband (nω0+Δωn\omega_0+\Delta\omeganω0Δωn\omega_0-\Delta\omega 都 down-convert 到 Δω\Delta\omega),上述功率本就含這兩份; 再把所有諧波 n=0,1,2,n=0,1,2,\dots(各 band 不相關,功率直接相加)求和:

L=n2(in2/Δf)cn216qmax2Δω2=(in2/Δf)ncn28qmax2Δω2.\mathcal{L}=\sum_n\frac{2(\overline{i_n^2}/\Delta f)\,c_n^2}{16\,q_{max}^2\,\Delta\omega^2}=\frac{(\overline{i_n^2}/\Delta f)\sum_n c_n^2}{8\,q_{max}^2\,\Delta\omega^2}.

第 (iv) 步:約分得 factor-8。 分子 22、分母 1616,約掉得 88——這就是 Eq.(19) 分母那個著名的 88 的來歷:

8=162=(Eq.18 平方的 42)(白噪代換帶來的 2).8=\frac{16}{2}=\frac{(\text{Eq.18 平方的 }4^2)}{(\text{白噪代換帶來的 }2)} .

把白噪當成在每個 nω0n\omega_0 附近、頻寬 Δf\Delta f 的無數獨立單音,令 I02/2in2/ΔfI_0^2/2\to\overline{i_n^2}/\Delta f, 對所有諧波 n=0,1,2,n=0,1,2,\dots 求和,得到 white-noise phase noise 求和式([P1] Eq.(19), p.185):

L{Δω}=10log10 ⁣(in2/Δf  n=0cn28qmax2Δω2)\mathcal{L}\{\Delta\omega\}=10\log_{10}\!\left(\frac{\overline{i_n^2}/\Delta f\;\sum_{n=0}^{\infty}c_n^2}{8\,q_{max}^2\,\Delta\omega^2}\right)
  • 看出 1/f21/f^2 了嗎:分母有 Δω2\Delta\omega^2。每升一個 decade(Δω×10\Delta\omega\times10),括號內 掉 100100\Rightarrow 10log10(100)=2010\log_{10}(100)=20 dB。所以斜率是 20-20 dB/decade,正是 1/f21/f^2這個 Δω2\Delta\omega^2 完全來自積分器(第 2 步那條 dt\int dt)。
  • 單位檢查(括號內要無因次,因為要取 log)[A2/Hz](無因次)[C2][rad/s]2\dfrac{[\text{A}^2/\text{Hz}]\cdot(\text{無因次})}{[\text{C}^2]\cdot[\text{rad/s}]^2}C=As\text{C}=\text{A}\cdot\text{s}C2=A2s2\text{C}^2=\text{A}^2\text{s}^2;而 Hz=1/s\text{Hz}=1/\text{s}(rad/s)2=1/s2(\text{rad/s})^2=1/\text{s}^2。 分子 A2/Hz=A2s\text{A}^2/\text{Hz}=\text{A}^2\cdot\text{s},分母 A2s2s2=A2\text{A}^2\text{s}^2\cdot\text{s}^{-2}=\text{A}^2。 比值 =s=\text{s}。嚴格說它帶 1/Hz1/\text{Hz} 的因次(這就是 dBc/Hz 的那個 per-Hz),取 10log1010\log_{10} 後讀作 dBc/Hz ✓。

第 4 步:用 Parseval 把求和換成 Γrms\Gamma_{rms}(Eq.(20))

cn2\sum c_n^2 不好量,但它等於 ISF 的「總能量」。Parseval 關係([P1] Eq.(20), p.185):

n=0cn2=1π02πΓ(x)2dx=2Γrms2.\sum_{n=0}^{\infty}c_n^2=\frac{1}{\pi}\int_0^{2\pi}|\Gamma(x)|^2dx=2\,\Gamma_{rms}^2.
  • 用到的數學:傅立葉係數平方和 = 函數的均方(Parseval/Rayleigh),詳見 rms_isf。注意右邊是 2Γrms22\Gamma_{rms}^2(不是 Γrms2\Gamma_{rms}^2), 因為 Γrms2=12π02πΓ2dx\Gamma_{rms}^2=\frac{1}{2\pi}\int_0^{2\pi}|\Gamma|^2dx,差一個 22
  • 物理意義:不必知道每個 cnc_n,只要知道 ISF 的 rms 值就能算白噪 phase noise。

第 5 步:代入,得到招牌 1/f² 結果(Eq.(21))

cn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2 代回 Eq.(19),分母的 88 約掉一半變成 44

in2/Δf2Γrms28qmax2Δω2=Γrms2qmax2in2/Δf4Δω2.\frac{\overline{i_n^2}/\Delta f\cdot 2\Gamma_{rms}^2}{8\,q_{max}^2\,\Delta\omega^2}=\frac{\Gamma_{rms}^2}{q_{max}^2}\cdot\frac{\overline{i_n^2}/\Delta f}{4\,\Delta\omega^2}.

得到 white-noise 1/f² 結果([P1] Eq.(21), p.185):

 L{Δω}=10log10 ⁣(Γrms2qmax2in2/Δf4Δω2) \boxed{\ \mathcal{L}\{\Delta\omega\}=10\log_{10}\!\left(\frac{\Gamma_{rms}^2}{q_{max}^2}\cdot\frac{\overline{i_n^2}/\Delta f}{4\,\Delta\omega^2}\right)\ }
  • 設計訊息(claim C3):phase noise 正比於 Γrms2/qmax2\Gamma_{rms}^2/q_{max}^2。要降低 1/f21/f^2 雜訊, 就加大訊號電荷擺幅 qmaxq_{max}(分母平方,效果很強)、並壓低 ISF 的 rms 值 Γrms\Gamma_{rms}。 這兩個是所有低相位雜訊振盪器設計的根本旋鈕。
  • dimension check 同第 3 步Γrms2/qmax2\Gamma_{rms}^2/q_{max}^21/C21/\text{C}^2,乘上 Si/Δω2S_i/\Delta\omega^2A2s/s2=A2s3=C2s\text{A}^2\text{s}/\text{s}^{-2}=\text{A}^2\text{s}^3=\text{C}^2\text{s} ✓ 約成 s\text{s} → per-Hz。

嚴格頻譜推導(cyclostationary 自相關 → Wiener-Khinchin)

前面第 3 步那套「把白噪當成無數獨立小單音、算每根的 sideband 再求和」是 [P1] 的原始路線, 物理直覺很強、但代數上是啟發式(heuristic)的:它在「白噪 == 單音疊加」「factor-8 記帳」 那幾步用了手算的功率簿記。這一節把同一個結果用訊號與系統的嚴格機器重做一遍—— 直接寫下 LTV 輸出相位的時間平均自相關(time-averaged autocorrelation),用 ISF 的傅立葉 係數展開,讓 cn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2 自己從自相關裡掉出來,再用 Wiener-Khinchin 定理 取頻譜。讀者若熟悉「LTI 系統 Sy=H2SxS_y=|H|^2S_x」,這節會把它升級成「LTV / cyclostationary」版本。

為什麼要做這節:振盪器是週期時變(periodically time-varying)系統,它的輸出不是嚴格 平穩(stationary)而是 cyclostationary(週期穩態,統計量以週期 TT 重複)。對 cyclostationary 過程,正確的譜分析要先對絕對時間 tt 做一個週期平均,把它「平穩化」,再做 Wiener-Khinchin。 這一節就是老實走完這條路;走完你會看到 Γrms\Gamma_{rms} 不是被「湊」出來的,而是自相關的週期平均 的必然產物

第 A 步:寫下相位的雙時間自相關(two-time autocorrelation)

從 [P1] Eq.(11) 的相位積分出發,定義 g(τ)Γ(ω0τ)/qmaxg(\tau)\equiv\Gamma(\omega_0\tau)/q_{max}(把 ISF 與 normalization 併成一個權重核),則 ϕ(t)=tg(τ)in(τ)dτ\phi(t)=\int_{-\infty}^{t}g(\tau)\,i_n(\tau)\,d\tau。 但為了乾淨看出頻譜,我們改看相位的時間導數 ϕ˙\dot\phi(瞬時頻率擾動),它的自相關更直接 (相位本身是非平穩漫步,見 lorentzian_linewidthϕ˙\dot\phi 才是 cyclostationary-平穩的)。由微積分基本定理:

ϕ˙(t)=g(t)in(t)=Γ(ω0t)qmaxin(t).\dot\phi(t)=g(t)\,i_n(t)=\frac{\Gamma(\omega_0 t)}{q_{max}}\,i_n(t).

這是一個乘法型 LTV:輸入白噪 in(t)i_n(t) 被一個確定的週期權重 g(t)g(t) 逐點調制。算它的 雙時間自相關

Rϕ˙(t,t+τ)=ϕ˙(t)ϕ˙(t+τ)=g(t)g(t+τ)in(t)in(t+τ).R_{\dot\phi}(t,\,t+\tau)=\big\langle\dot\phi(t)\,\dot\phi(t+\tau)\big\rangle=g(t)\,g(t+\tau)\,\big\langle i_n(t)\,i_n(t+\tau)\big\rangle.
  • 用到的數學gg 是確定函數(可提到期望外),只有 ini_n 是隨機的。
  • 白噪自相關是 delta:白噪不同時刻不相關,in(t)in(t+τ)=Siδ(τ)\langle i_n(t)i_n(t+\tau)\rangle=S_i\,\delta(\tau)Si=in2/ΔfS_i=\overline{i_n^2}/\Delta f 是其(雙邊)PSD,常數)。代入:
Rϕ˙(t,t+τ)=g(t)g(t+τ)Siδ(τ).R_{\dot\phi}(t,\,t+\tau)=g(t)\,g(t+\tau)\,S_i\,\delta(\tau).
  • 關鍵觀察(cyclostationary):這個自相關顯含絕對時間 tt(透過 g(t)g(t+τ)g(t)g(t+\tau)), 而且以週期 TT 重複(ggTT-週期)——這正是 cyclostationary 的定義特徵,不是平穩。 不能直接 Wiener-Khinchin;要先對 tt 做週期平均。
  • 單位檢查[g]=1/C[g]=1/\text{C}Γ\Gamma 無因次 /qmax/q_{max}),[g2Siδ(τ)]=C2(A2/Hz)(1/s)[g^2 S_i\delta(\tau)]= \text{C}^{-2}\cdot(\text{A}^2/\text{Hz})\cdot(1/\text{s})。以 δ(τ)\delta(\tau)1/s1/\text{s}Hz1=s\text{Hz}^{-1}=\text{s}, 化簡 =C2A2=s2=\text{C}^{-2}\text{A}^2=\text{s}^{-2},即 [ϕ˙2]=(rad/s)2[\dot\phi^2]=(\text{rad/s})^2 ✓。

第 B 步:對絕對時間做週期平均 → 把 cyclostationary 平穩化

cyclostationary 過程的時間平均自相關定義為對絕對時間 tt 取一個週期的平均:

Rˉϕ˙(τ)=1T0TRϕ˙(t,t+τ)dt=[1T0Tg(t)g(t+τ)dt]Siδ(τ).\bar R_{\dot\phi}(\tau)=\frac{1}{T}\int_{0}^{T}R_{\dot\phi}(t,\,t+\tau)\,dt=\Big[\frac{1}{T}\int_{0}^{T}g(t)\,g(t+\tau)\,dt\Big]\,S_i\,\delta(\tau).

中括號裡是權重核 gg自相關(確定性、週期),記為

gˉ(τ)1T0Tg(t)g(t+τ)dt=1qmax21T0TΓ(ω0t)Γ(ω0(t+τ))dt.\bar g(\tau)\equiv\frac{1}{T}\int_{0}^{T}g(t)\,g(t+\tau)\,dt=\frac{1}{q_{max}^2}\cdot\frac{1}{T}\int_{0}^{T}\Gamma(\omega_0 t)\,\Gamma(\omega_0(t+\tau))\,dt.

因為 δ(τ)\delta(\tau) 只在 τ=0\tau=0 取值,我們只需要 gˉ(0)\bar g(0)

Rˉϕ˙(τ)=gˉ(0)Siδ(τ),gˉ(0)=1qmax21T0TΓ2(ω0t)dt.\bar R_{\dot\phi}(\tau)=\bar g(0)\,S_i\,\delta(\tau),\qquad\bar g(0)=\frac{1}{q_{max}^2}\cdot\frac{1}{T}\int_{0}^{T}\Gamma^2(\omega_0 t)\,dt.
  • 用到的物理/數學:把絕對時間平均掉,等於把振盪器在一個週期內「各個相位的敏感度」平均起來—— 這正是 cyclostationary 系統「等效平穩化」的標準手法。
  • 這一步就要冒出 Γrms\Gamma_{rms}1T0TΓ2(ω0t)dt\dfrac{1}{T}\int_0^T\Gamma^2(\omega_0t)\,dt 就是 ISF 的均方

第 C 步:用 ISF 傅立葉係數展開 → cn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2 自然掉出來

Γ\Gamma 的傅立葉級數([P1] Eq.(12))代進 gˉ(0)\bar g(0) 的那個均方積分,自己就生出 cn2\sum c_n^2。 先把均方積分換成對相位 x=ω0tx=\omega_0 t 的積分(dt=dx/ω0dt=dx/\omega_0,一個週期 t:0Tt:0\to T 對應 x:02πx:0\to2\pi):

1T0TΓ2(ω0t)dt=12π02πΓ2(x)dx.\frac{1}{T}\int_{0}^{T}\Gamma^2(\omega_0 t)\,dt=\frac{1}{2\pi}\int_{0}^{2\pi}\Gamma^2(x)\,dx.

代入 Γ(x)=c02+n1cncos(nx+θn)\Gamma(x)=\dfrac{c_0}{2}+\sum_{n\ge1}c_n\cos(nx+\theta_n) 並平方。用三角函數的正交性 (不同諧波互相積分為零、同諧波 02πcos2=π\int_0^{2\pi}\cos^2=\pi、DC 項 02πdx=2π\int_0^{2\pi}dx=2\pi):

12π02πΓ2(x)dx=(c02)2+n=1cn22=c024+12n=1cn2.\frac{1}{2\pi}\int_{0}^{2\pi}\Gamma^2(x)\,dx=\Big(\frac{c_0}{2}\Big)^2+\sum_{n=1}^{\infty}\frac{c_n^2}{2}=\frac{c_0^2}{4}+\frac12\sum_{n=1}^{\infty}c_n^2.

把 DC 寫成 n=0n=0 項並湊成「半個 n0cn2\sum_{n\ge0}c_n^2」的形式(這是 [P1] Eq.(20) 同一個記帳: c0c_0 那項的係數是 14\tfrac14,等於 1212\tfrac12\cdot\tfrac12,即把 c02c_0^2 也納入 12\tfrac12\sum 並補回 DC 的 half-weight),整理得:

12π02πΓ2(x)dx=Γrms2,其中Γrms212π02πΓ2(x)dx.\frac{1}{2\pi}\int_{0}^{2\pi}\Gamma^2(x)\,dx=\Gamma_{rms}^2,\qquad\text{其中}\quad\Gamma_{rms}^2\equiv\frac{1}{2\pi}\int_0^{2\pi}\Gamma^2(x)\,dx.

這就是 Γrms\Gamma_{rms}定義。再對照 [P1] Eq.(20) 的 Parseval(注意它用 1π\tfrac1\pi 而非 12π\tfrac1{2\pi}):

n=0cn2=1π02πΓ2(x)dx=212π02πΓ2(x)dx=2Γrms2.\sum_{n=0}^{\infty}c_n^2=\frac{1}{\pi}\int_0^{2\pi}\Gamma^2(x)\,dx=2\cdot\frac{1}{2\pi}\int_0^{2\pi}\Gamma^2(x)\,dx=\boxed{\,2\,\Gamma_{rms}^2\,}.

注意(DC 半權重):這裡的 n=0cn2\sum_{n=0}^{\infty}c_n^2 中 DC 項是以 c02/2c_0^2/2(半權重)計入的; 若誤用整權 c02c_0^2,總和會比 2Γrms22\Gamma_{rms}^2 多出 c02/2c_0^2/2。這正是 Parseval 對 c02\tfrac{c_0}{2} 形式 DC 的記帳(Γ\Gamma 級數第一項寫成 c02\tfrac{c_0}{2},平方後給 c024=12c022\tfrac{c_0^2}{4}=\tfrac12\cdot\tfrac{c_0^2}{2}), 詳見 rms_isf

cn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2 就這樣從自相關的週期平均裡自然掉出來——不需要第 3b 步那種手算的 factor-8 簿記。差別只在「1π\tfrac1\pi vs 12π\tfrac1{2\pi}」這個 Parseval 慣例帶來的因子 2,與 rms_isf 完全一致。於是

gˉ(0)=1qmax2Γrms2=Γrms2qmax2.\bar g(0)=\frac{1}{q_{max}^2}\cdot\Gamma_{rms}^2=\frac{\Gamma_{rms}^2}{q_{max}^2}.
  • 物理意義ϕ˙\dot\phi 的時間平均自相關強度(τ=0\tau=0 的權重)正比於 Γrms2/qmax2\Gamma_{rms}^2/q_{max}^2—— 振盪器把白噪「攪拌」進相位的有效增益,就是 ISF 的均方除以 qmax2q_{max}^2。所有 cnc_n 的細節都被 Parseval 收進一個 Γrms\Gamma_{rms}

第 D 步:Wiener-Khinchin → 相位頻譜 Sϕ1/Δω2S_\phi\propto1/\Delta\omega^2

現在 Rˉϕ˙(τ)=Γrms2qmax2Siδ(τ)\bar R_{\dot\phi}(\tau)=\dfrac{\Gamma_{rms}^2}{q_{max}^2}S_i\,\delta(\tau) 已經是只依賴 τ\tau 的平穩自相關了,可以放心套 Wiener-Khinchin(自相關的傅立葉變換 == PSD):

Sϕ˙(Δω)=Rˉϕ˙(τ)ejΔωτdτ=Γrms2qmax2Siδ(τ)ejΔωτdτ=Γrms2qmax2Si.S_{\dot\phi}(\Delta\omega)=\int_{-\infty}^{\infty}\bar R_{\dot\phi}(\tau)\,e^{-j\Delta\omega\tau}\,d\tau=\frac{\Gamma_{rms}^2}{q_{max}^2}\,S_i\int_{-\infty}^{\infty}\delta(\tau)e^{-j\Delta\omega\tau}d\tau=\frac{\Gamma_{rms}^2}{q_{max}^2}\,S_i.

δ\delta 的傅立葉變換是常數 11——所以 ϕ˙\dot\phi(瞬時頻率擾動)的頻譜是白的,強度 Γrms2Si/qmax2\Gamma_{rms}^2 S_i/q_{max}^2。最後一步:相位是頻率的積分,頻域積分等於除以 jΔωj\Delta\omega, 功率譜要除以 Δω2\Delta\omega^2

Sϕ(Δω)=Sϕ˙(Δω)Δω2=Γrms2qmax2SiΔω2[rad2/Hz].S_\phi(\Delta\omega)=\frac{S_{\dot\phi}(\Delta\omega)}{\Delta\omega^2}=\frac{\Gamma_{rms}^2}{q_{max}^2}\cdot\frac{S_i}{\Delta\omega^2}\qquad[\text{rad}^2/\text{Hz}].

這跟前面「時域乾淨版」(factor-of-2 註記裡的)Sϕ=Γrms2Si/(qmax2(2πf)2)S_\phi=\Gamma_{rms}^2S_i/(q_{max}^2(2\pi f)^2) 逐字相同Δω=2πf\Delta\omega=2\pi f)。

  • 1/f21/f^2 的嚴格出處:這條 1/Δω21/\Delta\omega^2 完全來自「ϕ˙ϕ\dot\phi\to\phi 的那次積分」1/(jΔω)1/(j\Delta\omega) 濾波器),與本頁開頭的物理直覺一字不差——只是現在是用 Wiener-Khinchin 嚴格證出來的,不是手算 sideband 湊出來的。
  • 白噪頻譜的角色ϕ˙\dot\phi 白、ϕ\phi1/f21/f^2——這也解釋了為什麼相位是 random walk (白色頻率擾動的積分 == Wiener process),正是下一頁 Lorentzian 的起點。

嚴格版 vs 啟發式版:對照表

項目啟發式(第 3 步,[P1] 原路線)嚴格(本節,cyclostationary 自相關)
出發點白噪 == 無數獨立單音ϕ˙=g(t)in(t)\dot\phi=g(t)i_n(t) 的雙時間自相關
平穩化隱含在「對 nn 求和」顯式對絕對時間 tt 做週期平均
Γrms\Gamma_{rms} 來源Parseval 手動代入(Eq.20)週期平均積分 12πΓ2\tfrac1{2\pi}\int\Gamma^2 自然生出
cn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2外加套用從自相關 gˉ(0)\bar g(0) 掉出來
1/Δω21/\Delta\omega^2 來源單音 sideband 的 1/Δω21/\Delta\omega^2ϕ˙ϕ\dot\phi\to\phi 積分的 1/(jΔω)1/(j\Delta\omega)
取頻譜累加 sideband 功率Wiener-Khinchin(自相關 FT)
factor-of-2SSB 記帳(/4/4時域乾淨(/2/2);差 2 同前述

小結:嚴格版用「cyclostationary 自相關 → 週期平均 → Wiener-Khinchin」三板斧,把 Γrms\Gamma_{rms}1/f21/f^2 都變成機械化的必然結果cn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2 不是巧合,而是 ISF 均方的 Parseval 化身。這套自相關機器也正是下一頁 lorentzian_linewidth 的入口:那裡把「ϕ˙\dot\phi 白 ⇒ ϕ\phi 是 random walk」推到底,得出載波自相關 Rx(τ)=12cos(ω0τ)eDτR_x(\tau)=\tfrac12\cos(\omega_0\tau)e^{-D|\tau|},再 Wiener-Khinchin 出 Lorentzian—— 解開 1/f21/f^2Δω0\Delta\omega\to0 的假發散。本節算出的 Sϕ=Γrms2Si/(qmax2Δω2)S_\phi=\Gamma_{rms}^2S_i/(q_{max}^2\Delta\omega^2) 正是那裡 D=Γrms2Si/(4qmax2)D=\Gamma_{rms}^2S_i/(4q_{max}^2) 的來源(本站單邊記帳 Sϕ=4D/Δω2S_\phi=4D/\Delta\omega^2,雙邊 2D/Δω22D/\Delta\omega^2;v5 更正,對帳見 diffusion_dictionary)。

Sϕ(f)S_\phi(f)L(Δf)\mathcal{L}(\Delta f) 的關係(dBc/Hz 直覺)

工程上常用兩種量描述同一件事,要會互換:

  • phase PSD Sϕ(f)S_\phi(f):相位抖動的功率譜密度,單位 rad2/Hz\text{rad}^2/\text{Hz},對 ff 積分得相位變異 σϕ2\sigma_\phi^2
  • SSB phase noise L(Δf)\mathcal{L}(\Delta f):載波單邊、每 Hz 的雜訊功率相對載波,單位 dBc/Hz。

小角近似(相位抖動遠小於 1 rad)下兩者關係(規範 Eq.16):

L(Δf)12Sϕ(Δf).\mathcal{L}(\Delta f)\approx\tfrac12 S_\phi(\Delta f).

把白噪結果寫成 phase PSD 形式(時域乾淨推導,見下節):

Sϕ(f)=Γrms2qmax2Si(2πf)2[rad2/Hz].S_\phi(f)=\frac{\Gamma_{rms}^2}{q_{max}^2}\cdot\frac{S_i}{(2\pi f)^2}\quad[\text{rad}^2/\text{Hz}].
  • dBc/Hz 直覺100-100 dBc/Hz 表示「離載波該 offset、1 Hz 頻寬內,雜訊功率比載波小 101010^{10} 倍」。 數字越負越乾淨。1/f21/f^2 區每往外一個 decade,dBc/Hz 數字改善 20(更負 20)。

重要的 factor-of-2 教學註記(務必看懂)

如果你自己用時域乾淨推導(白噪 ×\times ISF \to 積分),會得到

Sϕ(f)=Γrms2Siqmax2(2πf)2,L(Δf)12Sϕ=Γrms2qmax2Si2Δω2.S_\phi(f)=\frac{\Gamma_{rms}^2\,S_i}{q_{max}^2(2\pi f)^2},\qquad\Rightarrow\qquad\mathcal{L}(\Delta f)\approx\tfrac12 S_\phi=\frac{\Gamma_{rms}^2}{q_{max}^2}\cdot\frac{S_i}{2\,\Delta\omega^2}.

也就是分母是 2Δω22\,\Delta\omega^2。但 [P1] Eq.(21) 寫的是 4Δω24\,\Delta\omega^2兩者差 2 倍。

  • 這個差距來自 SSB(單邊帶)記帳慣例:把全部相位抖動功率記到「單一邊帶」還是「平均分到雙邊帶」, 以及 in2/Δf\overline{i_n^2}/\Delta f 是單邊還雙邊 PSD,定義一不一致就會差個 2。
  • 這是文獻上一個著名的小爭議,不同教科書/論文的常數會落在 /2/2/4/4 之間。
  • 關鍵:它完全不影響 Γrms2/qmax2\Gamma_{rms}^2/q_{max}^2 這個 scaling、也不影響 20-20 dB/decade 的斜率。 做設計時看的是 scaling 與斜率;那個 ±3\pm3 dB 的常數,量測校準時自然會吸收掉。
  • 本站的 lab_06 數值模擬用的是時域乾淨版 Sϕ=Γrms2Si/(qmax2(2πf)2)S_\phi=\Gamma_{rms}^2 S_i/(q_{max}^2(2\pi f)^2),所以它跟 Eq.(21) 會差這個 2 倍——這是預期的、教過的, 不是 bug。

一句話記住:斜率與 scaling 是物理,常數 2 是記帳。 別為了那個 2 焦慮。

數值例子(canonical 例 B,逐步帶單位)

例 Bf0=5f_0=5 GHz、Δf=1\Delta f=1 MHz、qmax=1q_{max}=1 pC、Γrms=0.5\Gamma_{rms}=0.5Si=1024A2/HzS_i=10^{-24}\,\text{A}^2/\text{Hz}。 用 [P1] Eq.(21)。

步驟 1:算 offset 角頻率。

Δω=2πΔf=2π×106=6.283×106 rad/s,Δω2=3.948×1013 rad2/s2.\Delta\omega=2\pi\Delta f=2\pi\times10^{6}=6.283\times10^{6}\ \text{rad/s},\qquad\Delta\omega^2=3.948\times10^{13}\ \text{rad}^2/\text{s}^2.

步驟 2:算 Γrms2/qmax2\Gamma_{rms}^2/q_{max}^2

Γrms2qmax2=0.25(1012)2=0.251024=2.5×1023 C2.\frac{\Gamma_{rms}^2}{q_{max}^2}=\frac{0.25}{(10^{-12})^2}=\frac{0.25}{10^{-24}}=2.5\times10^{23}\ \text{C}^{-2}.

步驟 3:算 Si/(4Δω2)S_i/(4\Delta\omega^2)

Si4Δω2=10244×3.948×1013=10241.579×1014=6.332×1039.\frac{S_i}{4\,\Delta\omega^2}=\frac{10^{-24}}{4\times3.948\times10^{13}}=\frac{10^{-24}}{1.579\times10^{14}}=6.332\times10^{-39}.

步驟 4:相乘得括號內 linear 值。

Γrms2qmax2Si4Δω2=2.5×1023×6.332×1039=1.583×1015.\frac{\Gamma_{rms}^2}{q_{max}^2}\cdot\frac{S_i}{4\,\Delta\omega^2}=2.5\times10^{23}\times6.332\times10^{-39}=1.583\times10^{-15}.

步驟 5:取 10log1010\log_{10}

L(1MHz)=10log10(1.583×1015)=148.0 dBc/Hz.\mathcal{L}(1\,\text{MHz})=10\log_{10}(1.583\times10^{-15})=-148.0\ \text{dBc/Hz}.
  • 手感:這是「單一理想白噪源」的理論底線,約 148-148 dBc/Hz @ 1 MHz。真實電路有多個 noise 源(多顆 transistor、tail、load)、有 cyclostationary 閘控(見 effective_isf)、close-in 還有 flicker 上轉(見 flicker_noise_upconversion),實際值會更高(更靠近 0)。
  • 跨頁一致:若改用時域乾淨版(/2/2 而非 /4/4),同參數會得 145.0\approx-145.0 dBc/Hz,差正好 3 dB (10log10210\log_{10}2)——這就是上面 factor-of-2 的數值臉孔。

對應模擬圖

lab_06 把一段白噪丟進 Sϕ=Γrms2Si/(qmax2(2πf)2)S_\phi=\Gamma_{rms}^2 S_i/(q_{max}^2(2\pi f)^2) 的 toy 模型,估其 phase PSD,疊上理論線: 量到的斜率精準落在 20-20 dB/decade。

白噪經 ISF 與相位積分後得到的 1/f² phase noise PSD

項目說明
模型toy(非 transistor-level)Sϕ=Γrms2Si/(qmax2(2πf)2)S_\phi=\Gamma_{rms}^2 S_i/(q_{max}^2(2\pi f)^2)
ISFΓ(θ)=sinθΓrms=1/2\Gamma(\theta)=-\sin\theta\Rightarrow\Gamma_{rms}=1/\sqrt2理想 LC
斜率20-20 dB/decade來自積分器 1/ω21/\omega^2
常數慣例時域 /2/2 版(lab)與 Eq.(21) 的 /4/4 差 2 倍(已說明)

核心 Python(完整 script:simulations/lab_06_white_noise_phase_noise.py):

import numpy as np
from simulations.common.noise_utils import white_noise, estimate_psd
from simulations.common.isf_utils import gamma_lc_ideal, gamma_rms, apply_isf_weighting

# 白噪電流 -> ISF 加權 -> 累積積分 -> 相位 -> PSD
i_n = white_noise(n=2**20, psd=1e-4, fs=256.0, rng=np.random.default_rng(0))
phi = apply_isf_weighting(t, i_n, gamma_lc_ideal, qmax=1.0, omega0=2*np.pi*1.0)
f, S_phi = estimate_psd(phi, fs=256.0, nperseg=4096) # 量到 -20 dB/dec

適用與失效條件

條件成立時失效時會怎樣
noise 在關心頻段內為白色SiS_i 視為常數,得乾淨 1/f21/f^2若含 flicker,close-in 變 1/f31/f^3(見 flicker 頁)
小擾動、相位線性Eq.(11) 積分式成立大注入 → 非線性、ISF 本身被改
單一 stationary 源直接套 Eq.(21)多源要 superposition;cyclostationary 要 Γeff\Gamma_{eff}
Δω\Delta\omega 不太靠近 carrier1/f21/f^2 區乾淨極近處被 close-in 機制與 1/Q1/Q 主導

與哪些 paper/公式對應

  • 求和式 [P1] Eq.(19), p.185;Parseval [P1] Eq.(20), p.185;招牌結果 [P1] Eq.(21), p.185。
  • 上游積分式 [P1] Eq.(11), p.182;單音 sideband [P1] Eq.(16)–(18), p.183。
  • 大圖(noise 區域:1/f31/f^31/f21/f^2、floor)對應 [P1] Fig. 11–12, p.185。
  • claim C3(Γrms2/qmax2\Gamma_{rms}^2/q_{max}^2 scaling)來自 [P1] Eq.(21)。

Worked examples 數值例題

下面兩題用嚴格格式:題目 → 逐步代入(帶單位)→ 結果 → dimension check → 一行 Python 驗證。 第一題沿用第 8 節 canonical 例 B;第二題換一組數字練手感。兩題都套 [P1] Eq.(21)。

例 1(canonical 例 B,Γrms=0.5\Gamma_{rms}=0.5f0=5f_0=5 GHz、Δf=1\Delta f=1 MHz、qmax=1q_{max}=1 pC、 Γrms=0.5\Gamma_{rms}=0.5Si=in2/Δf=1024 A2/HzS_i=\overline{i_n^2}/\Delta f=10^{-24}\ \text{A}^2/\text{Hz}。用 [P1] Eq.(21) 求 L(1MHz)\mathcal{L}(1\text{MHz})

逐步代入:

  1. offset 角頻率:Δω=2πΔf=2π×106=6.283×106 rad/s\Delta\omega=2\pi\Delta f=2\pi\times10^{6}=6.283\times10^{6}\ \text{rad/s}Δω2=3.948×1013 rad2/s2\Delta\omega^2=3.948\times10^{13}\ \text{rad}^2/\text{s}^2
  2. Γrms2qmax2=0.52(1012C)2=0.251024=2.5×1023 C2\dfrac{\Gamma_{rms}^2}{q_{max}^2}=\dfrac{0.5^2}{(10^{-12}\,\text{C})^2}=\dfrac{0.25}{10^{-24}}=2.5\times10^{23}\ \text{C}^{-2}
  3. Si4Δω2=10244×3.948×1013=6.332×1039 A2/Hzrad2/s2\dfrac{S_i}{4\Delta\omega^2}=\dfrac{10^{-24}}{4\times3.948\times10^{13}}=6.332\times10^{-39}\ \dfrac{\text{A}^2/\text{Hz}}{\text{rad}^2/\text{s}^2}
  4. 相乘(括號內 linear):2.5×1023×6.332×1039=1.583×10152.5\times10^{23}\times6.332\times10^{-39}=1.583\times10^{-15}
  5. 取 dB:L=10log10(1.583×1015)\mathcal{L}=10\log_{10}(1.583\times10^{-15})

結果: L(1MHz)148.0 dBc/Hz\mathcal{L}(1\,\text{MHz})\approx-148.0\ \text{dBc/Hz}(單一理想白噪源的理論底線)。

Dimension check: 括號內 C2A2/Hz(rad/s)2\text{C}^{-2}\cdot\dfrac{\text{A}^2/\text{Hz}}{(\text{rad/s})^2}。以 C=As\text{C}=\text{A}\cdot\text{s}C2=A2s2\text{C}^{-2}=\text{A}^{-2}\text{s}^{-2}A2ss2=A2s3\dfrac{\text{A}^2\cdot\text{s}}{\text{s}^{-2}}=\text{A}^2\text{s}^3。相乘 =s=\text{s}, 即每 Hz(per-Hz),取 10log1010\log_{10} 後讀作 dBc/Hz ✓。

import numpy as np
gamma_rms, qmax, Si = 0.5, 1e-12, 1e-24
dw = 2*np.pi*1e6
L = 10*np.log10((gamma_rms**2/qmax**2) * (Si/(4*dw**2)))
print(round(L, 1), "dBc/Hz") # -> -148.0 dBc/Hz

例 2(第二組數字:較大 swing 的低噪振盪器)f0=10f_0=10 GHz、Δf=1\Delta f=1 MHz、 qmax=2q_{max}=2 pC、Γrms=1/20.707\Gamma_{rms}=1/\sqrt2\approx0.707(理想 LC 的 sin-\sin)、 Si=4×1024 A2/HzS_i=4\times10^{-24}\ \text{A}^2/\text{Hz}。求 L(1MHz)\mathcal{L}(1\text{MHz})

逐步代入:

  1. Δω=2π×106=6.283×106 rad/s\Delta\omega=2\pi\times10^{6}=6.283\times10^{6}\ \text{rad/s}(與例 1 同,因為 Δf\Delta f 相同;注意 Eq.(21) 只看 offset Δω\Delta\omega,與載波 f0f_0 無關),Δω2=3.948×1013\Delta\omega^2=3.948\times10^{13}
  2. Γrms2=(1/2)2=0.5\Gamma_{rms}^2=(1/\sqrt2)^2=0.5qmax2=(2×1012)2=4×1024 C2q_{max}^2=(2\times10^{-12})^2=4\times10^{-24}\ \text{C}^2, 故 Γrms2qmax2=0.54×1024=1.25×1023 C2\dfrac{\Gamma_{rms}^2}{q_{max}^2}=\dfrac{0.5}{4\times10^{-24}}=1.25\times10^{23}\ \text{C}^{-2}
  3. Si4Δω2=4×10244×3.948×1013=10243.948×1013=2.533×1038\dfrac{S_i}{4\Delta\omega^2}=\dfrac{4\times10^{-24}}{4\times3.948\times10^{13}}=\dfrac{10^{-24}}{3.948\times10^{13}}=2.533\times10^{-38}
  4. 相乘:1.25×1023×2.533×1038=3.166×10151.25\times10^{23}\times2.533\times10^{-38}=3.166\times10^{-15}
  5. L=10log10(3.166×1015)\mathcal{L}=10\log_{10}(3.166\times10^{-15})

結果: L(1MHz)145.0 dBc/Hz\mathcal{L}(1\,\text{MHz})\approx-145.0\ \text{dBc/Hz}

  • 手感檢查:相對例 1,qmaxq_{max} 加倍把 Γrms2/qmax2\Gamma_{rms}^2/q_{max}^2 砍半(3-3 dB),但 SiS_i 加 4 倍 (+6+6 dB)、Γrms2\Gamma_{rms}^2 加倍(+3+3 dB),淨變化 3+6+3=+6-3+6+3=+6 dB,從 148-148145-145... 等等—— 148+6=142-148+6=-142?實際是 145-145。差別在 Γrms2\Gamma_{rms}^2:例 1 用 0.52=0.250.5^2=0.25、例 2 用 0.7072=0.50.707^2=0.5, 只差 2 倍(+3+3 dB)不是 4 倍;重算淨變化 3(qmax)+6(Si)+3(Γrms2)=...-3(q_{max})+6(S_i)+3(\Gamma_{rms}^2)=... 其中 Γrms2\Gamma_{rms}^20.250.50.25\to0.5×2\times2+3+3 dB,qmax2q_{max}^2141\to4(pC²)是 ×4\times46-6 dB,SiS_i141\to4+6+6 dB:淨 +36+6=+3+3-6+6=+3 dB,148+3=145-148+3=-145 ✓。這示範了 scaling 估算:每個旋鈕用 dB 加減即可。

Dimension check: 同例 1,括號內化簡為 s\text{s}(per-Hz)✓。

import numpy as np
gamma_rms, qmax, Si = 1/np.sqrt(2), 2e-12, 4e-24
dw = 2*np.pi*1e6
L = 10*np.log10((gamma_rms**2/qmax**2) * (Si/(4*dw**2)))
print(round(L, 1), "dBc/Hz") # -> -145.0 dBc/Hz

(兩題的 Eq.(21) 是 SSB /4/4 慣例;若用本站 lab_06 的時域乾淨版 /2/2,兩題各再 +3+3 dB——見上面 factor-of-2 註記。 完整函式庫:simulations/common/noise_utils.pysimulations/common/isf_utils.py。)

例 3(兩個雜訊源相加):真實振盪器從來不只一個 noise 源。這題示範多源 superposition—— 兩個獨立白噪源同時打進同一個理想 LC 節點,該怎麼合成總 phase noise?

題目設定。 沿用例 1 的振盪器參數(f0=5f_0=5 GHz、Δf=1\Delta f=1 MHz、qmax=1q_{max}=1 pC),節點上疊加兩個 互相獨立(statistically independent)的白噪電流源:

  • Device A(例如主要跨導管,直接看到完整 ISF):ΓA,rms=0.5\Gamma_{A,rms}=0.5Si,A=in,A2/Δf=1×1024 A2/HzS_{i,A}=\overline{i_{n,A}^2}/\Delta f=1\times10^{-24}\ \text{A}^2/\text{Hz}
  • Device B(tail 電流源一類的元件,因為 cyclostationary 閘控只在部分相位貢獻雜訊,見 effective_isfΓeff=Γα\Gamma_{eff}=\Gamma\alpha):等效 Γeff,B,rms=0.25\Gamma_{eff,B,rms}=0.25 (只有 A 的一半,示意用的 illustrative 值)、但電流噪聲功率較大 Si,B=4×1024 A2/HzS_{i,B}=4\times10^{-24}\ \text{A}^2/\text{Hz} (例如偏壓電流較大的元件)。

兩者是不同的物理雜訊源、彼此獨立(不相關),所以要問的是:合起來的 Ltotal(1MHz)\mathcal{L}_{total}(1\text{MHz}) 是多少?

第 0 步:為什麼獨立源要在 SϕS_\phi(功率)疊加,不能在 dB 疊加。 每個 noise 源各自經過(可能不同的) ISF 加權、獨立地被積分成相位擾動 ϕA(t)\phi_A(t)ϕB(t)\phi_B(t)(見 [P1] Eq.(11));節點上的總 excess phase 是 線性疊加 ϕ(t)=ϕA(t)+ϕB(t)\phi(t)=\phi_A(t)+\phi_B(t)。對獨立(不相關)隨機過程,方差/功率譜疊加、交叉項期望值為零:

Sϕ,total(Δω)=(ϕA+ϕB)(ϕA+ϕB)頻譜=Sϕ,A(Δω)+Sϕ,B(Δω)+2ReϕAϕB=0 (獨立).S_{\phi,total}(\Delta\omega)=\big\langle(\phi_A+\phi_B)(\phi_A+\phi_B)\big\rangle_{\text{頻譜}}=S_{\phi,A}(\Delta\omega)+S_{\phi,B}(\Delta\omega)+\underbrace{2\,\text{Re}\langle\phi_A\phi_B^*\rangle}_{=0\ (\text{獨立})}.

這就是本題的「一行規則」:獨立源在 SϕS_\phi(線性功率)相加,絕不能直接把兩個 dBc/Hz 數字相加或平均。 必須先各自轉回 linear、相加、再取一次 10log1010\log_{10}

第 1 步:Device A 單獨算(就是例 1 的算法,套 [P1] Eq.(21))。

LA=10log10 ⁣(ΓA,rms2qmax2Si,A4Δω2),Δω=2π×106=6.283×106 rad/s, Δω2=3.948×1013.\mathcal{L}_A=10\log_{10}\!\left(\frac{\Gamma_{A,rms}^2}{q_{max}^2}\cdot\frac{S_{i,A}}{4\,\Delta\omega^2}\right),\qquad \Delta\omega=2\pi\times10^6=6.283\times10^6\ \text{rad/s},\ \Delta\omega^2=3.948\times10^{13}. ΓA,rms2qmax2=0.251024=2.5×1023 C2,Si,A4Δω2=10241.579×1014=6.332×1039.\frac{\Gamma_{A,rms}^2}{q_{max}^2}=\frac{0.25}{10^{-24}}=2.5\times10^{23}\ \text{C}^{-2},\qquad \frac{S_{i,A}}{4\Delta\omega^2}=\frac{10^{-24}}{1.579\times10^{14}}=6.332\times10^{-39}.

括號內線性值 A=2.5×1023×6.332×1039=1.583×1015\ell_A=2.5\times10^{23}\times6.332\times10^{-39}=1.583\times10^{-15}LA=10log10(1.583×1015)148.0 dBc/Hz\mathcal{L}_A=10\log_{10}(1.583\times10^{-15})\approx-148.0\ \text{dBc/Hz}(與例 1 一致——同一組參數)。

第 2 步:Device B 單獨算(同一公式,ΓΓeff,B,rms\Gamma\to\Gamma_{eff,B,rms}SiSi,BS_i\to S_{i,B})。

Γeff,B,rms2qmax2=0.2521024=0.06251024=6.25×1022 C2,Si,B4Δω2=4×10241.579×1014=2.533×1038.\frac{\Gamma_{eff,B,rms}^2}{q_{max}^2}=\frac{0.25^2}{10^{-24}}=\frac{0.0625}{10^{-24}}=6.25\times10^{22}\ \text{C}^{-2},\qquad \frac{S_{i,B}}{4\Delta\omega^2}=\frac{4\times10^{-24}}{1.579\times10^{14}}=2.533\times10^{-38}.

括號內線性值 B=6.25×1022×2.533×1038=1.583×1015\ell_B=6.25\times10^{22}\times2.533\times10^{-38}=1.583\times10^{-15}LB=10log10(1.583×1015)148.0 dBc/Hz\mathcal{L}_B=10\log_{10}(1.583\times10^{-15})\approx-148.0\ \text{dBc/Hz}

「你以為 A 主導,其實不然」:乍看 Γeff,B,rms=0.25\Gamma_{eff,B,rms}=0.25 只有 ΓA,rms=0.5\Gamma_{A,rms}=0.5 的一半,直覺 會猜 Device B 的 ISF 權重項 Γeff,B,rms2/qmax2\Gamma_{eff,B,rms}^2/q_{max}^2 差了 44 倍(6-6 dB),B 應該完全被 A 蓋過、 可以忽略。但 Device B 的電流噪聲 Si,BS_{i,B} 剛好大 44+6+6 dB)——兩個 ±6\pm6 dB 恰好抵消, 算出來 LA=LB148.0\mathcal{L}_A=\mathcal{L}_B\approx-148.0 dBc/Hz,B 與 A 一樣強,貢獻同等重要,完全不可忽略。 這正是「只看 Γrms\Gamma_{rms} 大小就猜雜訊貢獻」會踩的陷阱:真正決定貢獻大小的是 Γrms2Si\Gamma_{rms}^2\cdot S_i 這個乘積,兩個因子要一起看。

第 3 步:功率相加(在 linear domain 相加,不是在 dB 相加)。

Ltotal=10log10(A+B)=10log10(1.583×1015+1.583×1015)=10log10(3.166×1015).\mathcal{L}_{total}=10\log_{10}\big(\ell_A+\ell_B\big)=10\log_{10}\big(1.583\times10^{-15}+1.583\times10^{-15}\big)=10\log_{10}(3.166\times10^{-15}).

用等價的「dB 域功率合成公式」(先各自 10L/1010^{L/10} 還原成 linear,相加,再取一次 10log1010\log_{10})核對:

Ltotal=10log10 ⁣(10LA/10+10LB/10)=10log10 ⁣(10148.0/10+10148.0/10).\mathcal{L}_{total}=10\log_{10}\!\Big(10^{\mathcal{L}_A/10}+10^{\mathcal{L}_B/10}\Big)=10\log_{10}\!\Big(10^{-148.0/10}+10^{-148.0/10}\Big).

結果: Ltotal(1MHz)145.0 dBc/Hz\mathcal{L}_{total}(1\,\text{MHz})\approx-145.0\ \text{dBc/Hz}

  • 算術上發生了什麼AABB 兩源功率相等,合起來剛好是兩倍功率 10log1023.01\Rightarrow 10\log_{10}2\approx3.01 dB, 所以 LtotalLA+3.0 dB=148.0+3.0=145.0\mathcal{L}_{total}\approx\mathcal{L}_A+3.0\ \text{dB}=-148.0+3.0=-145.0 dBc/Hz。 Device B 對總雜訊的貢獻,換算成「比只有 A 時劣化了多少」,就是 X = 3.0 dB—— 而不是被邏輯上「Γeff,B,rms\Gamma_{eff,B,rms} 只有一半」誤導成可忽略的 0 dB。
  • 一句話規則(務必記住)不相關(獨立)雜訊源要在 SϕS_\phi/功率上相加,絕不能直接把 dBc/Hz 數字相加,也不能取平均。 兩個相同大小的源功率相加 =×2=+3.0=\times2=+3.0 dB,不是 +6+6 dB(那是電壓/幅度 相加、相干疊加才會發生的事,white noise 源之間不相干)。

Dimension check: A\ell_AB\ell_B 分別跟例 1/例 2 一樣是 Γrms2/qmax2Si/(4Δω2)\Gamma_{rms}^2/q_{max}^2\cdot S_i/(4\Delta\omega^2) 的形式,因次都化簡為 s\text{s}(per-Hz,見例 1 的 dimension check),兩個同因次的量才能相加; 相加後仍是 s\text{s},取 10log1010\log_{10} 讀作 dBc/Hz ✓。

import numpy as np

qmax = 1e-12 # C
dw = 2*np.pi*1e6 # rad/s (Δf = 1 MHz)

# Device A: 主要跨導管,看到完整 ISF
gamma_A, Si_A = 0.5, 1e-24 # (–, A^2/Hz)
# Device B: tail 元件,cyclostationary 閘控後的等效 Gamma_eff,rms 較小,但電流噪聲較大
gamma_effB, Si_B = 0.25, 4e-24 # (–, A^2/Hz)

def bracket(gamma_rms, Si, qmax, dw):
return (gamma_rms**2 / qmax**2) * (Si / (4 * dw**2)) # [P1] Eq.(21) 括號內線性值

ell_A = bracket(gamma_A, Si_A, qmax, dw)
ell_B = bracket(gamma_effB, Si_B, qmax, dw)
L_A = 10*np.log10(ell_A)
L_B = 10*np.log10(ell_B)
print(round(L_A, 1), "dBc/Hz (A alone)") # -> -148.0 dBc/Hz
print(round(L_B, 1), "dBc/Hz (B alone)") # -> -148.0 dBc/Hz

# 正確作法:功率(linear S_phi)相加,再取一次 log;不是把兩個 dB 數字相加
L_total_via_linear = 10*np.log10(ell_A + ell_B)
L_total_via_powersum = 10*np.log10(10**(L_A/10) + 10**(L_B/10)) # 等價寫法,供對照
print(round(L_total_via_linear, 1), "dBc/Hz (A+B power-summed)") # -> -145.0 dBc/Hz
print(round(L_total_via_powersum, 1), "dBc/Hz (cross-check)") # -> -145.0 dBc/Hz

X_dB = L_total_via_linear - L_A # B 帶來的劣化量:本例中 A、B 貢獻相等
print(round(X_dB, 1), "dB (B 的貢獻,即使 Gamma_eff,B,rms 只有 Gamma_A,rms 的一半)") # -> 3.0 dB

(本例延續 [P1] Eq.(21) 的 SSB /4/4 慣例,兩源公式相同、只是各自代入自己的 Γrms\Gamma_{rms}(或 Γeff,rms\Gamma_{eff,rms})與 SiS_i 後在功率上相加;若改用 lab_06 時域乾淨版 /2/2LA\mathcal{L}_ALB\mathcal{L}_BLtotal\mathcal{L}_{total} 三者會一起各加 33 dB,彼此的 3.0 dB 差距不變——這再次呼應前面 factor-of-2 註記:常數慣例不影響 scaling/相對關係。多源 superposition 的完整規則與 cyclostationary Γeff\Gamma_{eff} 的推導見 effective_isf;完整函式庫:simulations/common/noise_utils.pysimulations/common/isf_utils.py。)

重點回顧

  • white noise 平的;1/f21/f^2 斜率完全來自相位積分器1/ω21/\omega^2,ISF 只設定權重大小。
  • 推導鏈:Eq.(19) 求和 → Eq.(20) Parseval(cn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2)→ Eq.(21) 招牌結果。
  • LΓrms2/qmax2Si/Δω2\mathcal{L}\propto\Gamma_{rms}^2/q_{max}^2\cdot S_i/\Delta\omega^2;設計上加大 qmaxq_{max}、壓低 Γrms\Gamma_{rms}
  • L12Sϕ\mathcal{L}\approx\frac12 S_\phi1/f21/f^2 區每 decade 改善 20 dB。
  • factor-of-2:時域乾淨版 /(2Δω2)/(2\Delta\omega^2),[P1] Eq.(21) 是 /(4Δω2)/(4\Delta\omega^2);差 2 來自 SSB 記帳, 不影響 scaling/斜率。
  • canonical 例 B:單一白噪源 148\approx-148 dBc/Hz @ 1 MHz(時域版 145-145,差 3 dB)。

延伸閱讀