《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于KCPSM的Turbo譯碼器設計

基于KCPSM的Turbo譯碼器設計

2008-04-11
作者:熊凈宇, 趙 明, 楊海斌

  摘 要: 介紹了基于常變量可編程狀態機(KCPSM)的Turbo譯碼器" title="譯碼器">譯碼器的設計。在該設計中采用Xilinx公司的嵌入式處理器" title="嵌入式處理器">嵌入式處理器IP核作為主控單元,使譯碼器的譯碼參數可根據使用情況通過程序進行調整,并在對硬件結構分析的基礎上說明了KCPSM控制系統" title="控制系統">控制系統的設計方法。
  關鍵詞: KCPSM Turbo碼 嵌入式處理器


  1993年Berrou C. 等學者提出的Turbo碼將卷積編碼和隨機交織結合在一起實現了隨機編碼的思想[1],并且采用了軟輸入軟輸出(SISO)迭代譯碼的最大似然譯碼算法,從而使其譯碼性能接近于Shannon理論的極限。目前,Turbo碼的應用已推廣到深空通信、衛星通信和移動通信等領域,并被確定為第三代移動通信的信道編碼方案之一。
  在不同的應用環境中,出于對譯碼性能和譯碼復雜度的考慮,通常選用不同的譯碼參數。其中直接影響到譯碼性能的關鍵參數有幀長、交織表和迭代次數等。本文介紹的基于KCPSM的Turbo譯碼器在設計中引入嵌入式處理器單元,通過存儲于外部RAM中的程序控制譯碼過程,可根據不同的使用需求修改程序代碼以適用于各種不同的譯碼情況。
1 Turbo譯碼原理
  Turbo碼的特點:編碼器中引入了交織器" title="交織器">交織器,減弱了信息序列的相關性,有效地實現了隨機性編碼;在譯碼時采取了迭代譯碼的思想,使其性能可以接近香農理論的極限。
  Turbo碼的迭代反饋譯碼結構如圖1所示[2]。圖中,SISO Decoder 1和SISO Decoder 2是分別對應于編碼產生的兩組分量碼的軟輸入軟輸出譯碼器。兩個SISO譯碼器通過反復的交錯重復譯碼計算完成對輸入信息序列的譯碼。SISO Decoder 1的軟輸出信息交織后作為SISO Decoder 2譯碼的先驗信息。如果迭代結束,SISO Decoder 2的譯碼結果硬判決輸出;否則,SISO Decoder 2的軟輸出信息反交織后作為SISO Decoder 1下一次迭代譯碼的先驗信息。


  在Turbo碼的譯碼算法中,MAP算法的性能最好,但計算量巨大,硬件實現的復雜度高,譯碼時延大。所以在硬件設計中采用的是在對數域上簡化的Log-MAP算法,這樣可以有效地降低硬件設計的復雜度。在Log-MAP譯碼算法中,需要先從數據序列末端向始端做反向狀態概率β的遞推計算,之后再從序列的始端向末端開始遞推計算前向狀態概率α并得到對數概率似然比。為了減少譯碼的等待延時,在譯碼時可將原先的一幀數據序列按特定的分組長度分解為數段,分別計算每段的軟輸出。在每段序列的計算中,仍然是先反向遞推計算β值,再正向遞推計算α值。其中,α值遞推的初始值由上一段的計算結果給出。對于β值的遞推,則需由下一段序列提供部分軟信息。
  圖2表述了分段譯碼的思想。采用分段譯碼時,用于存放中間結果的存儲器規模取決于分組長度,不再與幀長成正比。對于不同幀長的譯碼只需改變交織表的大小,而譯碼單元不用改變。這樣的譯碼器可以更方便地用于各種碼長的譯碼。


2 Turbo譯碼器的設計
  基于KCPSM的Turbo譯碼器基本可分為兩個部分:TurboDec譯碼模塊和KCPSM主控模塊。
  TurboDec譯碼模塊的結構如圖3所示。它由Trace譯碼單元、存儲單元和交織器組成。Trace譯碼單元的作用是根據Log-MAP算法,對分組后的每段序列做前向或反向的遞推計算。存儲單元包括ZRAM(用于存放在運算過程中需要交換的外信息)、Input Buffer和Output Buffer(分別用于輸入輸出的緩存)。交織器的作用是實現對數據序列的交織和反交織,它主要是一塊存有交織表的RAM,而交織表內存放有每位數據交織后對應的地址。Trace譯碼單元通過查找該交織表得到的地址作為以交織順序讀取或寫入數據的地址。這塊RAM中的交織表可在譯碼前由外部改寫,以滿足不同的譯碼需求。

