国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于FPGA的Viterbi譯碼器設(shè)計(jì)及實(shí)現(xiàn)

發(fā)布時(shí)間:2015-11-12 10:17    發(fā)布者:designapp
關(guān)鍵詞: FPGA , Viterbi , 譯碼器
  卷積碼是廣泛應(yīng)用于衛(wèi)星通信、無(wú)線通信等各種通信系統(tǒng)的信道編碼方式。Viterbi算法是一種最大似然譯碼算法。在碼的約束度較小時(shí),它比其它概率譯碼算法效率更高、速度更快,譯碼器的硬件結(jié)構(gòu)比較簡(jiǎn)單。隨著可編程邏輯技術(shù)的不斷發(fā)展,其高密度、低功耗、使用靈活、設(shè)計(jì)快速、成本低廉、現(xiàn)場(chǎng)可編程和反復(fù)可編程等特性,使FPGA逐步成為Viterbi譯碼器設(shè)計(jì)的最佳方法。項(xiàng)目目的是用FPGA實(shí)現(xiàn)一個(gè)Viterbi譯碼器。
  一、譯碼器功能分析
  譯碼器是一種具有“翻譯”功能的邏輯電路,這種電路能將輸入二進(jìn)制代碼的各種狀態(tài),按照其原意翻譯成對(duì)應(yīng)的輸出信號(hào)。Viterbi譯碼器是以Viterbi算法為基礎(chǔ)設(shè)計(jì)的一種譯碼器,譯碼器主要由五部分組成:分支度量單元(Branch Metric Unit)、加比選單元(Add-Compare-Select Unit)、幸存路徑管理單元(Survivor Management Unit)、判輸出單元(Decide-Output Unit)和控制單元(Control Unit)。其整體結(jié)構(gòu)如圖1。
  


  圖1 譯碼器結(jié)構(gòu)框圖
  各單元之間的相互關(guān)系如下:接收到的輸入數(shù)據(jù)首先被送入各分支度量單元中計(jì)算出相應(yīng)的分支路徑距離;加比選單元將舊的狀態(tài)路徑度量與相應(yīng)的新產(chǎn)生的分支路徑距離相加,通過(guò)比較后選擇到達(dá)同一狀態(tài)的兩個(gè)路徑度量值中較小的分支來(lái)更新路徑度量;溢出處理防止加比選單元中的路徑度量累加值發(fā)生溢出;幸存路徑管理單元將加比選單元生成的路徑信息進(jìn)行存儲(chǔ)管理;判決輸出單元根據(jù)加比選單元選擇的路徑度量,從中選擇一個(gè)最小值,并輸出該最小值對(duì)應(yīng)的幸存路徑。所有這些單元都在控制單元的協(xié)調(diào)下工作。
  1 分支度量單元
  分支度量表征該分支接收到的碼元與期望碼元之間的差別。對(duì)于硬判決,這種差別指不同碼元的個(gè)數(shù)。硬判決分支度量值可以表示為:
  


  (式1)
  其中,y為接收碼字,c為本地卷積碼輸出碼字。對(duì)于碼率為1/2硬判決譯碼方式,編碼器輸出信號(hào)可能為00、01、10、11,其路徑度量取值(漢明距離)只有0、1、2三種可能,因此需要用一個(gè)2bit的寄存器來(lái)存儲(chǔ)分支度量值。
  在本文中,采用了4個(gè)ACS單元(每個(gè)ACS單元有兩個(gè)累加器)并行計(jì)算,因此需要8個(gè)分支度量單元并行計(jì)算8個(gè)條支路的度量值,并將度量值送至ACS中的累加器。
  2 加比選單元
  ACS單元用來(lái)累加路徑度量值并比較和選擇進(jìn)入某一狀態(tài)的兩條分支。本文中采用4個(gè)ACS單元并行計(jì)算,每16個(gè)狀態(tài)復(fù)用一個(gè)ACS結(jié)構(gòu),同時(shí)兼顧了面積和速度。
  


  圖 2 (2,1,7)卷積碼的狀態(tài)圖
  譯碼器的核心部分是ACS單元,傳統(tǒng)的譯碼器結(jié)構(gòu)每產(chǎn)生一位譯碼需要進(jìn)行2(n-1)次加比選運(yùn)算,即2×2(n-1)=2n次加法運(yùn)算和2(n-1)次比較選擇運(yùn)算。對(duì)于(2,1,7)卷積碼來(lái)說(shuō),需要進(jìn)行128加法運(yùn)算和64次比較選擇運(yùn)算,這將占用很多的資源并產(chǎn)生很大的功耗,因此,如果能夠通過(guò)改進(jìn)ACS單元的結(jié)構(gòu)來(lái)降低其規(guī)模和功耗,將會(huì)使整個(gè)譯碼器的硬件規(guī)模和功耗大大降低。
  從圖2所示的(2,1,7)卷積碼的狀態(tài)圖中可以看出:在T(i+1)時(shí)刻到達(dá)狀態(tài)S0和S1的是T(i)時(shí)刻的狀態(tài)S0和S32,……,在T(i+1)時(shí)刻到達(dá)狀態(tài)S62和S63的是T(i)時(shí)刻的狀態(tài)S31和S63。也就是說(shuō),T(i)時(shí)刻的狀態(tài)Sj和Sj+32會(huì)達(dá)到T(i+1)時(shí)刻的相鄰的兩個(gè)狀態(tài),并且這兩個(gè)狀態(tài)是S2j和S2j+1(31≥j≥0)。這也就是圖形單(ButterfllyUnit)。
  


  圖3 基二蝶形單元
  在圖3中,T(i)時(shí)刻的狀態(tài)Sj和Sj+32都是在輸入0的時(shí)候轉(zhuǎn)移到T(i+1)時(shí)刻的狀態(tài)S2j,在輸入1的時(shí)候轉(zhuǎn)移到T(i+1)時(shí)刻的狀態(tài)S2j+1。這也就意味著ACS單元中的比較器所比較的兩個(gè)路徑度量值(BM)來(lái)自數(shù)值上相差32的兩個(gè)狀態(tài)。路徑度量的計(jì)算就是分支度量加上與這條分支相連的前一時(shí)刻的狀態(tài)選擇的路徑度量,所以,新?tīng)顟B(tài)的路徑度量為:
  


  (式2)
  


  (式3)
                               
                  從以上的分析中我們可以得出一個(gè)很重要的結(jié)論:從T(i)時(shí)刻的狀態(tài)Sj(2(n-1)≥j≥0)生成的兩條支路,唯一不同的信息就是該時(shí)刻狀態(tài)Sj的輸入數(shù)據(jù),Sj的上支路輸入的是0,下支路輸入的是1。因此,一個(gè)狀態(tài)可以只生成一條支路(上支路),另一條支路(下支路)的信息已經(jīng)包括在這條支路中,要恢復(fù)出下支路只需要將上支路的輸入數(shù)據(jù)取反即可。圖4.2所示的ACS單元結(jié)構(gòu)中的累加器可以減少一半的工作量,對(duì)于本文中的(2,1,7)卷積碼的譯碼器,即由每產(chǎn)生一位譯碼工作16個(gè)時(shí)鐘周期減少為8個(gè)時(shí)鐘周期(可將時(shí)鐘頻率降為原來(lái)的1/2),減少了復(fù)用次數(shù),降低了ACS單元的復(fù)雜度和功耗。同時(shí),由于ACS單元結(jié)構(gòu)的優(yōu)化,每個(gè)狀態(tài)只需要生成一條路徑,存儲(chǔ)的幸存路徑數(shù)也由原來(lái)的128條減少為64條,也同樣使結(jié)構(gòu)變得簡(jiǎn)單,功耗有所降低。
  由式(2)和式(3)可知,輸入數(shù)據(jù)(datain)不同,卷積碼的輸出C0和C1也不同,因此,同一狀態(tài)上支路的輸出與下支路不同,上下支路狀態(tài)輸出及譯碼器的輸入數(shù)據(jù)之間的關(guān)系如表1所示:
  


  利用上下支路分支度量值的關(guān)系就可以從上支路路徑度量累加值中計(jì)算出下支路路徑度量累加值,用Verilog HDL語(yǔ)言描述為:
  case(up_branch_metric)
  2'b00: down_path_add_metric


  圖4 判決輸出單元結(jié)構(gòu)圖
  5 控制單元
  控制單元(CU)產(chǎn)生控制各模塊的時(shí)鐘信號(hào),是所有模塊的有序運(yùn)行的基礎(chǔ)。各時(shí)鐘信號(hào)功能如下:clk_load用于讀取前一時(shí)刻各狀態(tài)寄存器的內(nèi)容,并產(chǎn)生各狀態(tài)上支路的狀態(tài)輸出值;clk_BM用于計(jì)算各狀態(tài)上支路的分支度量值并讀取前一時(shí)刻各狀態(tài)的路徑度量值;clk_Add用于計(jì)算各狀態(tài)上支路的路徑度量值;clk_restore用于暫存各狀態(tài)上支路度量值并恢復(fù)相應(yīng)狀態(tài)下支路的路徑度量值;clk_C_S用于比較并選擇達(dá)到同一狀態(tài)的兩支路的路徑度量值的較小者,并存儲(chǔ)各狀態(tài)選擇的幸存路徑;clk_MNS用于選擇各狀態(tài)存儲(chǔ)的路徑度量值中的最小值,并保存該最小值對(duì)應(yīng)的狀態(tài);min_sel_1和min_sel_2分兩步選擇4個(gè)MNSU選擇結(jié)果的最小值,并選出最終的最小值對(duì)應(yīng)的狀態(tài);Decode_Output用于讀取該最小值對(duì)應(yīng)狀態(tài)存儲(chǔ)的幸存路徑,并輸出譯碼結(jié)果。
  二、項(xiàng)目實(shí)施方案
  Viterbi譯碼器大致可以分為四個(gè)部分:支路度量模塊(BMU)、加比選模塊(ACS)、幸存路徑管理模塊(SMU)和輸出產(chǎn)生模塊。其 中支路度量模塊用于完成譯碼器輸入信號(hào)與網(wǎng)格圖上的可能路徑信號(hào)的分支度量計(jì)算;加比選模塊主要把前一個(gè)狀態(tài)的路徑度量與當(dāng)前輸入信號(hào)的分支度量相加,以得到該分支的路徑度量,然后比較不同分支路徑度量的大小,同時(shí)找出最小的度量值,并更新該狀態(tài)的度量值,最后輸出狀態(tài)轉(zhuǎn)移信息;路徑管理模塊可對(duì)加比選單 元輸出的狀態(tài)轉(zhuǎn)移信息進(jìn)行處理,以便為輸出判決做準(zhǔn)備。輸出模塊可根據(jù)幸存路徑管理單元的輸出進(jìn)行輸出判決,最后輸出譯碼信息。Viterbi譯碼器基本原理框圖如下所示。
  

                               
               
