基于变量节点可靠性动态选择策略的二进制LDPC码更新方法与流程

文档序号:12620966阅读:288来源:国知局
基于变量节点可靠性动态选择策略的二进制LDPC码更新方法与流程

本发明涉及通信技术领域,具体涉及一种基于变量节点可靠性动态选择策略的二进制LDPC码更新方法。



背景技术:

19世纪60年代,Gallager首次提出LDPC码,即二进制低密度奇偶校验码。1981年,Tanner用双向Tanner图来直观地表示了LDPC码的译码过程。但是,当时LDPC码仍未受到众多学者的重视。直到1996后,LDPC码在编译码领域上受到了学术界和企业界的广泛关注并在近二十多年得到了如火如荼地发展。码字本身的稀疏性使得LDPC码的译码复杂度较低,具有较低的误码平底。从码字的构造到译码算法优化以及最后的性能分析,LDPC码拥有着一套系统的优化设计方法。目前LDPC码已经被WiMAX、UWB、卫星数字视频、10G Base-T等列为标准编码方式,在未来,LDPC还可广泛应用于卫星通信、海洋探测、光传输、量子保密通信、全息存储等方面。

在LDPC码的译码方法方面,从消息更新的调度来看,主要分为三类:并行消息更新策略、串行消息更新策略和动态异步消息更新策略。动态异步消息更新策略是三种策略中收敛速度最快,纠错性能最好的,非常适合应用于需要快速译码的场合。2007年,Casado等人提出了一种基于残差的置信传播算法即RBP算法,把残差值的大小作为动态异步更新算法中的量度来选择需要更新的消息。RBP算法是一个贪婪性较高的算法,每次都优先更新具有最大残差的边信息。为了降低RBP算法的贪婪性,Casado在RBP算法的基础上提出了贪婪性较低的NWRBP算法。后来,Kim等人提出了一种由变量节点到校验节点边残差来度量的VC RBP译码算法以降低贪婪性的影响。接着,Liu等人先后提出了一种基于消息相对残余度的EDS-LBP译码算法和基于变量节点到校验节点的边残差度量的智能动态IVC RBP译码算法,这两种算法在纠错性能和收敛速度方面都得到了提升。Lee等人针对动态调度算法的贪婪性和沉默节点的形成问题做了些探究,提出了相关的可行性解决方案,但仍有待进一步研究。上面所述的动态译码算法也普遍存在一些问题:一是贪婪性。二是最不稳定的变量节点选取方法有待调整。三是对一些振荡的变量节点处理方法还偏少。



技术实现要素:

本发明的目的是解决现有技术的缺陷,提供一种基于变量节点可靠性动态选择策略的二进制LDPC码更新方法,采用的技术方案如下:

一种基于变量节点可靠性动态选择策略的二进制LDPC码更新方法,在变量节点的点残差的基础上,利用稳定性判据和投票准则的动态选择策略选择出最不稳定的变量节点信息进行更新,所述变量节点可靠性动态选择策略包括如下步骤:

S11.根据稳定性判据对所有变量节点进行判定,其中不稳定的变量节点组成的集合称为不稳定变量节点集合,稳定的变量节点组成的集合称为稳定变量节点集合,若不稳定变量节点集合不为空集则执行S12,若不稳定变量节点集合为空集,则执行S13;稳定性判据定义为:若一个变量节点连续三次更新过程中LLR值未翻转,则该变量节点满足稳定性判据,反之不满足;

S12.根据投票准则再对不稳定变量节点集合中的变量节点进行一次判定,若不稳定的变量节点集合中存在满足投票准则的变量节点则从这些变量节点中找出残差最大的不稳定的变量节点在动态异步更新方法中优先被更新,否则就从不稳定的节点集合中的不满足投票准则的变量节点中找出具有最大残差的变量节点在动态异步更新方法中优先被更新;变量节点投票准则是指在对数域LDPC码的迭代译码算法中,若一个变量节点获得的投票数等于此变量节点的度数,则该变量节点满足变量节点投票准则,反之不满足;投票数的计算方法:不满足校验方程的校验节点对与其相连的变量节点投一票,由此得出变量节点的投票数;

S13.从稳定变量节点集合中选择点残差最大的变量节点在动态异步更新方法中优先被更新;

其中,变量节点点残差的计算公式为r(mk)=||f(mk)-mk||,当r(mk)是点残差时,mk和f(mk)分别表示更新前后变量节点的LLR值。

本发明开始将大范围内的变量节点进行划分为两类,即不稳定的变量节点和稳定的变量节点,再利用投票准则来将不稳定的变量节点进行再一次划分,分为两类即满足投票准则的变量节点的集合和不满足投票准则的变量节点的集合,再衡量各个集合的可靠性,从可靠性最低的变量节点集合中利用点残差度量选择残差最大的变量节点来更新。可以看出,本发明的选择策略把大范围的搜索缩小到了一个较小的搜索范围,充分利用了译码过程中信息的动态特性,通过层层筛选更加准确快速地选择需要更新的节点,进一步加快收敛速度,提高译码性能。

