《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的卷積碼編譯碼器
基于FPGA的卷積碼編譯碼器
電子設(shè)計(jì)工程
張有志,張 鹍 山東凱文科技職業(yè)學(xué)院
摘要: 摘要:基于卷積碼的編譯碼原理,使用VHDL語(yǔ)言和FPGA芯片設(shè)計(jì)并實(shí)現(xiàn)了(2,1,3)卷積碼編譯碼器。其中譯碼器設(shè)計(jì)采用“截尾”的Vite-rbi譯碼算法,在支路量度計(jì)算、路徑量度和譯碼路徑的更新與存儲(chǔ)以及判決與
關(guān)鍵詞: FPGA 卷積碼 編譯碼器 VHDL
Abstract:
Key words :

摘要:基于卷積碼的編譯碼原理,使用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ì)性能。最后通過仿真驗(yàn)證了設(shè)計(jì)的正確性與合理性。
關(guān)鍵詞:FPGA;卷積碼;編譯碼器;Viterbi譯碼器:VHDL

    由于卷積碼具有較好的糾錯(cuò)性能,因而在通信系統(tǒng)中被廣泛使用。采用硬件描述語(yǔ)言VerilogHDL或VHDL和FPGA(Field Programmable Gate Array——現(xiàn)場(chǎng)可編程門陣列)進(jìn)行數(shù)字通信系統(tǒng)設(shè)計(jì),可在集成度、可靠性和靈活性等方面達(dá)到比較滿意的效果。
    文獻(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譯碼器,通過仿真驗(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è)編碼過程可以看成是輸入序列與由移位寄存器和模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所示。

a.JPG


    由圖可以看出,輸出為:
    b.JPG
1.2 設(shè)計(jì)思路
    編碼器為串入串出結(jié)構(gòu)。這里一共定義4個(gè)端口信號(hào),它們分別是:
   
    c.JPG
    當(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位已編碼比特。

2 維特比譯碼器的設(shè)計(jì)
2.1 維特比譯碼器的原理
    卷積碼的譯碼一般采用維特比譯碼。維特比譯碼本質(zhì)上是對(duì)長(zhǎng)度為L(zhǎng)的二進(jìn)制序列的最佳譯碼,需要對(duì)可能發(fā)送的2L個(gè)不同的序列的2L條路徑量度進(jìn)行計(jì)算和比較,選取其中量度最小的一條作為幸存路徑。其基礎(chǔ)是基于網(wǎng)格圖的描寫,即對(duì)于不同的路徑的量度進(jìn)行比較,如某一節(jié)點(diǎn)上發(fā)出的某條路徑已經(jīng)不可能獲得最大似然函數(shù),那么就放棄這條路徑,并在保存下來(lái)的路徑中重新選擇譯碼路徑,一直到最后,復(fù)雜度較高。維特比譯碼器實(shí)際上對(duì)各個(gè)可能路徑進(jìn)行比較,比較原則是計(jì)算其路徑的對(duì)數(shù)似然函數(shù),而計(jì)算似然函數(shù)就是計(jì)算該路徑與接收序列之間的漢明距(量度)。譯碼過程的操作可歸納為“加-比-選”3個(gè)部分。
    實(shí)際的維特比譯碼中,譯碼幾步后可能的路徑便合為一條,因此,不必等全部譯出后再輸出,即譯碼一定長(zhǎng)度后便可將已經(jīng)相同的部分輸出,這樣做可以大量節(jié)省譯碼所需路徑的存儲(chǔ)空間。只要保證譯碼深度在5~10倍的約束長(zhǎng)度之間就不影響譯碼效果,這就是所謂的“截尾譯碼”。
2.2 結(jié)構(gòu)框圖
    維特比譯碼器的結(jié)構(gòu)框圖如圖2所示。

d.JPG


    在設(shè)計(jì)中。將框圖簡(jiǎn)化為“加”(支路量度計(jì)算)、“比選”(路徑量度和譯碼路徑的更新與存儲(chǔ))以及定時(shí)與控制三部分。
2.3 設(shè)計(jì)思路
2.3.1 端口及信號(hào)定義
    輸入輸出端口為:
   
f.JPG
    其中“比前路徑長(zhǎng)度”中下劃線前的數(shù)字代表該路徑最后停在的狀態(tài),下劃線后的數(shù)字代表是由哪個(gè)狀態(tài)轉(zhuǎn)移過來(lái)的。如果是“0”則代表由狀態(tài)號(hào)較小的狀態(tài)轉(zhuǎn)移過來(lái)的那條路徑,反之如果為“1”則代表由狀態(tài)號(hào)較大的狀態(tài)轉(zhuǎn)移過來(lái)的那條路徑;“選后路徑長(zhǎng)度”和“譯碼路徑”的序號(hào)表示該路徑最后停在的狀態(tài)號(hào)。圖3為維特比譯碼過程的網(wǎng)格圖。

g.JPG


2.3.2 定時(shí)與控制
    由時(shí)鐘控制,每個(gè)時(shí)鐘輸入一位,每?jī)蓚€(gè)時(shí)鐘輸出一位,稱為一個(gè)譯碼周期。在每個(gè)譯碼周期的前一個(gè)時(shí)鐘周期內(nèi)完成“加”,此時(shí)譯碼狀態(tài)為“0”;在后一個(gè)時(shí)鐘周期內(nèi)完成“比和選”,譯碼狀態(tài)為“1”。
2.3.3 支路量度計(jì)算
    由于(2,1,3)卷積碼的形式已經(jīng)固定,因此,可以事先把支路量度表做好,如表1所示。譯碼器工作時(shí)可根據(jù)輸入通過查表得到“比前路徑長(zhǎng)度”的增加值,暫存到addi_j中,而后統(tǒng)一加入“比前路徑長(zhǎng)度”chni_j中。

h.JPG


2.3.4 路徑量度和譯碼路徑的更新與存儲(chǔ)
    在到達(dá)同一狀態(tài)的兩條路徑中選取路徑長(zhǎng)度較小的作為幸存路徑,即在chnk_0和chnk_1中選擇較小的存入rlengthk(k=0~3)。
    由于每個(gè)狀態(tài)譯碼路徑的最后一位在每一步中是不變的,均是"0101”(狀態(tài)0~3),因此更新譯碼路徑時(shí)只需將選中的譯碼路徑向高位移一位后存儲(chǔ)即可。即進(jìn)行如下判斷:
    1)對(duì)于新路徑0的判斷,如果chn0_0<=chn0_1則選擇舊路徑0,否則選擇舊路徑2;
    2)對(duì)于新路徑1的判斷,如果chn1_0<=chn1_1則選擇舊路徑0,否則選擇舊路徑2;
    3)對(duì)于新路徑2的判斷,如果chn2_0<=chn2_1則選擇舊路徑1,否則選擇舊路徑3;
    4)對(duì)于新路徑3的判斷,如果chn3_0<=chn3_1則選擇舊路徑1,否則選擇舊路徑3;
    其中chn0_0,chn0_1,chn1_0,chn1_l,chn2_0,chn2_1,chn3_0,chn3_1已由上一步得出。
