新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的短幀Turbo譯碼器的實現

        基于FPGA的短幀Turbo譯碼器的實現

        作者: 時間:2012-10-31 來源:網絡 收藏

        3.4 8狀態值最小值運算單元

        由MAX-LOG-MAP算法可知,在進行前后向遞推歸一化處理和計算譯碼軟輸出時,均需要計算每一時刻8個狀態的最小值。為了減小計算延時,采用了8狀態值并行比較的結構,與串行的8狀態值比較結構相比較,要少4級延時。結構如圖4所示。

        8狀態值最小值運算單元

        4 仿真結果

        按照以上所分析的簡化譯碼算法、的相關參數和結構,整個譯碼采用Verilog HDL語言編程,以Xilinx ISE 7.1i、Modelsim SE 6.0為開發環境,選定Virtex4芯片xc4vlx40-12ff668進行設計與。整個譯碼器占用邏輯資源如表1所示。

        整個譯碼器占用邏輯資源

        MAX-LOG-MAP譯碼算法,幀長為128,迭代4次的情況下,MATLAB浮點算法和定點實現的譯碼性能比較如圖5所示。

        MATLAB浮點算法和FPGA定點實現的譯碼性能比較

        由MAX-LOG-MAP算法的MATLAB浮點與定點的性能比較仿真結果可知,采用F(9,3)的定點量化標準,FPGA定點實現譯碼性能和理論的浮點仿真性能基本相近,并具有較好的譯碼性能。

        綜上所述,在短幀情況下,MAX-LOG-MAP算法具有較好的譯碼性能,相對于MAP,LOG-MAP算法具有最低的硬件實現復雜度,并且碼譯碼延時也較小。所以,在特定的短幀通信系統中,如果采用碼作為信道編碼方案,MAX-LOG-MAP譯碼算法是硬件實現的最佳選擇。

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

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

        2.jpg

        2 MAX-LOG-MAP算法

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

        將運算轉化到正對數域進行運算,則MAX*可等效為:

        公式

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

        分支轉移度量:

        公式

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

        公式

        公式



        關鍵詞: 實現 Turbo FPGA 基于

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 施甸县| 宁蒗| 微博| 碌曲县| 潢川县| 汉川市| 海南省| 南宁市| 湖州市| 仲巴县| 南城县| 饶阳县| 广水市| 德清县| 霍城县| 平阴县| 汽车| 涡阳县| 柯坪县| 灯塔市| 巴东县| 余庆县| 营口市| 牡丹江市| 平邑县| 邛崃市| 射洪县| 天峨县| 瓮安县| 丰都县| 定日县| 城口县| 色达县| 凯里市| 西林县| 上虞市| 开鲁县| 汶川县| 安义县| 临夏县| 泗水县|