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