一種高效咬尾卷積碼譯碼器的設(shè)計(jì)與仿真
摘要:介紹了咬尾卷積碼的最優(yōu)和次最優(yōu)譯碼算法的實(shí)現(xiàn)細(xì)節(jié)。給出了采用新的蝶形圖計(jì)算方法和環(huán)形內(nèi)存來節(jié)省硬件資源的實(shí)現(xiàn)方法,最后給出了次最優(yōu)算法在FPGA上的實(shí)現(xiàn)結(jié)果。
關(guān)鍵詞:咬尾卷積碼;次最優(yōu)譯碼算法;蝶形圖;FPGA
0 引言
自1955年Elias發(fā)明卷積碼以來,卷積碼作為一種高效的信道編碼已被用在許多現(xiàn)代通信系統(tǒng)中。卷積碼分為零比特卷積碼(Zero Tail CC,簡(jiǎn)稱ZTCC)和咬尾卷積碼(Tail Biting CC,簡(jiǎn)稱TBCC)兩種。ZTCC是指在編碼的時(shí)候,碼字后面要另外加上K(K為約束長度)個(gè)0將編碼寄存器的最后狀態(tài)打出,而TBCC則是直接用碼字的最后K個(gè)比特將編碼寄存器初始化,從而提高編碼率?,F(xiàn)在的3G和4G通信標(biāo)準(zhǔn)中(比如WiMAX或LTE)都采用了TBCC信道編碼。關(guān)于TBCC的譯碼算法很多,其中比較經(jīng)典的譯碼算法有循環(huán)維特比算法(CVA)和BCJR算法。但上述算法由于解碼時(shí)延不固定和復(fù)雜度的原因,均不便于硬件實(shí)現(xiàn)。為此,本文提出了一種便于硬件實(shí)現(xiàn)的次優(yōu)解碼算法。
1 TBCC譯碼算法
1.1 最優(yōu)譯碼算法
TBCC的理論最優(yōu)譯碼算法是,對(duì)于每一個(gè)可能的初始狀態(tài)(3k)用維特比譯碼算法對(duì)所有可能的狀態(tài)進(jìn)行搜索,最后再根據(jù)最好的狀態(tài)進(jìn)行解碼。但是,這種算法的復(fù)雜度太高,不利于硬件實(shí)現(xiàn)。
1.2 次最優(yōu)譯碼算法
次最優(yōu)譯碼算法的經(jīng)典代表是CVA算法,此外還有其改進(jìn)的算法比如環(huán)繞維特比算法(WAVA)和雙向維特比算法(BVA)。它們的主要思路是利用圓形buffer將碼字?jǐn)U展成多個(gè)相同碼塊首尾相接的長碼塊進(jìn)行譯碼。當(dāng)檢測(cè)到首尾狀態(tài)相等或者滿足自適應(yīng)迭代的停止條件時(shí),即完成譯碼;否則繼續(xù)進(jìn)行迭代。但該算法或其改進(jìn)的WAVA和BVA算法都存在這樣一個(gè)問題。那就是解碼的延遲不是固定的,而這非常不便于硬件實(shí)現(xiàn)。
所以,本文中提出固定延遲的譯碼算法,其基本思路是在碼塊的前Lt個(gè)符號(hào)補(bǔ)在符號(hào)的后面,將碼塊的后Lh個(gè)符號(hào)補(bǔ)在碼字的前面,這樣就構(gòu)成一個(gè)長度為Lt+N+Lh的新碼塊(假設(shè)原碼字長度為N),圖1所示是重構(gòu)的碼塊示意圖。該新碼塊可以按照ZTCC解碼一樣去解碼,然后從具有最小路徑度量(path metric)的狀態(tài)進(jìn)行回溯。
圖2所示是其譯碼算法流程圖。其中Lt和Lh參數(shù)的選擇應(yīng)根據(jù)仿真來確定。這里采用典型值:Lt=72,Lh=96。
評(píng)論