Lab 14 — Cyclostationary noise 與 effective ISF
麵包屑:模擬實驗室 › 系統與進階 › 本頁(cyclostationary/effective ISF)。上游:lab_06、effective_isf;相關:lab_09。
前面幾個 lab 都假設 noise 源「整個週期都一樣吵」(stationary,定常)。真實電路不是這樣: 一顆 tail current(尾電流源)或 switching transistor(切換電晶體)只在週期的某一段才導通、 才注入 noise。這種「noise 強度本身隨振盪相位週期性變化」的 noise 叫 cyclostationary noise(週期穩態雜訊)。這個 lab 用一個介於 0、1 之間的 noise-modulating function(NMF,雜訊調變函數) 把「device 何時吵」 畫出來,然後說明真正決定 phase noise 的不是原始 ISF,而是 effective ISF(有效 ISF) 。
物理直覺(先講結論):phase noise 不只看 device 多吵(),也看 它在波形的哪個相位吵。同一顆 device,若它最吵的時段剛好落在 ISF 很大的地方 (例如 zero crossing),它的破壞力就大;若落在 ISF≈0 的波峰,破壞力就小。把 「何時吵」 乘進 ISF,得到 ,再對 取 rms,才是這顆 cyclostationary 源真正的有效敏感度 。
1. 教學目標
- 理解 stationary(定常)與 cyclostationary(週期穩態)noise 的差別。
- 用 NMF 模型化「device 只在週期的某段吵」。
- 推出 effective ISF ,並用它取代 算 rms。
- 看懂:同一顆 device、同樣 noise 量,只因「注入相位」不同, 可以差好幾倍。
2. 數學模型
從 [P1] Eq.(21), p.185 的白噪 phase-noise 律出發:
這條假設 是常數(stationary)。若 noise 是 cyclostationary, 其瞬時 PSD 可寫成「定常分量乘上一個週期 gate」:
把這個相位相依塞回 [P1] Eq.(11), p.182 的 ISF 積分核 , 等效於把 noise 的「」併進 ISF。定義 effective ISF(規範第 10 節):
於是 cyclostationary 源的 phase noise 就用 取代 :
並用它代入 [P1] Eq.(21):。
- 為何乘法是對的: 描述「noise 振幅相對被 gate 的比例」,ISF 描述「該相位的 noise 轉成相位的效 率」。兩者都作用在「同一時刻的注入」上,效果相乘。
- Dimension check: 無因次、 無因次()⇒ 無因次 ✓, 和原 ISF 同單位,可直接代進 Eq.(21)。
本 lab 用理想 LC 的 ([P1] 推導,最大 在 zero crossing 、 在波峰 ),配兩個寬度同為 的 平滑 gate:一個 gate 在 zero crossing(壞),一個在波峰(好)。
3. Block diagram
4. Python 核心 code
下面是 simulations/lab_14_cyclostationary_isf.py 的核心:用 gamma_lc_ideal()
當 ISF,用平滑週期窗 nmf_window 當 ,再用 effective_isf(即 )
與 gamma_rms 算各自的 rms。
import numpy as np
from simulations.common.isf_utils import gamma_lc_ideal, gamma_rms, effective_isf
def nmf_window(theta, center, width):
"""Smooth periodic gate in [0,1], centered at `center`, of given width (rad)."""
d = np.angle(np.exp(1j * (theta - center))) # wrapped distance
return 0.5 * (1 + np.cos(np.pi * np.clip(d / (width / 2), -1, 1)))
theta = np.linspace(0, 2 * np.pi, 2000, endpoint=True)
gamma = gamma_lc_ideal(theta) # -sin(theta)
# case 1: device noisy near the ZERO CROSSING (where |Gamma| is max) -> bad
a_bad = nmf_window(theta, center=np.pi / 2, width=np.pi)
# case 2: device noisy near the PEAK (where |Gamma|~0) -> good
a_good = nmf_window(theta, center=0.0, width=np.pi)
g_bad = effective_isf(gamma, a_bad) # Gamma * alpha
g_good = effective_isf(gamma, a_good)
grms = gamma_rms(theta, gamma) # stationary reference
grms_bad = gamma_rms(theta, g_bad)
grms_good = gamma_rms(theta, g_good)
print(f"stationary={grms:.3f} bad={grms_bad:.3f} good={grms_good:.3f}")
# -> stationary=0.707, bad=0.395, good=0.177
effective_isf(gamma_values, alpha_values) 就是逐點相乘(見 simulations/common/isf_utils.py),
gamma_rms(theta, gamma) 是 ,對應 [P1] Eq.(20)。
5. 完整 script path
simulations/lab_14_cyclostationary_isf.py(main() 產生圖;NMF 用 nmf_window,
effective ISF 與 rms 用 simulations/common/isf_utils.py 的 effective_isf、gamma_rms、
gamma_lc_ideal)。重跑:python scripts/run_all_sims.py。
6. 參數表
| 參數 | 符號 | 值 | 角色 |
|---|---|---|---|
| ISF(理想 LC) | 固定(physically derived) | ||
| 相位取樣點數 | — | 2000 | 一個週期 (含端點) |
| 壞 gate 中心 | noise 落在 zero crossing( 最大) | ||
| 好 gate 中心 | noise 落在波峰() | ||
| gate 寬度 | width | 兩 case 相同(半個週期) | |
| NMF 上下界 | 平滑 raised-cosine 窗 |
7. 單位表
| 量 | 符號 | 單位 |
|---|---|---|
| 振盪相位 | rad | |
| ISF | 無因次 | |
| NMF | 無因次() | |
| effective ISF | 無因次 | |
| rms ISF | 無因次 |
8. 模擬圖

