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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的卷積碼的編/譯碼器設(shè)計(jì)

          基于FPGA的卷積碼的編/譯碼器設(shè)計(jì)

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

            3 譯碼器設(shè)計(jì)與實(shí)現(xiàn)

            譯碼器包括4個子模塊,如圖5所示。

          e.JPG

            1)控制單元 向各個功能模塊提供控制信號,保證譯碼器的工作時序正確,協(xié)調(diào)各個功能模塊從而促使整個譯碼器的正常工作。

            2)路徑度量和“加-比-選單元”計(jì)算和比較每條支路的路徑度量,得到并保存剩余路徑提供給回溯單元。對于(2,1,3),譯碼深度D=5(m+1)=20,為保證存儲單元和回溯單元同時并行工作,存儲單元為2D(m+1)2m=1280 bit。

            3)回溯單元 從前面“加-比-選”電路送來的剩余路徑中選擇量度最小的剩余路徑,從這條路徑對應(yīng)的狀態(tài)開始向前尋找,直到找完前面所有狀態(tài),并從存儲單元中讀出譯碼信息送給譯碼控制單元。

            4)譯碼控制單元 將回溯單元送來的譯碼序列反轉(zhuǎn)順序輸出即為所要輸出的正確的接收序列。其中反轉(zhuǎn)順序的操作可由RAM實(shí)現(xiàn),順序?qū)懭氲剐蜃x出。

            4 譯碼器設(shè)計(jì)中改進(jìn)和優(yōu)化算法

            本文采取狀態(tài)路徑和判決比特同時存儲,在表示狀態(tài)信息的比特前加上1位判決比特來表示相應(yīng)狀態(tài)的輸入支路的譯碼信息,因此,譯碼器在回溯時就可直接輸出判決比特作為譯碼器的輸出,降低了譯碼器的判決難度,節(jié)省了存儲回溯路徑所需要的內(nèi)存,從而降低了譯碼器結(jié)構(gòu)復(fù)雜性。

            本設(shè)計(jì)中譯碼器在計(jì)算所有狀態(tài)的路徑量度的同時進(jìn)行路徑存儲,從而大大提高了譯碼速度。路徑量度是指每個狀態(tài)的2條輸入支路和2條輸出支路,路徑存儲指的是狀態(tài)存儲以及相應(yīng)的譯碼判決比特存儲。該結(jié)構(gòu)的譯碼器對每一個狀態(tài)都具有獨(dú)立的處理單元,彼此互補(bǔ)影響,并行工作,提高了譯碼速度。對于(2,1,3),一個時鐘需要進(jìn)行2x2x2m=32次路徑量度計(jì)算和2m=8次4比特存儲操作。充分發(fā)揮了擁有大量LCS和RAM的優(yōu)勢。

            在網(wǎng)格圖中,隨著狀態(tài)的改變,每個狀態(tài)的輸出支路的路徑量度逐漸增加,造成存儲資源壓力增大,設(shè)計(jì)中在每次進(jìn)行路徑量度計(jì)算時,將該狀態(tài)的量度值與上次剩余路徑量度的最小值做差后進(jìn)行保存,以達(dá)到減小存儲器空間的需求。對于編碼效率為1/2的,以上差值最大不超過2m,因此,路徑量度的量化寬的為1b(2m)。對于(2,1,3)卷積碼,存儲路徑量度的寄存器位寬為lb(2×3)=3。



          評論


          相關(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); })();