陳冬英, 郭里婷, 蘇凱雄, 吳林煌
(福州大學(xué)物理與信息工程學(xué)院, 福建 福州 350116)
中國(guó)調(diào)頻頻段數(shù)字音頻廣播標(biāo)準(zhǔn)的LDPC編碼器設(shè)計(jì)
陳冬英, 郭里婷, 蘇凱雄, 吳林煌
(福州大學(xué)物理與信息工程學(xué)院, 福建 福州 350116)
根據(jù)2013年頒布的中國(guó)數(shù)字音頻廣播(CDR)中LDPC碼的校驗(yàn)矩陣結(jié)構(gòu)特點(diǎn), 提出一種基于生成矩陣的編碼方法. 該方法將生成矩陣轉(zhuǎn)化為塊準(zhǔn)循環(huán)結(jié)構(gòu), 并行化處理編碼算法的行與列操作; 采用存儲(chǔ)器調(diào)用的控制策略, 實(shí)現(xiàn)CDR標(biāo)準(zhǔn)中四種碼率編碼, 提高了硬件資源的利用率. 在Xilinx 公司的FPGA平臺(tái)上進(jìn)行該編碼器的設(shè)計(jì), 聯(lián)合ModelSim和Matlab軟件進(jìn)行驗(yàn)證. 結(jié)果表明, 該設(shè)計(jì)方法具有資源占用較少、 功耗低、 編碼準(zhǔn)確率高等特點(diǎn), 其吞吐量約為400 Mbit, 達(dá)到了CDR標(biāo)準(zhǔn)的LDPC編碼要求.
中國(guó)調(diào)頻頻段數(shù)字音頻廣播; 低密度奇偶校驗(yàn)碼; 編碼器; FPGA平臺(tái)
針對(duì)早期基于DAB的標(biāo)準(zhǔn)中存在1.536 MHz信道帶寬限于FM/AM的兼容性問題[1-2], 我國(guó)于2013年8月頒布了中國(guó)調(diào)頻頻段數(shù)字音頻廣播標(biāo)準(zhǔn)(FM-CDR, frequency modulation-China digital radio), 以下簡(jiǎn)稱CDR[3-4]. 鑒于LDPC碼具備極佳的糾錯(cuò)性能, CDR標(biāo)準(zhǔn)也采用了LDPC碼作為信道編碼方案. 該標(biāo)準(zhǔn)支持4種碼率的LDPC碼, 其碼長(zhǎng)均為9 216. 由于校驗(yàn)矩陣的非零元素分布隨機(jī), 導(dǎo)致編碼器設(shè)計(jì)存在存儲(chǔ)資源需求大、 功耗大、 效率低等問題, 這給基于CDR標(biāo)準(zhǔn)的LDPC編碼器的設(shè)計(jì)帶來極大挑戰(zhàn).
文[5-6]報(bào)道了LDPC編碼的方法, 給出一般LDPC碼的構(gòu)造, 但其碼長(zhǎng)較短. 文[7]對(duì)塊準(zhǔn)循環(huán)LDPC碼譯碼器進(jìn)行FPGA實(shí)現(xiàn), 達(dá)到高吞吐量. 文[8]采用存儲(chǔ)器調(diào)用的控制策略, 對(duì)LDPC碼進(jìn)行解碼器實(shí)現(xiàn), 達(dá)到多種碼率復(fù)用. 本研究對(duì)CDR標(biāo)準(zhǔn)中LDPC碼的校驗(yàn)矩陣結(jié)構(gòu)進(jìn)行分析, 利用編碼器與解碼器的關(guān)系, 將利用生成矩陣的編碼方法轉(zhuǎn)化為塊準(zhǔn)循環(huán)結(jié)構(gòu), 采用并行化處理的行與列操作, 提高了數(shù)據(jù)吞吐率. 同時(shí), 采用一種合適的存儲(chǔ)器調(diào)用的控制策略來實(shí)現(xiàn)CDR標(biāo)準(zhǔn)中4種碼率的復(fù)用, 有效提高資源利用率. 在Xilinx 公司的FPGA平臺(tái)上設(shè)計(jì), 通過ModelSim仿真軟件進(jìn)行驗(yàn)證. 結(jié)果表明, 該設(shè)計(jì)方法編碼器資源占用較少, 吞吐量可達(dá)400 Mbit, 達(dá)到了CDR標(biāo)準(zhǔn)的LDPC編碼要求. 本設(shè)計(jì)方法對(duì)于CDR編碼器的進(jìn)一步研究具有重要的參考價(jià)值.
1.1 CDR中LDPC碼的特征
CDR標(biāo)準(zhǔn)定義的LDPC碼, 具有4種碼率, 分別為3/4、 1/2、 1/3、 1/4, 各碼率碼字長(zhǎng)度均為9 216 bit, 信息比特長(zhǎng)度分別為6 912, 4 608, 3 072, 2 304 bit.
由分析知, 4種碼率的LDPC校驗(yàn)矩陣有類似規(guī)律. 通過塊高斯消元法[9]得到生成矩陣, 通過行列置換進(jìn)行塊循環(huán)矩陣劃分, 所得矩陣是系統(tǒng)矩陣, 具體的結(jié)構(gòu)如下所示:
Gqe=[IG]
其中:
結(jié)構(gòu)中Gi, j為子矩陣, 每個(gè)子矩陣均為256×256的循環(huán)矩陣, 并且每行循環(huán)右移一位即可得到其下一行, 每列循環(huán)下移一位即可得到其下一列, 第一行由最后一行進(jìn)行循環(huán)右移得到, 第一列由最后一列循環(huán)下移得到. 因此, 要獲得一個(gè)Gi, j只需其中一行的數(shù)據(jù)元素gi, j即可, 此行數(shù)據(jù)為Gi, j生成多項(xiàng)式, 則k×c個(gè)生成多項(xiàng)式即可構(gòu)成Gqc.
根據(jù)CDR標(biāo)準(zhǔn)的LDPC配置, 若碼率為3/4,k=6 912÷256=27,c=(9 216-6 912)÷256=9, 以此類推, 各碼率相對(duì)應(yīng)的k與c的值如表1所示.
表1 CDR編碼配置的參數(shù)k與c
1.2 LDPC編碼算法
CDR標(biāo)準(zhǔn)中采用LDPC碼生成矩陣可進(jìn)行塊準(zhǔn)循環(huán)矩陣劃分. 文[10]采用并行譯碼可實(shí)現(xiàn)(8 176, 7 154) LDPC譯碼, 獲得高吞吐量. 本研究利用類似的并行處理, 實(shí)現(xiàn)了CDR標(biāo)準(zhǔn)中4種碼率的LDPC編碼.
設(shè)待編碼的輸入信息序列為:m=m0,m1, …,mi, …,mk-1, 其中mi=mi, 0,mi, 1, …,mi, b-1, 0≤i≤k-1. 信息序列被分為k組, 每組為b比特信息. 參考文[11], 設(shè)計(jì)中S為編碼后的碼字, 由下式所得:
其中:pj為校驗(yàn)位:
同時(shí)
由此, 當(dāng)串行輸入信息序列(m0,m1, …,mk-1), 根據(jù)已構(gòu)造出的生成矩陣, 由式(3)得pj. 其中, 輸入mi相應(yīng)的值miGi, j, 可通過反饋移位寄存器來實(shí)現(xiàn). 當(dāng)所有的信息序列輸入完畢, 所有的檢驗(yàn)位向量pj由式(3)求得, 便可以得到編碼后的序列s. 設(shè)計(jì)中,c個(gè)校驗(yàn)向量pj采用并行設(shè)計(jì), 當(dāng)信息序列全部輸入編碼器后即可完成所有校驗(yàn)向量的計(jì)算. 因此, 存儲(chǔ)的生成多項(xiàng)式只需k×c個(gè), 而不用將所有生成多項(xiàng)式進(jìn)行存儲(chǔ), 所需存儲(chǔ)gi, j只占原來總量的1/256, 有效地節(jié)省了存儲(chǔ)資源.
2.1 LDPC編碼總體設(shè)計(jì)
CDR標(biāo)準(zhǔn)中對(duì)業(yè)務(wù)數(shù)據(jù)采用的是LDPC編碼, 根據(jù)塊高斯消元法獲得生成矩陣, 所得生成矩陣可進(jìn)行塊循環(huán)矩陣劃分為256×256個(gè)子矩陣, 且各子矩陣具有循環(huán)特性, 提高其編碼效率.
在實(shí)現(xiàn)時(shí), 由于RAM要進(jìn)行同時(shí)讀寫, 采用雙口RAM. 每塊RAM實(shí)現(xiàn)不同碼率的地址初始化以及RAM的讀、 寫等操作由一個(gè)控制器控制. 根據(jù)CDR標(biāo)準(zhǔn)的LDPC編碼原理, 設(shè)計(jì)中LDPC編碼模塊總體架構(gòu)如圖1所示.
圖1 基于CDR的LDPC總體設(shè)計(jì)框圖
2.2 輸入存儲(chǔ)單元
因LDPC碼率的不同, 其校驗(yàn)矩陣具有差異性. 根據(jù)文[8], 將分解好的生成矩陣存儲(chǔ)在ROM中, 編碼器存儲(chǔ)采用存儲(chǔ)器調(diào)用的控制策略, 通過尋址加載不同編碼碼率下的生成矩陣. 4種編碼碼率存儲(chǔ)的矩陣數(shù)為2 304、 3 072、 4 608、 6 912, 根據(jù)CDR中的生成矩陣特性將其分成256bit大小的段, 分別存儲(chǔ)在9~27個(gè)256bit存儲(chǔ)寬度的ROM中. 設(shè)計(jì)采用并行結(jié)構(gòu), 根據(jù)不同LDPC碼率加載相對(duì)應(yīng)的生成矩陣, 并在SRAA模塊中生成校驗(yàn)信息. 由于矩陣按照這種方法分解后的子矩陣是循環(huán)矩陣, 因此只需要存儲(chǔ)矩陣的首行信息即可.SRAA模塊就可以通過對(duì)首行信息比特進(jìn)行循環(huán)移位, 進(jìn)而得到整個(gè)生成矩陣. 存儲(chǔ)方法如圖2所示.
圖3 SRAA電路框圖
2.3 SRAA模塊陣列
SRAA(移位寄存累加器)模塊是編碼器的核心, 其占用資源是最多的.CDR標(biāo)準(zhǔn)有4種LDPC編碼碼率: 3/4、 1/2、 1/3、 1/4. 當(dāng)碼率為1/4時(shí), 生成的校驗(yàn)碼最多為6 912, 此時(shí)存儲(chǔ)的生成矩陣也是最大的. 所設(shè)計(jì)的SRAA為并行的256bit輸出, 其最大校驗(yàn)碼6 912bit, 輸出需要27個(gè)SRAA并行工作, 因此, 總共使用了27個(gè)串行輸入、 并行輸出256bit的SRAA并行進(jìn)行校驗(yàn)即可. 具體的SRAA電路如圖3所示.
具體的設(shè)計(jì)流程:
1) 初始化, 將A寄存器和B寄存器清零;
5) 開始輸入信息矢量m1, B寄存器加載第二個(gè)子矩陣G1, 0的生成多項(xiàng)式g1, 0, 重復(fù)步驟2~4, 經(jīng)過256個(gè)時(shí)鐘周期,m1輸入完畢, A寄存器的數(shù)值更新為:A=m0G0, 0+m1G0, 1;
6) 重復(fù)步驟5, 所有信息矢量輸入完畢, A寄存器的數(shù)值更新為A=m0G0, 0+m1G0, 1+…+mk-1Gk-1, 0=p0.
圖4給出了1/2碼率H(4 608, 9 216)的LDPC編碼器的編碼流程圖. 首先將信息比特輸入到RAM緩沖, 判斷編碼模塊是否處于busy狀態(tài). 當(dāng)編碼模塊空閑時(shí), 信息比特輸入控制模塊, 同時(shí)控制模塊加載生成多項(xiàng)式, 且編碼器進(jìn)入busy狀態(tài). 18個(gè)SRAA電路并行工作, 當(dāng)完成一幀信息比特輸入時(shí), 對(duì)生成的校驗(yàn)比特全部存儲(chǔ), 進(jìn)行并串轉(zhuǎn)換后, 以信息比特在前, 校驗(yàn)比特在后的格式進(jìn)行輸出, 輸出完畢后編碼器狀態(tài)從busy狀態(tài)進(jìn)入idle狀態(tài), 完成一幀數(shù)據(jù)的編碼.
圖4 1/2碼率LDPC編碼流程圖
采用RTL級(jí)的Verilog HDL語言編寫整個(gè)設(shè)計(jì). 利用Xilinx公司的xc6slx150t-3fgg484 FPGA芯片在資源符合本設(shè)計(jì)要求下, 滿足價(jià)格低、 集成度高、 保持靈活和功耗低的優(yōu)點(diǎn), 選用此芯片對(duì)CDR標(biāo)準(zhǔn)中4種碼率的LDPC編碼器進(jìn)行編譯綜合. 以1/2碼率的LDPC編碼器為例, 表2為編碼器頂層模塊LdpcEncode的I/O端口說明, 包括端口名稱、 端口類型、 該端口的位寬及端口性質(zhì)的描述. 圖5為H(4 608, 9 612)LDPC碼在ModelSim平臺(tái)下的時(shí)序仿真波形.
表2 Ldpc Encode模塊的端口說明
圖5 LDPC編碼器的時(shí)序仿真波形圖
圖6 本文設(shè)計(jì)的LDPC編碼器準(zhǔn)確性驗(yàn)證
圖5中, 編碼器順次從ROM中讀取生成向量, 送入SRAA電路進(jìn)行校驗(yàn)位運(yùn)算. 當(dāng)18個(gè)生成向量進(jìn)入電路完成運(yùn)算后, 結(jié)束一幀信息的編碼, 開始輸出校驗(yàn)信息. SRAA電路完成一個(gè)生成向量的運(yùn)算需要256個(gè)時(shí)鐘, 則校驗(yàn)位的計(jì)算完成時(shí)間為256×18=4 608個(gè)時(shí)鐘. 若以最高工作頻率200 MHz為系統(tǒng)時(shí)鐘、 碼長(zhǎng)為9 216 bit進(jìn)行計(jì)算, 編碼吞吐量約為400 Mbit, 滿足CDR標(biāo)準(zhǔn)的要求, 且吞吐量較高.
圖7 MATLAB編碼與本文設(shè)計(jì)編碼器經(jīng)過BP迭代譯碼的誤碼率
根據(jù)CDR對(duì)LDPC編碼器的描述, 聯(lián)合ModelSim和Matlab軟件, 搭建了一個(gè)LDPC編碼器驗(yàn)證平臺(tái). 具體如圖6所示.
本設(shè)計(jì)首先基于Matlab平臺(tái)對(duì)其進(jìn)行了實(shí)現(xiàn), 并根據(jù)C×HT(C為編碼器生成的碼字)對(duì)編碼結(jié)果進(jìn)行驗(yàn)證, 說明Matlab設(shè)計(jì)的編碼器能對(duì)信息序列進(jìn)行準(zhǔn)確編碼. 其次, 在ModelSim平臺(tái)上產(chǎn)生隨機(jī)數(shù)作為待編碼的信息序列, 分別送入Matlab設(shè)計(jì)的編碼器模塊和本文設(shè)計(jì)的編碼器模塊, 并對(duì)比兩個(gè)輸出結(jié)果. 仿真結(jié)果, 兩輸出編碼差值為0. 因此, 所設(shè)計(jì)的LDPC編碼器能對(duì)信息序列進(jìn)行準(zhǔn)確編碼. 圖7是分別以Matlab編碼結(jié)果與所設(shè)計(jì)的編碼器編碼結(jié)果作為Matlab平臺(tái)的BP迭代譯碼[12]的輸入, 并經(jīng)過高斯信道, 所得的信噪比與誤碼率的關(guān)系曲線. 由圖7可知, Matlab編碼輸入進(jìn)行譯碼后所得的誤碼率曲線與FPGA編碼器編碼結(jié)果輸入譯碼后的誤碼率曲線, 兩者具有一致性, 且在信噪比為2.5 dB時(shí), 誤碼率均達(dá)10-5以下, 證明所設(shè)計(jì)的編碼器編碼具有高準(zhǔn)確率.
在具體方案設(shè)計(jì)結(jié)果中, 因本標(biāo)準(zhǔn)為最新頒布的, 還未找到同一標(biāo)準(zhǔn)的編碼設(shè)計(jì)文獻(xiàn)進(jìn)行比較, 因此以文[9]中介紹的編碼器的資源使用情況進(jìn)行對(duì)比, 見表3. 文[9]編碼器吞吐率約為228 Mbit·s-1. 所設(shè)計(jì)的編碼器所占邏輯資源slice為 17%, 片上RAM資源為13%, 并且未使用DSP.本設(shè)計(jì)的標(biāo)準(zhǔn)與文[9]中的標(biāo)準(zhǔn)基本相似, 但本標(biāo)準(zhǔn)H矩陣較大, 實(shí)現(xiàn)難度更大. 本設(shè)計(jì)編碼器在保證與文[9]設(shè)計(jì)的編碼器占用資源相近時(shí), 其可獲得更大的吞吐率. 因此, 該設(shè)計(jì)在硬件實(shí)現(xiàn)上完全可行, 且資源利用率較高.
表3 本設(shè)計(jì)與文[9]資源使用情況對(duì)比
分析了最新頒布的CDR標(biāo)準(zhǔn)中LDPC編碼過程, 提出一種基于生成矩陣的編碼算法. 利用生成矩陣塊準(zhǔn)循環(huán)結(jié)構(gòu), 通過行列置換實(shí)現(xiàn), 并行化處理編碼算法的行與列操作, 采用存儲(chǔ)器調(diào)用的控制策略, 實(shí)現(xiàn)CDR標(biāo)準(zhǔn)中四種碼率編碼[13-14]. 最后, 對(duì)所提出的方法在Xilinx公司的FPGA平臺(tái)上用Verilog HDL語言編寫設(shè)計(jì), 以H(4 608, 9 216)的LDPC編碼器為例, 它的信息數(shù)據(jù)吞吐率達(dá)400 Mbit·s-1. 聯(lián)合Matlab和ModelSim平臺(tái)對(duì)編碼過程進(jìn)行驗(yàn)證, 其結(jié)果具有一致性, 并對(duì)比Matlab編碼器與FPGA編碼器譯碼輸出的誤碼率曲線, 得信噪比在2.5 dB時(shí), 誤碼率可達(dá)10-5以下, 說明所設(shè)計(jì)的LDPC編碼器具有較高吞吐量, 且編碼準(zhǔn)確率高. 因本標(biāo)準(zhǔn)最新頒布, 還未找到同一標(biāo)準(zhǔn)的編碼設(shè)計(jì)文獻(xiàn)進(jìn)行比較說明, 本設(shè)計(jì)為后續(xù)的CDR研究具有重要的參考價(jià)值.
[1] Ji Long, Li Nadi, Peng Gao,etal. A digital audio broadcasting system using short length QC-LDPC[C]//IEEE 14th International Conference on Communication Technology (ICCT). Chengdu:[s.n.], 2012: 1 057-1 061.
[2] 盛國(guó)芳, 王濤. 調(diào)頻頻段數(shù)字音頻廣播系統(tǒng)的實(shí)驗(yàn)性能測(cè)試[J]. 廣播電視信息, 2014, 40(16): 44-48.
[3] ETSI ES 201 980 V3.1.1 Digital radio mondiale system specification[S]. 2001.
[4] GY/T 268.1-2013 調(diào)頻頻段數(shù)字音頻廣播第1部分: 數(shù)字音頻廣播信道幀結(jié)構(gòu)、 信道編碼和調(diào)制[S]. 2013.
[5] 高鵬, 盛國(guó)芳. 調(diào)頻頻段數(shù)字音頻廣播系統(tǒng)研究[J]. 廣播電視信息, 2014, 40(11): 27-30.
[6] Zhao Shancheng, Ma Xiao, Zhang Xiaoyi,etal. A class of nonbinary LDPC codes with fast encoding and decoding algorithms[J]. IEEE Transactions on Communications, 2013, 61(1): 1-6.
[7] 張仲明, 許拔, 楊軍, 等. 800 Mbps準(zhǔn)循環(huán)LDPC碼譯碼器的FPGA實(shí)現(xiàn)[J]. 信號(hào)處理, 2010, 26(2): 255-261.
[8] 康亮, 楊波, 沈萌. 符合CMMB標(biāo)準(zhǔn)的LDPC解碼器設(shè)計(jì)[J]. 電視技術(shù), 2009, 33(5): 40-42.
[9] 謝勇, 姚遠(yuǎn)程, 秦明偉. QC-LDPC碼編碼器的FPGA實(shí)現(xiàn)[J]. 西南科技大學(xué)學(xué)報(bào), 2013, 28(1): 84-87.
[10] Richardson T J, Urbanke R L. Efficient encoding of low-density parity-check codes[J]. IEEE Transactions On Information Theory, 2001, 47(2): 638-656.
[11] 姜小波, 聶正華. 用于CMMB的低運(yùn)算復(fù)雜度LDPC解碼運(yùn)算[J]. 電子學(xué)報(bào), 2010, 7(7): 1 612-1 616.
[12] 韓國(guó)軍, 劉星成. LDPC碼的信道自適應(yīng)迭代譯碼算法[J]. 電路與系統(tǒng)學(xué)報(bào), 2010, 15(1): 102-107.
[13] Ouyang Xiang, Ruan Changcheng, Zheng Lingxiang. Implementation of LDPC encoding to DTMB standard based on FPGA[C]//2011 10th IEEE/ACIS International Conference on Computer and Information Science. [s.l.]: [s.n.], 2011: 235-238.
[14] Chen Xianheng, Kang Jingyu, Lin Shu. Memory system optimization for FPGA based implementation of quasi-cyclic LDPC codes decoders[J]. IEEE Transactions on Circuits and Systems, 2011(1): 98-111.
(責(zé)任編輯: 沈蕓)
Design of LDPC encoder based on frequency modulation-China digital radio
CHEN Dongying, GUO Liting, SU Kaixiong, WU Linhuang
(College of Physics and Information Engineering, Fuzhou University, Fuzhou, Fujian 350116, China)
According to the structure of LDPC code in frequency modulation-China digital radio(CDR), which was promulgated in 2013, a new architecture of generator matrix LDPC coder is proposed. The LDPC code parity matrix structure is exploited to parallelize the row and column encoding operations. An appropriate method is used to control memories, which can reuse memories for different code rates, and improve the utilization of hardware resources. We have implemented the LDPC encoder on Xilinx FPGA. Combining the ModelSim with Matlab simulation results show that the design method has fewer resources consumption, low power, high accuracy rate encoding, and achieves encoding throughput of 400 Mbit.It meets with the requirements of CDR.
frequency modulation-China digital radio; low-density parity-check; encoder; field-programmable gate array platform
2014-10-10
郭里婷(1976-), 副教授, 主要從事信息與通信系統(tǒng)研究, guoliting@fzu.edu.cn
福建省高校產(chǎn)學(xué)合作重大項(xiàng)目(2012H61010016); 福建省自然科學(xué)基金資助項(xiàng)目(2013J01234)
10.7631/issn.1000-2243.2015.06.0772
1000-2243(2015)06-0772-06
TN911.22
A
福州大學(xué)學(xué)報(bào)(自然科學(xué)版)2015年6期