基于FPGA的移動通信中卷積碼編碼器設計
摘要:卷積碼是一種性能優(yōu)良的差錯控制編碼。介紹了卷積碼編碼原理,基于FPGA利用VHDL硬件描述語言實現(xiàn)了一個(2,1,9)卷積碼編碼器。給出了仿真結果,并在FPGA器件上驗證實現(xiàn)。仿真及測試結果表明,達到了預期的設計要求,并用于實際項目中。
關鍵詞:卷積碼;編碼器;現(xiàn)場可編程門陣列;VHDL
0 引言
數(shù)字信號在有噪聲的信道中傳輸時,由于受到干擾的影響,會發(fā)生誤碼。在設計數(shù)字通信系統(tǒng)時,首先應合理設計基帶信號,選擇調制、解調方式,并采用均衡措施等,使誤碼率達到指標要求。若仍然不能滿足要求時,則必須采用差錯控制編碼等信道編碼技術,使誤碼率進一步降低。
卷積碼是深度空間通信系統(tǒng)和無線通信系統(tǒng)中常用的一種差錯控制編碼。在編碼過程,卷積碼充分利用了各碼字之間的相關性。卷積碼廣泛應用于衛(wèi)星通信,GSM,CDMA數(shù)字移動通信等通信系統(tǒng),對其進行研究具有很大的現(xiàn)實意義。
FPGA是可編程邏輯器件,采用FPGA等新型可編程器件進行數(shù)字系統(tǒng)設計,不僅使設計的電子產品達到微型化、高集成化和高可靠性,而且開發(fā)周期短、成本低、風險小。本設計采用VHDL語言并選用FPGA設計了一個(2,1,9)卷積碼編碼器。
1 卷積碼編碼器原理
卷積碼是1955年由Elias等人提出的一種十分常見且有效的前向糾錯碼(FEC)。卷積碼(n,k,N)主要用來糾隨機錯誤,它的碼元與前后碼元有一定的約束關系。卷積碼(n,k,N)將是個信息比特編為n個比特,N為約束長度。即卷積碼的當前碼元不僅與當前輸入的k個信息碼元有關,而且還與前面(N-1)個時刻輸入的信息碼元有關,卷積碼的糾錯能力不僅與約束長度有關,還與采用的譯碼方式有關。總之,由于n,k較小,且利用了各組之間的相關性,在同樣的碼率和設備的復雜性條件下,無論在理論上還是實踐上都證明:卷積碼的性能至少不比分組碼差。
2 卷積碼編碼器設計
2.1 編碼設計原理
卷積碼(n,k,N),其一般形式為一個由N段組成的輸入移位寄存器,每段有k級;一組n個模2和相加器;一個由n級組成的輸出移位寄存器。對應于每段k個比特的輸入序列,輸出n個比特。整個編碼過程可以看成是輸入信息序列與由移位寄存器與模2和連接方式所決定的另一個序列的卷積。
本設計的卷積碼是(2,1,9),編碼效率是1/2比率,約束長度為9,碼發(fā)生器函數(shù)為:g(1,1)=(111101011),g(1,2)=(101110001)。對于每個輸入到編碼器的數(shù)據比特產生兩個編碼符號v1和v2,然后依次輸出;編碼符號v1,用發(fā)生器函數(shù)編碼g(1,1),第一個輸出;編碼符號v2用發(fā)生器函數(shù)g(1,2)編碼,第二個輸出。卷積碼編碼器初始狀態(tài)為全“0”狀態(tài)。隨后第一個輸出編碼符號為發(fā)生器函數(shù)g(1,1)產生的編碼符號。
電路框圖如圖1所示。
評論