本文地址:http://m.qingdxww.cn/thread-156162-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • Cortex-M4外設(shè) —— TC&TCC結(jié)合事件系統(tǒng)&DMA優(yōu)化任務(wù)培訓(xùn)教程
  • 利用模擬開(kāi)發(fā)工具生態(tài)系統(tǒng)進(jìn)行安全電路設(shè)計(jì)
  • 深度體驗(yàn)Microchip自動(dòng)輔助駕駛應(yīng)用方案——2025巡展開(kāi)啟報(bào)名!
  • 你仿真過(guò)嗎?使用免費(fèi)的MPLAB Mindi模擬仿真器降低設(shè)計(jì)風(fēng)險(xiǎn)
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产欧美另类 | 欧美日韩一级二级三级 | 四虎影视国产在线观看精品 | 1314亚洲人成网站在线观看 | 成人黄色在线 | 玖操网| 大蕉伊人 | 奇米视频7777 | 成人在线手机视频 | 欧美草逼网 | 四虎影视在线看 | 天天久久狠狠伊人第一麻豆 | 艳母在线免费看影视网站 | 天天噜| 欧美黄网站免费观看 | 国产精品热久久 | 欧美黑大炮18p | 国产私密 | 青青热 | 国产韩国精品一区二区三区 | 亚洲欧美天堂网 | 午夜欧美成人 | 国产在线精品香蕉麻豆 | 国产精品免费视频网站 | 免费韩国一级毛片 | 另类专区亚洲 | 久久久久九九 | 91热视频在线观看 | 成人a影片在线观看 | 狠狠激情五月综合婷婷俺 | www.色黄| 亚洲s色大片在线观看 | 欧美人与动人物xxxx9296 | 99 久久99久久精品免观看 | 成人三级视频 | 久久这里只有精品国产 | 国产精品日本不卡一区二区 | 精品久久久久久综合网 | 日韩欧美在线看 | 在线a免费观看 | 天堂日韩|