Ldpc码的快速收敛译码算法的制作方法

文档序号:7525836阅读:377来源:国知局
专利名称:Ldpc码的快速收敛译码算法的制作方法
技术领域
LDPC码的快速收敛译码算法属于通信信道译码技术领域,特别涉及采用前向差错控制(FEC)技术用于数据传输及存贮时的一种采用低密度奇偶校验码(LDPC码)纠正信道差错的有效而快速的译码方法。

背景技术
数据在存贮以及传输过程中经常会引发各种差错。产生这种差错的原因有随机噪声、解调过程中的同步丢失、无线传输中的多径衰落、磁性存储器中的磁道缺损等。这种突发错误一般呈非周期性出现并且持续时间长短不定。由于这些差错的存在,大大限制了特定带宽下的信息传输速率和特定面积下存储器的存储容量。特别是在无线多媒体传输系统中,由于大量的数据要在带宽有限且受到各种突发严重干扰的信道中以很高的可靠性传输,这一问题变得更加突出。
为了解决数据传输和存储中的可靠性问题,通常采用信道编码的方法。在当前已有的信道编码方法中,新近提出的LDPC码具有最为强大的纠错能力,具有很强的应用前景。
采用LDPC码进行差错控制的译码方法为 1.LDPC码的定义和参数 LDPC码是一种二进制分组码,这种码采用超稀疏矩阵作为校验矩阵。矩阵中每行(每列)中非零元素的个数非常稀少,且位置呈随机分布。由于LDPC码是分组码,对于任何合法的码字V,与校验矩阵H的乘积为零,即H·VT=0。为了描述译码算法方便,我们用Tanner图来描述LDPC码。Tanner图由两类节点组成,一类是变量节点,一类是校验节点。每个变量节点对应于码字里面的一个比特,每个校验节点对应于校验矩阵H里面的一行。变量节点与校验节点的连线对应于校验矩阵H里面的‘1’,如图1所示。在迭代译码过程中,译码器利用校验节点和变量节点的约束关系进行迭代译码。在一次迭代过程中,首先利用变量节点的约束关系进行译码,各变量节点的输入为接收序列对应的对数似然值(即各个元符号取“1”的概率除以取“0”的概率再取自然对数所得的值)以及相关校验节点在上一次迭代的输出;随后,变量节点的输出通过“连线”送到相应的校验节点,再利用校验节点的约束关系进行译码。在这个过程中,一种节点的输出成为另外一种节点的输入,矩阵中非零元素所对应的“连线”成为了这两种节点输入输出交换信息的“通道”。
2.LDPC码的译码 LDPC码的译码充分应用了校验矩阵的超稀疏特性,通过变量节点和校验节点的约束关系计算并输出外信息,并相互反馈,进行迭代译码。(外信息即所有同属于一个码字的其它码元通过码字的约束关系而得到的关于某一个码元取值的信息,采用外信息交互是为了避免迭代过程中出现正反馈。)当前,LDPC码的译码方法主要有两种译码流程(Decoding Schedule)。
流程一是泛洪算法(Flooding Schedule)。
设rij为从校验节点j输出到变量节点i的外信息,qij为从变量节点i到校验节点j的外信息,泛洪算法的迭代过程包括如下步骤 1)译码初始化对于接收到的长度为N的实数序列Ri(1≤i ≤N),对应的LDPC码第i个码元的初始接收值被译码器解调成对数似然比的形式 式中LLR表示取值为对数似然比,σ2为信道噪声的标准方差。同时,初始条件下校验节点没有任何关于码字的信息,故设置校验节点j输出到变量节点i的外信息为 LLR(rij)=0(2) 2)若所得到的序列的硬判决结果不为一个合法的码字(其中硬判决是指根据序列各个符号的对数似然值决定各个码元符号的比特取值,对数似然值为正数则码元取符号“1”,为负数则码元取符号“0”),执行一次译码的迭代过程为 a)变量节点的译码在这种节点的约束关系下,输出与输入的关系为“和”的关系,即变量节点i到校验节点j的外信息输出为 式中Col[i]表示校验矩阵H第i列非零元素的位置集合。
b)校验节点的译码在校验节点的约束关系下,输出与输入的关系为某种“最小”的关系,即校验节点j输出到变量节点i的外信息为 (4) 式中Row[j]表示校验矩阵H第j行非零元素的位置集合。
根据校验节点的输出与输入的关系,译码算法可以分为和积译码算法和最小和译码算法。这里采用的偏移最小和译码算法,是最小和算法的一种改进,其中β∈(0,1)。
3)迭代后所得的第i个变量节点的译码结果为该节点所有输入的和 对所得到的译码结果进行如下的硬判决,然后转移到第二步。其中第i个码元符号的硬判决为 (6) 4)如果需要进行下一个码字的译码,跳转到第一步;否则,结束译码。
流程二是分层算法(Layered Schedule)。与泛洪算法不同,分层算法把校验矩阵看成是一层层的校验方程。泛红算法是在所有变量节点更新之后再更新所有校验节点,而分层算法是在更新当前层的校验节点之后立即更新与当前层相连的变量节点。分层算法的迭代过程包括如下步骤 1)译码开始,把接收序列作为软判决的初始值,把校验节点传输给变量节点的外信息设为0.,如下所示 及 LLR(rij)=0(8) 2)迭代译码。对于第k次迭代,执行如下迭代过程 设M是校验矩阵的行数,对于每一个0<m<M, a)计算当前层变量节点的外信息 b)校验节点的译码校验节点j输出到变量节点i的外信息为 (10) 式中,β∈(0,1)。
c)更新当前层的变量节点的软信息 3)判断迭代次数是否达到预定值,或者硬判决译码序列是否为一个合法码序列。
若是,输出硬判决序列,并器输出相应的变量节点所对应码元的硬判决结果为 若否,则回到步骤2,迭代次数加1。
分层算法相对于泛洪算法有两个优点,一是只需要约一半的迭代时间,二是减少了存储空间。虽然分层算法已经减少了近一半的迭代次数,但是对于长码而言,尤其是低码率的情况,仍然需要很多次的迭代,导致译码延时很大。本发明对分层算法进行了改进,使收敛速度加快,从而减少了译码延时。


