基于FPGA的卷積編譯碼器的設(shè)計與實現(xiàn)
摘要:為了解決傳統(tǒng)的維特比譯碼器結(jié)構(gòu)復(fù)雜、譯碼速度慢、消耗資源大的問題,提出一種新型的適用于FPGA特點,路徑存儲與譯碼輸出并行工作,同步存儲路徑矢量和狀態(tài)矢量的譯碼器設(shè)計方案。該設(shè)計方案通過在ISE9.2i中仿真驗證,譯碼結(jié)果正確,得到編碼前的原始碼元,速度顯著提高,譯碼器復(fù)雜程度明顯降低。并在實際的軟件無線電通信系統(tǒng)中信道編解碼部分得到應(yīng)用,性能優(yōu)良。
關(guān)鍵詞:卷積碼;維特比;FPGA;軟件無線電(SDR)
卷積碼是Elias在1955年最早提出的,稍后,Wozencraft在1957年提出了一種有效譯碼方法,即序列譯碼。Massey在1963年提出了一種性能稍差,但比較實用的門限譯碼方法,由于這一實用性進(jìn)展使卷積碼從理論走向?qū)嵱?。而后Viterbi在1967年提出了最大似然譯碼法,該方法對存儲器級數(shù)較小卷積碼的譯碼很容易實現(xiàn),并具有效率高、速度快、譯碼器簡單等特點,人們后來稱其為維特比算法或維特比譯碼,廣泛應(yīng)用于現(xiàn)代通信中。本文主要論述了基于Xilinx公司的FPGA的卷積編碼器及相應(yīng)的維特比譯碼器的研究,并在幸存路徑存儲與譯碼輸出判決方面提出了改進(jìn)算法,從而使譯碼器結(jié)構(gòu)得到簡化。
1 卷積碼的編碼原理與實現(xiàn)
卷積碼是一種重要的前向糾錯編碼FEC,用(n,k,m)表示。分組碼不同,其監(jiān)督元與本組的信息元和前若干組的信息元有關(guān)。這種編碼的糾錯能力強(qiáng),不僅可糾正隨機(jī)差錯,而且可糾正突發(fā)差錯。卷積碼根據(jù)需要,有不同的結(jié)構(gòu)及相應(yīng)的糾錯能力,但都有類似的編碼規(guī)律。卷積碼的編碼器是一個具有k個輸入位(端)、n個輸出位(端),m級移位寄存器的有限狀態(tài)記憶系統(tǒng)。通常稱為時序網(wǎng)絡(luò)。其中R=k/n為編碼效率,m為約束長度。卷積碼編碼原理如圖1所示。
卷積編碼充分利用各組信息元之間的相關(guān)性,在誤碼率和復(fù)雜度相同的情況下性能優(yōu)于分組碼,并且最佳譯碼更易實現(xiàn),因此在通信系統(tǒng)中得到廣泛應(yīng)用。但是卷積碼沒有嚴(yán)格的代數(shù)結(jié)構(gòu),尚未找到嚴(yán)密的數(shù)學(xué)手段將糾錯性能與碼的構(gòu)成有規(guī)律地聯(lián)系起來,目前大都采用計算機(jī)搜索好碼。通常是(2,1,3)卷積碼,本文以生成多項式G=(111,101)的(2,1,3)卷積碼為例介紹設(shè)計和實現(xiàn)過程。
設(shè)初始狀態(tài)為SO編碼為00,根據(jù)生成矩陣分別帶入輸入O和輸入1時得到下一個狀態(tài)和相應(yīng)輸出。依次代入,可得到如圖2所示的狀態(tài)圖。
評論