尽管LLR BP算法以及一些改进的并行BP算法取得了一些性能的提高,但是它们并未利用当前更新的新信息,因此信息的利用率不够高,从而导致算法的收敛速度不够快。后来,一些学者们开始探索如何利用新消息来提升码字的性能。
1. SBP(Serial Belief Propagation)
(1)V-SBP
- 把所有与变量节点n相连的信息发送给变量节点n;
- 把信息从变量节点n发送给与n相连的所有校验节点。
(2)C-SBP
- 把所有与变量节点m相连的信息发送给变量节点m;
- 把信息从变量节点m发送给与n相连的所有校验节点。
上图(图1)展示了SBP算法一次消息更新过程,实体圆圈和黑色方框分别表示更新后的变量节点和校验节点,空心圆圈和方框分别表示未更新的变量节点和校验节点,具体更新步骤如下:
Step1: 对于第一个变量节点v0,更新与其相连的校验节点co和c3到变量节点v0的消息,如图1-(a)所示,此时变量节点v0是更新后的节点,携带着新信息。
Step2:更新变量节点v0到与它相连的校验节点co和c3的信息,如图1-(b)所示,更新后,校验节点co和c3信息用实体的黑色方框表示。
Step3:对第二个变量节点 v1 进行更新,与它相连的校验节点c1和c3 将消息传递给v1 ,如图1-(c)所示。
Step4: 依次按上面的规律对剩余的变量节点按顺序更新,直到所有的变量节点完成更新,所有变量节点更新完的过程称为一次译码迭代。
2. 并行调度译码算法
并行调度译码算法是一种软判决译码算法。在并行调度译码过程中,主要包括两个过程:一是所有校验节点到变量节点的消息同时进行并行更新;二是所有变量节点到校验节点的消息同时进行并行更新。因为这类算法本次更新的消息要到下次迭代才可使用,所以它的消息利用率较低。并行调度译码算法中主要以对数域上的BP算法,即LLR BP(log likelihood ratios belief propagation)算法为主。在LLR BP算法中,传递的消息采用对数似然比表示,很多乘法运算可以转化为加法运算,降低了计算复杂度。
图2 LLR BP译码算法流程图
为了更加形象地描述LLR BP译码算法,我们给出了此算法的流程图,如图2-6所示。所有变量节点从信道获得信息并完成信息初始化计算之后,便开始信息的传递,具体步骤如下:
Step1: 当按照箭头向下的方向传递消息,即所有的变量节点将来自信道的信息传递给与其相连的校验节点,校验节点按式进行消息计算。
Step2: 当按照箭头向上的方向传递消息,即更新后的校验节点把信息传递给与之相连的变量节点,变量节点通过式更新自己的信息。
Step3: 变量节点根据式计算最终的硬判决信息。若,那么,否则。
Step4: 计算HT,若满足HT = 0,或者迭代次数达到设定的最大值,则依次获得,得到译码输出后结束译码过程,否则进入下一次迭代。