5G NR QC-LDPC的解码方法(BF算法)(三)

对于线性分组码,译码的复杂度随码长呈指数增加,传统的基于最大似然译码(MLD)准则的译码算法对于LDPC码这样的长码来说,是很困难的、或者说是不现实的。LDPC码的译码算法通常称之为置信传播算法(Belief Propagatiol Algorithm),这是一种选代的概率译码方法,是LDPC码特征之一,也是其性能优越的原因之一。

硬判决位翻转译码

先介绍一种简单的LDPC码译码算法,由Gallager 在其论文中提出的被命名为 Gallager 硬判决的译码算法。这种算法仅适用于BSC信道,也称之为比特翻转算法(Bit Flipping Algorithm),可看成是置信传播算法的简化形式。

设码字向量x经过 BSC 信道接收的硬判决值为z,s为伴随子向量,比特翻转(BF)算法可简单描述为:

  1. 首先计算方程s = z*(H的转置),统计每位接收值y不足校验方程的个数。
  2. 找出不满足校验方程的个数最多的z,如不满足的个数大于某设定值,将其翻转,得到新的向量z‘。
  3. 判断条件:由量代z’计算方程s= z*(H的转置),如s=0则正确译码输出。否则重复第1~3步,反复迭代,直到迭代至最大迭代次数。

具体的算法操作步骤如下:
步骤1:
在这里插入图片描述
在这里插入图片描述
步骤2:将接受序列z代入s = z*(H的转置),若得出全为零的向量,停止,输出接收序列z,否则转下一步。
步骤3:通过f=sH来计算得出接收序列中每个码元不满足校验矩阵等式的个数,并找出最大的元素fi。
步骤4:反转fi对应的zi。
步骤5:将新得到的序列代替原来的序列,重新计算s = z
(H的转置),若伴随式为全0向量则停止译码成功;若伴随式为非全0向量,则判断是否达到最大迭代次数,达到则停止迭代,以最后一次的结果作为译码结果,否则转入步骤3。

小例子:
在这里插入图片描述

软判决位翻转译码

之前提到的位翻转译码算法是简单的硬判决方法,通过在译码时加上接收信号的可信度信息可以改进这个方法。

考虑均值为0,方差为N0/2的AWGN信道,计算出码元的对数似然函数为:
在这里插入图片描述
计算得出yi的最大值与最小值:
在这里插入图片描述
计算第l个码字位的度量标准:
在这里插入图片描述
其中各个元素的值可以通过下式得出:
在这里插入图片描述
其中s通过公式s = z*(H的转置)得出。

软判决译码算法的步骤如下:
步骤1:首先得出硬判决二元向量序列Z,计算出y序列,设置迭代计数为0以及最大迭代次数。

步骤2:计算伴随式s,如果s=0,则停止迭代,否则转入下一步。

步骤3:计算出每个信息为的Θ,找出最小的Θ。
在这里插入图片描述
步骤4:翻转最小的Θ对应的接收码字,标记第i次迭代时的信息元,则:
在这里插入图片描述
公式中的e为K维向量,在第i位为1,其余位为0。(这个公式就是翻转操作)

步骤5:将新得到的序列与原来的序列进行替换,若伴随式为全0向量,则译码成功;若伴随式为非全0向量,则判断是否达到最大迭代次数,是,则停止迭代,以最后一次结果为译码结果,否则转入步骤3。

软硬判决翻转译码算法的性能对比

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/daijingxin/article/details/115292737