📘《AI 時代系列(6):進階通訊工程——邁向 2035 年太空星鏈網路時代》
📘 第 3 周 🎶 電波的語言:調變、編碼與 6G 高頻革命
**25/100|卷積碼 🌀 早期可靠編碼的主力
—— LTE 以前的星級 FEC × Viterbi 的最佳拍檔**
________________________________________
🌟 單元導讀|卷積碼是什麼?為什麼重要?
在今天 LDPC/Polar 充滿 5G/6G 世界之前,
整個 2G → 3G → LTE 前期,
無線通訊界真正的主力 FEC 是:
🚀 卷積碼(Convolutional Code)
它是:
• 行動通訊(GSM / WCDMA / HSPA)主力編碼
• 衛星通訊、航太、深空通訊(NASA)長年愛用
• 與 Viterbi 解碼 搭配堪稱經典組合
• 也是現代 Turbo Code、Polar、LDPC 的前身與基礎
雖然 5G 已把它淘汰,但它的重要性更像:
📌 沒有卷積碼,就沒有今天的 Turbo、LDPC、Polar。
📌 你不懂卷積碼,就無法真正理解 FEC 的演進。
________________________________________
🌀 一、卷積碼的核心概念
📌 Block Code(區塊碼) vs. Convolutional Code(卷積碼)
1. 區塊碼(Block Codes)
• 運作方式:
✔ 將資料分成一段一段(block-by-block)獨立編碼
✔ 每個區塊彼此沒有關聯
• 記憶性:
✔ 無記憶(Memoryless)
✔ 編碼結果只依賴該一段資料本身
• 代表技術:
✔ Reed–Solomon(RS)
✔ LDPC(Low-Density Parity-Check)
✔ BCH Codes
• 通訊實務位置:
✔ 5G/6G 的 數據信道主力:LDPC
✔ 衛星/光纖/儲存常用 RS
________________________________________
2. 卷積碼(Convolutional Codes)
• 運作方式:
✔ 將資料視為一整條序列 持續流入編碼器(streaming)
✔ 現在的比特會受到之前的比特影響 → 具有“記憶”
• 記憶性:
✔ 有記憶(Stateful)
✔ 狀態由移位暫存器(shift register)記錄
• 代表技術:
✔ Convolutional Code(Rate 1/2, 1/3 …)
✔ Viterbi Decoder(最佳 ML 解碼)
✔ Turbo Code(由兩個卷積碼組成)
• 通訊實務位置:
✔ 4G LTE 主力:Turbo Code
✔ 控制信道(傳統):Convolutional + Viterbi
✔ 5G NR 控制信道:Polar Code(非卷積,但概念類似 sequence-based)
卷積碼最關鍵的特色:
✔ 有記憶性(memory)
✔ 輸出取決於「目前 input」+「之前數個 input」
✔ 表示成:移位暫存器 + XOR 網路
因此卷積碼是“序列型 FEC”。
________________________________________
📟 二、卷積碼編碼器的結構:Shift Register + XOR
最基本的結構:
input → [D] → [D] → [D]
│ │
+--⊕---+
│
output1 = XOR(目前 + 1段記憶)
output2 = XOR(目前 + 2段記憶)
這個最基本的卷積碼結構利用串接的三個 1-bit delay(D) 形成編碼器的記憶,每輸入一個 bit,整串寄存器向後移動;輸出端依照 generator taps 取得目前 bit 與前面記憶位元做 XOR,例如第一輸出取「目前 + 第一段記憶」,第二輸出取「目前 + 第一段 + 第二段記憶」,因此每輸入 1 bit 即輸出 2 個 parity bit,形成典型的 rate 1/2、K=3 的卷積碼。
其中:
• 每個 D 表示 delay(1-bit 記憶)
• 多組 XOR 表示不同生成多項式(generator polynomial)
✔ 編碼率(Rate)
最經典:
Rate = 1/2
輸入 1 bit → 輸出 2 bits。
✔ 記憶階數(Constraint Length K)
K = shift register 長度 + 1(包含 current bit)
例如 K = 3:
x[n], x[n−1], x[n−2]
越大 K:
• 編碼性能 ↑
• 解碼複雜度 ↑(Viterbi 比較重)
📘 工程重點
卷積碼 = input bit 加入移位暫存器形成記憶,按 generator polynomial 做 XOR,得到多個 parity 輸出。解碼用 Viterbi 找最可能序列。
________________________________________
📡 三、生成多項式(Generator Polynomial)
經典卷積碼(Rate 1/2, K=3):
g1 = 111 (八進位 7)
g2 = 101 (八進位 5)
代表:
• output1 = x[n] ⊕ x[n−1] ⊕ x[n−2]
• output2 = x[n] ⊕ x[n−2]
卷積碼就是利用這種 組合 XOR
讓每個 output bit 同時包含多個時間點的資料
→ 增加可靠度。
________________________________________
🧭 四、卷積碼為什麼“可靠”?
因為產生了時間上的冗餘(temporal redundancy)。
在 Rayleigh 衰落、多路徑、低 SNR 的無線環境中:
• 某些 bit 會被破壞
• 但不會連續破壞 K 個 bit
• 因此 Viterbi 可以找出最接近的路徑
• 最終重建原訊號
也就是:
📌 卷積碼把 bit 做時間交織(time diversity)。
________________________________________
🧠 五、Viterbi 解碼:卷積碼的靈魂
卷積碼和 Viterbi 幾乎是不可拆的。
Viterbi 是什麼?
📌 以最大概似 (ML) 找出最可能的狀態路徑。
卷積碼本質是一個有限狀態機(FSM),
每個 bit 對應:
• 狀態(shift registers)
• 輸出(XOR 結果)
Viterbi 在「狀態樹」(trellis)上選擇:
👉 代價最小(或似然最高)的路徑。
⭐ 優點
✔ ML 最佳解
✔ 對 Rayleigh 衰落特別強
✔ 收斂穩定
✔ 可硬體化(中華電信基地台早期都用硬體 Viterbi)
________________________________________
🛰️ 六、卷積碼為什麼被 5G 淘汰?
原因很清楚:
❌ 1. 低效率(遠不如 LDPC/Polar)
卷積碼距離香農界限較遠
效能無法隨 code 長度提升而逼近極限。
❌ 2. Viterbi 解碼複雜度太高
複雜度 ~ 2^(K−1)
K 大時爆炸。
❌ 3. Turbo、LDPC 更強
卷積碼是 Turbo Code 的核心(Recursive Convolutional Code),
但“本體”被取代。
❌ 4. 不適合 5G 超大資料量
5G eMBB 的 code block 遠大於 3G。
________________________________________
🚀 七、卷積碼在 6G / NTN(非地面網路)仍有價值?
你可能會驚訝:
📌 在衛星與深空通訊,卷積碼仍大量存在。
尤其:
• 低速控制訊號(control channel)
• 高可靠度鏈路(telemetry)
• LEO/衛星回傳(uplink)
• 航太、火箭、無人機
因為:
✔ Viterbi 非常穩定
✔ 錯誤傳播小
✔ 低資料率時效率損失不大
✔ 可在極低 SNR 下運作(比 LDPC 好調教)
在 NASA,有些任務甚至仍用:
🚀 卷積碼 + Reed–Solomon 綜合編碼
________________________________________
🧩 八、ASCII:卷積碼編碼器(Rate 1/2, K=3)
x[n] →──●──────●──────●───→ shift registers
│ │ │
│ │ │
output1: ⊕──────⊕──────⊕──── (111)
output2: ⊕──────────────⊕──── (101)
這個卷積碼編碼器以三個串接的 1-bit shift register 形成長度 K=3 的記憶,輸入 bit 𝑥[𝑛]依序灌入並推動整串寄存器移動;兩個輸出各依照生成多項式選取不同的 tap 做 XOR:第一輸出使用 (111),即「目前 bit + 第一段記憶 + 第二段記憶」全部相加;第二輸出使用 (101),只取「目前 bit + 第二段記憶」。因此每輸入一個 bit,同時產生兩個 parity bit,構成典型的 rate 1/2 卷積碼。
________________________________________
📝 九、單元測驗
(1)卷積碼最大的特性是什麼?
卷積碼最大的特性是 具備記憶性(memory)。
它的輸出不只依賴當下輸入的 bit,還會受到先前多個 bit(由 shift register 保存)共同影響。
因此,卷積碼能利用「過去資訊」做更好的錯誤檢測與糾正,這也是其名字 convolutional 的由來。
________________________________________
(2)卷積碼最常用的解碼器是?
卷積碼的標準解碼器是 Viterbi decoder。
Viterbi 使用 trellis(狀態圖)進行 MLSE(Maximum Likelihood Sequence Estimation),從所有可能的輸入序列中找出最可能的一條路徑。
因為效能穩定、架構成熟,它成為卷積碼 50 年來的基本解碼器。
________________________________________
(3)卷積碼 Rate = 1/2 表示什麼?
Rate = 1/2 表示 每輸入 1 個 bit,就會輸出 2 個 parity bits。
也就是說,實際輸出的資料量是輸入的兩倍,這同時代表更強的錯誤保護。
Rate 越低,保護力越強,但頻寬開銷越大。
________________________________________
(4)卷積碼的 constraint length K 代表什麼?
Constraint length K = shift register 的長度 + 1,是衡量編碼器「記憶深度」的參數。
K 越大,表示 encoder 能利用更長的一段歷史 bit 來生成 parity,因此效能更好,但也會大幅增加解碼端的計算量與硬體複雜度。
________________________________________
(5)Viterbi 解碼複雜度與什麼有關?
Viterbi 的複雜度與 trellis 狀態數 = 2^(K−1) 成正比。
當 K 增加一格,解碼複雜度便「倍數爆炸」。
因此實務上常選擇 K=3、K=7(NASA 經典)這類在效能與複雜度間取得平衡的配置。
________________________________________
(6)為何卷積碼仍在 NTN/衛星通訊中使用?
在衛星、NTN、深空、低 SNR 環境中,卷積碼仍非常有價值,原因包括:
✔ 短封包效能佳(LDPC 在短 block 長度下效率不高)
✔ Viterbi 解碼穩定、可預測,不易爆炸
✔ 記憶小、硬體需求低,適合衛星 payload、低功耗設備
✔ 錯誤傳播比 Turbo/LDPC 小,適合控制信令
✔ 標準成熟,容易調教,對 LEO/GEO 的高動態環境更具實務優勢
因此在今天的 NTN,卷積碼依然負責:
📡 控制信道(CCH)
📡 遠端管理與同步訊號
📡 低速備援通道
📡 超低 SNR Deep Space link
________________________________________
🌟 十、小結
📌 卷積碼是無線通訊史上的真正英雄。
它讓 2G/3G/航太都能可靠運作,
即使 5G/6G 已轉向 LDPC / Polar,
卷積碼仍是理解 FEC 的絕對基礎。
一句話:
懂卷積碼,才能看懂 Turbo、LDPC、Polar 的靈魂。