具体地,将上述动态选择策略具体应用在变量节点消息的更新中时,包括如下步骤:

S21.用稳定性判据对所有变量节点进行判定;若存在不满足稳定性判据的变量节点,则执行S21;若所有变量节点都满足稳定性判据,则从稳定变量节点集合N2中找出具有最大残差的变量节点在动态异步更新方法中优先被更新;

S22.根据投票准则再对不稳定变量节点集合N1中的变量节点进行一次判定,将N1分为集合N3和N4,N3表示N1中满足投票准则的变量节点的集合,N4表示N1中不满足投票准则的变量节点的集合,若N3存在有变量节点则从中找出残差最大的不稳定的变量节点在动态异步更新方法中优先被更新,否则就从N4中找出具有最大残差的变量节点在动态异步更新方法中优先被更新。

具体地,在一次迭代中一个消息更新过程的更新步骤包括:

S31.设所选择出来的变量节点为vi,对所有ca∈N(vi)更新消息其中N(vi)表示与变量节点vi相连的所有校验节点的集合,表示校验节点ca传递给变量节点vi的信息;

S32.更新vi,为避免vi在下次迭代中被连续选中,将残差r(vi)置为0,r(vi)表示变量节点vi的点残差;

S33.对任一校验节点ca∈N(vi),更新消息表示变量节点vi传递给校验节点ca的信息;

S34.对于所有vb∈N(ca)\vi,预计算变量节点vb的点残差,同时按变量节点投票方法计算变量节点的投票数,为下次迭代做准备,N(ca)\vi表示除变量节点vi外所有与校验节点ca相连的变量节点的集合。

具体地,本发明还包括:在消息更新后判断变量节点是否振荡,若变量节点振荡且是规则的LDPC码,则用式cur_LLR(n)←(1-α)·bef_LLR(n)+α·cur_LLR(n)来处理,反之不处理,其中bef_LLR(n)和cur_LLR(n)分别表示某一变量节点消息更新前后的LLR值,α=0.5。

变量节点振荡是指:针对对数域二进制LDPC码的译码过程,如果某一变量节点的LLR值前后两次的符号不同,那么此变量节点为振荡变量节点。

与现有技术相比,本发明具有的有益效果:本发明不单纯依靠残差为量度,而是设置了稳定性判据和投票准则来对变量节点的可靠性进行划分,优先从可靠性最低的变量节点集合中选择残差最大的变量节点作为最不可靠的变量节点,从而充分利用译码过程中消息动态变化的特性,合理地分配了计算资源,加快了收敛速度,提升了译码性能。

附图说明

图1是本发明的动态选择策略流程图;

图2是本发明的译码方法流程图;

图3是1/2-(504,252)LDPC码的纠错性能对比示意图;

图4是1/2-(1008,504)LDPC码的纠错性能对比示意图;

图5是1/2-(576,288)LDPC码在信噪比为2.5dB时收敛性能对比示意图。

具体实施方式

下面结合附图和实施例对本发明做进一步详细说明。

实施例:

如图1所示,一种基于变量节点可靠性动态选择策略的二进制LDPC码更新方法,在变量节点的点残差的基础上,利用稳定性判据和投票准则的动态选择策略选择出最不稳定的变量节点信息进行更新,所述变量节点可靠性动态选择策略包括如下步骤:

S11.根据稳定性判据对所有变量节点进行判定,其中不稳定的变量节点组成的集合称为不稳定变量节点集合,稳定的变量节点组成的集合称为稳定变量节点集合,若不稳定变量节点集合不为空集则执行S12,若不稳定变量节点集合为空集,则执行S13;稳定性判据定义为:若一个变量节点连续三次更新过程中LLR值未翻转,则该变量节点满足稳定性判据,反之不满足;

S12.根据投票准则再对不稳定变量节点集合中的变量节点进行一次判定,若不稳定的变量节点集合中存在满足投票准则的变量节点则从这些变量节点中找出残差最大的不稳定的变量节点在动态异步更新方法中优先被更新,否则就从不稳定的节点集合中的不满足投票准则的变量节点中找出具有最大残差的变量节点在动态异步更新方法中优先被更新;变量节点投票准则是指在对数域LDPC码的迭代译码算法中,若一个变量节点获得的投票数等于此变量节点的度数,则该变量节点满足变量节点投票准则,反之不满足;投票数的计算方法:不满足校验方程的校验节点对与其相连的变量节点投一票,由此得出变量节点的投票数;

S13.从稳定变量节点集合中选择点残差最大的变量节点在动态异步更新方法中优先被更新;

其中,点残差的计算公式为r(mk)=||f(mk)-mk||,当r(mk)是点残差时,mk和f(mk)分别表示更新前后变量节点的LLR值。

具体地,将上述动态选择策略具体应用在变量节点消息的更新中时,包括如下步骤:

