《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于VHDL語言的卷積碼和Viterbi譯碼的實現
基于VHDL語言的卷積碼和Viterbi譯碼的實現
來源:微型機與應用2012年第16期
陶 杰, 王 欣, 張天輝
(軍械工程學院 光學與電子工程系, 河北 石家莊 050003)
摘要: 介紹并用VHDL語言實現了卷積編碼和維特比譯碼。根據編碼器特征設計了一種具有針對性的簡潔的維特比譯碼器結構,并通過ModelSim平臺驗證了該設計的正確性。
Abstract:
Key words :

摘   要: 介紹并用VHDL語言實現了卷積編碼和維特比譯碼。根據編碼器特征設計了一種具有針對性的簡潔的維特比譯碼器結構,并通過ModelSim平臺驗證了該設計的正確性。
關鍵詞: VHDL卷積碼; 維特比譯碼; ModelSim

    卷積碼自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個不同狀態,編程時用狀態機完成狀態之間的跳變和編碼輸出。 

     部分程序如下:
    ……
     if(clk1=′1′) then
               state <=next_state;
           ……
          else
               state <=state;
                 ……
         case state is
         when "00" =>
                    if(datain = ′0′) then
                        next_state <= "00";
                       enc_out <= "00";
                     else
                         next_state <= "10";
                             enc_out <= "11";
                    end if;
         when "01" =>
               ……