?


  KCPSM主控模塊采用的是Xilinx公司提供的PicoBlaze嵌入式處理器設計方案[3]。該模塊中主要有兩部分:負責數據信號處理及對外信號輸入輸出的PicoBlaze處理器單元和用于儲存程序指令代碼的Block Memory。PicoBlaze設計方案的結構如圖4所示。
  在時鐘信號的驅動下,PicoBlaze處理器單元根據當前的8位地址從Block Memory中讀取對應的16位指令代碼,再根據此指令代碼完成運算操作,同時產生下一步指令的地址。根據不同指令的要求,在IN_PORT端和OUT_PORT端分別讀入或輸出計算的數據,并在PORT_ID端指明對應的I/O端口地址。READ_STROBE端和WRITE_STROBE端則在執行讀寫操作時輸出脈沖信號,該脈沖信號通常用于控制外圍電路的讀寫。
3 KCPSM控制系統的設計
3.1KCPSM設計的特點

  KCPSM是常變量可編程狀態機的簡稱,其主要組成部分為嵌入式處理器單元,用于實現基于常量的狀態機主控單元。與傳統的基于時序電路的狀態機控制設計相比,使用KCPSM作為主控單元有以下特點:
  (1)結構簡單,占用資源少。以Xilinx公司推出的8位嵌入式微處理器IP核PicoBlaze為例,其邏輯模塊" title="邏輯模塊">邏輯模塊僅占用Spartan-IIE的76個slice,相當于最小的XC2S50E器件可用資源的9%,或XC2S300E器件可用資源的2.5%。對于較大規模的設計幾乎可以忽略這樣的資源占用。雖然該IP核占用的硬件資源很少,但它的運算性能可以達到40MIPS。因其占用資源少,在實際設計中可以同時使用多個KCPSM以完成復雜的控制功能。
  (2)使用靈活,易于調試。對于KCPSM單元,控制狀態的轉換及相關信號的處理都是以程序指令的形式存儲于Block RAM單元中,不涉及到IP核的邏輯模塊單元。使用時只需要根據不同的目的編寫相應的指令代碼就可實現不同的功能。特別是在對電路進行調試時,易于實現特定的非正常運行狀態。
  (3)指令周期相對較長。KCPSM采用的是從Block RAM單元讀取指令的操作模式,每步操作的完成包括確定RAM地址和讀取指令兩步,需要花費兩個時鐘周期。與由時序電路組成的狀態機相比,KCPSM的運行效率較低,不適合用于對時鐘沿敏感情況下的控制需要。
  由上面幾點可以看出,KCPSM作為可編程的控制單元,適合用于情況比較復雜但對時間要求不高的系統級控制,特別是有大量控制參數需要計算調整的情況。相對于由時序單元組成的控制電路,它在節省硬件開銷的同時,降低了設計的復雜性,增強了設計的靈活性。
3.2Turbo譯碼的控制設計
  根據Turbo碼的迭代譯碼原理,KCPSM控制系統的基本流程如圖5所示。從圖中可以看出,該控制系統根據Turbo譯碼器當前的工作狀態檢測對應的控制信號并改變輸出參數。當譯碼器沒有處于譯碼狀態時,KCPSM會周期性地檢測譯碼啟動信號。該信號有效后,Turbo譯碼器進入譯碼狀態,KCPSM向TurboDec譯碼模塊輸出第一次反向遞推譯碼計算的起始地址、譯碼段長度等參數和控制信號,同時準備下一次前向遞推的相關參數。譯碼器進入譯碼狀態后,KCPSM改為檢測TurboDec譯碼模塊的譯碼完成信號。當TurboDec完成遞推譯碼計算后,KCPSM根據迭代次數決定是否還需要進行下一次的遞推計算。若迭代譯碼過程尚未結束,KCPSM會控制TurboDec譯碼模塊開始新一次的遞推計算,并為下次的遞推計算相關參數。迭代譯碼結束后,KCPSM使TurboDec譯碼模塊輸出譯碼結果,并控制Turbo譯碼器退出譯碼狀態。


  在整個譯碼過程中,KCPSM將Turbo譯碼器的狀態以編碼的形式存儲在內部的寄存器中,并根據譯碼的要求和遞推計算的次數確定下次遞推譯碼的參數。TraceDec譯碼單元對前向狀態概率的計算與對反向狀態概率的計算是交替進行的,在每次譯碼操作后都要改變下次譯碼遞推的方向。譯碼的起始地址和譯碼段的長度由譯碼方向和已完成的譯碼長度確定。對位于幀尾的最后一段序列,譯碼的起始地址和譯碼段的長度需根據剩余的序列長度進行調整。由于只有一個TurboDec譯碼模塊作為SISO譯碼器,在結束一次MAP譯碼后,下一次的MAP譯碼需采用不同的校驗序列,以實現對兩組校驗信息的充分利用。
  在Turbo譯碼過程中,KCPSM要將多個參數傳遞給TurboDec譯碼模塊,為此需要同時使用OUT_PORT和PORT_ID兩個輸出端口。將這些參數分別看作KCPSM的不同“虛擬端口”,為每個輸出參數設定一個特定的PORT_ID。KCPSM輸出數據后,TurboDec譯碼模塊根據PORT_ID的數值判斷當前OUT_PORT端輸出的是什么參數。
