沒人看見的那座橋
對著手機說話,一片薄膜跟著震動,推出一個電壓,精確描摹你聲音的形狀——一條平滑、連續、毫無斷裂的曲線。但離開天線的無線電波卻完全不帶曲線,它帶的是位元:一連串永不停歇的 1 與 0。在那支手機裡,藏著一座橋:把起伏的波形變成往外送的位元,再把回來的位元變回起伏的波形。這座橋是現代通訊最重要的一個觀念,一旦看見就再也回不去——它正是為什麼一張五十年的黑膠唱片每播一次就更難聽,而你串流過一千遍的歌,聽起來卻和母帶定稿那天一模一樣。
在第 2 階,我們靠輕輕扭曲類比載波來傳送語音——AM 是拉伸它的振幅,FM 是推動它的頻率。這很優雅,但有一個致命缺陷,我們稍後就會碰到。這一階是整條軌道的樞紐:從這裡開始,一切都是數位的。所以我們要依序回答兩個問題。第一,我們如何誠實地把連續波形捕捉成一串有限的數字?那就是[[sampling|取樣]]與[[quantization|量化]]。第二,我們如何把這些數字——也就是位元——放上一個真正能發射出去的無線電波?那就是[[ee-digital-modulation|數位調變]]。
取樣:把波形凍結在時間裡
想像你在拍一個轉動中的腳踏車輪。你不會記錄每一瞬間——而是每隔幾分之一秒拍一張照片,眼睛則自動補上影格之間的動作。取樣對電壓做的正是這件事:一個電路在完全均勻的時刻伸手出去,抓住波形那一瞬間的高度,其餘的全部丟棄。結果是一排數字,彼此間隔一個取樣週期 Ts。每秒做 44,100 次(CD 音質),你就把一條無限細緻的曲線縮成每秒 44,100 個數字——一份電腦能儲存、複製、運算的清單。
但這裡有個陷阱,而且正是讓老電影裡馬車輪看起來倒轉的那個陷阱。如果你拍輪子拍得太慢,一個快速的正轉看起來會像緩慢的倒轉——你的取樣是誠實的,但它們同時也符合錯的運動。在訊號上,這叫做[[ee-aliasing|混疊]],解藥就是你在「訊號與系統」學過的奈奎斯特—夏農取樣定理:要捕捉一個最高頻率為 fmax 的訊號,你的取樣速率必須高於 2·fmax。人耳上限約在 20 kHz,所以 CD 音質以 44.1 kHz 取樣——舒服地高過 40 kHz,還留一點餘裕讓抗混疊濾波器發揮作用。
量化:四捨五入到價目表
取樣搞定了時間軸——我們現在只在整齊的時刻才有數值。但每個捕捉到的值仍是個帶著無窮小數的實數,而沒有任何電腦能存下無窮小數。[[quantization|量化]]把每個取樣對齊到一把固定階梯上最接近的那一階,就像商店把每個價格四捨五入到最近的分。用 N 個位元你得到 2^N 階:8 位元給你 256 階,16 位元給你 65,536 階。四捨五入造成的縫隙是無法避免的誤差——量化雜訊——它替品質設下一個硬天花板,用訊號雜訊比來衡量。
Analog wave Sample (time grid) Quantize (level grid) ___ o o-> 110 / \ o o o o-> 101 | | ==> o o ==> o o | | o o o o-> 011 \_/ o o o o-> 001 (smooth) |---Ts---| snap each to nearest level Each kept value -> nearest of 2^N rungs -> N-bit number 3-bit ladder shown: 000 001 010 011 100 101 110 111 (8 levels)
有一條漂亮又簡單的拇指法則,每個音訊與儀器工程師都記在腦裡:每多一個量化位元,大約替你買到 6 dB 的 SNR。對一個滿刻度正弦波,完整公式是 SNR ≈ 6.02·N + 1.76 dB。所以 16 位元的 CD 音質達到約 6.02·16 + 1.76 ≈ 98 dB——意思是最大聲的音量比那層四捨五入的嘶聲強約 80,000 倍,遠遠超出你耳朵能察覺的範圍。現代錄音室轉換器用 24 位元,不是因為你聽得出差別,而是為了在混音時留下充裕的餘裕。
為何數位致勝:再生勝過累積
現在回到類比那個致命缺陷。想像影印一張影印的影印本。每印一次就多一點模糊,而這些模糊永不消失——它們一層層堆疊,直到整頁糊成一團。一個類比訊號沿著長纜線傳遞正是如此:每一公里都加進一絲雜訊,每一個放大器把訊號連同累積的雜訊一起放大,而你根本無法把原本的波形和騎在上面的雜訊分開。跳接夠多次之後,聲音就被埋掉了。
數位玩的是完全不同的遊戲。一個位元永遠只會是 1 或 0,所以接收端不必重現任何形狀——它只需要判定送來的是兩個符元中的哪一個。只要雜訊小到 1 看起來仍然比較像 1 而不像 0,接收端就輸出一個全新、完美的 1——所有雜訊的痕跡都被抹除。這個清乾淨再重送的動作叫做再生,正因如此,一串數位中繼器能橫跨整片海洋而毫無累積劣化,而同樣長度的類比鏈路抵達時只會是一片嘶聲。
ANALOG repeater chain (noise ACCUMULATES):
clean ~~~~> +noise ~~~> amp(sig+noise) ~~~> +noise ~~~> amp ... = MUSH
DIGITAL repeater chain (noise is ERASED each hop):
1 0 1 1 --noisy--> [decide >threshold?] --> 1 0 1 1 (perfect) --noisy--> [decide] --> 1 0 1 1
^ as long as noise < half the gap between levels, output is flawless把位元印上載波:ASK、FSK、PSK
我們手上有一條位元的河流;現在得把它們當無線電發射出去。一個正弦載波恰好只有三個旋鈕能轉——振幅、頻率、相位——每一個給出一族[[ee-digital-modulation|數位調變]]。轉振幅,得到 ASK(振幅鍵移):1 是強脈衝、0 是靜默(或弱脈衝)——摩斯電碼就是它的曾祖父。轉頻率,得到 FSK(頻率鍵移):1 是一個音、0 是另一個音——老式撥接數據機那聲尖叫,就是你真的聽得見的 FSK。轉相位,得到 PSK(相位鍵移):載波的振幅和頻率穩如磐石,但它會突然翻轉相位,藉此表示不同的位元。
Bit stream: 1 0 1 1
ASK ampl. /\/\ ____ /\/\ /\/\ strong = 1, off = 0
FSK freq. /\/\ /\/\/ /\/\ /\/\ fast tone = 1, slow tone = 0
(hi) (lo) (hi) (hi)
PSK phase /\/\ \/\/ /\/\ /\/\ phase flips 180 deg on a 0
0deg 180 0deg 0deg (same amplitude throughout)為什麼 PSK 是現代鏈路的主力?因為振幅正是雜訊最容易破壞的性質——一場雷雨或一道衰落的多路徑回波會重創訊號強度,卻幾乎不影響波形何時穿過零點。把資訊藏在相位裡,PSK 就能穿越那些會讓 ASK 癱瘓的振幅亂流。工程師用星座圖來想像 PSK:一張二維地圖,每個可能的符元是一個點,它的角度代表相位、它到原點的距離代表振幅。點與點離得越遠,鏈路在接收端把一個誤認成它鄰居之前,能容忍的雜訊就越多。
BPSK constellation (1 bit/symbol) QPSK constellation (2 bits/symbol)
Q Q
| 01 | 00
o-----+-----o bit0 -> o | o
1 | 0 ----+-----+-----+---- I
| o | o
I axis 11 | 10
two phases: 0deg and 180deg four phases: 45,135,225,315 deg符元與位元之分,以及一個 BPSK 實作範例
這裡有個幾乎所有人一開始都會絆倒的區分。一個位元是一單位的資訊——單一個 1 或 0。一個符元則是載波被傳送出去的一種狀態,維持一個符元週期。兩者並不相同!在 BPSK 裡,每個符元剛好載一個位元,所以符元和位元步調一致。但在 QPSK 裡有四種不同相位,所以每個符元載兩個位元;在 16-QAM 裡,16 種狀態的每一個載四個位元。每符元塞進越多位元,你就能在相同頻寬內傳得更快——但星座圖上的點也擠得更近,於是你需要更乾淨的通道(更高的 SNR)才能把它們分開。這個取捨——每符元位元數對上雜訊容忍度——正是有史以來每一台數據機核心的那筆交易。
我們親手把一段真實的位元樣式編成 BPSK。這道食譜是所有調變裡最簡單的:讓載波的振幅和頻率固定,再依位元選擇它的相位。我們採用常見約定 位元 1 → 0° 相位、位元 0 → 180° 相位。180° 翻轉在數學上不過就是把載波乘以 −1,所以 BPSK 其實就是「1 送 +cos、0 送 −cos」。
- 拿出要傳送的位元樣式:1 0 1 1 0。
- 把每個位元對映到相位:1→0°、0→180°。樣式變成相位 0°、180°、0°、0°、180°。
- 把每個相位對映到載波的正負號:0°→ +cos(2πfc·t)、180°→ −cos(2πfc·t)。
- 每個符元週期 Tsym 發送一段這樣的載波脈衝(此處 1 符元 = 1 位元,所以 5 個位元就是 5 段脈衝)。
- 在接收端,把進來的波乘上一個乾淨的本地 cos,並在每個 Tsym 上取平均:正的結果讀成 1、負的結果讀成 0。(這就是匹配偵測——也正是 BPSK 如此耐用的原因。)
Bits: 1 0 1 1 0
Phase: 0deg 180deg 0deg 0deg 180deg
Sign: +cos -cos +cos +cos -cos
Waveform (each cell = one symbol period Tsym):
/\ /\ \/ \/ /\ /\ /\ /\ \/ \/
/ \/ \ /\ /\ / \/ \ / \/ \ /\ /\
\/ \/ ^ \/ \/
+1 phase flip 180 back to +1, +1 flip 180
Receiver: integrate (rx * cos) over Tsym -> + - + + - -> 1 0 1 1 0 (recovered!)