摘要: 為了滿足復雜的無線通信系統功耗以及性能要求,提出并設計了一種指針反饋式Viterbi譯碼器。該譯碼器使相鄰時刻的各狀態轉移滿足單向一對一指向關系,并根據傳統譯碼器初始譯碼狀態從狀態0延伸的特點,通過每一時刻不斷更新的狀態指針指向當前時刻譯碼路徑狀態,同時輸出譯碼結果。算法仿真以及FPGA和CMOS綜合結果表明,該譯碼器功耗降低60%,譯碼延時小,并且在信噪比較高的情況下有很好的譯碼性能,特別適用于約束長度大、譯碼狀態數多的情況。
隨著現代無線通信系統日益復雜化的發展,無線基帶通信系統中各模塊的實際性能、延時、功耗等參數成為基帶設計的重要考慮因素。Viterbi譯碼器廣泛應用于無線局域網和移動通信系統,并且作為基帶系統的重要組成部分,其功耗與性能成為基帶設計中非常關鍵的一環。因此,設計功耗低、譯碼性能好的Viterbi譯碼器尤為重要。
傳統的Viterbi譯碼器主要包括支路度量單元(BMU)、加比選單元(ACSU)以及幸存路徑存儲單元(SMU)。其中SMU根據各狀態的幸存路徑得出譯碼信息,其實現方法有兩種:寄存器交換法(RE)和追蹤回溯法(TB)。傳統的寄存器交換法需要在譯碼過程中不斷進行寄存器交換存取操作,對于約束長度較大、狀態數較多的情況,硬件功耗較大;
而追蹤回溯法無需進行復雜的寄存器交換,每一個譯碼時刻只需變動少量RAM,實現功耗較小。因此關于追蹤回溯法的Viterbi譯碼器研究甚廣[1-3]。但是TB方法的譯碼延時約為RE方法的4倍[4],無法滿足對實時性要求高的無線通信系統(如無線局域網)的性能要求。
基于對譯碼性能、功耗以及延時的考慮,提出一種新型的指針反饋式低功耗Viterbi譯碼器。該譯碼器采用新的譯碼單元取代SMU,利用譯碼路徑從初始狀態0開始的特點,通過每一時刻通過不斷更新的唯一狀態譯碼指針,結合加比選單元輸出的狀態譯碼信息,指示出當前時刻的譯碼路徑狀態走向,并輸出當前譯碼結果。FPGA實現結果表明,對于(2,1,7)卷積譯碼延時只為2個時鐘周期,實時性好。此外,該方法實現的譯碼器比傳統的追蹤回溯法譯碼器功耗降低60%,并且實現較好的譯碼性能。
1 指針反饋式Viterbi譯碼基本原理
傳統的Viterbi譯碼按照最大似然估計原則,通過計算每一時刻可能的路徑值,最終找出一條最大似然路徑作為譯碼輸出路徑。
本文提出的指針反饋式Viterbi譯碼利用傳統譯碼器每次譯碼從初始狀態0開始的特點,并且在譯碼過程中,使前一時刻某狀態只與當前時刻另一狀態存在一對一指向關系,從而在每一時刻確定譯碼路徑。與此同時,通過狀態指針不斷更新當前時刻譯碼路徑上的狀態,實時輸出譯碼結果。
但是這種方法在遇到輸入序列某區域存在較多錯碼情況時,很有可能選錯譯碼路徑而導致大面積譯碼錯誤。為了克服上述缺點,卷積編碼器必須做出簡單調整:當編碼L(L≥4)次后,重新復位輸入,使譯碼重新從狀態0開始,從而有效阻隔輸入錯碼引起的譯碼錯誤的擴散。在信噪比較高的情況下,該譯碼器能夠在功耗、延時以及性能上得到保證。
為了更好地說明所提出的Viterbi譯碼器算法,現以約束長度K=3、編碼率r=1/2生成多項式g0=1118,g1=1018,并且以L=10的卷積編碼器對數據(01011101001000)進行編碼得到(00,11,10,00,01,10,01,00,10,11,11,10,11,00),并經過噪聲干擾,對該組噪聲數據進行軟判決處理,其譯碼過程如圖1所示。
根據狀態轉移關系,狀態0或狀態2可能指向下一時刻的狀態0或狀態1。當t=1時,狀態0與狀態1幸存路徑均源于t=0時的狀態0,為了使相鄰時刻狀態轉移不出現分叉情況,此時需要對狀態0和狀態1更新后的累計路徑距離進行最小值比較,較小的一方狀態指向不變,結果從t=0到t=1,狀態0指向狀態0。而原本狀態0指向狀態1的情況,改變成狀態2指向狀態1(即圖中虛線表示),從而實現相鄰兩時刻之間狀態轉移的單一指向性。
為了演示方便,圖1中只給出t≤4時改進后各狀態幸存路徑情況。另外,從圖中看出譯碼路徑每時刻經過的譯碼狀態的最低位(最低位以下劃線標示)與此刻譯碼比特相同,因此可以采用狀態指針的方法將其初始化為狀態0,每一時刻譯出的碼比特反饋更新狀態指針,進行實時譯碼追蹤。此外,由于L=10,在t=10時,狀態重新復位到狀態0,使譯碼器重新從狀態0出發以實現連續譯碼。
2 指針反饋式Viterbi譯碼器整體設計
指針反饋式Viterbi譯碼器整體結果如圖2所示,其中包括支路度量單元(BMU)、改進型加比選單元(MACSU)以及指針反饋追蹤(PFPT)模塊。本文基于802.11a/n,K=7,r=1/2,g0=1338,g1=1718卷積編碼,采用4比特軟判決對譯碼器進行硬件設計及實現。
2.1 支路度量單元(BMU)
支路度量單元負責將接收到的編碼數據與參考數據進行各狀態支路距離計算。理論上在進行軟判決處理時,支路距離采用歐氏距離計算方法。但是傳統的歐氏距離需要進行開根號與平方操作,因此硬件實現消耗資源高。本文給出一種改良的距離計算方法,數據量化范圍從0~15共15個區間,與參考文獻[5]提出的14個區間量化相比,計算精度上升。各支路距離的表達式為:
由式(6)和式(7)以及上述判決算法看出,只需對ΔPM和ΔBM進行簡單的加減法以及取符號位,即可實現狀態間一一指向關系,硬件實現復雜度低,并且延時少。實現時,每一時刻MACS輸出的各狀態更新的累計路徑距離反饋給下一時刻MACS的輸入端進行疊加計算,并且將各狀態記錄當前判決比特輸出至下一模塊中。
2.3 指針反饋追蹤模塊(PFPT)
PFPT模塊通過狀態指針儲存的譯碼狀態結合從MACSU輸出的64位判決比特進行狀態64選1的操作,最終在每一時刻輸出譯碼結果,并且將譯碼比特反饋更新狀態指針,用于下一時刻譯碼路徑狀態的選取。另外,每進行第1節中提及的L次譯碼時,狀態指針復位至狀態0(008)。
3 FPGA實現結果及譯碼器性能分析
指針反饋式Viterbi譯碼器對于約束長度大(K≥7)、譯碼狀態數較多的情況,其功耗以及性能效果明顯。對第2節中所述的硬件設計進行FPGA實現,并且對多種Viterbi譯碼器進行功耗等參數比較。其結果如表1和表2所示。
由表2看出,在相同CMOS工藝情況下,指針反饋式Viterbi譯碼器與參考文獻[6]和參考文獻[7]相比,實現功耗最低;而在相同編碼條件下,本文實現的算法功耗比參考文獻[6]功耗至少降低60%。
另外,將卷積編碼數據經過加性高斯白噪聲信道后,對噪聲數據進行指針反饋式Viterbi譯碼,其仿真結果與理想無編碼情況作誤比特率(BER)及信噪比(SNR)對比。其結果如圖6所示,當SNR在6dB附近時,BER約為10-4;而當SNR≥7.2 dB時,BER=0。因此,該譯碼器在較高SNR時性能較好。
本文提出了一種指針反饋式Viterbi譯碼器,該譯碼器依靠初始譯碼狀態從狀態0開始的特點,相鄰兩時刻各狀態進行單向一對一轉移關系,并在每時刻通過不斷更新的狀態指針尋找譯碼路徑上的狀態,同時輸出譯碼結果。算法仿真以及FPGA和CMOS綜合結果表明,該Viterbi譯碼器在信噪比較高時有良好的譯碼性能,同時功耗相對一般譯碼器減少60%,硬件實現資源低,譯碼延時少,因此適合于無線局域網和移動通信等系統硬件實現。
參考文獻
[1] 童琦,何洪路,吳明森。基于FPGA的高速并行Viterbi譯碼器的設計與實現[J]。電子技術應用,2007,33(1):30-32.
[2] LIN D J,LIN C C,CHEN C L,et al.A low-power Viterbi decoder based on scarce state transition and variable truncation length[C].International Symp.on VLSI Design, automation and test,2007:1-4.
[3] AMEEN S Y,Al-JAMMAS M H,ALENEZI A S.FPGA implementation of modified architecture for adaptive Viterbi decoder[C].Electronics, Communications and Photonics Conference(SIECPC),2011:1-9.
[4] 朱永旭,吳斌,周玉梅,等。適用于IEEE 802.11n的高速低功耗Viterbi譯碼器的設計[J]。微電子學與計算機,2010,27(7):10-14.
[5] El-DIB D A,ELMASRY M I.Memoryless Viterbi decoder[J].IEEE Trans. on Circuits and System-II,2005,52(12): 826-830.
[6] LIN C C,SHIH Y H,CHANG H C,et al.Design of a powerreduction Viterbi decoder for WLAN application[J].IEEE Trans. on Circuits and System-I,2005,52(6):1148-1156.
[7] Tang Yunching,Hu Dochen,Wei Weiyi,et al.A memory efficient architecture for low latency Viterbi decoder[C]。 International Symp.on VLSI Design,Automation and Test,2009:335-338.
作者:溫偉杰,陸許明,朱偉鴻,蔡春曉,譚洪舟
編輯:jq
-
CMOS
+關注
關注
58文章
5718瀏覽量
235513 -
噪聲
+關注
關注
13文章
1122瀏覽量
47414 -
譯碼器
+關注
關注
4文章
310瀏覽量
50336 -
BMU
+關注
關注
0文章
10瀏覽量
10146
發布評論請先 登錄
相關推薦
評論