其中,clk1為編碼時鐘(另一時鐘是碼輸入時鐘,為clk1的2倍頻),state為本次編碼狀態,并根據它的值和數據輸入(datain)的值給出卷積碼的下一個狀態值(next_state)和編碼輸出值(enc_out)。如此往復循環下去,便可得到卷積碼。
2 維特比譯碼
    維特比譯碼算法是一種最大似然譯碼算法。根據維特比譯碼算法的譯碼步驟,譯碼算法的實現一般包括:加比選模塊、度量查找表、狀態變量存儲器等模塊,如圖4所示。本設計根據該卷積碼的特性,找到一種簡便的改進譯碼方法。

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

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

 


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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美精品在线| 亚洲国产精品成人综合| 国产日韩欧美综合| 国产精品国产三级国产| 欧美日韩精品一区二区三区| 免费看精品久久片| 美国十次成人| 免费看的黄色欧美网站| 久久免费午夜影院| 亚洲视频观看| 亚洲素人一区二区| 日韩视频一区| 99视频一区二区| 亚洲精品影院| 日韩午夜在线电影| 一本大道久久a久久精品综合 | 99国产一区| 亚洲精品美女| 日韩视频三区| 中文一区二区| 亚洲性感激情| 亚洲小说欧美另类社区| 国产精品99久久久久久久久| 一区二区三区高清在线 | 亚洲视频一区二区在线观看| 亚洲日本成人网| 亚洲国产精品免费| 亚洲电影第1页| 国内精品久久久久影院色| 国产精品人人做人人爽| 国产精品xnxxcom| 欧美极品aⅴ影院| 久久久久久久一区| 亚洲视频一二区| 亚洲精品久久视频| 亚洲精品视频免费| 99国产精品视频免费观看一公开| 亚洲精品裸体| 一本大道久久a久久精二百| 99国产精品自拍| 一本色道久久综合亚洲精品婷婷| 日韩视频亚洲视频| 日韩五码在线| 妖精视频成人观看www| 一本久久a久久精品亚洲| 日韩视频一区二区在线观看 | 国产欧美日韩精品一区| 欧美伦理a级免费电影| 欧美国产第二页| 欧美极品一区| 欧美不卡一卡二卡免费版| 久久精品亚洲乱码伦伦中文 | 亚洲小视频在线| 小黄鸭精品aⅴ导航网站入口| 中国亚洲黄色| 国产日韩欧美成人| 亚洲高清在线视频| 在线播放亚洲一区| 亚洲日本成人网| 99综合电影在线视频| 亚洲视频一区在线观看| 亚洲欧美日韩中文播放| 久久精品99无色码中文字幕| 亚洲国产精品黑人久久久| 亚洲黄色三级| 一二三区精品福利视频| 亚洲综合电影| 欧美一区二区高清| 久久久欧美精品sm网站| 蜜桃久久av一区| 欧美剧在线免费观看网站| 欧美三级在线视频| 国产欧美精品日韩区二区麻豆天美| 国产综合色一区二区三区| 亚洲第一天堂av| 一区二区av在线| 欧美在线free| 亚洲麻豆视频| 欧美亚洲午夜视频在线观看| 久久久精品一品道一区| 蜜臀99久久精品久久久久久软件| 欧美精品videossex性护士| 欧美体内she精视频| 国产美女精品一区二区三区| 黄色精品一区二区| 欧美在线亚洲一区| 在线午夜精品| 亚洲福利在线看| 亚洲午夜精品久久| 久色成人在线| 久久久精品网| 欧美三级视频在线播放| 国产一区二区在线观看免费| 亚洲区免费影片| 香蕉亚洲视频| 一本色道久久88亚洲综合88| 久久国产精品99久久久久久老狼| 欧美精品1区| 国产一区二区视频在线观看| 亚洲精品视频在线播放| 亚洲欧美国产日韩天堂区| 亚洲靠逼com| 久久国产精品亚洲va麻豆| 欧美精品在线免费| 国产一区二三区| 一区二区激情| 好看的日韩视频| 日韩一级在线观看| 亚洲人体1000| 久久国产黑丝| 欧美午夜在线观看| 亚洲精品一区二区三区樱花| 亚洲经典三级| 久久视频在线看| 国产精品久久久久久一区二区三区| 激情久久综艺| 亚洲欧美日韩精品综合在线观看| 亚洲亚洲精品在线观看| 欧美 日韩 国产 一区| 国产精品久久一卡二卡| 一本久久知道综合久久| 91久久久久久久久| 欧美资源在线观看| 欧美日韩一区综合| 亚洲第一页在线| 亚洲国产日韩欧美在线图片| 性感少妇一区| 欧美视频国产精品| 在线精品视频一区二区三四| 欧美一区二区三区婷婷月色| 亚洲欧美综合v| 国产精品户外野外| 日韩亚洲国产欧美| 亚洲精品国产精品久久清纯直播 | 夜夜精品视频一区二区| 日韩视频永久免费| 欧美大片免费观看| 精品99一区二区| 久久成人精品电影| 欧美在线啊v一区| 久久男人av资源网站| 国产一区视频网站| 午夜精品剧场| 久久国产精品72免费观看| 国产欧美精品在线| 亚洲欧美视频在线观看| 性做久久久久久久免费看| 亚洲国产高潮在线观看| 亚洲国产精品久久久久秋霞不卡 | 亚洲精品乱码久久久久久蜜桃91 | 国产精品一区视频| 亚洲一区二区三区三| 亚洲淫性视频| 国产精品盗摄一区二区三区| 一本色道久久综合狠狠躁篇怎么玩| 99精品欧美一区二区蜜桃免费| 欧美私人啪啪vps| 亚洲一区二区三区在线视频 | 午夜欧美理论片| 国产麻豆日韩欧美久久| 亚洲综合日韩| 欧美一区二区三区的| 国产欧美在线播放| 欧美尤物巨大精品爽| 久久亚洲风情| 亚洲国产精品一区二区www在线| 亚洲三级电影全部在线观看高清| 欧美sm视频| 亚洲人成在线观看一区二区| 夜夜嗨av一区二区三区四季av | 亚洲高清成人| 欧美高清在线视频| 日韩亚洲国产欧美| 亚洲欧美精品伊人久久| 国产精品永久在线| 久久精品国产欧美激情| 欧美a级一区| 99视频精品| 久久av在线| 在线免费观看欧美| 一本色道婷婷久久欧美| 国产一区二区久久久| 亚洲欧洲在线播放| 国产精品日韩精品| 久久精品成人欧美大片古装| 欧美日韩影院| 香蕉成人伊视频在线观看| 亚洲一区二区三区高清不卡| 国产精品一区二区女厕厕| 欧美在线电影| 欧美午夜精品理论片a级按摩 | 久久久午夜电影| 最新高清无码专区| 久久精品一区二区三区四区| 亚洲国产精品欧美一二99| 久久精品国产77777蜜臀| 亚洲国产成人精品视频| 欧美在线视频免费观看| 亚洲国产精品一区二区www| 亚洲激情女人|