发明内容
LDPC码的快速收敛译码算法,含有低密度奇偶检验码的分层最小和译码方法,它的输入为接收序列的对数似然值并在对数空间下通过利用比特节点和校验接点的约束关系进行迭代译码,其特征在于,它利用校验节点传输给变量节点的信息随着迭代进行变得更准确的特性,在迭代译码中,扩大了当前软信息中校验节点信息的比重,从而加快了迭代过程的收敛速度。本发明的特征在于,所述方法是在译码译码器中依次按以下步骤实现的 步骤(1),译码初始化 对于接收到的长度为N的实数序列Ri(1≤i≤N),所述译码器的变量节点的初始值设置成对应的LDPC码第i个码元的对数似然比LLR(Ri), σ2为信道噪声标准方差, 同时,设置校验节点j输出到变量节点i的外信息为LLR(rij), LLR(rij)=0;(14) 步骤(2),迭代译码当第k-1次迭代时所得到的所述序列Ri的硬判决结果不为一个合法的码字时,执行第k次迭代,设M是校验矩阵的行数,对于每一行m,0<m<M,执行以下迭代步骤 步骤(2.1),计算所述当前变量节点i的外信息LLR(qij) 式中LLR′(rij)是第k-1次迭代的LLR(rij)值, 步骤(2.2),更新所述校验节点j输出到所述变量节点i的外信息LLR(rij),采用最小和译码算法时, (16) 式中,β∈(0,1), 步骤(2.3),更新所述当前层的变量节点i的软信息为
式中,ω在(0,1)取值; 步骤(3),判断迭代次数是否达到预定值K,或者判断硬判决译码序列是否为一个合法码序列, 若是,输出硬判决序列并执行下一步骤。译码器输出相应的变量节点所对应码元的硬判决结果为
并执行下一步骤, 若不是,则回到步骤(2),迭代次数加1,执行第k+1次迭代; 步骤(4),若有译码矢量需要译码,则回到步骤(1),若没有,则结束译码过程。
本发明的效果是,能够有效加快LDPC码译码的收敛速度。



图1.LDPC码的Tanner图。
图2.本发明所述译码方法的程序流程图。
图3.应用本发明纠正传输差错的通信系统框图。

