基于FPGA的卷積碼的編/譯碼器設(shè)計
描述卷積碼的方法主要有兩類:圖解表示和解析表示。上文提到的生成多項式G=(111,101)即是解析表示。卷積碼的圖解表示又可分為樹狀圖、網(wǎng)格圖和狀態(tài)圖3種。下面介紹常用的樹狀圖表示(網(wǎng)格圖表示將在譯碼部分介紹)。在圖2所示的卷積編碼樹狀圖中,假設(shè)移位寄存器的起始狀態(tài)全為0,當(dāng)?shù)?個輸入比特為O時,輸出比特為00;若輸入比特為1時,則輸出比特為11。隨著第2個比特輸入,第1個比特右移1位,此時輸出比特同時受當(dāng)前輸入比特和第1個輸入比特的影響。第3個比特輸入時,第1、2比特分別右移1位,同時輸出2個由這3位移位寄存器存儲內(nèi)容所共同決定的比特。當(dāng)?shù)?個比特輸入時,第1個比特移出移位寄存器而消失。移位過程可能產(chǎn)生的各種序列如圖3中的二叉樹。
2 Velerbi(維特比)譯碼器原理
卷積碼的譯碼方式有3種:Veterbi譯碼、門限譯碼和序列譯碼。其中維特比譯碼具有最佳譯碼性能,但硬件實現(xiàn)相對復(fù)雜。veterbi算法是檢測離散馬兒可夫過程有限狀態(tài)序列的優(yōu)化算法。在數(shù)字通信系統(tǒng)中,前向糾錯卷積碼編碼和維特比譯碼用來提高系統(tǒng)性能,應(yīng)用廣泛。
維特比算法是一種最大似然譯碼算法。它不是在網(wǎng)格圖上一次比較所有可能的2條完整路徑,而是接收一段,計算比較一段,選擇一段最有可能的碼段,從而達(dá)到整個碼序列是一個有最大似然函數(shù)的序列。其基本原理是:以斷續(xù)的接收碼流為基礎(chǔ),逐個計算它與其他所有可能出現(xiàn)的連續(xù)的格狀圖路徑的距離,選出其中概率最大的一條作為譯碼輸出。
維特比(Veterbi)譯碼算法是基于卷積碼的網(wǎng)格圖表示中路徑的計算,其核心思想就是通過計算路徑矢量進(jìn)而尋找最短路徑從而最終得到譯碼序列并可以糾正傳輸過程中的錯誤碼字。圖4中給出(2,1,3)卷積碼的網(wǎng)格圖表示。
圖4中的網(wǎng)格圖中共有2k(N-1)種狀態(tài),每個狀態(tài)(節(jié)點)有2k條支路進(jìn)入,同時也有2k條支路引出。由于本文討論的是(2,1,3)卷積碼的情況,因此k=1,假設(shè)起始狀態(tài)為全0。
在不同時刻對于同一節(jié)點的所有8個狀態(tài),分別計算以其為終點的2條分支路徑的對數(shù)似然函數(shù)累加值并進(jìn)行比較,舍棄其中對數(shù)似然函數(shù)累加值小的路徑,保留對數(shù)似然函數(shù)累加值較大的路徑,并將此路徑稱為剩余路徑。由此可見,上述過程可以歸納為“加-比-選”算法,經(jīng)過“加-比-選”電路以后,通過結(jié)束信息來確定最終得到的譯碼序列,其中每到來一個結(jié)束信息時,只將與已知發(fā)送信息相符的那條支路保留,以此類推,經(jīng)過N-1個結(jié)束信息后,即可得到與發(fā)送序列最相似的譯碼路徑。
評論