当前位置: 代码迷 >> 综合 >> LDPC Codes 的译码算法
  详细解决方案

LDPC Codes 的译码算法

热度:93   发布时间:2023-12-24 03:36:24.0

  尽管LLR BP算法以及一些改进的并行BP算法取得了一些性能的提高,但是它们并未利用当前更新的新信息,因此信息的利用率不够高,从而导致算法的收敛速度不够快。后来,一些学者们开始探索如何利用新消息来提升码字的性能。

1. SBP(Serial Belief Propagation)

SBP 通过改变校验节点(check nodes)与变量节点(variable nodes)信息交换的次序,达到更好的利用已经更新的信息,加快译码收敛速度,可分为V-SBP(变量节点串行BP算法)和C-SBP(校验节点串行BP算法)。

(1)V-SBP

  • 把所有与变量节点n相连的信息发送给变量节点n;
  • 把信息从变量节点n发送给与n相连的所有校验节点。

(2)C-SBP

  • 把所有与变量节点m相连的信息发送给变量节点m;
  • 把信息从变量节点m发送给与n相连的所有校验节点。
【注释】
在第 i 次迭代中,当初变量节点 n 外其他与校验节点 m 相连的变量节点消息确定的情况下,n 被判定为符号 a 时,校验节点 m 所属的检验方程成立的概率。    校验节点 m-->n
:第 i 次迭代中,当知道除 m 以外的其他校验节点所发信息时, n 被判定为 a 的概率。  变量 节点 n-->m
                   
                                                               图1

上图(图1)展示了SBP算法一次消息更新过程,实体圆圈和黑色方框分别表示更新后的变量节点和校验节点,空心圆圈和方框分别表示未更新的变量节点和校验节点,具体更新步骤如下:

Step1: 对于第一个变量节点v0更新与其校验节点coc3变量节点v0消息,如1-(a)所示,此时变量节点v0是更新后的节点,携带着新信息。

Step2:更新变量节点v0到与连的校验节点coc3的信息,如图1-(b)所示,更新后,校验节点coc3信息用实体的黑色方框表示。

Step3:对第二个变量节点 v进行更新,与它相校验节点c1c将消息传递给v1 ,如图1-(c)所示。

Step4: 依次按上面的规律对剩余的变量节点按顺序更新,直到所有的变量节点完成更新,所有变量节点更新完的过程称为一次译码迭代。

2. 并行调度译码算法

   并行调度译码算法是一种软判决译码算法。在并行调度译码过程中,主要包括两个过程:一是所有校验节点到变量节点的消息同时进行并行更新;二是所有变量节点到校验节点的消息同时进行并行更新。因为这类算法本次更新的消息要到下次迭代才可使用,所以它的消息利用率较低。并行调度译码算法中主要以对数域上的BP算法,即LLR BPlog likelihood ratios belief propagation)算法为主。在LLR BP算法中,传递的消息采用对数似然比表示,很多乘法运算可以转化为加法运算,降低了计算复杂度。

                 

                                                    图2  LLR BP译码算法流程

   为了更加形象地描述LLR BP译码算法,我们给出了此算法的流程图,如图2-6所示。所有变量节点从信道获得信息并完成信息初始化计算之后,便开始信息的传递,具体步骤如下:

Step1: 当按照箭头向下的方向传递消息,即所有的变量节点将来自信道的信息传递给与其相连的校验节点,校验节点按式进行消息计算。

Step2: 当按照箭头向上的方向传递消息,即更新后的校验节点把信息传递给与之相连的变量节点,变量节点通过式更新自己的信息。

Step3: 变量节点根据式计算最终的硬判决信息。那么,否则

Step4: 计算HT,若满足HT = 0,或者迭代次数达到设定的最大值,则依次获得,得到译码输出后结束译码过程,否则进入下一次迭代。