• 沒有找到結果。

第一章 緒論

---

近年無線通訊技術、數位通訊一直不停的發展,各個系統的需求與 日俱增;而未來數據傳輸的涵蓋範圍勢必更加廣泛,傳輸速率也日益加 快,使得資料在傳輸過程中受到雜訊干擾影響的機率變大。這將導致接 受的資料訊息無法正確的辦視,故如何降低通道的干擾,使得錯誤得以 校正將越來越受到重視,所以通道編碼的方法以校正效果將成為系統設 計的重要課題。

本論文的目的主要是對於一個具有優秀錯誤更正能力,並且不會太 過複雜的通道編碼—渦輪乘積碼(Turbo Product Code)的實現與評估。

針對此編碼方法,提出三種不同的解碼方式,以求能達到高效能解碼、

硬體與效能平衡解碼或是簡單硬體需求解碼三種不同要求。

本章節將首先介紹通道編碼的發展,然後針對本論文主要討論的編 碼方法,區塊碼以及區塊乘積碼做簡單的介紹,最後概述一下本論文的 結構與章節。

1.1 研究動機

隨著數據通訊和訊號處理技術的日新月異,以及 VLSI 製程技術的 快速進步,使得以往一些較難以實現的編碼方法及通訊理論得以重新被 拿來應用,因而帶動了通訊系統的相關產業蓬勃發展。因此,通訊產品 對於抗雜訊的能力也越來越要求,而需求高運算的編碼方式也重新受到 重視,其中以渦輪碼(Turbo Code)最能提供優越的錯誤更正能力。而本 論文研究的編碼-渦輪乘積碼(Turbo Product Code,TPC)則是由渦輪碼 (Turbo Code)改進而來,使其不謹能有更好的錯誤更正能力,還更適合

應用在高傳輸的系統中。

在解渦輪乘積碼(TPC)的方法主要分為格子圖解碼和以卻斯(Chase) 演算法延伸軟式輸出解碼為主,格子圖由於受到狀態數的影響而需要龐 大的運算資料,但其有接近夏儂(Shannon)極限的好效能;卻斯演算法 雖然較格子圖演算法簡單,但由於需要反複的運用硬式和軟式解碼以及 大量的測試樣本,同樣有相當的複雜度;論文中將另外提出一種可以加 快解碼處理速度的方法,以節省硬體負荷量,但相對的需要以較表的解 碼效能做為代價。本論文會對此三種方法一一介紹,同時在論文最後會 對三種方法之中做一個效能與硬體需求的比較,

1.2 通道編碼(Channel Coding)簡介

通道編碼(Channel Coding)的主要目的是在於抵抗通道雜訊對訊號 的 影 響 。 較 簡 單 的 對 抗 方 法 是 利 用 週 期 性 循 環 檢 查 法 (Cyclical Redundancy CheckCRC)來檢查接收資料是否有錯誤,當接受端發覺有 錯誤時再要求重新發送。此種方法既占用頻寬又增加延遲。現在的通道 編碼則是由傳送端將資料先行經過重新隨機排序(Randomization)、向 前錯誤更正碼(Forward Error Correction Encoding,FEC encoding)、

交錯(Interleaver)資料最後再經過調變(Modulation)後送出,整個過 程如(圖 1.1)所示,其中以向前錯誤更正碼為主要的編碼動作。

向前錯誤更正碼(FEC)的運作方法是先將要傳送的資料進行編碼,

在接收端接受後即可對編碼過的字元(Code Word)實行解碼的動作,如 此即可在一定的錯誤範圍內進行即時的更正,而不需要要求傳送端再一 次的傳送資料。