S21.用稳定性判据对所有变量节点进行判定;若存在不满足稳定性判据的变量节点,则执行S21;若所有变量节点都满足稳定性判据,则从稳定变量节点集合N2中找出具有最大残差的变量节点在动态异步更新方法中优先被更新;

S22.根据投票准则再对不稳定变量节点集合N1中的变量节点进行一次判定,将N1分为集合N3和N4,N3表示N1中满足投票准则的变量节点的集合,N4表示N1中不满足投票准则的变量节点的集合,若N3存在有变量节点则从中找出残差最大的不稳定的变量节点在动态异步更新方法中优先被更新,否则就从N4中找出具有最大残差的变量节点在动态异步更新方法中优先被更新。

如图2,在一次迭代中一个消息更新过程的更新步骤包括:

S31.设所选择出来的变量节点为vi,对所有ca∈N(vi)更新消息其中N(vi)表示与变量节点vi相连的所有校验节点的集合,表示校验节点ca传递给变量节点vi的信息;

S32.更新vi,为避免vi在下次迭代中被连续选中,将残差r(vi)置为0,r(vi)表示变量节点vi的点残差;

S33.对任一校验节点ca∈N(vi),更新消息表示变量节点vi传递给校验节点ca的信息;

S34.对于所有vb∈N(ca)\vi,预计算变量节点vb的点残差,同时按变量节点投票方法计算变量节点的投票数,为下次迭代做准备,N(ca)\vi表示除变量节点vi外所有与校验节点ca相连的变量节点的集合。

具体地,本实施例还包括:在消息更新后判断变量节点是否振荡,若变量节点振荡且是规则的LDPC码,则用式cur_LLR(n)←(1-α)·bef_LLR(n)+α·cur_LLR(n)来处理,反之不处理,其中bef_LLR(n)和cur_LLR(n)分别表示某一变量节点消息更新前后的LLR值,α=0.5。

为了比较本发明提出的动态异步更新方法的性能,本实施例进行了计算机仿真。具体是,采用随机产生LDPC码在AWGN信道上传输,并利用包含本发明的方法在内的多种不同的译码算法进行译码,假设最大迭代次数为5,最大错误帧数为100帧,调制方式为BPSK,Eb/N0表示归一化信噪比,单位为分贝(dB)。

图3显示了(504,252)二进制LDPC码在AWGN信道上,采用各种不同的译码算法后的纠错性能对比图。从图中可以看出,在较低信噪比下如1.0dB-1.5dB,各动态调度译码算法的性能曲线几乎是重合的,也就是说各算法的纠错性能差别不大。但是,在1.5dB以后各算法的纠错性能发生了明显的变化。V-VCRBP算法的纠错性能在3.5dB时BER的曲线下降较快,在3.5dB前与OVRBP的BER曲线几乎重合,与OVRBP算法性能接近。OVRBP算法的性能与IVC RBP算法的性能相比略胜一筹。LQRD算法的BER性能居于NWRBP算法和IVCRBP算法之间。本发明的算法也EVRBP算法在各译码算法中的性能是最佳的。在BER=1.0×10-6时,EVRBP算法与VVC-RBP算法相比,EVRBP算法有0.2dB左右的性能提升。

图4显示了(1008,504)规则二进制LDPC码的纠错性能,随着码字的增长,本发明的算法的性能优越性更加明显。LLR BP算法、VC RBP算法以及NWRBP算法在本实施例所测试的信噪比区间内都没有其他译码算法性能好,而这三种算法中以NWRBP算法纠错性能最好,VC RBP算法次之,LLR BP算法的性能最差。LQRD算法比NWRBP算法的BER性能好。IVCRBP算法、OVRBP算法和V-VCRBP算法三条BER性能曲线挨得比较紧,并非像LLR BP算法、VC RBP算法和NWRBP算法的BER性能曲线那样散开得较明显。而从图中可以明显地看出,在观测信噪比范围内,本发明的算法(EVRBP)在所有算法中是最好的,而且可看出,它的BER性能曲线下降得有较大的幅度,无误码平底现象出现。在BER=1.0×10-6时,EVRBP算法与V-VCRBP算法相比有0.1dB的增益。

图5显示了(576,288)规则二进制LDPC码在固定信噪比2.5dB下各算法随着迭代次数增加的收敛性能对比图。从图中可以看出本发明的算法也即EVRBP表现出了很快收敛性。V-VCRBP算法、IVC RBP算法和OV-RBP算法的收敛速度不分上下。LQRD算法比NWBP算法的收敛速度稍占优势些。动态调度译码算法(如OV-RBP,EVRBP算法)的收敛性要比并行译码算法LLR BP算法和串行译码算法CSBP算法的收敛性好很多,这也说明动态调度译码算法可以通过更少的迭代次数达到收敛状态。在20次迭代以后,各算法的BER性能趋于稳定,也就是说他们的BER不再随着迭代次数的增加显著变化。另外,从图中也可看到EVRBP算法的BER性能比其他算法都好。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1