基于FPGA的卷積碼編譯碼器
摘要:基于卷積碼的編譯碼原理,使用VHDL語(yǔ)言和FPGA芯片設(shè)計(jì)并實(shí)現(xiàn)了(2,1,3)卷積碼編譯碼器。其中譯碼器設(shè)計(jì)采用“截尾”的Vite-rbi譯碼算法,在支路量度計(jì)算、路徑量度和譯碼路徑的更新與存儲(chǔ)以及判決與輸出等環(huán)節(jié)的實(shí)現(xiàn)中采取了若干有效措施,節(jié)省了存儲(chǔ)空間,提高了設(shè)計(jì)性能。最后通過(guò)仿真驗(yàn)證了設(shè)計(jì)的正確性與合理性。
關(guān)鍵詞:FPGA;卷積碼;編譯碼器;Viterbi譯碼器:VHDL
由于卷積碼具有較好的糾錯(cuò)性能,因而在通信系統(tǒng)中被廣泛使用。采用硬件描述語(yǔ)言VerilogHDL或VHDL和FPGA(Field Programmable Gate Array——現(xiàn)場(chǎng)可編程門(mén)陣列)進(jìn)行數(shù)字通信系統(tǒng)設(shè)計(jì),可在集成度、可靠性和靈活性等方面達(dá)到比較滿(mǎn)意的效果。
文獻(xiàn)以生成矩陣G=[101,111]的(2,1,3)卷積碼為例,介紹了卷積碼編碼器的原理和VerilogHDL語(yǔ)言的描述方式;文獻(xiàn)采用VerilogHDL語(yǔ)言,對(duì)(2,1,7)卷積碼的Viterbi硬判決譯碼進(jìn)行了FPGA設(shè)計(jì)。本文基于卷積碼編/譯碼的基本原理,使用VHDL語(yǔ)言和FPGA芯片設(shè)計(jì)并實(shí)現(xiàn)了(2,1,3)卷積碼編碼器及其相應(yīng)的Viterbi譯碼器,通過(guò)仿真驗(yàn)證了設(shè)計(jì)的正確性。
1 (2,1,3)卷積碼編碼器的設(shè)計(jì)
1.1 (2,1,3)卷積碼編碼器的原理
卷積碼編碼器通常記作(n,k,N),對(duì)應(yīng)于每段k個(gè)比特的輸入序列,輸出n個(gè)比特;這n個(gè)輸出比特不僅與當(dāng)前的k個(gè)輸入比特有關(guān),而且還與以前的(N-1)k個(gè)輸入比特有關(guān)。(n,k,N)卷積碼編碼器包括:一個(gè)由Ⅳ段組成的輸入移位寄存器,每段有k級(jí),共Nk位;一組n個(gè)模2加法器;一個(gè)由n級(jí)組成的輸出移位寄存器。整個(gè)編碼過(guò)程可以看成是輸入序列與由移位寄存器和模2加法器連接方式所決定的另一個(gè)序列的卷積。
對(duì)于(2,1,3)卷積碼編碼器來(lái)說(shuō),n=2,k=1,N=3,即每輸入1個(gè)信息比特時(shí)經(jīng)編碼后產(chǎn)生2個(gè)輸出比特,輸出比特不僅與當(dāng)前的1個(gè)輸入比特有關(guān).而且還與以前的2個(gè)輸入比特有關(guān)。(2,1,3)卷積編碼器框圖如圖1所示。
當(dāng)編碼使能start為0時(shí)不進(jìn)行編碼,并將狀態(tài)state清零;start為1時(shí)進(jìn)行編碼,此時(shí)每2個(gè)時(shí)鐘周期輸入一個(gè)新的信息比特,同時(shí)狀態(tài)信號(hào)改變,輸出2位已編碼比特,即每個(gè)時(shí)鐘周期輸出1位已編碼比特。
評(píng)論