2.3.5 判決與輸出
    譯碼深度為10,譯碼的輸出只需將譯碼路徑的最高位中出現(xiàn)較多的一位輸出,當(dāng)“0”和“1”的個(gè)數(shù)相等時(shí)輸出任意一個(gè)。由圖4所示的卡諾圖可得,譯碼輸出的邏輯表達(dá)式為:
    dataout=(route0 (9) and routel (9)) 0r (route2 (9) and route3 (9))

i.JPG


2. 3.6 譯碼初始化
    由于剛開始譯碼的第一步和第二步,譯碼路徑并未完全展開,“加-比-選”與后面的步驟略有不同。因此設(shè)置一個(gè)譯碼步驟計(jì)數(shù)器step,對(duì)譯碼前兩步的“加”進(jìn)行單獨(dú)處理,而不改變“比選”部分。
2.3.7 路徑量度的溢出
    由于路徑量度是一直累加的,如果不進(jìn)行處理則計(jì)數(shù)器將溢出。設(shè)計(jì)中發(fā)現(xiàn),各條路徑之間的路徑量度相差不會(huì)太大。解決的辦法是:如果有一個(gè)路徑量度超過了某一門限,就將所有記錄的路徑量度減一個(gè)小量。在實(shí)際中,由于(2,1,3)卷積碼每一步譯碼后路徑量度最多增加2,因此為避免溢出,設(shè)置門限為8,當(dāng)超過該門限時(shí)各路徑量度都減小2。這樣就可以用很少容量的寄存器保存任意長(zhǎng)的路徑量度。

