摘 要:基于FPGA的卷積碼Viterbi譯碼器,其性能與譯碼算法參數設置密切相關。在采用VHDL語言設計實現譯碼器的基礎上,通過仿真,分析了Viterbi譯碼器參數的設置情況,就幸存路徑長度、編碼存儲度等參數對FPGA譯碼器性能的影響進行了討論,并給出了這些參數的最佳取值。對卷積碼編譯碼參數設計具有較好的指導性和實用性。
關鍵詞:卷積碼;Viterbi譯碼;VHDL;幸存路徑
中圖分類號:TN919.3文獻標識碼:A
文章編號:1004-373X(2008)07-097-02
Performance of Viterbi Decoder for Convolutional Code Based on FPGA
CHEN Xinyong1,YANG Ruijuan1,XIAO Yufen1,ZENG Hao2
(1.Air Force Radar Academy,Wuhan,430019,China;
2.Communication and Information Engineering College,Chongqing University of Posts and Telecommunications,Chongqing,400065,China)
Abstract:The performances of Viterbi decoder for convolutional code have a close connect with the parameters setting of decoding algorithm.On the basis of implementing the decoder by using the hardware-description-language of VHDL,this paper analyses the matters of parameters setting for the Viterbi decoder.It discusses the transmission performances through altering the values for the parameters of surviving path length and coder storage length,and finally it gives the areas of optimal value for them.It supplies guidance and appliance for the parameters design of convolutional code.
Keywords:convolutional code;Viterbi decoding;VHDL;surviving path
卷積碼是一種前向糾錯控制(Forward Error Control,FEC)編碼方式,其特點是接收端根據接收碼字自動檢測和糾正信道傳輸引入的錯誤。由于FEC方式不需要反饋信道,譯碼實時性比較好,控制電路比較簡單,因此,卷積碼在衛星通信、數字話音通信等實時性要求較高的場合有著重要的應用。卷積碼的編譯碼器的實現可以利用EDA技術,采用硬件描述語言VerilogHDL或VHDL等進行FPGA編程設計,這種實現方式在集成度、可靠性和靈活性方面可達到比較滿意的效果。在設計卷積碼FPGA譯碼器時,需要考慮所用芯片規格、成本、系統計算量以及時延等因素。目前現有文獻多對卷積碼的實現進行研究,而對譯碼算法中參數設置情況研究較少[1,2]。本文采用VHDL語言,在設計實現卷積碼FPGA編譯碼器的基礎上,通過仿真對Viterbi譯碼算法中的參數進行了討論。
1 Viterbi譯碼算法
Viterbi譯碼算法由維特比在1967年提出。Viterbi譯碼算法實質上是最大似然譯碼,他巧妙利用編碼網格圖的特殊結構,從而降低計算的復雜性。例如圖1即為(2,1,2)卷積碼的網格圖。這里(n,k,m)分別指碼組寬度n,信息元個數k和編碼存儲度m,稱m+1=N為編碼約束度。
圖1 (2,1,2)卷積碼網格圖
該算法思想是:計算網格圖上在時刻L到達各個狀態的路徑和接收序列之間的相似度;在形成的多條路徑中,去除不可能成為最大似然選擇對象的網格圖上的路徑,即,如果有兩條路徑到達同一狀態,則具有最佳量度的路徑被選中,稱為幸存路徑。對所有狀態都將進行這樣的路徑選擇操作,譯碼器不斷在網格圖上深入,通過去除可能性最小的路徑實現判決。
Viterbi譯碼算法步驟如下[3]:
(1) 用數組p(i,j),c(i,j)描述網格圖結構。p(i,j)表示到達狀態i的第j個前狀態,其對應的碼字是(i,j)。
(2) 計算第L時刻接收碼RL相對于各碼字的相似度,亦稱作分支量度BM(BranchMetric)。
BM L(i,j)=W[c(i,j)⊕RL]
(3) 計算第L時刻到達狀態i的最大似然路徑之相似度,也即路徑量度PM(Path Metric)。
PM L(i)=min{PM L-1(i)[p(i,j)]+BM L(i,j)}
(4) 譯碼輸出并更新第L時刻、狀態i對應的幸存路徑。具體步驟是:
① 將到達狀態i的最大似然路徑的前狀態j所對應幸存路徑作為本時刻狀態i的幸存路徑,即SL(i)=SL-1(j);
② 選擇具有最小(最似然)PM那個狀態對應的幸存路徑最舊的碼字作為譯碼輸出;
③ 將各狀態幸存路徑最舊的碼字從各移存器移出,再將到達各狀態的最大似然路徑在時刻L所對應的碼字從移位寄存器的輸入端移入幸存路徑SL(i)。
2 FPGA編譯碼器
編碼器結構比較簡單,其所選用的系列器件可選性較大,這里選用Altera公司MAX7000器件系列,他的制造工藝是E2PROM,集成度(邏輯門數)為600~10 000,管腳延時為6 ns,工作頻率可以達到151.5 MHz。譯碼器的整體結構相對要復雜一些,因此所選用的系列器件要求較高,本文選用Altera公司FLEX10K器件系列,他的制造工藝是SRAM,集成度(邏輯門數)為1萬~25萬。
下面以(2,1,2)卷積碼為例進行設計,如圖2所示。
圖2 (2,1,2)卷積碼
采用VHDL語言進行編程設計,經Max+PlusⅡ編譯、仿真,結果如圖3所示。圖3(a)中D為原始比特信息,Z為編碼輸出;圖3(b)中A為接收碼,Y為糾錯譯碼,D為譯碼輸出。對比知該譯碼器實現了正確譯碼。
圖3 (2,1,2)卷積碼編譯碼器仿真結果
3 譯碼器性能分析
對于(n,k,m)卷積碼,其編碼存儲度(移位寄存器單元的數量)為m,幸存路徑有2m條。每條幸存路徑(或信息序列)存儲器單元數是n*D,其中,n是卷積碼碼組寬度,D是需要存儲的碼組的個數。D的取值一般考慮取m的整倍數,稱D為幸存路徑長度。編碼存儲度和幸存路徑長度的取值問題關系到芯片規格、傳輸時延等問題。若D很大,則譯碼器的存儲量太大而難以實用。一般情況下,當譯碼進行到第5級(每級包括m個時刻)以后,每個狀態幸存路徑的前幾個分支已基本重合在一起,這就是說每個路徑存儲器不必存儲D個很大的碼序列。譯碼時,當譯碼器接收并處理完第D個碼組后,譯碼器中的幸存路徑存儲器已全部存滿,當譯碼器開始處理第D+1個碼組時,他就對幸存路徑存儲器中的最頂端的碼組做出判決并輸出。
按照上述Viterbi譯碼步驟,采用Matlab仿真,在AWGN信道下,當D取m的2~9倍時,即D=N*m,N=2,3,…,9,得(2,1,2)卷積碼的傳輸性能如圖4所示。
圖4 (2,1,2)卷積碼譯碼性能
當編碼存儲度增加時,卷積碼譯碼性能也有所提高。依照上述編譯碼過程,得出(2,1,3)卷積碼的傳輸性能如圖5所示。
圖5 (2,1,3)卷積碼譯碼性能
對比仿真結果圖4與圖5 ,可得出如下結論:
(1) 適當增加幸存路徑的長度可以提高譯碼器的糾錯能力。圖4中N值由2遞增到9的過程中,其誤比特率逐漸降低。
(2) 幸存路徑的長度在增加到一定值時,譯碼器糾錯能力趨于穩定。當N值增加到6以上,誤比特率降低幅度大為減小,曲線有合二為一的趨勢。因此,可以認為幸存路徑長度D取編碼存儲度的6倍以上就可以取得比較好的譯碼性能。
(3) 增加寄存器數目(即編碼存儲度m)可以適當提高譯碼性能。圖3(a)與圖3(b)中寄存器數目分別為2和3,對比兩圖可知,在N值和信噪比取值相同的情況下,后者的誤比特率較低。需要說明的一點是,編碼存儲度m取值不宜過大,在Viterbi譯碼過程中,他將分別對應2m個狀態、路徑量度和2m條幸存路徑,譯碼器存儲單元與計算量將隨m成指數地增加。Odenwalder[4]給出的常用卷積碼的短編碼存儲度為2~7。
4 結 語
本文探討了廣泛用于遠距離實時通信的卷積碼Viterbi譯碼器的實現及其傳輸性能。采用硬件描述語言VHDL和Altera公司高性能FPGA芯片使方案設計具有較強的靈活性。本文對譯碼算法中幸存路徑長度和編碼存儲度參數的取值問題給出了比較合理的結果,在卷積碼編譯碼設計中具有較好的指導性和實用性。
參 考 文 獻
[1]趙旦峰,劉會紅.卷積碼Viterbi譯碼算法的FPGA實現[J].現代電子技術,2004,27(1):41-43.
[2]劉建強,殷賢華.卷積碼Viterbi譯碼器的FPGA設計與實現[J].現代電子技術,2004,27(9):47-48.
[3]曹雪虹,張余橙.信息論與編碼[M].北京:北京郵電大學出版社,2001.
[4]徐平平,宋鐵成.數字通信[M].北京:電子工業出版社,2004.
[5]王新梅,肖國鎮.糾錯碼——原理與方法[M].西安:西安電子科技大學出版社,2001.
作者簡介
陳新永 男,1982年出生,碩士研究生。主要研究方向為雷達組網技術。
楊瑞娟 女,1964年出生,教授,博士生導師。主要研究方向為網絡通信,傳感器組網。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。