基于变量节点可靠性的低复杂度LDPC动态调度译码更新方法与流程

文档序号:12739135阅读:343来源:国知局
基于变量节点可靠性的低复杂度LDPC动态调度译码更新方法与流程

本发明涉及通信技术领域,具体涉及一种基于变量节点可靠性的低复杂度LDPC动态调度译码更新方法。



背景技术:

1962年Gallager在他的博士论文中首次提出LDPC码,同时对该码的定义、表示方法、编码方法和译码方法做了全面表述。但是由于当时技术条件的限制,LDPC码并未得到研究人员足够的关注。直到1996年MacKey和Neal两人基于Tanner图对LDPC码性能进行了深入研究,同时发现在码长足够长的情况,LDPC码的纠错性能逼近香农极限,掀起了LDPC码在编码领域的研究热潮。从近二十年的研究成果来看,人们对LDPC码的研究主要包括码字构造、译码算法优化、性能分析和LDPC码的实际应用等方面。目前LDPC码已广泛应用于深空通信、光纤通信、卫星数字视频和音频广播等领域。并且在移动通信领域,5G标准的中长码编码方案也已确认为LDPC码。

LDPC译码算法主要分为两大类,分别是硬判决译码算法和软判决译码算法。硬判决译码算法译码方式简单,易于硬件实现,但由于硬判决译码过程中未能充分利用信道概率信息,导致译码纠错性能较差。所以目前学者的研究主要针对于软判决译码算法。

软判决译码算法主要基于Gallager提出的置信传播译码算法即BP算法。在此基础上,根据消息更新的调度规则,软判决译码可分为三类:并行消息更新策略、串行消息更新策略和动态异步消息更新策略。其中动态异步消息更新策略的收敛速度最快、纠错性能最好,非常适合应用于对收敛速度和纠错性能要求高的场合。2007年Casado等人将基于残余度的置信传播策略引入到LDPC译码中,提出了一种基于残差的置信传播算法即RBP算法,把残差值的大小作为动态异步更新算法中的量度来选择需要更新的消息。RBP算法是一种贪婪算法,主要表现为,虽然RBP算法在最初的几次迭代中收敛速度下降很快,但是随着迭代次数的增加,误码率却不能持续下降。为了改善RBP算法的贪婪性,Casado在RBP算法的基础上提出了贪婪性较低的NW RBP算法。2009年,Kim等人提出了一种基于变量节点到校验节点消息残差的VC RBP译码算法,和NW RBP算法类似,Kim同时提出了NVC RBP算法以降低VC RBP算法的贪婪性。之后,Han和Gong等人提出了一种基于变量节点消息相对残余度的EDS-LBP算法,该算法首次提出了相对残差的概念,仿真结果证明了EDS-LBP算法优异的纠错性能。随后,Lee等人针对动态调度算法提出了贪婪集和沉默节点的概念,针对这两个问题,Lee分别提出了SVNF算法和Q-RBP算法作为相应的解决方案。

尽管上面所述的译码算法针对LDPC动态调度策略的问题提出了不同的解决方案,但动态调度译码仍然普遍存在一些问题:一是贪婪性。二是译码过程中变量节点和边的选取方法有待调整。三是动态调度译码策略的复杂度过高。所以,针对以上几个问题,本发明提出了SVC RBP算法。



技术实现要素:

本发明的目的是解决现有技术的缺陷,提供一种基于变量节点可靠性的低复杂度LDPC动态调度译码更新方法,采用的技术方案如下:

基于变量节点可靠性的低复杂度LDPC动态调度译码更新方法,在变量节点的点残差的基础上,利用振荡选择定理和变量节点校验度准则的动态选择策略选择出携带可靠外信息的变量节点进行更新,

所述变量节点可靠性动态选择策略包括如下步骤:

S11.根据变量节点的振荡选择定理对所有变量节点进行判定,其中振荡的变量节点组成的集合为振荡变量节点集合,记为N1,N1之外变量节点集合记为N2;若振荡变量节点集合N1不为空集则执行S12,若振荡变量节点集合为空集,则执行S13;其中,变量节点的振荡选择定理是指在LDPC码的迭代译码算法中,若一个变量节点的LLR值符号在更新前后出现翻转,则该变量节点是振荡的;

S12.根据变量节点校验度准则再对振荡变量节点集合N1中的变量节点进行一次判定,若N1中存在满足校验度准则的变量节点则从这些变量节点中找出残差最大的的变量节点在动态异步更新方法中优先被更新,否则就从N1中的不满足校验度准则的变量节点中找出具有最大残差的变量节点在动态异步更新方法中优先被更新;变量节点的校验度准则是指在对数域LDPC码的迭代译码算法中,若与变量节点vi相关的校验方程中,校验和为零校验方程个数大于α·dvi,则认为该变量节点携带的外信息是可靠的,也就是说变量节点vi满足校验度准则,反之不满足,其中dvi代表变量节点vi的度数,参数α为调整因子;