3 仿真結(jié)果
    仿真在MaxplusII10.2環(huán)境下進(jìn)行,選擇FLEX1OK系列中的EPF10K30RC240-3器件。以下是部分仿真結(jié)果。
3.1 卷積碼編碼器仿真
    卷積碼編碼器的仿真波形如圖5所示。在編碼使能之后輸入序列data_in為110111001000…(每個(gè)bit持續(xù)2個(gè)時(shí)鐘周期),編碼輸出序列data_out為110101000110011111101100……(每個(gè)bit持續(xù)1個(gè)時(shí)鐘周期),結(jié)果與文獻(xiàn)中的例12-1完全一致。

j.JPG


3.2 維特比譯碼器仿真
    維特比譯碼器的仿真波形如圖6所示。其中圖(a)為輸入無(wú)誤碼時(shí)的情形,圖中輸入序列為1101010001100111…,譯碼輸出序列為110111 00…;圖(b)為輸入有誤碼時(shí)的情形,圖中假設(shè)輸入序列為1001010101100101…(其中黑體的bit為誤碼),則譯碼輸出序列仍為11011100…。

k.JPG


    由仿真結(jié)果可以看出。用上述方法設(shè)計(jì)的卷積碼編/譯碼器功能正確,并具有較好的糾錯(cuò)能力。