4 性能分析
  本設計采用Xilinx公司的Spartan-IIE系列作為目標器件,采用Xilinx ISE作為開發環境。根據設計的綜合情況,在硬件資源方面,該Turbo碼譯碼器的邏輯模塊占用了829個slice,而存儲模塊則占用了56Kbit的BlockRAM,最高時鐘頻率約達到50MHz。根據RAM單元的使用情況,該譯碼器可完成對最大幀長為3 084位的輸入序列的譯碼。
  從以上數據可以看出,在使用相對較少硬件資源的情況下,基于KCPSM的Turbo譯碼器提供了很好的譯碼性能,同時因在設計時就考慮了靈活性的問題,使其可以很方便地根據實際使用調整譯碼參數,擴大了應用范圍。
  本文介紹了基于KCPSM的Turbo譯碼器設計,并結合該設計說明了基于嵌入式處理器單元的系統設計方法。通過引用Xilinx公司提供的嵌入式處理器IP核,該設計在提供良好譯碼性能的同時,在使用上也具有很好的靈活性。
  隨著通信技術的發展,對譯碼電路的性能要求也將不斷提高。本文提出的設計方案也可作為實用ASIC芯片設計方案的參考。基于嵌入式處理器的設計思想可使ASIC設計芯片具有很好的通用性。