9. 如何解讀圖
- 左圖 (a):黑線是 ISF (在 、 即 zero crossing 處 最大;在 、 即波峰處 )。紅虛線 把 device 的吵 時段放在 zero crossing();綠虛線 放在波峰()。 兩個 gate 形狀、寬度完全一樣,只差相位。
- 右圖 (b):把左圖相乘得 。紅線(壞)在 zero crossing 撞上 ISF 的 大值,留下一個又深又寬的 lobe,;綠線(好)落在波峰,ISF 幾乎為 0, 只剩兩側殘餘小 lobe,。
- 關鍵讀法:stationary 參考 (=, 整週的 rms)。 一旦 gate 只開半週,rms 一定下降;但下降多少完全看 gate 對到 ISF 的哪裡:壞 case 仍有 ,好 case 砍到 ,差約 倍。 phase noise 差 dB。同一顆 device、同樣 noise 量,只改注入相位就賺 7 dB。
10. 對應 paper 公式/figure
- 白噪 phase noise(用 取代 ):[P1] Eq.(21), p.185。
- ISF 積分核(, 併入處):[P1] Eq.(11), p.182。
- Parseval / rms:[P1] Eq.(20), p.185,。
- cyclostationary noise 概念:[P1] Sec. II-D「Cyclostationary Noise Sources」, Eq.(25)–(27), p.186。其中 為 Eq.(25)、代回積分為 Eq.(26), 而 effective ISF 即 Eq.(27);本 lab 是其 toy 視覺化。
- 概念延伸:device 的 從哪來、如何 mapping,見 device_noise_mapping 與 effective_isf。
11. 限制與 approximation
- toy model,非 transistor-level: 用人工 raised-cosine 窗,不是從電晶體 /導通區間萃取的真實 NMF;ISF 用理想 LC 的 。真實 device 的 與 都要靠 PSS/transient 模擬萃取。
- 是一階近似:假設 noise 振幅被 gate 線性調變、且 與相位 響應相互獨立;忽略 noise 自身的 AM–PM 與 、 間的耦合。
- 只示意 rms,未跑 PSD:本 lab 用 說明 scaling,沒有把 cyclostationary 源實際丟進 [P1] Eq.(11) 積分跑出 PSD(那會是 lab_06 的延伸)。
- 單一源:真實電路多個 cyclostationary 源各有自己的 ,要分別算 再對功率求和。
- factor-of-2:沿用 Eq.(21) 的 慣例;SSB 記帳的 2 倍差異不影響此處所有 相對(dB)比較。
重點回顧
- cyclostationary noise:noise 強度隨振盪相位週期變化,用 描述。
- effective ISF:;phase noise 用 取代 代入 [P1] Eq.(21)。
- 本 lab 數字:stationary ;noise 在 zero crossing → (壞);在波峰 → (好)。
- 設計含義:把吵的 device 安排在 ISF 小的相位(波峰)注入,可省可觀 phase noise。
延伸閱讀
- effective ISF 理論:effective_isf
- 白噪 → phase noise(stationary 版):lab_06_white_noise_phase_noise
- 設計取捨總整理:lab_09_design_tradeoffs
- 用在設計/理論:device 的 從 bias/導通區間怎麼 mapping 出來 → device_noise_mapping