摘 要: 卷積碼在現(xiàn)代無(wú)線通信系統(tǒng)中應(yīng)用十分廣泛,Viterbi譯碼是最常用的一種對(duì)卷積碼的譯碼算法。介紹了卷積編碼及Viterbi串行解碼的原理及其FPGA的實(shí)現(xiàn)。在保證系統(tǒng)性能的前提下討論了分幀式編解碼在實(shí)際系統(tǒng)中的應(yīng)用。
關(guān)鍵字: 卷積碼; Viterbi譯碼; 誤碼率; FPGA
中圖分類號(hào): TN919.3?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2013)23?0030?03
Implementation and appliancation of convolutional encoding
and Viterbi decoding algorithm with FPGA
HE Jin?hua, YANG Jin?gong
(Shaanxi Lingyun Electronics Group Co., Ltd., Baoji 721006, China)
Abstract: Convolutional code has been widely used in modern wireless communication. Viterbi decoding is a common algorithm for convolutional code. The principle of convolutional encoding and Viterbi serial decoding are presented, along with the FPGA implementation. The application of coder and decoder by frame type in real system is discussed in the condition of good performance.
Keywords: convolutional code; viterbi decode; bit error rate; FPGA
在現(xiàn)代通信系統(tǒng)中,信道編碼技術(shù)得到了廣泛的應(yīng)用。卷積碼結(jié)構(gòu)簡(jiǎn)單,硬件實(shí)現(xiàn)容易,同時(shí)有著較好的查錯(cuò)糾錯(cuò)能力,因此在無(wú)線通信中經(jīng)常使用,而其解碼方式常用Viterbi譯碼。
1 卷積編碼
卷積碼(Convolutional Coding)是由PgElias于20世紀(jì)50年代提出的一種非分組碼。它實(shí)現(xiàn)非常簡(jiǎn)單,將要發(fā)送的信息序列經(jīng)過(guò)一個(gè)特定的線性移位寄存器,即完成了編碼。
卷積編碼常用[(n,k,m)]表示,一般[n]和[k]的值都比較小,其中[m]為編碼約束長(zhǎng)度,它表示編碼時(shí)相應(yīng)的信息比特在編碼器中停留的時(shí)間。卷積編碼是一種前后相關(guān)聯(lián)的編碼過(guò)程,編碼后的碼元和當(dāng)前的[k]個(gè)比特位相關(guān),同時(shí)也與前[m-1]個(gè)輸入比特相關(guān),使得相互關(guān)聯(lián)的碼元達(dá)到[m×n]個(gè)。衡量卷積碼性能的兩個(gè)重要參數(shù)是碼率[kn]和約束長(zhǎng)度。
2 卷積碼的描述方法
卷積碼的編碼描述方法有很多,工程中最常用的是寄存器網(wǎng)絡(luò)結(jié)構(gòu)法、碼多項(xiàng)式法和狀態(tài)圖形表示法。
如本系統(tǒng)中使用的(2,1,7)卷積編碼,它的寄存器網(wǎng)絡(luò)結(jié)構(gòu)法表示如圖1所示。
圖1 (2,1,7)卷積碼編碼框圖
離散卷積法表示如下:
設(shè)輸入信息序列為:[μ=][(μ0,μ1,μ2,…)]則對(duì)應(yīng)的輸出為:[C1=(C10,C11,C12,…),C2=(C20,C21,C22,…)。]
其編碼方程為:
[C1=μ*g1C2=μ*g2C=(C1,C2)]
其中卷積運(yùn)算用*表示, [g1,g2]為脈沖沖激響應(yīng)。……