陳冬英, 郭里婷, 蘇凱雄, 吳林煌
(福州大學物理與信息工程學院, 福建 福州 350116)
中國調(diào)頻頻段數(shù)字音頻廣播標準的LDPC編碼器設(shè)計
陳冬英, 郭里婷, 蘇凱雄, 吳林煌
(福州大學物理與信息工程學院, 福建 福州 350116)
根據(jù)2013年頒布的中國數(shù)字音頻廣播(CDR)中LDPC碼的校驗矩陣結(jié)構(gòu)特點, 提出一種基于生成矩陣的編碼方法. 該方法將生成矩陣轉(zhuǎn)化為塊準循環(huán)結(jié)構(gòu), 并行化處理編碼算法的行與列操作; 采用存儲器調(diào)用的控制策略, 實現(xiàn)CDR標準中四種碼率編碼, 提高了硬件資源的利用率. 在Xilinx 公司的FPGA平臺上進行該編碼器的設(shè)計, 聯(lián)合ModelSim和Matlab軟件進行驗證. 結(jié)果表明, 該設(shè)計方法具有資源占用較少、 功耗低、 編碼準確率高等特點, 其吞吐量約為400 Mbit, 達到了CDR標準的LDPC編碼要求.
中國調(diào)頻頻段數(shù)字音頻廣播; 低密度奇偶校驗碼; 編碼器; FPGA平臺
針對早期基于DAB的標準中存在1.536 MHz信道帶寬限于FM/AM的兼容性問題[1-2], 我國于2013年8月頒布了中國調(diào)頻頻段數(shù)字音頻廣播標準(FM-CDR, frequency modulation-China digital radio), 以下簡稱CDR[3-4]. 鑒于LDPC碼具備極佳的糾錯性能, CDR標準也采用了LDPC碼作為信道編碼方案. 該標準支持4種碼率的LDPC碼, 其碼長均為9 216. 由于校驗矩陣的非零元素分布隨機, 導(dǎo)致編碼器設(shè)計存在存儲資源需求大、 功耗大、 效率低等問題, 這給基于CDR標準的LDPC編碼器的設(shè)計帶來極大挑戰(zhàn).
文[5-6]報道了LDPC編碼的方法, 給出一般LDPC碼的構(gòu)造, 但其碼長較短. 文[7]對塊準循環(huán)LDPC碼譯碼器進行FPGA實現(xiàn), 達到高吞吐量. 文[8]采用存儲器調(diào)用的控制策略, 對LDPC碼進行解碼器實現(xiàn), 達到多種碼率復(fù)用. 本研究對CDR標準中LDPC碼的校驗矩陣結(jié)構(gòu)進行分析, 利用編碼器與解碼器的關(guān)系, 將利用生成矩陣的編碼方法轉(zhuǎn)化為塊準循環(huán)結(jié)構(gòu), 采用并行化處理的行與列操作, 提高了數(shù)據(jù)吞吐率. 同時, 采用一種合適的存儲器調(diào)用的控制策略來實現(xiàn)CDR標準中4種碼率的復(fù)用, 有效提高資源利用率. 在Xilinx 公司的FPGA平臺上設(shè)計, 通過ModelSim仿真軟件進行驗證. 結(jié)果表明, 該設(shè)計方法編碼器資源占用較少, 吞吐量可達400 Mbit, 達到了CDR標準的LDPC編碼要求. 本設(shè)計方法對于CDR編碼器的進一步研究具有重要的參考價值.
1.1 CDR中LDPC碼的特征
CDR標準定義的LDPC碼, 具有4種碼率, 分別為3/4、 1/2、 1/3、 1/4, 各碼率碼字長度均為9 216 bit, 信息比特長度分別為6 912, 4 608, 3 072, 2 304 bit.
由分析知, 4種碼率的LDPC校驗矩陣有類似規(guī)律. 通過塊高斯消元法[9]得到生成矩陣, 通過行列置換進行塊循環(huán)矩陣劃分, 所得矩陣是系統(tǒng)矩陣, 具體的結(jié)構(gòu)如下所示:
Gqe=[IG]
其中:
結(jié)構(gòu)中Gi, j為子矩陣, 每個子矩陣均為256×256的循環(huán)矩陣, 并且每行循環(huán)右移一位即可得到其下一行, 每列循環(huán)下移一位即可得到其下一列, 第一行由最后一行進行循環(huán)右移得到, 第一列由最后一列循環(huán)下移得到. 因此, 要獲得一個Gi, j只需其中一行的數(shù)據(jù)元素gi, j即可, 此行數(shù)據(jù)為Gi, j生成多項式, 則k×c個生成多項式即可構(gòu)成Gqc.
根據(jù)CDR標準的LDPC配置, 若碼率為3/4,k=6 912÷256=27,c=(9 216-6 912)÷256=9, 以此類推, 各碼率相對應(yīng)的k與c的值如表1所示.
表1 CDR編碼配置的參數(shù)k與c
1.2 LDPC編碼算法
CDR標準中采用LDPC碼生成矩陣可進行塊準循環(huán)矩陣劃分. 文[10]采用并行譯碼可實現(xiàn)(8 176, 7 154) LDPC譯碼, 獲得高吞吐量. 本研究利用類似的并行處理, 實現(xiàn)了CDR標準中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è)計中S為編碼后的碼字, 由下式所得:
其中:pj為校驗位:
同時
由此, 當串行輸入信息序列(m0,m1, …,mk-1), 根據(jù)已構(gòu)造出的生成矩陣, 由式(3)得pj. 其中, 輸入mi相應(yīng)的值miGi, j, 可通過反饋移位寄存器來實現(xiàn). 當所有的信息序列輸入完畢, 所有的檢驗位向量pj由式(3)求得, 便可以得到編碼后的序列s. 設(shè)計中,c個校驗向量pj采用并行設(shè)計, 當信息序列全部輸入編碼器后即可完成所有校驗向量的計算. 因此, 存儲的生成多項式只需k×c個, 而不用將所有生成多項式進行存儲, 所需存儲gi, j只占原來總量的1/256, 有效地節(jié)省了存儲資源.
2.1 LDPC編碼總體設(shè)計
CDR標準中對業(yè)務(wù)數(shù)據(jù)采用的是LDPC編碼, 根據(jù)塊高斯消元法獲得生成矩陣, 所得生成矩陣可進行塊循環(huán)矩陣劃分為256×256個子矩陣, 且各子矩陣具有循環(huán)特性, 提高其編碼效率.
在實現(xiàn)時, 由于RAM要進行同時讀寫, 采用雙口RAM. 每塊RAM實現(xiàn)不同碼率的地址初始化以及RAM的讀、 寫等操作由一個控制器控制. 根據(jù)CDR標準的LDPC編碼原理, 設(shè)計中LDPC編碼模塊總體架構(gòu)如圖1所示.
圖1 基于CDR的LDPC總體設(shè)計框圖
2.2 輸入存儲單元
因LDPC碼率的不同, 其校驗矩陣具有差異性. 根據(jù)文[8], 將分解好的生成矩陣存儲在ROM中, 編碼器存儲采用存儲器調(diào)用的控制策略, 通過尋址加載不同編碼碼率下的生成矩陣. 4種編碼碼率存儲的矩陣數(shù)為2 304、 3 072、 4 608、 6 912, 根據(jù)CDR中的生成矩陣特性將其分成256bit大小的段, 分別存儲在9~27個256bit存儲寬度的ROM中. 設(shè)計采用并行結(jié)構(gòu), 根據(jù)不同LDPC碼率加載相對應(yīng)的生成矩陣, 并在SRAA模塊中生成校驗信息. 由于矩陣按照這種方法分解后的子矩陣是循環(huán)矩陣, 因此只需要存儲矩陣的首行信息即可.SRAA模塊就可以通過對首行信息比特進行循環(huán)移位, 進而得到整個生成矩陣. 存儲方法如圖2所示.
圖3 SRAA電路框圖
2.3 SRAA模塊陣列
SRAA(移位寄存累加器)模塊是編碼器的核心, 其占用資源是最多的.CDR標準有4種LDPC編碼碼率: 3/4、 1/2、 1/3、 1/4. 當碼率為1/4時, 生成的校驗碼最多為6 912, 此時存儲的生成矩陣也是最大的. 所設(shè)計的SRAA為并行的256bit輸出, 其最大校驗碼6 912bit, 輸出需要27個SRAA并行工作, 因此, 總共使用了27個串行輸入、 并行輸出256bit的SRAA并行進行校驗即可. 具體的SRAA電路如圖3所示.
具體的設(shè)計流程:
1) 初始化, 將A寄存器和B寄存器清零;
5) 開始輸入信息矢量m1, B寄存器加載第二個子矩陣G1, 0的生成多項式g1, 0, 重復(fù)步驟2~4, 經(jīng)過256個時鐘周期,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). 當編碼模塊空閑時, 信息比特輸入控制模塊, 同時控制模塊加載生成多項式, 且編碼器進入busy狀態(tài). 18個SRAA電路并行工作, 當完成一幀信息比特輸入時, 對生成的校驗比特全部存儲, 進行并串轉(zhuǎn)換后, 以信息比特在前, 校驗比特在后的格式進行輸出, 輸出完畢后編碼器狀態(tài)從busy狀態(tài)進入idle狀態(tài), 完成一幀數(shù)據(jù)的編碼.
圖4 1/2碼率LDPC編碼流程圖
采用RTL級的Verilog HDL語言編寫整個設(shè)計. 利用Xilinx公司的xc6slx150t-3fgg484 FPGA芯片在資源符合本設(shè)計要求下, 滿足價格低、 集成度高、 保持靈活和功耗低的優(yōu)點, 選用此芯片對CDR標準中4種碼率的LDPC編碼器進行編譯綜合. 以1/2碼率的LDPC編碼器為例, 表2為編碼器頂層模塊LdpcEncode的I/O端口說明, 包括端口名稱、 端口類型、 該端口的位寬及端口性質(zhì)的描述. 圖5為H(4 608, 9 612)LDPC碼在ModelSim平臺下的時序仿真波形.
表2 Ldpc Encode模塊的端口說明
圖5 LDPC編碼器的時序仿真波形圖
圖6 本文設(shè)計的LDPC編碼器準確性驗證
圖5中, 編碼器順次從ROM中讀取生成向量, 送入SRAA電路進行校驗位運算. 當18個生成向量進入電路完成運算后, 結(jié)束一幀信息的編碼, 開始輸出校驗信息. SRAA電路完成一個生成向量的運算需要256個時鐘, 則校驗位的計算完成時間為256×18=4 608個時鐘. 若以最高工作頻率200 MHz為系統(tǒng)時鐘、 碼長為9 216 bit進行計算, 編碼吞吐量約為400 Mbit, 滿足CDR標準的要求, 且吞吐量較高.
圖7 MATLAB編碼與本文設(shè)計編碼器經(jīng)過BP迭代譯碼的誤碼率
根據(jù)CDR對LDPC編碼器的描述, 聯(lián)合ModelSim和Matlab軟件, 搭建了一個LDPC編碼器驗證平臺. 具體如圖6所示.
本設(shè)計首先基于Matlab平臺對其進行了實現(xiàn), 并根據(jù)C×HT(C為編碼器生成的碼字)對編碼結(jié)果進行驗證, 說明Matlab設(shè)計的編碼器能對信息序列進行準確編碼. 其次, 在ModelSim平臺上產(chǎn)生隨機數(shù)作為待編碼的信息序列, 分別送入Matlab設(shè)計的編碼器模塊和本文設(shè)計的編碼器模塊, 并對比兩個輸出結(jié)果. 仿真結(jié)果, 兩輸出編碼差值為0. 因此, 所設(shè)計的LDPC編碼器能對信息序列進行準確編碼. 圖7是分別以Matlab編碼結(jié)果與所設(shè)計的編碼器編碼結(jié)果作為Matlab平臺的BP迭代譯碼[12]的輸入, 并經(jīng)過高斯信道, 所得的信噪比與誤碼率的關(guān)系曲線. 由圖7可知, Matlab編碼輸入進行譯碼后所得的誤碼率曲線與FPGA編碼器編碼結(jié)果輸入譯碼后的誤碼率曲線, 兩者具有一致性, 且在信噪比為2.5 dB時, 誤碼率均達10-5以下, 證明所設(shè)計的編碼器編碼具有高準確率.
在具體方案設(shè)計結(jié)果中, 因本標準為最新頒布的, 還未找到同一標準的編碼設(shè)計文獻進行比較, 因此以文[9]中介紹的編碼器的資源使用情況進行對比, 見表3. 文[9]編碼器吞吐率約為228 Mbit·s-1. 所設(shè)計的編碼器所占邏輯資源slice為 17%, 片上RAM資源為13%, 并且未使用DSP.本設(shè)計的標準與文[9]中的標準基本相似, 但本標準H矩陣較大, 實現(xiàn)難度更大. 本設(shè)計編碼器在保證與文[9]設(shè)計的編碼器占用資源相近時, 其可獲得更大的吞吐率. 因此, 該設(shè)計在硬件實現(xiàn)上完全可行, 且資源利用率較高.
表3 本設(shè)計與文[9]資源使用情況對比
分析了最新頒布的CDR標準中LDPC編碼過程, 提出一種基于生成矩陣的編碼算法. 利用生成矩陣塊準循環(huán)結(jié)構(gòu), 通過行列置換實現(xiàn), 并行化處理編碼算法的行與列操作, 采用存儲器調(diào)用的控制策略, 實現(xiàn)CDR標準中四種碼率編碼[13-14]. 最后, 對所提出的方法在Xilinx公司的FPGA平臺上用Verilog HDL語言編寫設(shè)計, 以H(4 608, 9 216)的LDPC編碼器為例, 它的信息數(shù)據(jù)吞吐率達400 Mbit·s-1. 聯(lián)合Matlab和ModelSim平臺對編碼過程進行驗證, 其結(jié)果具有一致性, 并對比Matlab編碼器與FPGA編碼器譯碼輸出的誤碼率曲線, 得信噪比在2.5 dB時, 誤碼率可達10-5以下, 說明所設(shè)計的LDPC編碼器具有較高吞吐量, 且編碼準確率高. 因本標準最新頒布, 還未找到同一標準的編碼設(shè)計文獻進行比較說明, 本設(shè)計為后續(xù)的CDR研究具有重要的參考價值.
[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] 盛國芳, 王濤. 調(diào)頻頻段數(shù)字音頻廣播系統(tǒng)的實驗性能測試[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] 高鵬, 盛國芳. 調(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準循環(huán)LDPC碼譯碼器的FPGA實現(xiàn)[J]. 信號處理, 2010, 26(2): 255-261.
[8] 康亮, 楊波, 沈萌. 符合CMMB標準的LDPC解碼器設(shè)計[J]. 電視技術(shù), 2009, 33(5): 40-42.
[9] 謝勇, 姚遠程, 秦明偉. QC-LDPC碼編碼器的FPGA實現(xiàn)[J]. 西南科技大學學報, 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的低運算復(fù)雜度LDPC解碼運算[J]. 電子學報, 2010, 7(7): 1 612-1 616.
[12] 韓國軍, 劉星成. LDPC碼的信道自適應(yīng)迭代譯碼算法[J]. 電路與系統(tǒng)學報, 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.
(責任編輯: 沈蕓)
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)學合作重大項目(2012H61010016); 福建省自然科學基金資助項目(2013J01234)
10.7631/issn.1000-2243.2015.06.0772
1000-2243(2015)06-0772-06
TN911.22
A