新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于CMMB系統的LDPC譯碼器的設計與實現

        基于CMMB系統的LDPC譯碼器的設計與實現

        作者: 時間:2011-03-28 來源:網絡 收藏

        摘要:根據碼校驗矩陣的結構特點,提出了一種部分并行譯碼結構的實現方法,并在XILINX的VirtexIV的XC4VLX80型FPGA上實現了這種結構。該設計充分利用了校驗矩陣的規律,采用了一種適當的硬件結構和獨特的存儲器調用控制策略,故可在保證高性能和較大吞吐率的情況下,以較少的硬件資源實現兩種碼率的復用。
        關鍵詞:;中國移動多媒體廣播;碼;部分并行結構;

        0 引言
        低密度奇偶校驗(Low Density Parity Check,LDPC)碼是由Gallager博士在1962年首次提出來的,由于LDPC碼的誤碼性能能夠逼近香農限,因而在無線通信、衛星通信等領域都得到了較多應用。中國移動多媒體廣播()中使用的就是LDPC糾錯編碼。在CMMB標準中,LDPC碼長為9216,可支持1/2和3/4兩種碼率。作者通過深入分析CMMB中LDPC碼校驗矩陣的特點,采用了一種合適的硬件實現結構,因而在保證較高性能和較快譯碼速度的情況下,以較低的硬件資源實現了兩種碼率的復用。

        1 CMMB標準中的LDPC譯碼算法
        1.1 CMMB中LDPC碼的主要特征
        CMMB采用規則的LDPC碼,兩種碼率的LDPC校驗矩陣有類似的規律。CMMB中1/2碼率的LDPC碼校驗矩陣為一個4608x9216的矩陣,進一步可劃分為256個18x9216行子矩陣。其中下一個行子矩陣是上一個行子矩陣的向右循環移36位,每一個行子矩陣的行重都為6;也可以把它劃分為256個4608x36列子矩陣,其中后一個列子矩陣是前一個列子矩陣的向下循環移18位,每一個列子矩陣的列重都為3。同理,3/4碼率的矩陣也可以進行類似的劃分,可劃分為256個9x9216的行子矩陣,每個行子矩陣的行重為12;當然,也可以分為256個2304x36,列重為3的列子矩陣。從校驗矩陣的特點可以看出,只要存儲器能存儲一個行或列子矩陣的非零元素,則利用這些非零元素,就可以恢復出整個校驗矩陣,從而進行譯碼。而且更為重要的是,對于同種碼率,行子矩陣組和列子矩陣組之間在非零元素位置上有著潛在的對應關系。本文正是通過挖掘這種潛在的對應關系,設計出了一種獨特的存儲器調用控制策略,并成功實現了復用RAM的同時,滿足了兩種碼率的硬件結構。
        1.2 LDPC譯碼算法
        常用的LDPC碼譯碼算法為置信度傳遞解碼算法(BP decoding)。該算法相對比較成熟,性能非常優異。但是,BP算法中的f(x)函數包含對數運算和指數運算,這些復雜運算大大增加了BP的運算量和復雜度。Fossorier等在1999年提出了一種min-sum譯碼算法,即利用一種近似的方法來處理BP算法中的f(x)函數,以將對數和指數運算化簡為乘法和比較運算,從而減少了譯碼器的運算量,但該方法在性能上也有一定損失。后來,Jinghu Chen和Fossorier又提出了修正的min-sum算法。在碼長較長的情況下,修正的min-sum算法比BP算法性能只差0.03~0.05 dB,而在算法復雜度上則只需要乘以一個常量修正因子。基于以上分析,本文采用修正的min-sum算法來進行迭代更新,此更新分為校驗節點更新和變量節點更新。其迭代譯碼步驟分為兩步。
        第一步是初始化,即對每個m和n,a.JPG
        其次是迭代過程。而每次迭代又包括以下3個步驟:
        b.JPG
        從而達到預定的迭代次數。否則重新更新Qm=n并開始下一輪迭代。上面式中的k表示第k次迭代。
        記集合N(m)表示與校驗節點相連的所有變量節點;集合M(n)表示與變量節點相連的所有校驗節點;N(m)\n表示N(m)中除去變量節點n,同理,M(n)\m表示M(n)中除去校驗節點m。α一般取值為0.6~0.9,本中通過C模型浮點和定點仿真,可以得到α的最佳取值約為0.8,為了便于移位實現,取值為0.7875或者0.8125均可。

        本文引用地址:http://www.104case.com/article/191280.htm


        上一頁 1 2 3 下一頁

        關鍵詞: CMMB LDPC 系統 譯碼器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 即墨市| 滁州市| 永嘉县| 双柏县| 右玉县| 棋牌| 武胜县| 宝应县| 犍为县| 克山县| 唐海县| 中方县| 合山市| 莎车县| 苗栗市| 和林格尔县| 青川县| 石泉县| 彰化市| 达日县| 镇安县| 双牌县| 莆田市| 醴陵市| 上蔡县| 文安县| 准格尔旗| 壶关县| 贞丰县| 句容市| 个旧市| 永康市| 山阳县| 福鼎市| 大邑县| 庆阳市| 黑龙江省| 绥宁县| 锦屏县| 吉木乃县| 高安市|