S13.若振荡变量节点集合N1是空集,则从非振荡变量节点集合N2中选择点残差最大的变量节点在动态异步更新算法中优先被更新;

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

本发明基于变量节点外信息的可靠性和残差大小的动态选择节点进行更新,开始将大范围内的变量节点按变量节点的振荡选择定理进行划分为两类,即振荡的变量节点和非振荡的变量节点。再利用变量节点的校验度准则来将振荡的变量节点的集合进行再一次划分,分为满足校验度准则的变量节点和不满足校验度准则的变量节点,一般满足校验度准则的变量节点所携带的外信息可靠性更高,而不满足校验度准则的变量节点携带的外信息可靠性相对较低。之后从可靠性相对较高的变量节点集合中利用点残差度量选择外信息最大的变量节点来更新。可以看出,本发明充分利用了译码过程中信息的动态特性,通过层层筛选更加准确快速地选择出可靠性更高且携带外信息最多的变量节点,通过向外更新的方式将信息快速传递到其他节点,从而提高译码性能。

作为优选,所述调整因子α=0.75。

α取0.75时算法的纠错性能最好。

作为优选,将所述变量节点可靠性动态选择策略具体应用在基于变量节点的消息更新顺序中,具体步骤包括如下:

S21.用变量节点的振荡选择定理对所有变量节点进行判定;若存在满足变量节点的振荡选择定理的变量节点,则执行S22;若不存在满足变量节点的振荡选择定理的变量节点,则从非振荡变量节点中找出具有最大残差的变量节点在动态异步更新方法中优先被更新;

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

作为优选,在一次迭代中一个消息更新过程的步骤包括:

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

S32.为避免vi在下次迭代中被连续选中,将残差r(vi)置为0;

S33.对于所有变量节点vb∈N(ca)\vi,更新信息同时更新变量节点vb,并计算vb的点残差,为下次迭代做准备,其中N(ca)\vi表示除变量节点vi外所有与校验节点ca相连的变量节点的集合,表示校验节点ca传递给变量节点vb的信息。

与现有技术相比,本发明的有益效果:

本发明不单纯依靠残差为量度,而是设置了变量节点的振荡选择定理和校验度准则来将所有变量节点按外信息可靠性的高低和可靠性的大小依次划分了几类,优先从携带可靠外信息的变量节点集合中选择残差最大的变量节点进行更新,这样可以充分利用译码过程中消息动态变化的特性,使变量节点信息快速传递到其他节点,提升了译码性能;同时,在译码过程中,本发明简化了动态调度译码算法的更新步骤,省略了传统动态调度译码中因引入边信息预计算带来的开销,提高了LDPC动态调度译码的吞吐量,降低了译码复杂度。

附图说明

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

图2是本发明的消息更新的流程图。

图3是在不同信噪比下,各种不同的译码算法对(576,288)二进制LDPC码的纠错性能对比图。

图4是在不同信噪比下,各种不同的译码算法对(1008,504)规则二进制LDPC码的纠错性能对比图。

图5是在不同信噪比下,各种不同的译码算法对(2304,1152)非规则二进制LDPC码的纠错性能对比图。

图6是在不同信噪比下,采用各种不同的动态调度译码算法对(576,288)二进制LDPC码进行译码时算法的吞吐量对比图。

图7是在固定信噪比2.5dB下各种不同的算法对(576,288)二进制LDPC码译码时随着迭代次数增加收敛性能对比图。

具体实施方式

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

实施例:

如图1所示,基于变量节点可靠性的低复杂度LDPC动态调度译码更新方法,在变量节点的点残差的基础上,利用振荡选择定理和变量节点校验度准则的动态选择策略选择出携带可靠外信息的变量节点进行更新,

所述变量节点可靠性动态选择策略包括如下步骤:

S11.根据变量节点的振荡选择定理对所有变量节点进行判定,其中振荡的变量节点组成的集合为振荡变量节点集合,记为N1,N1之外变量节点集合记为N2;若振荡变量节点集合N1不为空集则执行S12,若振荡变量节点集合为空集,则执行S13;其中,变量节点的振荡选择定理是指在LDPC码的迭代译码算法中,若一个变量节点的LLR值符号在更新前后出现翻转,则该变量节点是振荡的;

S12.根据变量节点校验度准则再对振荡变量节点集合N1中的变量节点进行一次判定,若N1中存在满足校验度准则的变量节点则从这些变量节点中找出残差最大的的变量节点在动态异步更新方法中优先被更新,否则就从N1中的不满足校验度准则的变量节点中找出具有最大残差的变量节点在动态异步更新方法中优先被更新;变量节点的校验度准则是指在对数域LDPC码的迭代译码算法中,若与变量节点vi相关的校验方程中,校验和为零校验方程个数大于α·dvi,则认为该变量节点携带的外信息是可靠的,也就是说变量节点vi满足校验度准则,反之不满足,其中dvi代表变量节点vi的度数,参数α为调整因子;