參考文獻
1 Berrou C, Galavieux A, Thitimajshima P. Near shannon limit error-correcting coding and decoding: Turbo-codes: Turbocodes. IEEE International Conference on Communication, 1993:1064~1070
2 Yanhui Tong, Tet-Hin Yeap, Jean-Yves Chouinard. VHDL implementation of a turbo decoder with log-MAP-based iterative decoding, IEEE Transactions on Instrumentation and Measurement, 2004:1268~1278
3 Chapman K. PicoBlaze 8-bit microcontroller for virtex-E and spartan-II/IIE Devices. Xilinx, 2003

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
免费在线播放第一区高清av| 国产精品自拍在线| 亚洲视频大全| 亚洲国产视频一区二区| 亚洲欧美日韩综合| 亚洲视频www| 亚洲精品乱码视频| 亚洲高清资源| 精品电影一区| 韩国一区电影| 国产日韩欧美成人| 国产精品永久免费观看| 国产精品高潮呻吟久久| 欧美日韩视频在线第一区| 欧美国产日产韩国视频| 欧美成人免费网| 免费在线成人av| 欧美成人午夜激情视频| 久久综合久久美利坚合众国| 久久久久欧美精品| 久久精品噜噜噜成人av农村| 久久99伊人| 久久精品国产一区二区电影| 欧美在线视频一区二区| 欧美在线免费看| 久久精品一区二区三区不卡| 久久精品论坛| 老司机精品久久| 99这里只有久久精品视频| 国产精品久久久久久久电影 | 一本久道综合久久精品| 一本大道av伊人久久综合| 中文日韩欧美| 香蕉成人久久| 久久精品一区二区三区不卡牛牛 | 亚洲免费av观看| 一道本一区二区| 亚洲性感美女99在线| 午夜久久久久| 亚洲国产精品传媒在线观看| 亚洲激情一区| 一片黄亚洲嫩模| 亚洲女女女同性video| 久久国产一区二区三区| 美女脱光内衣内裤视频久久影院| 欧美高清在线观看| 国产精品va在线| 国产日韩精品一区二区三区在线| 狠狠做深爱婷婷久久综合一区 | 久久久久久穴| 欧美精品v国产精品v日韩精品| 欧美三级电影一区| 国产欧美亚洲一区| 精品成人一区二区三区| 亚洲精品中文字幕在线观看| 亚洲一区二区三区激情| 久久精品青青大伊人av| 一区二区毛片| 香蕉乱码成人久久天堂爱免费| 久久亚洲国产精品一区二区| 欧美精品一区在线| 久久夜色撩人精品| 亚洲影院免费| 久久久久久婷| 欧美日韩在线播放三区| 国产日韩欧美在线| 91久久线看在观草草青青| 亚洲一区精品在线| 亚洲成人在线视频播放| 亚洲视频网在线直播| 久久精品久久99精品久久| 欧美精品国产一区二区| 国产伦精品一区二区三区免费迷 | 国产精品一区二区在线观看| 怡红院精品视频| 中日韩男男gay无套| 久久国产精品第一页| 亚洲私人影院在线观看| 久久久www成人免费精品| 欧美激情综合网| 国内精品国语自产拍在线观看| 99re热这里只有精品视频 | 久久国产精品久久久久久电车 | 欧美日韩精品二区第二页| 国产一区二区日韩| 一区二区毛片| 亚洲成人在线免费| 国产精品电影观看| 亚洲国产三级网| 欧美综合国产精品久久丁香| 在线视频欧美日韩| 裸体一区二区三区| 国产日韩亚洲欧美| a91a精品视频在线观看| 亚洲精品系列| 久久综合久色欧美综合狠狠| 国产乱码精品1区2区3区| 亚洲肉体裸体xxxx137| 亚洲国产成人在线视频| 欧美一区二区三区日韩| 欧美视频久久| 亚洲毛片在线观看| 91久久久一线二线三线品牌| 久久久久在线| 国产网站欧美日韩免费精品在线观看 | 亚洲欧美www| 欧美日韩精品不卡| 91久久国产综合久久| 久久精品天堂| 久久婷婷国产综合尤物精品| 国产日韩欧美一区| 亚洲一区二区三区精品在线| 亚洲一区二区毛片| 欧美日韩美女一区二区| 亚洲欧洲一区二区天堂久久| 亚洲国产精品久久久久婷婷884 | 精品动漫3d一区二区三区免费版 | 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 欧美日韩国产一级| 亚洲国产精彩中文乱码av在线播放| 欧美一级午夜免费电影| 欧美亚洲在线视频| 国产精品手机视频| 亚洲淫性视频| 欧美一区二区三区四区视频| 国产精品嫩草影院一区二区| 亚洲午夜激情网站| 亚洲欧美中文字幕| 国产精品扒开腿做爽爽爽软件| 一区二区三区国产精华| 亚洲网站啪啪| 国产精品久久久久久影院8一贰佰| 中文在线一区| 亚久久调教视频| 国产日韩精品一区二区浪潮av | 久久精品国产一区二区三| 久久久九九九九| 国内精品久久久久久久97牛牛| 欧美在线在线| 免费久久99精品国产自在现线| 亚洲第一福利社区| 最新中文字幕一区二区三区| 欧美日本精品一区二区三区| 亚洲伦理网站| 欧美一区二区三区久久精品茉莉花| 国产视频久久| 久久岛国电影| 欧美国产日韩xxxxx| 99亚洲视频| 午夜精品视频在线| 国产中文一区二区| 亚洲美女免费视频| 欧美少妇一区| 亚洲欧美激情精品一区二区| 久久久伊人欧美| 最新日韩欧美| 亚洲女同性videos| 国产亚洲精品一区二区| 亚洲欧洲日本一区二区三区| 欧美日韩精品免费观看视一区二区| 一区二区三区日韩欧美精品| 久久精品理论片| 最近中文字幕mv在线一区二区三区四区 | 99国内精品久久| 国产精品亚洲产品| 亚洲第一免费播放区| 欧美日韩高清免费| 午夜精品久久久久久久男人的天堂| 久久综合一区二区| 一区二区三区不卡视频在线观看| 久久久精品tv| 日韩视频久久| 久久精品在线播放| 亚洲日本欧美在线| 欧美诱惑福利视频| 91久久精品国产91久久性色| 午夜精品久久久久久| 在线免费观看欧美| 亚洲欧美精品伊人久久| 揄拍成人国产精品视频| 亚洲香蕉视频| 在线欧美亚洲| 午夜亚洲福利| 亚洲国产精品热久久| 亚洲欧美日韩一区二区| 影音先锋久久精品| 亚洲欧美bt| 亚洲韩国青草视频| 性欧美暴力猛交另类hd| 亚洲国内精品在线| 久久精品盗摄| 一本色道久久综合亚洲精品不卡| 久久一二三区| 亚洲一区欧美激情| 欧美人成免费网站| 欧美在线中文字幕| 国产精品日本精品| 亚洲精品日韩综合观看成人91| 国产亚洲成精品久久| 亚洲一区综合|