0 引 言
低密度奇偶校验码(Low Desity Parity Check,LDPC)又被称为Gallager码,是Gallager在1960年提出的,LDPC码在AWGN信道下具有非常好的性能,目前最好的仿真结果表明,随机LDPC码在AWGN白噪声下距离Shannon限仅0.004 5 dB。LDPC码是一类逼近Shannon限的随机码,其译码复杂度低,信息吞吐量大,灵活性高,可以避免Turbo码类似的错误平层,且完全可并行实现,更适合高速的无线数据业务。LDPC面临的最主要问题是它的编码复杂度高,是码长的O([N2]),而Turbo码的编码复杂度与码长线性相关。现在结构化准循环LDPC码是编码结构的研究热点,可以在译码性能保持的前提下,用来简化编码器的复杂度, 已经被业内广泛采用,目前,由于结构化LDPC码性能优越,已经被IEEE 802.16e,IEEE 802.11n,IEEE 802.3an和DVB?S.2等标准采用,并被广泛应用于卫星通信,深空通信,光通信和下一代移动通信系统中。
为了在工程实践中降低编译码器的复杂度,研究人员系统地研究了结构化LDPC码的硬件实现技术,发现了一些制约LDPC码的编码器和译码器高速实现的因素,具体包括:编码器如果直接由生成截止实现,工程复杂度过高;全并行译码器结构实现时内部联系过多,运算单元过于复杂;对于串行结构,LDPC码的高速并行特点很难发挥。
针对以上问题,本文提出了一种高吞吐量,低复杂度并且码速、码率可扩展的非奇异子矩阵的不规则部分并行编码、译码结构,构造了性能优良、结构合理的部分并行译码实现的结构化LDPC码校验矩阵,并采用Xilinx公司的Virtex?5 XC5VtX150T?ff1156 FPGA芯片设计了一款码长1 270,码率[12]的不规则部分并行LDPC码的编码器和译码器,实验结果表明,该编码器可以实现数据吞吐率2.51 Gb/s,译码器在采用10次迭代的情况下,信息吞吐量达到44 Mb/s。
1 不规则QC码快速编码
文献[1]指出,规则QC码的校验矩阵是奇异的,如果将校验矩阵分成两个子矩阵即[H=[Ha Hb],]则无法得到奇异的子矩阵[Ha或Hb,]参考802.16e中的LDPC码的设计,可以获得快速编码的不规则QC编码的LDPC校验矩阵的子矩阵。
结构化LDPC码的奇偶校验矩阵[H]是[M×N]维的矩阵,由[mb×nb]的标准循环移位矩阵构成,其中[M=mb×z,][N=nb×z,][H]矩阵的形式如式(1):
[H=[HaHb]=I1Ia…Iak-1Ix1I0…0IbIab…Iak-1b0II…0Ib2Iab2…Iak-1b2Ix20II…?????????Ibk-1Iabk-1…Iak-1bk-1Ix300…I] (1)
快速编码算法,令信息比特[S=[s1s2s3…sk],]结构化LDPC码根据结果可以分为信息序列和校验序列,由信息序列[S]可以得到校验序列[Vm×1,]其中[si,][i≤k]是一个[Z]维的列向量,编码后的输出[C=[SV];]根据校验方程,[HaSΤ+HbVΤ=0]。[Ix1+Ix2+Ix3?VT1=i=1kj=1kHi,jSTj,]设中间变量[T(i)=i=1kHi,j?STj,]根据[Vi]计算[Vi+1,][Vi+1=Vi+T(i),i
图4 不同译码算法的误码率性能曲线
基于上述编码器和译码器的结构,通过硬件描述语言实现了码长1 270,码率[12]的不规则结构化LDPC编码译码电路。通过ISE 14.7进行综合,布局布线,在Xilinx公司的Virtex?5 XC5VtX150T?ff1156FPGA芯片上实现,编码器最大时钟频率为332 MHz,编码器信息吞吐率达到2.52 Gb/s,译码器的时钟最大频率为78 MHz,译码器在10次迭代后的信息吞吐率达到44 Mb/s,这对于码长为1 270 b的LDPC译码器是很快的。
编码器采用127 b准并行结构,输入比特根据校验矩阵均等切割,每组划分127 b,切割5组,编码器中组合逻辑完全由移位和异或构成,BLOCK RAM用于对输入、输出缓存进行时序调节,在跨时钟域场合用来解决读/写时序的逻辑胶合,本文不仅从系统层面用户角度采用输入、输出FIFO解决时序问题,用户甚至可以直接改变编码器移位矩阵设置不同的码长、码率,具有很强的可扩展性。编码器综合报表如表1所示。
译码器同样采用输入、输出FIFO与外部用户进行交互,数据流同样以1 270 b为一帧,译码开始前首先按编码顺序将序列进行均等切割,每127 b为一组,译码开始时,信道根据输入比特初始化,初始化完成后译码状态机进入校验节点和变量节点软信息更新状态,直到变量节点判别后得出的译码序列满足校验方程或者迭代次数超过最大值,输出译码序列,完成本帧数据的译码,译码结果存入缓冲器,等待用户读取。译码器资源消耗如表2所示。
6 结 语
本文根据IEEE 802.16e中LDPC码的设计规则,提出了一种无短环、高速、部分并行、准循环,不规则LDPC编码器和译码器结构,码长1 270 b,码率[12,]该LDPC编码器采用移位和异或操作完成编码,同时采用流水线结构提高时钟频率,可以通过打孔和参数设置进行扩展,采用对数域缩放最小和定点算法对LDPC码进行译码,采用8 b量化,1 b符号位,2 b整数位,5 b小数位,缩放系数[α=1.25,]中间信息节点存储器地址采用格雷码编码,降低动态功耗,通过硬件描述语言设计相应的编码、译码电路,用ISE 14.7进行综合,布局布线,在Xilinx公司的Virtex?5 XC5VtX150T?ff1156FPGA芯片上实现,编码器最大时钟频率为332 MHz,编码器信息吞吐率达到2.52 Gb/s,译码器的时钟最大频率为78 MHz,译码器在10次迭代后的信息吞吐率达到44 Mb/s,这对于码长1 270 b的LDPC译码器来说是很快的,针对信息吞吐率,译码性能要求高,可扩展性强,从与外部通信使用便利的角度出发,该编译码结构体现出明显的优势。
参考文献
[1] ZHANG L, HUANG Q, LIN S, et al. Quasi?cyclic LDPC codes: An algebraic construction, rank analysis, and codes on Latin squares [J]. IEEE Transactions on Communications, 2010, 58(11): 3126?3139.
[2] 肖扬,徐丹.准循环LDPC好码设计[J].系统工程与电子技术,2009,31(5):1011?1016.
[3] GALLAGER R G. Low?density parity?check codes [M]. Cambridge: MIT Press, 1963.
[4] 徐娟,姚如贵,李路,等.优化稀疏LU分解LDPC编码算法研究[J].西安电子科技大学学报,2015(2):127?132.
[5] MA Kexiang, LIU Yi, HU Jianhua, et al. Low complexity decoding algorithm for LDPC codes and design of key circuits [J]. Journal of Xidian University, 2013, 40(6): 6?12.
[6] FALSAFAIN H, ESMAEILI M. A new construction of structured binary regular LDPC codes based on steiner systems with parameter [J]. IEEE Transactions on Communications, 2012, 60(1): 74?80.
[7] COSTELLO D J, FORNEY G D. Channel coding: the road to channel capacity [J]. Proceedings of the IEEE, 2007, 95(6): 1150?1177.
[8] IEEE LAN/MAN Standards Committee. IEEE Standard 802.11n. Wireless LAN medium access control (MAC) and physical layer (PHY) specifications: Amendment 4: Enhancements for higher throughputs improvement [S]. New York: IEEE LAN/MAN Standards Committee, 2007.
[9] 袁瑞佳,白宝明,童胜.10 Gbps LDPC编码器的FPGA设计[J].电子与信息学报,2011,33(12):2492?2497.
[10] 张洋,王秀敏,陈豪威.基于FPGA的低密度奇偶校验码编码器设计[J].浙江大学学报:工学版,2011,45(9):1582?1586.
[11] CCSDS. CCSDS 131.1.1?0?2. Low density parity check codes for use in near?earth and deep space application [S]. Washington, DC: CCSDS, 2007.
[12] XIAO Y, KIM K. Good encodable irregular quasi?cycle LDPC codes [C]// 2008 11th IEEE Singapore International Conference on Communication Systems. Guangzhou: IEEE, 2008: 1291?1296.