用TMS320C54X實(shí)現(xiàn)Vertibi譯碼器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用; 作者:江漢石油學(xué)院 吳莉莉 劉益成
摘要:主要介紹卷積編碼器Vertibi譯碼器的基本原理。對(duì)用TMS320C54X DSP來實(shí)現(xiàn)Vertibi譯碼器中的兩個(gè)主要環(huán)節(jié)——度量值更新和回溯,作了詳細(xì)說明,并給出具體的實(shí)現(xiàn)程序。
關(guān)鍵詞:Vertibi譯碼 TMS320C54X DSP 度量值 回溯 卷積編碼
引言隨著差錯(cuò)控制編碼理論的完善和數(shù)字電路技術(shù)的發(fā)展,信道編碼已經(jīng)成功地應(yīng)用于各種通信系統(tǒng)中。其基本做法是:在發(fā)送端將被傳輸?shù)男畔⑿蚋细郊右恍┍O(jiān)督碼元,這些多余的碼元與信息序列之間以某種確定的規(guī)則相互約束;接收端按照既定的規(guī)則檢驗(yàn)信息碼元與監(jiān)督碼元之間的關(guān)系,一旦傳輸過程中發(fā)生錯(cuò)誤,則信息碼元與監(jiān)督碼元之間的關(guān)系將受到破壞,從而發(fā)現(xiàn)錯(cuò)誤,甚至糾正錯(cuò)誤。按照信息碼元和監(jiān)督碼元之間的約速方式,可以分為組碼和卷積碼。在GSM和IS-95中主要采用了卷積碼,在每三代移動(dòng)通信中,話音信號(hào)也主要采了卷積編碼。卷積碼的譯碼方法有許多種,其中最重要的就是Vertibi算法。為此,本文討論用DSP實(shí)現(xiàn)Vertibi譯碼器的方法。
1 卷積編碼器簡介
卷積碼是一種對(duì)付突發(fā)錯(cuò)誤的有效編碼方法,通常記作(n,k,N)。它將k個(gè)信息編碼為n個(gè)比特,編碼效率為Rc=k/n。N為約束長度。與分組碼不同,卷積碼中編碼后的n個(gè)碼元不但與當(dāng)前段的k個(gè)信息有關(guān),而且與前面N-1段的信息有關(guān),編碼過程中相互關(guān)聯(lián)的碼元為Nn個(gè)。其糾錯(cuò)能力隨著N的增加而增大,而差錯(cuò)率隨著N的增加而指數(shù)下降。卷積編碼器的結(jié)構(gòu)如圖1所示。
由圖1可知,卷積編碼器包括兩部分:一個(gè)由N段組成的輸入移位寄存器,每段有k段,共有N·k位移位寄存器;n個(gè)模2和相加,其輸入分別對(duì)應(yīng)于n個(gè)基于生成多項(xiàng)式的線性代數(shù)方程組。每輸入k個(gè)比特,編碼器輸出n個(gè)比特。在編碼器復(fù)雜度相同的情況下,卷積碼的性能優(yōu)于分組碼。
2 Vertibi譯碼的基本原理卷積碼的譯碼方法主要包括Vertibi算法、Fano算法和堆棧算法等等,其中最重要的和最常用的就是Vertibi算法。Vertibi算法是一種關(guān)于解卷積的最大似然譯碼法。它不是在網(wǎng)格上依次比較所有的可能路徑,而是接收一段,計(jì)算一段,保留最有可能的路徑,從而達(dá)到整個(gè)碼序列是一個(gè)最大似然序列。
Vertibi算法可以算法描述如下:把在時(shí)刻i、狀態(tài)Sj所對(duì)應(yīng)的網(wǎng)格圖節(jié)點(diǎn)記作(Sj,i),給每個(gè)網(wǎng)格圖節(jié)點(diǎn)賦值V(Sj,i)。節(jié)點(diǎn)值按照如下步驟計(jì)算:
①設(shè)V(S0,0)=0,i=1。
②在時(shí)刻i,對(duì)于進(jìn)入每個(gè)節(jié)點(diǎn)的所有路徑計(jì)算其不完全路徑的長度。
③令V(Sj,i)為在i時(shí)刻,到達(dá)與狀態(tài)Sj相對(duì)應(yīng)的節(jié)點(diǎn)(Sj,i)的最小不完全路徑長度,通過在前一節(jié)點(diǎn)隨機(jī)選擇一條路徑就可產(chǎn)生新的結(jié)果,非存留支路將從網(wǎng)格圖中刪除。以這種方式,可以從(S0,0)處產(chǎn)生一組最小路徑。
④用L表示輸入編碼段的數(shù)目。其中,每段為k比特,m為編碼器中最大寄存器的長度。如果i<L+m,則令i=i+1,返回第②步。
一旦計(jì)算出所有節(jié)點(diǎn)值,則從i=L+m時(shí)刻,狀態(tài)S0開始,沿網(wǎng)格圖中的幸存路徑反向追尋即可。這樣被定義支路與解碼輸出將是一一對(duì)應(yīng)的。關(guān)于不完全路徑長度,硬判斷決解碼采用漢明距離,軟判決解碼采用的是歐幾里德距離。軟判決的特性比硬判決要好2~3dB。
(n,k,N)卷積編碼器共有2 kn個(gè)狀態(tài),因此Vertibi譯碼器必須具有同樣的2 kn個(gè)狀態(tài),并且在譯碼過程中要存儲(chǔ)各狀態(tài)的幸存路徑和長度。Vertibi譯碼器的復(fù)雜程度隨2 kn指數(shù)增加。一般要求n<10。
3 Vertibi譯碼器的DSP實(shí)現(xiàn)譯碼過程就是根據(jù)接收到的數(shù)據(jù)符號(hào),按最大似然譯碼準(zhǔn)則找出編碼器在網(wǎng)絡(luò)圖上所走過的路徑。Vertibi譯碼的處理過程如圖2所示。
3.1 度量值更新
度量值的更新包括以下4個(gè)步驟