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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 3G系統(tǒng)中Turbo譯碼改進及DSP實現(xiàn)

          3G系統(tǒng)中Turbo譯碼改進及DSP實現(xiàn)

          作者: 時間:2011-01-24 來源:網(wǎng)絡 收藏

           Turbo碼是近年來通信系統(tǒng)糾錯編碼領域的重大突破,他以其接近Shannon限的優(yōu)越性能博得眾多學者的青睞。在第三代移動通信系統(tǒng)中,Turbo碼在各種標準中被普遍作為高速數(shù)據(jù)業(yè)務的信道編碼方式,如何實現(xiàn)高性能的Turbo碼譯碼器,成為第三代移動通信系統(tǒng)開發(fā)中接收機基帶處理部分的重點和難點之一。Turbo譯碼器中的分量譯碼器的實現(xiàn)算法有SOVA算法,Max-Log-Map算法和Log-Map算法,其中SOVA算法復雜度最低,性能最差;Log-Map算法性能最佳,復雜度最大,本文采用基于Max-Log-Map的優(yōu)化譯碼算法,對狀態(tài)量度歸一化計算和滑動窗算法等關鍵技術進行優(yōu)化,在滿足性能要求的情況下,大大降低算法復雜度。

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

          Turbo碼譯碼器

            1 Turbo編碼器.譯碼器及算法

            Turbo編碼器采用3GPP的編碼方案,由約束長度K為4,碼率為1/2的RSC編碼器通過1個交織器并行級聯(lián)而成,為提高性能對2個譯碼器分別附加3個尾比特使譯碼器的最終狀態(tài)為全0。

            譯碼器采用反饋迭代結構,每級譯碼模塊除了交織器,解交織器外主要包括兩個級聯(lián)的分量譯碼器;一個分量譯碼器的輸出的軟判決信息經(jīng)過處理成為外信息輸入另一個分量譯碼器,形成迭代譯碼,在迭代一定級數(shù)后硬判決輸出。

            編碼網(wǎng)格表貫穿整個譯碼過程,任意時刻k~k+1的RSC網(wǎng)格結構如圖3所示,圖中編碼器輸入的0~7狀態(tài)可以由二進制表示。

          RSC網(wǎng)格結構

            下面介紹Max-Log-Map算法。

            由于需要進行大量的乘法運算和指數(shù)運算,Map算法不適用于硬件實現(xiàn)。Erfanian和Pasupanthy最早提出了Map算法在對數(shù)域的簡化算*og-Map算法。通過轉(zhuǎn)換到對數(shù)域運算,避免了指數(shù)運算,同時乘法變成加法,而加法則變成Max運算,不過由此也會帶來了一定的性能損失。下面簡要描述Max-Log-Map算法。設Ak(s),Bk(s),Γk(s)分別代表對數(shù)域的前向狀態(tài)度量、后向狀態(tài)度量和分支度量,其表達式分別可表示為:

          表達式

            如圖3所示,每個節(jié)點狀態(tài)s都對應于一個Ak(s),1個Bk(5)和2個Γk(s)。因此編碼網(wǎng)絡貫穿整個編譯碼過程,譯碼前要先按圖3建立網(wǎng)格映射表。


          上一頁 1 2 3 下一頁

          關鍵詞: 編解碼器

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();