999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VHDL語言的卷積碼和Viterbi譯碼的實現

2012-08-08 02:31:50張天輝
網絡安全與數據管理 2012年16期

陶 杰,王 欣,張天輝

(軍械工程學院 光學與電子工程系,河北 石家莊 050003)

卷積碼自1955年由愛里斯(Elias)提出以來,因其良好的糾錯能力,已經在現代通信系統中得到了廣泛應用,比如,電力系統通信、衛星通信、移動通信等。Viterbi譯碼是1967年維特比(Viterbi)基于Viterbi算法提出的,這種譯碼算法是基于碼的網格(trellis)圖基礎之上的一種最大似然譯碼算法,是一種最佳的概率譯碼算法[1]。本設計是在認真研究了卷積編碼和維特比譯碼原理以后,用VHDL語言實現了(2,1,2)卷積編碼,并根據這種編碼特性簡化了相應的維特比譯碼器結構。

1 卷積編碼

卷積碼是一種有限記憶系統,它與分組碼類似,也是先將信息序列分隔成長度為k的一個個分組;不同的是,某一時刻的編碼輸出不僅取決于本時刻的分組,而且取決于本時刻以前的L個分組[2],稱L+1為約束長度。一般情況下卷積碼寫成(n,k,L)的形式,其中:n表示編碼器有n位編碼輸出,k表示編碼器有k位輸入。如果用R表示卷積編碼的效率,則R=k/n。

圖1是(n,k,L)卷積編碼器的一般結構圖[2]。從該圖可以看出,串行信號可由串/并轉換器轉換成L個分組,并按位存儲到k-1個存儲器中,存儲器中的每一個單元與線性組合器的連線表示該單元數據參與了線性組合計算,但實際中是否參與取決于線性組合系數。在二進制系統中,該系數為“0”和“1”,當系數為“0”時,表示該單元數據沒參與線性組合計算;當系數為“1”時,表示該單元數據參與了線性組合計算。并/串轉換器可將線性組合器計算得到的并行結果轉化成串行輸出。

圖1示意的是卷積編碼器的一般結構,實際應用時可根據需求進行相應改變。例如圖2是(2,1,2)碼的編碼器,由于只有一位輸入,串/并轉換器自然不存在,線性組合器就是兩個模2加法器,存儲單元由兩個移位寄存器組成,其生成多項式矩陣可表示為:G(D)=[1+D+D2,1+D2]。

圖3是圖2所示卷積碼的狀態轉移圖,根據這個狀態轉移圖用 VHDL語言實現卷積編碼。圖3中 S0、S1、S2、S3表示該卷積碼的4個不同狀態,編程時用狀態機完成狀態之間的跳變和編碼輸出。

圖3 卷積碼的狀態轉移圖

部分程序如下:

其中,clk1為編碼時鐘(另一時鐘是碼輸入時鐘,為clk1的2倍頻),state為本次編碼狀態,并根據它的值和數據輸入(datain)的值給出卷積碼的下一個狀態值(next_state)和編碼輸出值(enc_out)。如此往復循環下去,便可得到卷積碼。

2 維特比譯碼

維特比譯碼算法是一種最大似然譯碼算法。根據維特比譯碼算法的譯碼步驟,譯碼算法的實現一般包括:加比選模塊、度量查找表、狀態變量存儲器等模塊,如圖4所示。本設計根據該卷積碼的特性,找到一種簡便的改進譯碼方法。

通過圖3可知,到達每一狀態的輸入碼均相同。例如,無論是由S0轉變成S1還是由S2轉變成S1,雖然編碼輸出段不一樣,但是碼輸入都是‘1’,其他狀態之間的轉變也是如此。因而,通過這個特征可以去掉該卷積碼的維特比譯碼實現時的度量查找表和路徑存儲器等模塊,只保留加比選模塊即可,如圖5所示,從而簡化了維特比譯碼算法的實現。再結合該卷積碼的狀態轉移圖,畫出相應籬笆圖,如圖6所示。

圖5 譯碼器結構框圖

圖6 籬笆圖

在這個譯碼器結構中,“加”是指計算在該時刻實際編碼輸入與圖3中狀態轉移編碼輸出之間的漢明距,“比”是指比較出上述漢明距最小距離,“選”是指通過“比”的結果選擇一位最佳碼字輸出。按照這一結構,在本時刻即可得到一位最佳輸出碼字,例如,在L=0時刻時,實際編碼輸入若為“01”或“10”,則可以通過判斷 L=1時刻的實際編碼輸入來選擇一位最佳碼字輸出。本設計運用VHDL語言編程實現這一譯碼過程時,采用了兩個時鐘,在一個clk周期內將16 bit卷積碼輸入到譯碼器內,然后再由其 8倍頻時鐘 clk1完成 “加”、“比”、“選”、譯碼輸出等動作。由于信號只能采用阻塞賦值,因而,“加”與“比”、“選”分別在兩個 clk1時鐘周期內完成,并且“加”先于后兩者1個時鐘周期。

