基于FPGA的移動(dòng)通信中卷積碼編碼器設(shè)計(jì)
摘要:卷積碼是一種性能優(yōu)良的差錯(cuò)控制編碼。介紹了卷積碼編碼原理,基于FPGA利用VHDL硬件描述語(yǔ)言實(shí)現(xiàn)了一個(gè)(2,1,9)卷積碼編碼器。給出了仿真結(jié)果,并在FPGA器件上驗(yàn)證實(shí)現(xiàn)。仿真及測(cè)試結(jié)果表明,達(dá)到了預(yù)期的設(shè)計(jì)要求,并用于實(shí)際項(xiàng)目中。
關(guān)鍵詞:卷積碼;編碼器;現(xiàn)場(chǎng)可編程門陣列;VHDL
0 引言
數(shù)字信號(hào)在有噪聲的信道中傳輸時(shí),由于受到干擾的影響,會(huì)發(fā)生誤碼。在設(shè)計(jì)數(shù)字通信系統(tǒng)時(shí),首先應(yīng)合理設(shè)計(jì)基帶信號(hào),選擇調(diào)制、解調(diào)方式,并采用均衡措施等,使誤碼率達(dá)到指標(biāo)要求。若仍然不能滿足要求時(shí),則必須采用差錯(cuò)控制編碼等信道編碼技術(shù),使誤碼率進(jìn)一步降低。
卷積碼是深度空間通信系統(tǒng)和無線通信系統(tǒng)中常用的一種差錯(cuò)控制編碼。在編碼過程,卷積碼充分利用了各碼字之間的相關(guān)性。卷積碼廣泛應(yīng)用于衛(wèi)星通信,GSM,CDMA數(shù)字移動(dòng)通信等通信系統(tǒng),對(duì)其進(jìn)行研究具有很大的現(xiàn)實(shí)意義。
FPGA是可編程邏輯器件,采用FPGA等新型可編程器件進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì),不僅使設(shè)計(jì)的電子產(chǎn)品達(dá)到微型化、高集成化和高可靠性,而且開發(fā)周期短、成本低、風(fēng)險(xiǎn)小。本設(shè)計(jì)采用VHDL語(yǔ)言并選用FPGA設(shè)計(jì)了一個(gè)(2,1,9)卷積碼編碼器。
1 卷積碼編碼器原理
卷積碼是1955年由Elias等人提出的一種十分常見且有效的前向糾錯(cuò)碼(FEC)。卷積碼(n,k,N)主要用來糾隨機(jī)錯(cuò)誤,它的碼元與前后碼元有一定的約束關(guān)系。卷積碼(n,k,N)將是個(gè)信息比特編為n個(gè)比特,N為約束長(zhǎng)度。即卷積碼的當(dāng)前碼元不僅與當(dāng)前輸入的k個(gè)信息碼元有關(guān),而且還與前面(N-1)個(gè)時(shí)刻輸入的信息碼元有關(guān),卷積碼的糾錯(cuò)能力不僅與約束長(zhǎng)度有關(guān),還與采用的譯碼方式有關(guān)??傊捎趎,k較小,且利用了各組之間的相關(guān)性,在同樣的碼率和設(shè)備的復(fù)雜性條件下,無論在理論上還是實(shí)踐上都證明:卷積碼的性能至少不比分組碼差。
2 卷積碼編碼器設(shè)計(jì)
2.1 編碼設(shè)計(jì)原理
卷積碼(n,k,N),其一般形式為一個(gè)由N段組成的輸入移位寄存器,每段有k級(jí);一組n個(gè)模2和相加器;一個(gè)由n級(jí)組成的輸出移位寄存器。對(duì)應(yīng)于每段k個(gè)比特的輸入序列,輸出n個(gè)比特。整個(gè)編碼過程可以看成是輸入信息序列與由移位寄存器與模2和連接方式所決定的另一個(gè)序列的卷積。
本設(shè)計(jì)的卷積碼是(2,1,9),編碼效率是1/2比率,約束長(zhǎng)度為9,碼發(fā)生器函數(shù)為:g(1,1)=(111101011),g(1,2)=(101110001)。對(duì)于每個(gè)輸入到編碼器的數(shù)據(jù)比特產(chǎn)生兩個(gè)編碼符號(hào)v1和v2,然后依次輸出;編碼符號(hào)v1,用發(fā)生器函數(shù)編碼g(1,1),第一個(gè)輸出;編碼符號(hào)v2用發(fā)生器函數(shù)g(1,2)編碼,第二個(gè)輸出。卷積碼編碼器初始狀態(tài)為全“0”狀態(tài)。隨后第一個(gè)輸出編碼符號(hào)為發(fā)生器函數(shù)g(1,1)產(chǎn)生的編碼符號(hào)。
電路框圖如圖1所示。
2.2 卷積編碼的實(shí)現(xiàn)代碼
定義輸入、輸出端口:卷積碼的實(shí)現(xiàn)電路可由一個(gè)8級(jí)移位寄存器和2個(gè)8級(jí)異或門“XOR8”組成。
3 卷積碼編碼器仿真
3.1 功能仿真
仿真前設(shè)置輸入信息序列Convolutionbit-in=“1101001001”,對(duì)應(yīng)時(shí)鐘為400 ns。圖3為(2,1,9)卷積碼,碼發(fā)生器函數(shù)是:g0=(111101011),g1=(101110001)的理論編碼結(jié)果。卷積編碼器VHDL功能仿真波形如圖4所示。
比較卷積碼編碼器的理論結(jié)果(見圖3)和功能仿真圖(見圖4),仿真結(jié)果與理論計(jì)算完全一致。
3.2 時(shí)序仿真
在不考慮時(shí)延的情況下,對(duì)照?qǐng)D4與圖5,兩者仿真波形一樣。從圖6可以看出卷積編碼器的時(shí)延為7.0 ns,這是因?yàn)楣δ芊抡娌豢紤]信號(hào)時(shí)延等因素,而時(shí)序仿真則是選擇了具體器件并完成布局布線后進(jìn)行的含定時(shí)關(guān)系的仿真,所以其仿真更接近真實(shí)器件運(yùn)行特性,因而仿真精度更高。由于不同器件的內(nèi)部時(shí)延不一樣,不同的布局,布線方案也會(huì)給時(shí)延造成很大的影響,因此在設(shè)計(jì)實(shí)現(xiàn)后,有必要對(duì)網(wǎng)絡(luò)和邏輯塊進(jìn)行時(shí)延仿真,分析定時(shí)關(guān)系,估計(jì)設(shè)計(jì)性能。
時(shí)序仿真后,再進(jìn)行器件編程和調(diào)測(cè)。實(shí)測(cè)結(jié)果完全正確,達(dá)到了設(shè)計(jì)要求。
4 結(jié)語(yǔ)
本文闡述了卷積碼編碼器的工作原理,利用FPGA器件,設(shè)計(jì)出了(2,1,9)卷積碼編碼器。仿真及測(cè)試結(jié)果表明,達(dá)到了預(yù)期的設(shè)計(jì)要求,并用于實(shí)際項(xiàng)目中。