S13.若振荡变量节点集合N1是空集,则从非振荡变量节点集合N2中选择点残差最大的变量节点在动态异步更新算法中优先被更新;

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

本实施例中所述调整因子α=0.75。

将所述变量节点可靠性动态选择策略具体应用在基于变量节点的消息更新顺序中,具体步骤包括如下:

S21.用变量节点的振荡选择定理对所有变量节点进行判定;若存在满足变量节点的振荡选择定理的变量节点,则执行S22;若不存在满足变量节点的振荡选择定理的变量节点,则从非振荡变量节点中找出具有最大残差的变量节点在动态异步更新方法中优先被更新;

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

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

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

S32.为避免vi在下次迭代中被连续选中,将残差r(vi)置为0;

S33.对于所有变量节点vb∈N(ca)\vi,更新信息同时更新变量节点vb,并计算vb的点残差,为下次迭代做准备,其中N(ca)\vi表示除变量节点vi外所有与校验节点ca相连的变量节点的集合,表示校验节点ca传递给变量节点vb的信息。

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

如图3所示,在较低信噪比下(如1.0dB-1.5dB),各动态调度译码算法的性能曲线几乎是重叠的,各算法的纠错性能差别不大。随着信噪比的增大,各算法的纠错性能出现了明显的变化。在信噪比为2.0dB的时候,本发明的算法(SVC RBP)的纠错性能已经明显超越NW RBP和LQRD算法。各算法的性能曲线在3.5dB时差异比较明显,其中性能最好的是SVC RBP和OV RBP算法,在信噪比从1dB到3.0dB范围内,两者性能曲线几乎重叠且明显优于其他算法,说明SVC RBP算法和OV RBP算法的性能差别不明显。但是在3.0dB之后,OV RBP、IVC RBP和NW RBP性能曲线下降放缓,说明这三种算法都出现了不同程度误码平底,而SVC RBP性能曲线下降趋势依然明显,没有误码平底出现。在BER=1.0×10-6时,SVC BP算法与LQRD算法相比有0.3dB左右的性能提升。

如图4所示,针对(1008,504)规则二进制LDPC码的纠错性能,信噪比区间内纠错性能最好的是SVC RBP算法和OV RBP算法,紧随其后的是IVC RBP算法,LQRD算法纠错性能稍差与IVC RBP,但优于NW RBP算法。NW RBP算法、VC RBP算法和LLR BP算法在本实施例所测试的信噪比区间内纠错性能相对较差,而这三种算法中以NW RBP算法纠错性能最好,VC RBP算法次之,LLR BP算法的性能最差。从图中可以看出,在BER=1.0×10-5时,SVC RBP算法与LQRD算法相比有0.15dB左右的性能提升,而且随着信噪比的增加,SVC RBP未出现误码平底现象。

如图5所示,针对(2304,1152)非规则二进制LDPC码的纠错性能,所测试的信噪比区间内纠错性能最好的是SVC RBP算法,而且随着信噪比的增加,SVC RBP算法的性能逐渐超越IVC RBP和OV RBP算法。IVC RBP算法过早的出现误码平底,这导致了在信噪比大于1.9的区间,IVC RBP算法的纠错性能曲线逐渐远离SVC RBP算法和OV RBP算法。从图中可以看出,在BER=2.0×10-6时,SVC BP算法与OV RBP算法相比有0.12dB左右的性能提升。

吞吐量能够直观的反应译码算法的复杂度,条件一致的情况下,吞吐量越大,表明单位时间内能够正确译出的码字越多,也就是说译码算法复杂度越低。如图6所示(图中横坐标为信噪比,纵坐标为单位时间内成功译出的码字帧数),从图中可以看出吞吐量最高的是本发明提出的SVC RBP算法。虽然从图3和图4中可以看出IVC RBP算法和SVC RBP算法的纠错性能很接近,但IVC RBP算法的吞吐量远不如其他算法,说明IVC RBP算法比其他算法复杂度更高。综合来看,由于本发明的译码方法简化了动态调度译码的更新步骤,省去了边信息的预计算,因此本发明提出的SVC RBP算法在所有动态调度译码算法中吞吐量最大,也就是说复杂度最低。

如图7所示,从图中可以看出本发明提出的的SVC RBP算法相比其他算法有更快的收敛速度和更好的收敛误码性能。IVC RBP算法和LQRD算法的收敛曲线基本重叠,说明这两种算法收敛性能不相上下。NW RBP算法的收敛速度稍慢于LQRD算法,但随着迭代次数增加NW RBP的误码率呈现持续下降的状态,当迭代次数达到50次的时候,NW RBP算法误码率已经非常接近LQRD算法。从图中可以看出,动态调度译码算法的收敛性普遍要比并行译码算法LLR BP算法和串行译码算法CSBP算法的收敛性好很多,这也说明动态调度译码算法计算量的分配更加合理。总体来看,与其他算法相比,SVC RBP算法用更少的迭代次数就可以达到收敛状态,即SVC RBP有更好的收敛性。

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