4 結(jié)論
    本文用VHDL語(yǔ)言和FPGA芯片設(shè)計(jì)并實(shí)現(xiàn)了(2,1,3)卷積碼編碼器及維特比譯碼器。仿真結(jié)果表明,編/譯碼器的功能正確,達(dá)到設(shè)計(jì)要求。在設(shè)計(jì)中采用了模塊化結(jié)構(gòu),維特比譯碼器設(shè)計(jì)采用了截尾譯碼算法,節(jié)省了存儲(chǔ)空間。另外,設(shè)計(jì)中還較好的解決了譯碼過程中的支路度量計(jì)算、路徑量度和譯碼路徑的更新與存儲(chǔ)以及譯碼判決與輸出等關(guān)鍵技術(shù)問題。
    由于卷積碼具有相似的結(jié)構(gòu)和特點(diǎn),所以文中(2,1,3)卷積碼編/譯碼器的設(shè)計(jì)思路,對(duì)其他形式的卷積碼編/譯碼器也是適用的。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲高清精品中出| 欧美在线看片a免费观看| 亚洲自拍都市欧美小说| 亚洲人精品午夜| 亚洲欧洲精品一区二区三区| 精品91在线| 国内精品视频一区| 国内精品国语自产拍在线观看| 国产精品私拍pans大尺度在线| 国产精品wwwwww| 欧美视频在线观看| 欧美视频二区36p| 欧美日韩第一区| 欧美特黄一区| 国产精品国产三级国产普通话99| 欧美日韩一区在线观看视频| 欧美日韩一区二区三区高清| 欧美视频精品在线| 国产精品都在这里| 国产精品视频1区| 国产欧美日韩在线| 韩国精品在线观看| 一色屋精品视频在线看| 在线播放日韩专区| 亚洲人成亚洲人成在线观看| 亚洲乱码精品一二三四区日韩在线| 亚洲区一区二| 一区二区三区久久| 亚洲欧美日韩成人高清在线一区| 欧美一区成人| 91久久精品国产91性色tv| 日韩视频在线你懂得| 一本一本久久| 亚洲欧美在线高清| 久久精品最新地址| 狂野欧美激情性xxxx| 欧美精品18| 欧美视频中文字幕在线| 国产噜噜噜噜噜久久久久久久久| 国内精品久久久久久久影视蜜臀 | 亚洲电影视频在线| 亚洲国内自拍| 亚洲视频碰碰| 久久精品国产欧美激情| 你懂的视频欧美| 欧美三级在线视频| 国产在线不卡| 亚洲麻豆av| 香蕉亚洲视频| 日韩一级黄色大片| 欧美一区二区福利在线| 欧美成人官网二区| 欧美网站在线| 黄色日韩精品| 夜夜嗨av一区二区三区免费区 | 小处雏高清一区二区三区 | 你懂的国产精品永久在线| 欧美日韩国产999| 国产日本欧美一区二区三区| 亚洲第一精品夜夜躁人人躁| 亚洲精品日韩一| 亚洲欧美日本另类| 日韩视频一区二区三区| 先锋影音国产精品| 欧美本精品男人aⅴ天堂| 国产精品久久久久aaaa樱花 | 亚洲高清在线播放| 亚洲永久在线观看| 亚洲经典视频在线观看| 性色av香蕉一区二区| 欧美va天堂| 国产亚洲成av人在线观看导航| 亚洲精品国产精品国自产观看浪潮 | 欧美一级在线播放| 欧美精品黄色| 国内视频一区| 亚洲欧美成人精品| 一区二区三区偷拍| 欧美jizz19hd性欧美| 国产日韩欧美成人| 亚洲精品一区二区三区樱花| 久久精品国产99| 欧美一级久久久久久久大片| 欧美精品日韩一本| 激情久久综合| 午夜精品理论片| 亚洲影视中文字幕| 欧美精品一区二区在线播放| 伊人婷婷久久| 久久99在线观看| 性色av一区二区三区在线观看 | 亚洲免费视频中文字幕| 欧美精彩视频一区二区三区| 在线成人中文字幕| 欧美一区高清| 欧美一区二区三区在线观看| 欧美视频在线一区二区三区| 亚洲精品激情| 亚洲啪啪91| 欧美成年人网站| 在线成人av| 亚洲高清不卡av| 久久久综合视频| 国产一区av在线| 亚洲男人的天堂在线观看| 亚洲午夜黄色| 欧美日韩久久不卡| 亚洲乱码国产乱码精品精| 99日韩精品| 欧美日韩国产成人在线| 最近中文字幕日韩精品| 亚洲人午夜精品免费| 免费成人小视频| 亚洲电影一级黄| 亚洲精品裸体| 欧美福利视频网站| 亚洲人成高清| 一区二区三区www| 欧美三级第一页| 99av国产精品欲麻豆| 亚洲午夜三级在线| 欧美午夜精品久久久久久浪潮| 亚洲乱亚洲高清| 亚洲图片欧洲图片日韩av| 欧美日韩国产专区| 一区二区三区四区五区视频| 亚洲综合欧美日韩| 国产精品三上| 久久成人免费日本黄色| 久久久久在线| 亚洲大片av| 亚洲欧洲日产国码二区| 欧美精品成人一区二区在线观看 | 亚洲精品在线看| 欧美精品日韩www.p站| 亚洲精品色图| 亚洲视频一区二区免费在线观看| 欧美性开放视频| 亚洲欧美日韩一区二区在线| 久久er99精品| 一区二区三区在线视频免费观看| 亚洲人成在线免费观看| 欧美日韩高清一区| 亚洲午夜女主播在线直播| 欧美一区二区三区成人| 国产一区三区三区| 亚洲精品在线观| 国产精品国产精品| 久久国产直播| 欧美日韩91| 亚洲综合色网站| 美国成人直播| 99在线视频精品| 久久成人在线| 在线激情影院一区| 亚洲天堂av图片| 国产日韩精品在线播放| 亚洲人成网站777色婷婷| 欧美色网在线| 欧美中文在线观看| 欧美激情亚洲精品| 亚洲欧美卡通另类91av| 老司机午夜精品视频| 日韩香蕉视频| 久久蜜桃资源一区二区老牛| 亚洲欧洲精品天堂一级| 欧美一区二区三区视频在线| 亚洲第一精品久久忘忧草社区| 亚洲一区二区黄| 精品999成人| 亚洲女优在线| 亚洲大片免费看| 欧美一级视频| 亚洲精品女av网站| 久久精品99无色码中文字幕| 亚洲人成网站777色婷婷| 欧美在线免费看| 亚洲精品一区二区三区福利| 久久精品30| 日韩亚洲欧美精品| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲精品国偷自产在线99热| 久久精品成人一区二区三区| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美在线免费| 亚洲精品中文字幕在线| 久久影院午夜论| 亚洲一区二区欧美| 欧美激情1区| 久久成人免费网| 国产精品入口66mio| 日韩亚洲国产欧美| 国内外成人免费激情在线视频网站 | 欧美日韩喷水| 亚洲国产精品久久久久婷婷884 | 久久亚洲一区二区| 亚洲欧美卡通另类91av| 欧美日韩亚洲高清一区二区| 91久久综合| 极品中文字幕一区|