一种基于振荡变量节点的ldpc码动态调度译码方法
【专利摘要】本发明公开了一种基于振荡变量节点的LDPC码动态调度译码方法,采用了设置三重判定条件的动态选择策略确定出可靠性最低的变量节点进行更新。本发明可以对变量节点的可靠度进行更加合理准确的判断,优化动态调度译码算法的消息更新顺序,有效地克服Tanner图中陷阱集的影响;同时从变量节点的角度定义和处理了振荡,降低了错误信息带来的影响,提升了算法的译码性能。
【专利说明】-种基于振荡变量节点的LDPC码动态调度译码方法
【技术领域】
[0001] 本发明属于通信【技术领域】,涉及一种基于振荡变量节点的LDPC码动态调度译 石马方法(Oscillatory-Variable-Node-BasedBinaryLDPCCodeDynamicDecoding Algorithm,简称OVBRBP方法)。
【背景技术】
[0002] 19世纪60年代,Gallager首次提出LDPC码,自1996年LDPC码优异的纠错性能 被MacKay和Neal重新发现以来,已经被证明在码长足够长的情况下采用置信传播(BP)译 码算法进行译码时具有接近香农极限的性能。与其它纠错码相比,LDPC码具有众多的优势: 误码平底可以达到更低的水平,可在并行的情况下进行迭代译码,完善的优化设计方法,低 时延、低复杂度的译码算法以及较强的抗突发错误能力。因此,LDPC码有极高的应用前景, 目前LDPC码已经被WiMAX、UWB、卫星数字视频、10GBase-T等列为标准编码方式,在未来 LDPC码还将广泛应用于卫星通信、海洋探测、光传输、量子保密通信、全息存储等方面。
[0003] 在LDPC码的译码算法方面,从调度策略来看,目前有三种不同的调度策略:并行 的消息更新调度策略,串行的消息更新调度策略和动态的消息更新调度策略。其中,动态调 度策略首先由Casado提出,这种策略按照残差的大小动态的选择要更新的消息,没有固定 的顺序,集中计算资源优先更新那些最不稳定的节点消息,是三种策略中收敛速度最快,纠 错性能最好的,非常适合应用于需要快速译码的场合。在LDPC码的动态调度译码算法研究 过程中,有早期Casado提出的RBP和NWRBP两种算法。后来Kim等人提出了一种基于变 量节点到校验节点的VCRBP译码算法,该方法使用变量节点到校验节点的残差作为选择策 略,以降低贪婪性的影响。接着,Liu等人先后提出了一种基于消息相对残余度的EDS-LBP 译码算法和基于变量节点到校验节点消息残差的智能动态IVCRBP译码算法,这两种算法 在纠错性能和收敛速度方面都得到了提升。目前,LDPC码的研究者对动态调度译码算法仍 然进行着深入的研究。
[0004] 动态调度译码算法一个最大的特点就是在一次迭代过程中一些节点消息被更新 了多次而另一些节点消息则一次也没有被更新,这也成为了动态调度译码算法的很大的一 个缺点,过多或过少的更新都会影响算法的纠错性能和收敛速度,Lee等人针对这两个问题 已经做了初步的改进。
[0005] 尽管性能优异,动态调度算法也存在着诸多不足之处。首先,单纯依靠残差的动态 选择策略,存在着局限性和不准确性,很难对不可靠的信息进行精确的定位。再次,由于环 境噪声和Tanner图中环的影响,消息更新前后会出现符号的变化而产生振荡的问题,这些 振荡信息会在Tanner图内传播,影响算法的收敛速度和纠错性能。但目前所提出的动态调 度算法都没有考虑振荡的影响,而变量节点振荡带来的错误信息会影响算法的纠错性能和 收敛速度。
[0006] 在LDPC码的Tanner图中,陷讲集(trappingsets)是一类具有特殊结构的环,在 译码过程中陷阱集对算法造成的影响比普通环造成的影响更恶劣,对LDPC码的误码平底 有着重大影响。在Tanner图中,少量变量节点只与度为1或者2的校验节点相连形成的子 图是最难处理的陷阱集,如图1所示,因为校验节点传递给变量节点的信息取决于与其相 连的其他变量节点,如果该变量节点出错,传递的信息也会出错很难进行纠错,影响译码异 能。另外,在Tanner图中,当一个变量节点处于两个或者两个以上的环中,当正确的信息和 错误的信息在不同的时间到达该变量节点,就会导致该变量节点在更新前后的LLR值符号 出现反转即发生振荡,如图3所示,其中本图示中变量节点用vn表示,校验节点用cj表示。 若发生振荡就意味着该变量节点包含有错误信息,该错误信息又会在环中传播,影响算法 的译码性能。
[0007] 在2002年,Lechner研究了LLRBP算法中变量节点消息对数似然比的变化情况, 最后给出了三种错误模式。第一,收敛到一个错误码字,这种情况通常和一个码字的最小距 离有关,由于最小距离是一个码字的特性,因此这种错误不可能通过改善译码算法得到改 善。第二,LLR值收敛到一个局部最大值,如果Tanner图中存在环,贝U处于环中的变量节点 的LLR值会随着循环而不断增大,但这种模式下,变量节点的LLR值不会因为环的存在而趋 近于无穷大。第三种错误模式就是LLR值随着迭代次数发生振荡而不收敛。
[0008] 为了对变量节点的振荡有一个直观的描述,本发明跟踪了算法中一个振荡的变量 节点的LLR值随迭代次数变化的情况,如图4所示。
[0009] 从图4中可以看出,该变量节点在50次的迭代过程中一直处于振荡状态,没有收 敛,而且振荡现象不会随着迭代次数(计算资源)的增加而减弱。
[0010] 变量节点的振荡对于采用动态调度策略的译码算法来说,影响尤为严重,因为动 态调度译码算法是集中计算资源优先更新最不可靠的消息,振荡的变量节点可靠度低,消 息更新前后符号会出现翻转,残差相对较大会很容易被选做优先更新的对象,而且这些振 荡的变量节点包含着错误信息,所以如果不对这些振荡的变量节点进行处理,单纯靠增加 迭代次数(计算资源)很难纠正这类错误,造成此类振荡的变量节点长期占用计算资源的 恶性结果。相反的,如果对这些变量节点采取一定的处理方法,可以通过动态的策略不断改 正这些出错的节点,从而释放计算资源,加快收敛速度。
【发明内容】
[0011]针对现有动态调度译码算法的不足,本发明提供了一种基于振荡变量节点的LDPC码动态调度译码算法,它解决了以往很难对不可靠信息的精确定位问题。
[0012] 本发明采用的技术方案如下:
[0013] 一种基于振荡变量节点的LDPC码动态调度译码方法,采用了设置三重判定条件 的动态选择策略确定出可靠性最低的变量节点进行更新;所述三重判定条件采用步骤如 下:
[0014] S11.判断是否有振荡的变量节点,若没有,直接选择残差也即r(mk)= |f(mk)-mk| |最大的变量节点作为最不可靠的变量节点,其中:变量节点消息为mk,更新后 为f(mk);若有,执行S12;
[0015] S12.计算振荡的变量节点所不满足的校验方程的个数,若未达到最大值,在振荡 变量节点中选择残差最大的变量节点作为最不可靠的变量节点;若达到,执行S13 ;
[0016] S13.在这些不满足校验方程个数达到最大值的振荡变量节点中选择残差最大的 变量节点作为最不可靠的变量节点。
[0017] 本发明设计的上述动态选择策略,对于陷阱集中出现错误的变量节点的定位要比 其他算法准确的多,可以很快发现此类变量节点,并进行更新操作,更新后的变量节点又会 对相邻变量节点造成影响,使其被选为下一次优先更新的变量节点,通过这个过程不断纠 正陷阱集中错误的变量节点,可以很好的克服陷阱集的影响,提高算法的纠错性能。
[0018] 这里需要说明的是,三重判定条件中涉及的校验方程为cHT = 0。在LDPC码领域, 构造LDPC码的校验矩阵H与Tanner图有对应关系,Tanner图的顶点由H矩阵的变量节点 和校验节点组成,变量节点和校验节点的连接关系由矩阵H的元素唯一确定。由于LDPC码 的码字c和校验矩阵之间满足关系(校验方程):cHT = 0,因此,根据这种关系就可以计算 振荡的变量节点所不满足的校验方程的个数。
[0019] 本发明还解决了以往动态调度算法因变量节点振荡带来的错误信息影响到算法 的纠错性能和收敛速度的问题。采用的技术方案如下:
[0020] 根据动态选择策略确定出的变量节点消息更新前后若出现振荡现象,即定义满足
【权利要求】
1. 一种基于振荡变量节点的LDPC码动态调度译码方法,其特征在于,采用了设置三重 判定条件的动态选择策略确定出可靠性最低的变量节点进行更新;所述三重判定条件采用 步骤如下:
511. 判断是否有振荡的变量节点,若没有,直接选择残差也即r(mk) =I|f(mk)-mk|I最 大的变量节点作为最不可靠的变量节点,其中:变量节点消息为mk,更新后为f(mk);若有, 执行S12 ;
512. 计算振荡的变量节点所不满足的校验方程的个数,若未达到最大值,在振荡变量 节点中选择残差最大的变量节点作为最不可靠的变量节点;若达到,执行S13 ;
513. 在这些不满足校验方程个数达到最大值的振荡变量节点中选择残差最大的变量 节点作为最不可靠的变量节点。
2. 根据权利要求1所述的基于振荡变量节点的LDPC码动态调度译码方法,其特 征在于,根据动态选择策略确定出的变量节点消息更新前后若出现振荡现象,即满足: ,其中,m)为变量节点η的LLR值,i表示当前第i次译码迭 代,则对该变量节点进行振荡处理,再进行传递;所述振荡处理方法是将来自错误边的错误 信息进行缩小处理后再进行传递。
3. 根据权利要求2所述的基于振荡变量节点的LDPC码动态调度译码方法,其特征在 于,所述振荡处理方法具体是将变量节点更新前后的LLR值求和,符号与LLR绝对值最大的 保持一致,然后再除以一个因子Y,也即公式1(化广1 =(以兔,广1 + );) /,。
4. 根据权利要求3所述的基于振荡变量节点的LDPC码动态调度译码方法,其特征在 于,低密度奇偶校验码校验矩阵H用Tanner图表示,校验矩阵H为MXN的矩阵,相应的 Tanner图为由N个变量节点和M个校验节点以及一定数量连接变量节点和校验节点的边组 成,N(m) = {n:Hmn= 1}表示与校验节点m连接的所有变量节点的集合,M(n) =InKHmn = 1}表示与变量节点η连接的所有校验节点m的集合,L(Vn)表示变量节点η获得的LLR信 息,Rmn表示从校验节点m发送到变量节点η的LLR消息,Qmn表示变量节点η发送到校验节 点m的LLR消息;所述一次更新动态选择策略具体步骤如下:
541. 根据所述三重判定条件选出具有最低可靠度的变量节点n,更新所有与η相邻的 校验节点到变量节点η的消息;
542. 更新变量节点η的LLR值,也即Ζ(?5?) = Ζ(ν?)+ 将变量节点η的残 meM(η) 差初始化置〇,然后对该变量节点进行振荡判定,若该节点振荡则进行振荡处理;
543. 对所有与变量节点η相邻的校验节点,利用更新过的变量节点η的LLR信息更新 这些校验节点的LLR信息,即^ +ΣRm'n;
544. 利用来自S43中的被更新的校验节点的信息,计算除变量节点n外,与m相连的所 有变量节点的LLR信息。
5. 根据权利要求4所述的基于振荡变量节点的LDPC码动态调度译码方法,其特征在 于,完整的译码步骤如下: S51.初始化:将校验节点到变量节点的信息初始化为0,根据信道信息初始化变量节 点到校验节点的LLR信息,并计算每个变量节点的残差,设置迭代变量I= 1,设置最大迭代 次数;
552. 判断迭代次数是否达到最大值Imx,若是则执行S55,否则执行S53 ;
553. 执行N次更新过程,N为Tanner图中变量节点的总数;
554. 对每一变量节点,根据其最终的LLR值进行译码判决,即L(vn)〈0,则码字分量估 值弋=〇;若L(vn)>0,则码字分量估值<=1,从而得到输出码字序列;
555. 若译码迭代次数已达到最大值或者cHT = 0,则停止译码,输出当前的码字,否则 令I- 1+1,返回到S52继续进行迭代译码。
【文档编号】H03M13/11GK104467874SQ201410818522
【公开日】2015年3月25日 申请日期:2014年12月24日 优先权日:2014年12月24日
【发明者】刘星成, 张源斌 申请人:中山大学