<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 短幀Turbo譯碼器的FPGA實現(xiàn)

          短幀Turbo譯碼器的FPGA實現(xiàn)

          作者: 時間:2010-11-27 來源:網(wǎng)絡(luò) 收藏

            碼雖然具有優(yōu)異的譯碼性能,但是由于其譯碼復雜度高,譯碼延時大等問題,嚴重制約了碼在高速通信系統(tǒng)中的應(yīng)用。因此,如何設(shè)計一個簡單有效的譯碼器是目前碼實用化研究的重點。本文主要介紹了Turbo譯碼器的,并對相關(guān)參數(shù)和譯碼結(jié)構(gòu)進行了描述。

          本文引用地址:http://www.ex-cimer.com/article/151302.htm

            1 幾種譯碼算法比較

            Turbo碼常見的幾種譯碼算法中,MAP算法[1][3]具有最優(yōu)的譯碼性能。但因其運算過程中有較多的乘法和指數(shù)運算,硬件很困難。簡化的MAP譯碼算法是LOG-MAP算法和MAX-LOG-MAP算法,它們將大量的乘法和指數(shù)運算轉(zhuǎn)化成了加減、比較運算,大幅度降低了譯碼的復雜度,便于硬件。簡化算法中,LOG-MAP算法性能最接近MAP算法,MAX-LOG-MAP算法次之,但由于LOG-MAP算法后面的修正項需要一個查找表,增加了存儲器的使用。所以,大多數(shù)硬件實現(xiàn)時,在滿足系統(tǒng)性能要求的情況下,MAX-LOG-MAP算法是硬件實現(xiàn)的首選。通過仿真發(fā)現(xiàn),采用3GPP的編碼和交織方案[2],在情況下,MAX-LOG-MAP算法同樣具有較好的譯碼性能。

            如圖1所示,幀長為128,迭代6次,BER=10-5的數(shù)量級時, MAX-LOG-MAP算法的譯碼性能比MAP算法差大約0.6dB,比LOG-MAP算法差0.2dB左右。所以,本文采用3GPP的交織和(13,15)編碼方案,MAX-LOG-MAP譯碼算法進行Turbo碼譯碼器的實現(xiàn)與設(shè)計。

            


            2 MAX-LOG-MAP算法

            為對MAP算法進行簡化,通常將運算轉(zhuǎn)換到對數(shù)域上進行,避免了MAP算法中的指數(shù)運算,同時,乘法運算變成了加法運算,而加法運算用雅可比公式簡化成MAX*運算[4]。

            將運算轉(zhuǎn)化到正對數(shù)域進行運算,則MAX*可等效為:

            

          公式

            按照簡化公式(3)對MAP譯碼算法[1][3]的分支轉(zhuǎn)移度量、前向遞推項、后向遞推項及譯碼軟輸出進行簡化。

            分支轉(zhuǎn)移度量:

            

          公式

            為防止迭代過程中數(shù)據(jù)溢出,對前后向遞推項(5)、(6)式進行歸一化處理:

            

          公式

            

          公式
          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 實現(xiàn) FPGA Turbo 短幀

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();