混頻器要的那個乾淨頻率
在前一階,混頻器把進來的無線電訊號乘上一個本地振盪器(LO)——一個穩定的正弦波——好把整個通道從 GHz 滑降到類比數位轉換器吞得下的頻率。我們當時就直接假設那個 LO 存在:純淨、單一頻率、剛好停在 2.412 GHz 或通道所在之處。現在我們得親手把它造出來。而這裡有個令人不安的事實:振盪器是整台無線電裡唯一必須「無中生有」的方塊——它在完全沒有輸入訊號的情況下維持振盪——這也讓它格外容易被雜訊影響。
無線電對這個頻率有兩個要求。第一是正確的頻率:WiFi 有數十個間隔 5 MHz 的通道,LO 必須能聽令跳到其中任何一個並穩穩停住。第二是頻譜純度:這個頻率應該是一根細如針尖的譜線,而不是一團模糊的塗抹。我們會看到這兩個要求互相拉扯,而化解這股張力,正是頻率合成器的全部精髓。
會自鳴的 LC 諧振槽——壓控振盪器
敲一下高腳杯,它會以單一音高鳴響,這音高由杯子的大小與硬度決定。振盪器要的正是這個:一個有自然頻率的諧振器。在晶片上,我們用 LC 諧振槽來打造它——一個電感與一個電容並聯。能量在電感的磁場與電容的電場之間來回晃盪,以諧振頻率 f₀ = 1 / (2π√(LC)) 鳴響。要做 2.4 GHz 的無線電,你大概會用約 1 nH 的電感與幾百飛法(fF)的電容——這些數字小到能完全放進矽晶片裡。
可是真實的諧振槽每個週期都會漏掉能量——金屬線圈有電阻,矽基板會漏電。放著不管,它就會像高腳杯餘音漸弱那樣鳴響衰減、終至死寂。於是我們加上一個主動電路——通常是一對交叉耦合的電晶體——它偵測到逐漸衰減的振盪,便在每一次擺盪時把能量補回去,剛好抵消損耗。如此一來,它便能永遠鳴響下去。這個能自我維持的「LC 加放大器」迴路,就是振盪器本身。
Vdd
|
+--+--+
L C(var) <- LC tank: sets f0 = 1/(2*pi*sqrt(L*C))
| |
+---o-----o---+ Vtune --> changes C(var) --> changes f0
| | | |
| [M1] [M2] | cross-coupled NMOS:
| |\ /| | each transistor's drain drives
| | \ / | | the OTHER's gate -> positive
| | X | | feedback that REPLACES the energy
| | / \ | | the tank loses each cycle
+---+/ \+---+
|
Itail (bias current sets the swing)那它為什麼叫壓控?我們把固定電容換成可變電容(varactor)——一個二極體,反向偏壓越深,電容越小。餵它一個控制電壓 V_tune,諧振槽的電容就改變,於是 f₀ 跟著改變。現在我們有了一個旋鈕:把 V_tune 從 0 V 轉到 1 V,頻率就掃過整個頻段。這個旋鈕的斜率,也就是每伏特輸入對應多少 MHz 輸出,稱為壓控振盪器增益 K_VCO,待會兒它會極其重要。
相位雜訊——會顫抖的頻率
理想振盪器的輸出是 V(t) = A·cos(2πf₀t):永遠單一頻率。真實的則是 V(t) = A·cos(2πf₀t + φ(t)),其中 φ(t) 是相位上一個微小的隨機抖動——每一次過零點的時刻時而早一絲、時而晚一絲。這個隨機的 φ(t) 就是[[ic-vco-phase-noise|相位雜訊]]。在頻譜分析儀上看它的輸出,你看到的不是一根無限細的譜線,而是帶有裙擺的譜線——一團模糊的功率向 f₀ 兩側塗抹開來。
我們把它量化為:距離載波某個偏移量處、1 Hz 頻寬內的功率,相對於載波功率的比值——單位是 dBc/Hz。一顆優秀的 2.4 GHz CMOS 壓控振盪器,可能達到 1 MHz 偏移處 −110 dBc/Hz。這樣讀它:距離頻率一兆赫處的雜訊,比頻率本身弱了一千億倍。越靠近載波,裙擺上升得越陡(常為每十倍偏移 20–30 dB);越往外,則漸趨平緩、落到一片雜訊地板上。
為什麼要為一個一千億比一的雜質如此執著?因為它造成兩種真實的失效,兩者都默默地致命:
- 互調混頻(reciprocal mixing)。 你的手機把 LO 調到一個微弱的目標通道——但隔壁一個通道坐著一個很強的干擾源。在混頻器裡,LO 那團雜訊裙擺與那個強鄰相乘,把一片雜訊直接傾倒在你微弱訊號的頭上。目標通道本來好端端的;是骯髒的 LO 把它埋了。能容忍多近多強的鄰居,是由相位雜訊、而非天線或放大器決定的。
- EVM 惡化。 現代無線電把位元塞進載波的相位裡——想想 256-QAM,那是一張精細的星座圖,每個點都坐落在一個精確的角度上。相位雜訊讓 LO 的角度抖動,於是每個收到的點都模糊地偏離真正位置。這團模糊就是 EVM(誤差向量幅度)。一旦超過門檻,解碼器便分不清相鄰符元,連結的吞吐量隨之崩潰——你的「5G」就這麼悄悄降速了。
把歌手鎖到音叉上——鎖相迴路
壓控振盪器能達到任何頻率,卻會漂移、會顫抖。石英振盪器恰恰相反:一片以單一固定頻率(比如 40 MHz)振動的石英,穩定度驚人、相位雜訊乾淨——但它卡死在那個頻率上,而且遠低於空中所需。[[phase-locked-loop|鎖相迴路]]的把戲,就是把兩者聯姻:借用石英的*純度與準確度*,再把它倍頻拉高到壓控振盪器那個*高而可調*的頻率上。
想像一個迴授迴路,一台管頻率的恆溫器。鑑相/鑑頻器把分頻後的壓控振盪器拿來和石英參考比較,回報誰跑在前面。電荷泵把這個「太快/太慢」的判決,轉成一小股一小股的電流。迴路濾波器把這些電流脈衝平均成一個平滑的調諧電壓。這電壓輕推壓控振盪器。而迴授路徑上的 ÷N 分頻器就是那個神奇的旋鈕:它告訴迴路 N 個壓控振盪器週期必須等於一個參考週期,於是迴路把壓控振盪器一路逼到 f_out = N × f_ref。想換通道?改 N 就好。
f_ref PFD charge loop VCO f_out
(crystal) ---> +---+ up/dn pump filter +-----+ --+--> (to mixer)
e.g. 40MHz | |------> /-\ ----> [R+C low-pass] | VCO | | e.g. 2440 MHz
+---+ \-/ Vtune ---------->| | |
^ +-----+ |
| |
+------------------ / N <---------------------+
divided VCO (program N to pick channel)
In lock: f_out / N == f_ref ==> f_out = N * f_ref
e.g. N = 61 -> f_out = 61 * 40 MHz = 2440 MHz一步步看看迴路上電時做了什麼:
- 壓控振盪器從它可變電容碰巧停的地方起振——頻率是錯的。
- 鑑相器看見分頻後的壓控振盪器相對於參考在漂移,便泵入電荷加以修正。
- 調諧電壓緩升;f_out 朝 N × f_ref 擺動。
- 相位誤差縮到零。迴路鎖定了——並且持續鎖定,任何漂移一冒頭就立刻被追殺。
迴路頻寬——兩種雜訊交班之處
這裡是那個漂亮的回報,也是每個[[ic-frequency-synthesizer|頻率合成器]]的核心設計張力。鎖相迴路是個迴授迴路,而迴路只能修正比它自身反應時間*更慢*的誤差。這個反應時間由迴路頻寬設定——通常是幾百 kHz。在這頻寬之內,迴路又快又警覺;在它之外,迴路睡著了,壓控振盪器只能自己撐著。
現在看看這如何把相位雜訊頻譜一分為二:
- 靠近載波處(迴路頻寬之內):迴路快得足以追上壓控振盪器的漂移並把它壓下去。在這裡,輸出繼承的是石英晶體那乾淨而準確的相位雜訊(按 N 放大)。
- 遠離載波處(迴路頻寬之外):迴路反應不了這麼快,於是輸出就是壓控振盪器原始的相位雜訊,沿著它天然的裙擺滾落。
所以迴路頻寬是兩個雜訊來源之間的交班點——而選定它是個貨真價實的取捨,不是白吃的午餐。把頻寬推得更寬,迴路就壓掉更多壓控振盪器雜訊(有利於近端純度)、也更快鎖上新通道(有利於 WiFi/5G 的快速跳頻)——但它同時讓更多參考雜訊與分數-N 量化雜訊漏進來,還可能孳生討厭的參考突波(reference spur)。把頻寬拉得更窄,你能漂亮地擋掉參考的垃圾,卻得更倚賴赤裸的壓控振盪器,鎖定也更遲緩。
Phase noise
(dBc/Hz)
|
-80|\
| \__ shaped by REFERENCE+loop <-- inside loop BW: loop wins
| \____
-100| \___
| loop BW --> : \
| : \___ shaped by raw VCO <-- outside loop BW: VCO alone
-120| : \____
| : \____
+-------------+------------------------> offset from carrier (Hz)
1k ~300k 1M 10M
Move loop BW left = quieter reference region, noisier close-in, slower lock
Move loop BW right = quieter close-in VCO region, more ref spurs, faster lock