卷積碼是一種性能優(yōu)良的差錯(cuò)控制編碼。本文闡述了卷積碼編解碼器的基本工作原理,,在MAX+PLUS2軟件平臺(tái)上,,給出了利用復(fù)雜可編程邏輯器件設(shè)計(jì)的(2,,1,,6)卷積碼編解碼器電路,,并進(jìn)行了編譯和波形仿真。
綜合后下載到復(fù)雜可編程邏輯器件EPM7128SLC84-15中,,測(cè)試結(jié)果表明,,達(dá)到了預(yù)期的設(shè)計(jì)要求,。
數(shù)字通信系統(tǒng)進(jìn)行數(shù)據(jù)傳輸時(shí),,由于噪聲干擾的影響,,不可避免地會(huì)在接收端產(chǎn)生差錯(cuò)。為了在已知信噪比的情況下達(dá)到一定的誤碼率指標(biāo),,在合理設(shè)計(jì)基帶信號(hào),,選擇調(diào)制、解調(diào)方式,,并采用均衡措施的基礎(chǔ)上,,還應(yīng)采用差錯(cuò)控制編碼等信道編碼技術(shù)來降低誤碼率,。分組碼和卷積碼是差錯(cuò)控制編碼的兩種主要形式,在編碼器復(fù)雜程度相同的情況下,,卷積碼的性能優(yōu)于分組碼,,因此,在諸如GSM,、IS95和CDMA2000等無線通信標(biāo)準(zhǔn)中,,都應(yīng)用了卷積碼。
CPLD是復(fù)雜可編程邏輯器件的簡(jiǎn)稱,,它是20世紀(jì)90年代初期出現(xiàn)的高密度可編程邏輯器件,,采用E2CMOS工藝制作,一般由三種可編程電路組成,,即可編程邏輯宏單元,,可編程輸入/輸出單元和可編程內(nèi)部連線。它可利用EDA技術(shù)中的MAX+PLUS2作為開發(fā)工具,,將設(shè)計(jì)的電路圖或硬件描述語言編寫的程序綜合成網(wǎng)表文件寫入其中,,制成ASIC芯片。CPLD的突出優(yōu)點(diǎn)是可反復(fù)編程,,集成度非常高,,數(shù)據(jù)速率快,同時(shí)具有較大的靈活性,。
1,、卷積碼編碼器
卷積碼(又稱連環(huán)碼),是由伊萊亞斯(P.Elis)提出的一種非分組碼,。它把k比特信息段編成n比特的碼組,,該碼組不僅同當(dāng)前的k比特信息段有關(guān),而且還同前面的(N-1)個(gè)信息段有關(guān)聯(lián)(N為大于1的整數(shù)),。通常,,把卷積碼記作(n,k,N),其中k為輸入碼元數(shù),,n為輸出碼元數(shù),,N為約束長(zhǎng)度,表示編碼器的存儲(chǔ)器級(jí)數(shù),。卷積編碼屬于信道編碼,,主要用來糾正碼元的隨機(jī)差錯(cuò),它是以犧牲效率來換取可靠性,,利用增加監(jiān)督位,,進(jìn)行檢錯(cuò)和糾錯(cuò)。
卷積碼編碼器是一個(gè)由k個(gè)輸入端、n個(gè)輸出端,,且具有(N-1)節(jié)移位寄存器構(gòu)成的有限狀態(tài)記憶系統(tǒng),,通常稱為時(shí)序網(wǎng)絡(luò)。卷積碼的編碼方法有三種運(yùn)算方式:離散卷積法,、生成矩陣法和多項(xiàng)式乘積法,。此外,卷積碼的編碼過程還可以用狀態(tài)圖,、碼樹圖和網(wǎng)格圖來描述,。本文設(shè)計(jì)的編碼器原理圖如圖1所示,它為(2,,1,,6)卷積碼編碼器(圖中T為移位寄存器)。
![]() |
圖1 卷積碼編碼器原理圖 |
由圖1可知,,該編碼器是一個(gè)(2,,1,6)卷積編碼器,,即k=1(一個(gè)輸入端),、n=2(兩個(gè)輸出端)、N=6(5級(jí)移位寄存器),。
若輸入信息序列為:U=(u0 u1 u2 …),,則對(duì)應(yīng)輸出為兩個(gè)碼字序列:
C1=(c0(1)c1(1)c2(1)…) C2=(c0(2)c1(2)c2(2)…)
其相應(yīng)編碼方程可寫為:C1 = U * G(1) C2 = U * G(2)
式中“*”表示卷積運(yùn)算,G(1)和G(2)表示編碼器的兩個(gè)沖激響應(yīng),。編碼輸出可由輸入信息序列U和編碼器的兩個(gè)脈沖沖激響應(yīng)的卷積得到,,故稱卷積碼,。由于編碼器有5級(jí)寄存器,,所以沖激響應(yīng)至多可持續(xù)到6位,圖1所示卷積碼編碼器的兩個(gè)沖激響應(yīng)可寫成:
G(1)=(100000) G(2)=(100111)
若輸入信息序列為:U=(11010101),則:
C1=(11010101)*(100000)=(1101010100000)
C2=(11010101)*(100111)=(1100010001011)
經(jīng)過并串轉(zhuǎn)換,,最后輸出的碼字為:C=(11110010001100100001000101)
2,、卷積碼解碼器
卷積碼的解碼可分為代數(shù)解碼和概率解碼兩類。大數(shù)邏輯解碼器是代數(shù)解碼最主要的解碼方法,,它即可用于糾正隨機(jī)錯(cuò)誤,,又可用于糾正突發(fā)錯(cuò)誤,但要求卷積碼是自正交碼或可正交碼,,對(duì)于(2,,1,6)卷積碼大數(shù)邏輯解碼器原理圖如圖2所示,。
![]() |
圖2 (2,,1,6)卷積碼大數(shù)邏輯解碼器原理圖 |
圖2中,輸入的數(shù)字序列,,經(jīng)串/并轉(zhuǎn)換為兩路,,1路輸出信息碼元,2路輸出校驗(yàn)碼元,。解碼器把接收到的1路中的每一段信息元送入編碼器求出本地校驗(yàn)元,,與其后面收到的校驗(yàn)元模2加。若兩者一致,,則求出的伴隨式分量為0,,否則為1。把加得的值送入伴隨式寄存器中寄存,。當(dāng)接收完碼段后開始對(duì)第0碼段糾錯(cuò),,若此時(shí)大數(shù)邏輯門的輸出為1,則說明第0碼段的信息元有錯(cuò),。這時(shí)正好第0子組的信息元移至解碼器的輸出端,,從而糾正它們。同時(shí),,糾錯(cuò)信號(hào)也反饋至伴隨式寄存器修正伴隨式,,以消去此錯(cuò)誤對(duì)伴隨式的影響。如果大數(shù)判決門沒有輸出,,則說明第0子組的信息元沒有錯(cuò)誤,,這時(shí)從編碼器中直接把信息元輸出。
3,、利用CPLD實(shí)現(xiàn)的卷積碼編解碼器
3.1 利用CPLD實(shí)現(xiàn)的(2,,1,6)卷積碼編碼器
基于CPLD設(shè)計(jì)的(2,,1,,6)卷積碼編碼器電路如圖3所示。
![]() |
圖3 基于CPLD設(shè)計(jì)的(2,,1,,6)卷積碼編碼器電路 |
圖3所示卷積編碼器的引腳關(guān)系為:引腳DATA表示數(shù)據(jù)輸入,引腳CLK1表示“并串轉(zhuǎn)換”輸入時(shí)鐘,,引腳CLK表示數(shù)據(jù)時(shí)鐘輸入引腳(它可由CLK1二分頻得到),,引腳DATA1表示卷積編
碼器輸出碼C1的數(shù)據(jù),引腳DATA2表示卷積編碼器輸出碼C2的數(shù)據(jù),。引腳DATAOUT表示卷積編碼器經(jīng)過并串轉(zhuǎn)換,,最后輸出的碼C的數(shù)據(jù)。
5級(jí)移位寄存器從MAX+PLUS2器件庫中調(diào)用一個(gè)串入并出移位寄存器74164實(shí)現(xiàn),;4級(jí)模2加從MAX+PLUS2器件庫中調(diào)用一個(gè)4級(jí)異或門“XOR4”組成,;“21mux”實(shí)現(xiàn)2位并串轉(zhuǎn)換,;編碼器的兩個(gè)輸出碼和并串轉(zhuǎn)換后的輸出碼之后各增加了一個(gè)D觸發(fā)器“DFF”,其作用是利用D觸發(fā)器的輸入端對(duì)毛刺信號(hào)不敏感的特點(diǎn),,去處CPLD器件輸出引腳上可能產(chǎn)生的毛刺,。
3.2 利用CPLD設(shè)計(jì)(2,1,,6)卷積碼解碼器
基于CPLD設(shè)計(jì)的(2,,1,6)卷積碼大數(shù)邏輯解碼器如圖4所示,。
![]() |
圖4 基于CPLD設(shè)計(jì)的(2,,1,6)卷積碼大數(shù)邏輯解碼器 |
(2,,1,,6)卷積碼大數(shù)邏輯解碼器由2位串/并轉(zhuǎn)換電路,監(jiān)督碼產(chǎn)生電路,,校正子計(jì)算電路和大數(shù)邏輯電路組成,。
2位串/并轉(zhuǎn)換“chuanbing12”是從MAX+PLUS2器件庫中調(diào)用4個(gè)D觸發(fā)器“DFF”,2個(gè)非門設(shè)計(jì)成一個(gè)二分頻電路和一個(gè)一輸入二輸出串/并轉(zhuǎn)換電路并進(jìn)行元件包裝入庫而形成,其中時(shí)鐘CLK由CLK1二分頻得到,。
監(jiān)督碼產(chǎn)生電路是從MAX+PLUS2器件庫中調(diào)用一個(gè)串入并出移位寄存器74164,,一個(gè)4級(jí)異或門“XOR4”組成。
校正子計(jì)算電路是從MAX+PLUS2器件庫中調(diào)用5個(gè)D觸發(fā)器“DFF”,,4個(gè)異或門“XOR”設(shè)計(jì)組成電路,。
大數(shù)邏輯電路是從MAX+PLUS2器件庫中調(diào)用4個(gè)與非門“NAND3”,1個(gè)與非門“NAND4”和1個(gè)異或門“XOR”設(shè)計(jì)組成電路,。
3.3 利用CPLD設(shè)計(jì)(2,,1,6)卷積碼編解碼器
將設(shè)計(jì)的(2,,1,,6)卷積碼編碼器進(jìn)行元件包裝入庫為“juan216”,將設(shè)計(jì)的(2,,1,,6)卷積碼解碼器進(jìn)行元件包裝入庫為“decode216”,之后將它們連接在一起,,可組成的(2,1,,6)卷積碼編解碼器如圖5所示,。
![]() |
圖5 (2,1,,6)卷積碼編解碼器 |
(2,,1,6)卷積碼編解碼器的引腳關(guān)系為:引腳DATA表示數(shù)據(jù)輸入,引腳CLK表示輸入時(shí)鐘(其速率是數(shù)據(jù)速率的二倍),,引腳CLRN表示清零端,,引腳CD表示(2,1,,6)卷積碼編碼器輸出,,引腳OUT表示(2,1,,6)卷積碼解碼器輸出,。
4、實(shí)驗(yàn)結(jié)果
利用MAX+PLUS2開發(fā)工具進(jìn)行編譯和仿真,,(2,,1,6)卷積碼編解碼器仿真波形如圖5所示,。
![]() |
圖6 (2,,1,6)卷積碼編解碼器仿真波形 |
其中“DATA”是數(shù)據(jù)輸入端,,系統(tǒng)輸入的數(shù)據(jù)比特若為“11010101”,,經(jīng)卷積碼編碼器后,延時(shí)約150ns后“CD”輸出的數(shù)據(jù)比特為“11110010001100100001000101”,;再經(jīng)卷積碼解碼器,,延時(shí)約1us后“OUT”恢復(fù)輸出數(shù)據(jù)比特為“11010101”。仿真結(jié)果表明:編碼器輸出數(shù)據(jù)與理論計(jì)算完全一致,。然后將綜合后生成的網(wǎng)表文件通過ByteBlaste下載電纜,,以在線配置的方式下載到CPLD器件EPM7128SLC84-15中,從而完成了器件的編程,。上電后,,在輸入端加入待編碼信息,用數(shù)字存儲(chǔ)示波器測(cè)試編碼器輸出,,實(shí)測(cè)結(jié)果完全正確,,達(dá)到了設(shè)計(jì)要求。
5 結(jié)論
本文闡述了卷積碼編解碼器的工作原理,,利用CPLD器件,,設(shè)計(jì)出了(2,1,,6)卷積碼編解碼器,。本文作者創(chuàng)新點(diǎn)是利用了EDA技術(shù)中的MAX+PLUS2作為開發(fā)工具,將設(shè)計(jì)的電路圖綜合成網(wǎng)表文件寫入其中,,制成ASIC芯片,,突出優(yōu)點(diǎn)是可反復(fù)編程,,集成度非常高,數(shù)據(jù)速率快,,自頂向下設(shè)計(jì),,查找和修改錯(cuò)誤方便,同時(shí)先仿真,,正確后再下載測(cè)試并應(yīng)用,,因而具有較大的靈活性;根據(jù)本文提出的設(shè)計(jì)思路,,可方便的設(shè)計(jì)其它卷積碼編解碼器,,有廣闊的應(yīng)用前景。
[參 考 文 獻(xiàn)]
[1]謝平,,陳建輝,,胡記文.基于CPLD的模數(shù)轉(zhuǎn)換組合研究[J].微計(jì)算機(jī)信息,2005,,26:153-155.
[2]龍光利.CDMA手機(jī)卷積碼編碼器的設(shè)計(jì)與FPGA的實(shí)現(xiàn)[J].陜西工學(xué)院學(xué)報(bào),,2005,21(2):1-3.
[3]王新梅,,肖國(guó)強(qiáng).糾錯(cuò)碼——原理與方法.修訂版[M].西安:西安電子科技大學(xué)出版社,,2001.
[4]趙曙光,郭萬有,,楊頌華.可編程邏輯器件原理,、開發(fā)與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2001.
[5]樊昌信,,張甫翊,,徐炳祥等.通信原理.第五版[M].北京:國(guó)防工業(yè)出版社,2002.
[6]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].第四版.北京:高等教育出版社,,1999.