文献标识码: A
文章编号: 0258-7998(2013)08-0105-04
广义LDPC码是一类由LDPC码扩展而来的差错控制编码[1-2]。广义LDPC码保留了LDPC码稀疏图的表达,但将码图中的单奇偶校验约束节点替换为线性分组码。由于引入了线性分组码约束节点,广义LDPC具有构造灵活、在约束节点可以采用更强有力的译码器的优势,并具有错误平层较低、在低码率条件下可逼近信道容量的性能。近年来,广义LDPC码由于其优于LDPC码的特性而引起了学者们的广泛研究[3-5]。
传统广义LDPC译码算法基于奇偶校验矩阵的分层结构,采用超码串行译码而子码并行译码的迭代译码机制。然而,以非规则LDPC等构造的广义LDPC码的校验矩阵不具有分层结构,无法按照传统广义LDPC码译码算法进行译码。本文提出一种广义LDPC码的自适应全并行MAP-BP译码算法。该算法具有通用性,且引入自适应修正因子,能保证迭代译码过程中子码MAP算法和本地码BP算法的良好衔接,并可提高译码准确性。
1 广义LDPC码结构
广义LDPC码是将LDPC码中的单奇偶校验约束节点用简单的线性分组码替换得到的,其中称LDPC码为本地码,线性分组码为子码。
如图1所示,广义LDPC码奇偶校验矩阵的构造步骤为:构造本地LDPC码的奇偶校验矩阵Hb,称之为基矩阵;选取子码C0(n,k),并将基矩阵Hb每一行中的“1”随机用子码的校验矩阵Ho的某一列替换,“0”用全零列矢量替换。
Gallager规则LDPC码(N,j,n)采用分层方法构造,如图1(a)所示,其校验矩阵可按行划分为j层(每一层包含相同的行数),第一层H1的构造很有规律,“1”在行中按降幂排列,其余j-1层是对第一部分进行的随机重排,即Hi=πi(H1),i=2,3,…j,其中π表示随机列位移。按照分层结构,将每一层的N/n个分量码的值合称为一个超码。相应地,以Gallager规则LDPC码为本地码的广义LDPC码保留了这一分层结构,如图1(b)所示。然而,广义LDPC码发展至今,其构造已不再限于传统方法,即除了选取Gallager规则LDPC码作本地码外,QC-LDPC码、非规则LDPC码等作本地码的广义LDPC先后被构造并进行研究。若低密度校验矩阵采用其他的方法构造,广义LDPC码未必可以分解为若干超码。
2 传统广义LDPC译码
传统的广义LDPC译码算法是基于子码译码基础上的迭代译码,因此译码性能和译码复杂度严重依赖于子码使用的译码算法。通常广义LDPC码选用的子码为短码且具有较高的码率,而广义LDPC码迭代译码过程中使用的是软信息,因此子码一般采用软输入软输出SISO(Soft-in Soft-out)译码算法[6],所以传统广义LDPC码的译码机制为基于子码SISO的迭代译码。
根据分层结构,译码信息在不同层级的超码之间进行传递:根据接收样本计算每个比特的初始概率信息,并假定它属于超码C1。超码C1中的N/n个子码SISO译码器独立并行工作,产生每个编码比特的后验概率和外概率。后者经过交织后作为超码C2中子码SISO译码的先验信息。上述过程在每对相邻超码之间依次进行,将C1→C2→…→Cj→C1的信息传递过程看作一次完整的迭代,整体上讲超码串行工作。当j=2时,广义LDPC码的译码可以看做Turbo码译码器的扩展[7],子码的译码器结构如图2所示。综上所述,传统广义LDPC迭代译码过程可概括为“超码串行工作,子码并行处理”。
3 MAP-BP译码算法
BP译码算法是LDPC码的通用译码算法,适用于任意方法构造的LDPC。而传统广义LDPC译码算法并不具备通用性,不具有分层结构的广义LDPC码将无法按照传统广义LDPC码译码算法进行译码。为此,本文设计了自适应全并行MAP-BP译码算法。广义LDPC码的MAP-BP译码算法的流程为:
与传统广义LDPC译码算法相比,MAP-BP译码算法具有以下优点:(1)译码信息全并行计算与传输,一方面减少了处理时间,另一方面可作为广义LDPC码的通用译码算法;(2)算法中引入了自适应修正因子,既避免了迭代过程中在MAP算法和BP算法中流动的LLR值发生溢出,又提高了译码准确性。
4 仿真分析
在AWGN信道条件下,根据MAP-BP译码算法对两组广义LDPC码的性能进行仿真,并与传统译码算法的性能进行比较。图3中码字的码长为420,图4中的码长为960,两组码字码率都为0.467,本地码列重为2,子码选用(15,11)汉明码。
仿真结果表明,采用MAP-BP算法得到的译码性能较好。实质上,对广义LDPC码而言,传统译码算法可以看作无修正因子下MAP-BP译码的串行变换方案,因此MAP-BP性能的提高得益于修正因子的引入,且在高信噪比处译码性能改善更明显。
图5比较了(960, 2, 15)广义LDPC码在两种译码算法下,误码率随迭代次数的变化情况。可以看出,较之于传统译码算法,MAP-BP译码算法收敛速度较快。
图6给出了(420,2,15)广义LDPC码的误码率随修正因子大小的变化情况。最佳修正因子?兹的取值受信噪比大小、码长长度的影响。修正因子的取值是值得深入探讨的问题,在实际应用中,需根据码长和信道条件选取恰当的?兹值,即进行自适应调整。
本文提出了一种广义LDPC码的自适应全并行MAP-BP译码算法,该译码算法具有通用性。仿真表明在高信噪比条件下可提高译码准确性。广义LDPC码的MAP-BP译码算法思想来源于LDPC码的BP译码算法,传统的广义LDPC译码算法可以看作MAP-BP算法分层串行的特例。MAP-BP译码算法对迭代译码过程中子码MAP算法和本地码BP算法输出LLR的衔接进行了分析,并采用自适应除性修正因子解决溢出现象,提高了译码性能。
参考文献
[1] LENTMAIER M, ZIGANGIROV K S. On generalized lowdensity parity check codes based on Hamming component codes[J].IEEE Communications Letter,1999,3(8):248-250.
[2] BOUTROS J, POTHIER O. Generalized low-density(Tanner) codes[C]. In Proceeding IEEE ICC, Houston, USA, July 1999:11-16.
[3] SHADI A S, DIVSALAR D. Enumerators for protographbased ensembles of LDPC and generalized LDPC codes[J]. IEEE Transactions on Information Theory, 2011,2(57):858-885.
[4] SHADI A S, DIVSALAR D, RYAN W E. On the typical minimum distance of protograph-based generalized LDPC codes[C]. ISIT 2010, Austin, Texas, U.S.A., June 13-18, 2010:719-723
[5] Wang Yige, FOSSORIER M. Doubly generalized LDPC codes over the AWGN channel[J]. IEEE Transactions on Communications, 2009,57(5):1312-1319.
[6] LIN S, COSTELLO D J. Error control coding 2nd edition[M]. Landon: Prentice Hall Press, 2007.
[7] MAO Y,BANIHASHEMI A H. Decoding low-density paritycheck codes with probabilistic schedule[J].IEEE Communications Letters, 2001,5(10):414-416.
[8] YAZDANI M R, HEMATI S, BANIHASHEMI A H. Improving belief propagation on graphs with cycles[J]. IEEE Communications Letters, 2004,8(1):57-59.