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