动态调整最大迭代次数的低密度奇偶校验码迭代译码方法
技术领域
本发明涉及通信领域中信道编解码技术领域,尤其涉及一种动态调整最大迭代次数的低密度奇偶校验码(LDPC)迭代译码方法。
背景技术
在通信系统中,由于传输信道存在噪声、衰落、多径,必然会对传输数据引入失真和信号判决错误。信道编码技术通过在信息序列中加入冗余码元,来发现、纠正传输中发生的信号错误,从而提高系统的可靠性。
奇偶校验码是一种能够逼近香农(Shannon)限的性能优异的信道编解码方法。LDPC码于1960年被发现,但是直到35年后才得到广泛的关注。目前的研究表明,非规则的LDPC长码的性能可以优于Turbo码。LDPC码具有良好的距离特性,小的误码错误,码率容易调整,而且当码长适当时不存在误码平台。
从1960年到现在,许多独立的研究提出了各种LDPC的解码算法。例如,和积算法(SPA)、置信传播算法(BPA)、消息传递算法(MPA)等基础算法,以及它们引伸出的其他算法。这些解码算法都可以归结为消息传递算法,实质是一种迭代算法。消息在变量节点和校验节点之间来回传递,从而不断更新。迭代停止条件为:当迭代次数达到最大迭代次数,或者通过判断知道译码已经正确时,结束迭代译码,并输出译码结果。
在通信系统中的LDPC解码器,两个重要的要求是高性能和高效率。前者要求误码率越低越好。后者要求解码器在一定的时间内完成一定数量的数据解码,从而达到一定的数据吞吐率。而且总是希望在同样的系统实现复杂度下,数据吞吐率越高越好。
LDPC译码算法中,最大迭代次数直接影响译码性能。在同样的信道条件下,选择最大迭代次数的数值越大,LDPC译码算法的译码误码率越低,性能越高。但是,选择最大迭代次数的数值越大,在硬件实现上为每次译码所分配的时间就越多,降低了数据吞吐率,效率越低。
目前的LDPC译码算法中迭代停止条件为:当迭代次数达到最大迭代次数,或者通过判断知道译码已经正确时,结束迭代译码,并输出译码结果。而且在目前LDPC译码算法中,最大迭代次数在译码过程中都选择为一个固定值。
在一定信道信噪比条件下,一部分LDPC译码的实际迭代次数往往要小于这个固定的最大迭代次数,为本次迭代分配的时间仍有剩余,造成时间的浪费。而另一部分LDPC译码的实际迭代次数达到这个固定的最大迭代次数时仍然没有正确译码,却被强行停止迭代译码,造成译码性能的损失。
发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种动态调整最大迭代次数的低密度奇偶校验码迭代译码方法,以在同样的数据吞吐率下,有效降低各种LDPC解码算法的误码率。
(二)技术方案
为达到上述目的,本发明提供了一种动态调整最大迭代次数的低密度奇偶校验码迭代译码方法,该方法包括:
预先将每次LDPC译码时实际使用的迭代次数与最大迭代次数的差值累加,将该累加结果作为剩余可用迭代次数R;
根据当前剩余可用迭代次数R与最大迭代次数的初始值,动态调整本次的最大迭代次数;
启动LDPC迭代译码,当迭代次数达到动态调整后的最大迭代次数,或者通过判断知道译码已经正确时,结束迭代译码。
上述方案中,该方法在执行启动LDPC迭代译码,当迭代次数达到动态调整后的最大迭代次数,或者通过判断知道译码已经正确时,结束迭代译码的步骤的同时,进一步包括:在一个设定时间段内,累加每次LDPC译码操作实际使用的迭代次数与最大迭代次数的差值,并将累加结果赋给剩余可用迭代次数R;每当时间超过设定时间段时,把累加值赋零。
上述方案中,该方法在结束迭代译码后进一步包括:输出译码结果,然后计算并更新剩余可用迭代次数。
上述方案中,所述计算并更新剩余可用迭代次数的步骤包括:计算每次LDPC译码操作实际使用的迭代次数与最大迭代次数的差值,将计算的该差值进行累加得到一个累加结果,然后将该累加结果作为剩余可用迭代次数。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的这种动态调整最大迭代次数的低密度奇偶校验码迭代译码方法,改进了目前各种LDPC迭代译码方法中迭代停止条件,将迭代停止条件改进为:当迭代次数达到动态调整后的最大迭代次数,或者通过判断知道译码已经正确时,结束迭代译码,并输出译码结果。
2、本发明提供的这种动态调整最大迭代次数的低密度奇偶校验码迭代译码方法,在同样的数据吞吐率下,有效降低了各种LDPC解码算法的误码率。
附图说明
下面结合附图和实施例对本发明进一步说明:
图1是本发明提供的动态调整最大迭代次数的LDPC迭代译码方法实现的流程图;
图2是本发明提供的实施例中动态调整最大迭代次数的LDPC迭代译码方法的流程图;
图3是依照本发明第一个实施例(9216,4608)规则LDPC码的误码率曲线,其中调整本次最大迭代次数采用方法B1;图中同时给出了未改进的标准BP算法误码率曲线;
图4是依照本发明第二个实施例(9216,4608)规则LDPC码的误码率曲线,其中调整本次最大迭代次数采用方法C1;图中同时给出了未改进的标准BP算法误码率曲线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明的目的是改进目前各种LDPC迭代译码方法中迭代停止条件,提出动态调整最大迭代次数的LDPC迭代译码方法。在同样的数据吞吐率下,有效降低各种LDPC解码算法的误码率。
如图1所示,图1是本发明提供的动态调整最大迭代次数的LDPC迭代译码方法实现的流程图,该方法包括:
步骤101:预先将每次低密度奇偶校验码LDPC译码时实际使用的迭代次数与最大迭代次数的差值累加,将该累加结果作为剩余可用迭代次数R;
步骤102:根据当前剩余可用迭代次数R与最大迭代次数的初始值,动态调整本次的最大迭代次数;
步骤103:启动LDPC迭代译码,当迭代次数达到动态调整后的最大迭代次数,或者通过判断知道译码已经正确时,结束迭代译码。
上述步骤102包括:
A1、先设定LDPC译码算法最大迭代次数为一个初始值N,并初始化剩余可用迭代次数R为零;
A2、在每次译码开始前,根据译码器当前剩余可用迭代次数R与初始值N,调整本次最大迭代次数的数值。
在上述步骤A2中,调整本次最大迭代次数的方法可以有多种不同实现方法,其中一种方法B1包括:在每次译码时,把译码器当前剩余可用迭代次数R与初始值N相加,作为本次最大迭代次数。
在上述步骤A2中,调整本次最大迭代次数的方法可以有多种不同实现方法,其中另一种方法C1包括:设定一个迭代上限值L,在每次译码时,把译码器当前剩余可用迭代次数R与初始值N相加,当该相加结果小于L时,把该相加结果作为本次最大迭代次数;当该相加结果大于L时,把L作为本次最大迭代次数。
在本发明中,调整本次最大迭代次数的方法并不限于以上B1和C1两种方法。
本发明提供的这种动态调整最大迭代次数的LDPC迭代译码方法,在执行上述步骤103的同时,进一步包括:
步骤104:在一个设定时间段内,累加每次LDPC译码操作实际使用的迭代次数与最大迭代次数的差值,并将累加结果赋给剩余可用迭代次数R;每当时间超过设定时间段时,把累加值赋零。
本发明提供的这种动态调整最大迭代次数的LDPC迭代译码方法,在执行上述步骤103后进一步包括:输出译码结果,然后计算并更新剩余可用迭代次数。所述计算并更新剩余可用迭代次数的步骤包括:计算每次LDPC译码操作实际使用的迭代次数与最大迭代次数的差值,将计算的该差值进行累加得到一个累加结果,然后将该累加结果作为剩余可用迭代次数。
基于图1所示的动态调整最大迭代次数的LDPC迭代译码方法实现的流程图,图2示出了本发明提供的实施例中动态调整最大迭代次数的LDPC迭代译码方法的流程图。
图3是依照本发明第一个实施例(9216,4608)规则LDPC码的误码率曲线,其中调整本次最大迭代次数采用方法B1,被改进的算法为标准BP算法;图中同时给出了未改进的标准BP算法误码率曲线;
在图3被改进的标准BP算法中,设定初始最大迭代次数N=30次。未改进的标准BP算法中,固定最大迭代次数是30次。在上述步骤104中,设定时间段大小为:未改进的标准BP算法15次完整译码所占用的时间。
图4是依照本发明第二个实施例(9216,4608)规则LDPC码的误码率曲线,其中调整本次最大迭代次数采用方法C1,被改进的算法为标准BP算法;图中同时给出了未改进的标准BP算法误码率曲线。
在图4被改进的标准BP算法中,设定初始最大迭代次数N=30次。调整本次最大迭代次数采用方法C1时,迭代上限值L=90。未改进的标准BP算法中,最大迭代次数固定为30次。在上述步骤104中,设定时间段值为:未改进的标准BP算法15次完整译码所占用的时间。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。