3 仿真結果

3.1 卷積編碼仿真結果

依據“卷積編碼”單元分析,運用VHDL語言在Model-Sim下實現的圖2編碼器仿真結果,如圖7所示,當輸入碼分別為 :10111000、11000000、01001000 時, 對 應 輸 出 碼 序 列 :1110000110011100、1101011100000000、0011101111101100。可以通過輸入碼和生成多項式矩陣來驗證此卷積編碼是正確有效的。圖7中dataouta為編碼輸出端,clr為編碼器清零端,datain為串行碼輸入端,clk為碼輸入時鐘,clk1為編碼時鐘。

3.2 維特比譯碼仿真結果

依據“維特比譯碼”單元分析,運用VHDL語言在ModelSim下實現的圖5譯碼器仿真結果如圖8所示,當輸 入 碼 分 別 為 :1110000110011100、1101011100000000、0011101 111101100時,對應輸出碼序列為:10111000、11000000、01001000。

圖8中c_out為譯碼輸出端,clr_viterbi_acs為譯碼器清零端,c_in為卷積碼并行輸入端,clk為譯碼處理時鐘,clk2為并行碼輸入時鐘。

本文利用VHDL語言在ModelSim平臺上實現與驗證了(2,1,2)卷積編碼和維特比譯碼,并根據給出的編碼器的特征簡化了譯碼器結構,從而減小了用VHDL語言編程的復雜度,同時也提高了程序的健壯性。該設計可以為同類型采用卷積編碼和維特比譯碼的方案提供一定的幫助。

[1]王新梅,肖國鎮.糾錯碼——原理與方法[M].西安:西安電子科技大學出版社,2001.

[2]曹雪虹.信息論與編碼[M].北京:清華大學出版社,2004.

主站蜘蛛池模板: 欧美日韩在线第一页| 亚洲天堂区| 国产成人成人一区二区| 亚洲日本一本dvd高清| 青草精品视频| 欧美精品v欧洲精品| 国产精品伦视频观看免费| 精品综合久久久久久97| 怡红院美国分院一区二区| 欧美精品不卡| 五月六月伊人狠狠丁香网| 国产香蕉在线视频| 久久精品只有这里有| 亚洲色图狠狠干| 99热这里只有精品5| 日韩精品久久无码中文字幕色欲| 老司机久久99久久精品播放| 欧美日韩免费| 国产夜色视频| 欧美成a人片在线观看| 国产一区二区精品高清在线观看| 青青青草国产| 妇女自拍偷自拍亚洲精品| 99在线视频网站| 天天综合网亚洲网站| 中文字幕在线播放不卡| 亚洲欧洲免费视频| 97国产精品视频人人做人人爱| 99九九成人免费视频精品| 精品国产免费人成在线观看| 欧美日韩亚洲综合在线观看 | 国产在线啪| 91视频首页| 特级毛片免费视频| 天天激情综合| 国产精品中文免费福利| 欧美精品亚洲精品日韩专区va| 欧美国产菊爆免费观看| 亚洲动漫h| 国产一级一级毛片永久| 午夜性爽视频男人的天堂| 国产精品一区二区久久精品无码| 亚洲精品国产综合99| 在线视频一区二区三区不卡| 99国产精品免费观看视频| 国产网站免费看| 国产激情影院| 国产91精品调教在线播放| 亚洲精品无码久久久久苍井空| 高清不卡毛片| 亚洲日韩图片专区第1页| 日韩高清欧美| 精品国产黑色丝袜高跟鞋| 国产精品永久免费嫩草研究院| 色综合a怡红院怡红院首页| 在线观看亚洲成人| 在线观看国产精品一区| 久爱午夜精品免费视频| jizz国产视频| 亚洲第一成年人网站| 国产精品一区二区无码免费看片| 午夜精品区| 欧美亚洲香蕉| 欧美黑人欧美精品刺激| 精品国产三级在线观看| 国产日韩精品欧美一区喷| 2019年国产精品自拍不卡| 亚洲欧洲一区二区三区| 亚洲第一页在线观看| 国内老司机精品视频在线播出| 在线欧美a| 国产96在线 | 国产情精品嫩草影院88av| 国产高清不卡| 国产全黄a一级毛片| 亚洲黄色激情网站| 久久国产精品电影| 综合色88| 久久亚洲美女精品国产精品| 野花国产精品入口| 色老二精品视频在线观看| 免费在线不卡视频|