前置閱讀:本章理論頁 isf_definition、fourier_series_of_isf、rms_isf、white_noise_to_phase_noise、flicker_noise_upconversion、effective_isf(先讀完再做題)。
這頁是 03 ISF 核心理論章 的成套習題。題型涵蓋推導題、數值題、與設計反推題,
全部圍繞 [P1] Hajimiri–Lee 的 ISF 框架展開,沿用全站 notation。
格式:每題解答 = 逐步代入(帶單位)→ 結果 → dimension check → 一行 Python 驗證。
Python 一律引用 simulations/common/(真實函式,不杜撰)。
涉及的權威公式(逐字取自規範第 3 節,含引用):
- impulse→phase(操作型 ISF):Δϕ=qmaxΓ(ω0τ)Δq(規範公式 5)
- ISF 傅立葉級數:Γ(ω0τ)=2c0+n=1∑∞cncos(nω0τ+θn)([P1] Eq.(12), p.183)
- Parseval / rms ISF:n=0∑∞cn2=π1∫02π∣Γ(x)∣2dx=2Γrms2([P1] Eq.(20), p.185)
- 白噪 1/f² 招牌結果:L{Δω}=10log10(qmax2Γrms2⋅4Δω2in2/Δf)([P1] Eq.(21), p.185)
- 1/f³ corner:Δω1/f3=ω1/f⋅2Γrms2c02≈ω1/f(c1c0)2([P1] Eq.(24), p.185)
- effective ISF(cyclostationary):Γeff=Γ⋅α([P1] Eqs.(25)–(27), p.186)
習題 1(數值題)— impulse → phase step
理想 LC(Γ(θ)=−sinθ),qmax=1 pC,f0=5 GHz。一顆 Δq=1 fC
的電荷脈衝注入。求:
(a) 在 θ=3π/2(Γ 取最大值 +1)注入的相位步階 Δϕ(rad)與 timing error Δt(fs)。
(b) 在波峰 θ=0 注入的 Δϕ。
小測驗( 先自己算,再檢查)
fs
判定:相對誤差 ±5% 內算對;可用科學記號輸入。
習題 2(推導題 + 數值)— 由 ISF 算 Γrms
某 toy ISF 是雙諧波 Γ(θ)=cosθ+21cos(2θ)。
(a) 直接寫出傅立葉係數 c0,c1,c2。
(b) 用 Parseval 求 ∑cn2 與 Γrms。
習題 3(數值題)— 白噪 → L(套 Eq.(21))
f0=5 GHz、Δf=1 MHz、qmax=1 pC、Γrms=0.5、Si=in2/Δf=10−24 A2/Hz。
用 [P1] Eq.(21) 求 L(1MHz)(dBc/Hz)。
小測驗(先自己算,再檢查)
dBc/Hz
判定:相對誤差 ±1% 內算對;可用科學記號輸入。
習題 4(設計反推題)— 反推所需 qmax
延續習題 3 的數字,但目標規格是 L(1MHz)=−160 dBc/Hz(比習題 3 更乾淨)。
其餘參數(Γrms=0.5、Si=10−24、Δf=1 MHz)不變,問需要把 qmax
放大到多少?
小測驗(先自己算,再檢查)
pC
判定:相對誤差 ±5% 內算對;可用科學記號輸入。
習題 5(推導題 + 數值)— c0→1/f3 corner
某振盪器 ISF 量到 c0=0.2、c1=1.0(即有可觀的 DC 偏移、波形上下不對稱),
device 的 1/f corner f1/f=1 MHz(即 ω1/f=2π×106 rad/s)。
用 [P1] Eq.(24) 估 1/f3 corner 頻率 Δf1/f3(用 c0/c1 近似式)。
若把電路改成對稱(c0→0.02),corner 變多少?
小測驗(先自己算,再檢查)
kHz
判定:相對誤差 ±2% 內算對;可用科學記號輸入。
習題 6(推導題)— Fourier 係數的頻率搬移意義
對近 nω0 注入的單音 i(τ)=I0cos((nω0+Δω)τ),用積化和差
親手證明:經 ISF 第 n 諧波 cncos(nω0τ+θn) 加權再積分後,存活下來的
慢項給出 ϕn(t)≈2qmaxI0cn⋅Δωsin(Δωt−θn),
並說明這就是「振盪器當 mixer,把 nω0 附近 noise 下變頻到 Δω」。
習題 7(數值題)— effective ISF(cyclostationary)
某 noise 源只在波形某半週導通,用 noise modulating function(NMF)α(θ)
近似為「方波閘控」:α(θ)=1 當 θ∈[0,π)、α(θ)=0 當 θ∈[π,2π)。
基礎 ISF 仍是 Γ(θ)=−sinθ。求 effective ISF Γeff=Γ⋅α 的
Γeff,rms,並與全程導通的 Γrms=1/2 比較。
小測驗(先自己算,再檢查)
判定:相對誤差 ±2% 內算對;可用科學記號輸入。
習題 8(設計反推題)— 由 L 反推 Γrms/qmax
某 5 GHz LC 振盪器量到 L(1MHz)=−130 dBc/Hz,已知白噪源
Si=2×10−23 A2/Hz(多源等效)。假設 1/f2 區由白噪主導、套 Eq.(21),
反推有效的 Γrms/qmax(單位 1/C)。若 qmax=1.5 pC,則 Γrms 約多少?
解答展開
習題 1 解答(impulse → phase step)
(a) θ=3π/2。 Γ=−sin(3π/2)=−(−1)=+1。用規範公式 5:
Δϕ=qmaxΓΔq=1×10−12 C1×(1×10−15 C)=1×10−3 rad=1 mrad.timing error(規範公式 17):
Δt=2πf0Δϕ=2π×5×10910−3≈3.18×10−14 s=31.8 fs.(b) θ=0。 Γ=−sin0=0⇒Δϕ=0(波峰注入只改振幅,被 restoring 拉回)。
結果:(a) Δϕ=1 mrad、Δt≈31.8 fs;(b) Δϕ=0。
手感:這正是 canonical 例 A(Γ=0.5 給 15.9 fs)的「滿格」版——Γ=1 給兩倍即 31.8 fs。
Dimension check:Γ 無因次 × (C/C) = rad ✓;rad/srad=s ✓。
import numpy as np
from simulations.common.isf_utils import gamma_lc_ideal, impulse_to_phase_step
from simulations.common.noise_utils import phase_to_time_error
for th in (3*np.pi/2, 0.0):
dphi = impulse_to_phase_step(1e-15, gamma_lc_ideal(th), qmax=1e-12)
print(round(dphi*1e3,3), "mrad ;", round(phase_to_time_error(dphi,5e9)*1e15,1), "fs")
習題 2 解答(由 ISF 算 Γrms)
(a) 讀出係數。 把 Γ(θ)=cosθ+21cos(2θ) 對照傅立葉級數
Γ=2c0+∑cncos(nθ+θn):沒有常數項 ⇒c0=0;
一次諧波幅度 c1=1(θ1=0);二次諧波幅度 c2=21(θ2=0);cn≥3=0。
(b) Parseval。 規範公式 11:
n=0∑∞cn2=c02+c12+c22=0+12+(21)2=1.25.Γrms2=2∑cn2=21.25=0.625⟹Γrms=0.625≈0.791.結果:c0=0, c1=1, c2=0.5;∑cn2=1.25;Γrms≈0.791。
交叉驗證(直接積分):Γrms2=2π1∫02π(cosθ+21cos2θ)2dθ,
交叉項 ∫cosθcos2θ=0(正交),餘 21+21⋅41=0.5+0.125=0.625 ✓。
Dimension check:cn、Γrms 全無因次 ✓。
import numpy as np
from simulations.common.isf_utils import gamma_rms, compute_fourier_coefficients
theta = np.linspace(0, 2*np.pi, 8192, endpoint=False)
g = np.cos(theta) + 0.5*np.cos(2*theta)
print(gamma_rms(theta, g))
a0, a, b, c, ph = compute_fourier_coefficients(theta, g, n_harmonics=3)
print(c[:3], np.sum(c**2))
習題 3 解答(白噪 → L,套 Eq.(21))
逐步代入(帶單位)。 這是 canonical 例 B。
- Δω=2πΔf=2π×106=6.283×106 rad/s,Δω2=3.948×1013。
- qmax2Γrms2=(10−12)20.25=2.5×1023 C−2。
- 4Δω2Si=4×3.948×101310−24=6.332×10−39。
- 相乘:2.5×1023×6.332×10−39=1.583×10−15。
- L=10log10(1.583×10−15)=−148.0 dBc/Hz。
結果:L(1MHz)≈−148.0 dBc/Hz(單一理想白噪源的理論底線)。
Dimension check:括號內 C−2⋅(rad/s)2A2/Hz,以 C=A⋅s
化簡為 s(per-Hz),取 10log10 讀作 dBc/Hz ✓。詳見
white_noise_to_phase_noise。
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")
習題 4 解答(反推所需 qmax)
設計反推策略。 L∝1/qmax2(Eq.(21) 分母)。目標比習題 3 低
ΔL=−160−(−148)=−12 dB。把 L 寫成 linear、固定其餘變數,
Llin∝1/qmax2:
qmax,old2qmax,new2=Llin,newLlin,old=10(−148−(−160))/10=1012/10=101.2=15.85.qmax,oldqmax,new=15.85=3.98⟹qmax,new≈3.98×1 pC=3.98 pC.直接驗算(直接套 Eq.(21) 解 qmax):
qmax=LlinΓrms2⋅4Δω2Si,
Llin=10−16:
qmax=10−160.25×6.332×10−39=1.583×10−23=3.98×10−12 C=3.98 pC.結果:需把 qmax 放大約 4 倍 到 ≈3.98 pC(即每降 6 dB 相位雜訊,qmax 要 ×2)。
手感:這量化了「加大訊號擺幅是降低 1/f2 相位雜訊最直接的旋鈕」(claim C3),
但 12 dB 要 4 倍電荷擺幅,代價是功耗/面積——這正是 tank_swing 的取捨。
Dimension check:C−2⋅s−1⋯ 反解回 qmax 為 C ✓。
import numpy as np
gamma_rms, Si, dw = 0.5, 1e-24, 2*np.pi*1e6
L_lin = 10**(-160/10)
qmax = np.sqrt((gamma_rms**2/L_lin)*(Si/(4*dw**2)))
print(qmax*1e12, "pC")
習題 5 解答(c0→1/f3 corner)
逐步代入(帶單位)。 用 [P1] Eq.(24) 的 c0/c1 近似式
Δω1/f3≈ω1/f(c1c0)2,再換成 Δf1/f3=Δω1/f3/(2π),
而 ω1/f=2πf1/f,故 2π 約掉:Δf1/f3≈f1/f(c1c0)2。
不對稱情形(c0=0.2、c1=1.0):
Δf1/f3≈106×(1.00.2)2=106×0.04=4×104 Hz=40 kHz.對稱化後(c0=0.02、c1=1.0):
Δf1/f3≈106×(1.00.02)2=106×4×10−4=400 Hz.結果:不對稱時 1/f3 corner ≈40 kHz;對稱化(c0 降 10 倍)後 corner 降 100 倍到 ≈400 Hz。
適用條件(近似式 vs 精確式):(c0/c1)2 近似假設 ISF 由基波主導(Γrms2≈c12/2)。
此處 c0=0.2 不可忽略,用精確式 Δf1/f3=f1/f⋅2Γrms2c02,
其中 Γrms2=(c02+c12)/2=(0.04+1)/2=0.52,得
Δf1/f3=106×2×0.520.04≈38.5 kHz,與近似的 40 kHz 差約 4%。
對稱化後(c0=0.02,Γrms2≈0.5)兩式幾乎一致。
設計訊息:1/f3 corner ∝c02。讓波形上下對稱(壓 c0) 是把 flicker 上轉的
close-in 1/f3 雜訊推離載波最有效的手段(見 symmetry、
flicker_noise_upconversion)。
Dimension check:(c0/c1)2 無因次 × f1/f(Hz)= Hz ✓。
f_1f = 1e6
for c0 in (0.2, 0.02):
f_corner = f_1f*(c0/1.0)**2
print(c0, "->", f_corner, "Hz")
習題 6 解答(Fourier 係數的頻率搬移意義 — 推導)
目標式。 第 n 諧波項的相位貢獻([P1] Eq.(13)):
ϕn(t)=qmax1∫tcncos(nω0τ+θn)I0cos((nω0+Δω)τ)dτ.第 (i) 步:積化和差。 令 A=nω0τ+θn、B=(nω0+Δω)τ,用
cosAcosB=21[cos(A−B)+cos(A+B)]:
A−B=θn−Δωτ,A+B=(2nω0+Δω)τ+θn.被積函數