有了向前錯誤更正碼(FEC)的觀念後,自 1950 年由漢明(Hamming) 所提出的單錯誤更正漢明碼(Single error correcting Hamming code) 開始,陸續就有各式的編碼方法被提出。如 1955 年 Elias 提出的迴旋 碼(Convolutional FEC Code),和 1959 年被提出的多錯誤更正(Multiple

error correcting)碼 Bose-Chaudhuri-Hocquenghem 區塊碼(BCH block code),以及由 Berrou、Glavieux 和 Thitimajshima 三人所提出具優越 錯誤更正能力的渦輪碼(Turbo Code)。

1.3 區塊編碼(Block Coding)簡介

在各個向前錯誤更正(FEC)碼的方法中,區塊碼(Block Code)和迴 旋碼(Convolutional Code)是較為基本的通道碼(Channel Code),在之 後發展出來的渦輪碼(Turbo Code)亦或是乘積碼(Product Code)都是取 兩種方法中的一種做為基本的編碼方法。其中區塊碼和迴旋碼最大的不 同在於區塊碼(Block Code)的編碼過程中,不會影響到以後的資料,也 就是不像迴旋碼(Convolutional Code)一樣具有時間相關性,資料的影 響是一個區塊一個區塊為主,不會有連續的影響。

區塊碼如此分段的好處主要顯現在解碼的過程中,由於其沒有時間 上的連續性,故解碼時亦能夠一個區塊一個區塊的解碼,這樣就不會像 是傳統迴旋碼一樣受到時間連續性的限制,而能採用數學代數的方式來 解碼。使用數學代數解碼的好處在於其解碼過程較為簡單,不像傳統解 迴旋碼時需要追蹤很長的一段時間的資料,才能將原本的資料還原,而 解法也相對的較不複雜。

1.4 乘積碼(Product Code)的介紹

乘積碼(Product Code)是在 1954 年由 Elias 所提出的一種編碼方 法,其想法是將兩種現有的區塊碼(Block Code)加以組合,將訊息做縱 向及橫向的兩次編碼,藉此來達到對通道雜訊有更高抵抗力的編碼方式 也因此其亦稱之為區塊乘積碼(Block Product Code)。

乘積碼縱橫交錯的編碼方式,跟渦輪碼(Turbo Code)在編碼上利用 交錯器(interleaver)來進行兩種不同排列的訊號做編碼的方式相當的 類似,不同的是乘積碼就像是用來一個簡單而單純的區塊交錯器(block

interleaver)來做渦輪碼,並且對第一次編碼之後的碼字元(Code word) 同樣的再進行編,詳細的情形會在第二章加以說明。也由於乘積碼有著 和渦輪碼同樣的交錯特性,故解碼時亦可用解渦輪碼的反覆解碼觀念來 解乘積碼,以求能達到更好的解碼效果。

1.5 論文組織

本論文在第一章中主要是在介紹通道編碼的發展情形,並了解研究 主題中主要使用的編碼方法,藉此說明研究題目的動機和目標。在第二 章中,主要是簡介區塊乘積碼系統及其設計架構,以了解區塊乘積碼的 編碼方法,如此才能針對乘積碼進行解碼。第三、四、五章便是解碼的 部分。在這三個章節中,我們將介紹三種以不同演算法為基礎的解碼方 式。第三章是利用格子圖(Trellis Diagram)的觀念來進行解碼,使用 的是最大後驗概率(Maximum A-Posteriori,MAP)演算法來進行解碼。

第四章則是以卻斯(Chase)演算法為主,配合者硬式的解碼方法,再以 Chase 演算法來達到軟式解碼,以達到更好的解碼效果。第五章是為了 達到低複雜度而設計的解碼方法,其主要是利用 BCH 編碼後其碼字元 (Code Word)是由資料做互斥運算得來的這個關係(此關係可以從同位檢 查矩陣(parity-check matrix)中得到),運用數學的方法將額外的資訊 (Extrinsic information)計算出來再加以解碼。在講解完各個解碼方 法後,將在第六章中說明這些方法解碼出來的模擬解果,以及將其設計 為硬體時的運算需求考量。最後在第七章中提出本論文的結論。

---

相關文件