具体实施例方式 本发明提出的一种改进的分层最小和译码方法,如图2所示,则本发明提出的译码方法包括以下步骤 译码开始时,接收序列输入到变量节点,译码器进行初始化,译码迭代次数置为0。然后,译码器计算各阶变量节点的硬判决输出,送到节点码字检测节点,检测硬判决序列是否为一个合法码字。如果所得的硬判决系列为一个合法的码序列,则译码结束,输出相应的硬判决结果;否则,执行一次迭代过程对于每一层校验节点,利用标准的分层最小和算法来更新变量节点的LLR,然后对当前层的软判决,适当放大LDPC码当前层迭代的外信息,得到新的当前层的软判决。完成这些运算后,迭代次数加1。在下一次迭代开始时,各阶变量节点再次计算硬判决输出,随后由码字检测节点判决是否为一个合法码序列。如果是一个合法码字,则结束译码迭代,输出相应的硬判决序列;否则,执行一次迭代过程。完成这些运算以后,迭代次数加1,转入下一轮迭代。
本发明所述方法的原理及算法描述如下 1)初始化软判决值为 及 LLR(rij)=0(20) 2)迭代译码。对于第k次迭代,执行如下迭代过程 设M是校验矩阵的行数,对于每一个0<m<M, a)计算当前层变量节点的外信息 b)校验节点的译码校验节点j输出到变量节点i的外信息为 (22) c)更新当前层的变量节点的软信息 式中LLR′(rij)是第k-1次迭代的LLR(rij)值,ω是一个0到1之间的数。
3)检验停止准则。如果迭代次数达到预定值,或者硬判决译码序列是一个合法码序列,结束译码并输出硬判决序列。
此时,译码器输出相应的变量节点所对应码元的硬判决结果为 实施例本实施例为在清华同方PC机上用软件实现本发明提出的纠错译码方法,如图2所示,包括以下步骤 译码开始时,译码迭代次数置为0,并按照(13)(14)式进行初始化。然后,译码器转移到2c,执行一次迭代过程每层的变量节点根据(15)式计算各节点的输出,通过节点间连线送到相应的校验节点作为输入;校验节点再按照(16)式计算反馈给各变量节点的外信息,当前层的变量节点再按照(17)式更新软信息值。完成这些运算后,转移到步骤2f。如果所有层都被更新完,则迭代次数加1,否则继续下一层的更新。随后在步骤2h,判断是否为合法码字。如果不是,则跳转到2c,转入下一轮迭代;否则,转移到步骤2i,判断是否小于迭代最大允许值如果是,则下一步跳回到步骤2c;否则下一步转移到步骤2j。步骤2j输出译码结果。然后跳到步骤2k,判断是否结束译码过程如果是,则译码结束,否则,重新开始下一个码矢量的译码。
作为一个例子,表1列出了DVB-S2标准中的LDPC码在BIAWGN信道下采用标准分层最小和算法以及本发明的算法所得到的译码迭代次数。由表1可见,本发明的算法所得的迭代次数要比标准算法少一些。在高信噪比情况下,平均迭代次数减少8.4%-19.7%,在低信噪比情况下,平均迭代次数要减少30%-62.6%。
表1.两种译码算法在BIAWGN信道下的性能

可见,采用本方法能够以较少的迭代次数得到很好的纠错性能,大大提高了LDPC码的实用性。
参照图3,采用本发明的方法纠正传输差错的通信系统包括一个产生数字信息流的信源31,LDPC编码器33,传输信道35,以及如图3所示的纠正传输错误译码器37。在本例中,信源31产生的携带信息的数据符号流32被送往LDPC码编码器33,LDPC码编码器33对信息进行信道编码。编码后的LDPC码流34在传输信道35传输过程中受到干扰而产生差错,包含传输差错的码流36被纠正传输错误的LDPC码译码器37所接收。经过LDPC码译码器37采用本发明的方法完成纠错译码,输出的码流38为正确的数字信息流。
应当指出,本发明方法的应用还可以推广到磁存储系统中去。
本发明的效果是,通过利用LDPC码迭代过程中外信息变得越来越可靠的特点,即LDPC码相邻两次迭代的外信息代表了变量节点的LLR值改变的方向,适当增加当前迭代中的外信息能够有效地加快迭代的收敛速度,从而有效地减少了迭代次数。因此,对于LDPC码的译码,本方法明显优于其它的方法。
权利要求
1、LDPC码的快速收敛译码算法,其特征在于,所述方法是在译码译码器中依次按以下步骤实现的
步骤(1),译码初始化
对于接收到的长度为N的实数序列Ri,1≤i≤N,所述译码器的变量节点的初始值设置成对应的LDPC码第i个码元的对数似然比LLR(Ri),
σ2为信道噪声标准方差,
同时,设置校验节点j输出到变量节点i的外信息为LLR(rij),
LLR(rij)=0;
步骤(2),迭代译码当第k-1次迭代时所得到的所述序列Ri的硬判决结果不为一个合法的码字时,执行第k次迭代,设M是校验矩阵的行数,对于每一行m,0<m<M,执行以下迭代步骤
步骤(2.1),计算所述当前变量节点i的外信息LLR(qij)
式中LLR′(rij)是第k-1次迭代的LLR(rij)值,
步骤(2.2),更新所述校验节点j输出到所述变量节点i的外信息LLR(rij),采用最小和译码算法时,
式中,β∈(0,1),
步骤(2.3),更新所述当前层的变量节点i的软信息为
式中,ω在(0,1)取值;
步骤(3),判断迭代次数是否达到预定值K,或者判断硬判决译码序列是否为一个合法码序列,
若是,输出硬判决序列并执行下一步骤,译码器输出相应的变量节点所对应码元的硬判决结果为
并执行下一步骤,
若不是,则回到步骤(2),迭代次数加1,执行第k+1次迭代;
步骤(4),若有译码矢量需要译码,则回到步骤(1),若没有,则结束译码过程。
全文摘要
LDPC码的快速收敛译码算法属于通信技术领域,其特征在于,迭代过程中外信息变得越来越可靠的特点,即LDPC码相邻两次迭代的外信息代表了变量节点的LLR值改变的方向,适当增加当前迭代中的外信息能够有效地加快迭代的收敛速度。从而,本方法可以获得比标准分层最小和译码方法更快的译码速度。同时,本方法还可推广到磁盘存储系统中去。
文档编号H03M13/00GK101615913SQ200910088989
公开日2009年12月30日 申请日期2009年7月17日 优先权日2009年7月17日
发明者殷柳国, 进 解, 宁 葛, 陆建华 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1