介绍一种LDPC码译码器
介绍比特翻转译码原理以及LDPC码译码器的设计。
1 译码理论
比特翻转(BF)译码算法是硬判决算法的一种。
主要译码思想是:当有一个校验矩阵出错时,BF 算法认为在这个校验矩阵中一定至少存在一个位置的码字信息是错误的;同时,BF 算法认为出现在出错校验矩阵中的次数最多的比特是最有可能出现误码的。所以,BF 算法在每次迭代时对这些比特进行翻转。
在每一次迭代中翻转码字Z 中的比特,并计算伴随式S,当伴随式S 为全零向量或者达到最大迭代次数时结束译码。
但是,比特翻转译码算法就会有一个缺陷,即当一个正确码字所在的四个校验方程出错时,译码器也会判断
出错。由于校验矩阵的稀疏性,正确码字的四个校验方程同时出错的概率极低,所以只翻转最大
对应比特。
但是,当时,正确码字的两个校验方程出错概率就较高,此时进行批量比特翻转就会带来更多新的误码。
2 译码器模块
译码器模块中包含的两个子模块为伴随式计算模块和翻转位置计算模块,分别计算每次迭代的伴随式S 和比特翻转位置,在迭代结束后译码器按位输出译码后的码字。译码器模块框图如下图所示。
首先从外部输入码字到顶层模块中的寄存器,当一帧数据输入完毕后,顶层模块控制伴随式计算模块运行并将寄存器中的数据按位输入到伴随式计算模块中。伴随式计算模块计算完毕后,将S 输出给顶层模块,然后顶层模块进行判断:若S 为全零向量或译码达到最大迭代次数时,结束译码然后开始按位输出译码后的码字;否则,控制翻转位置计算模块运行,并将S 输入到该模块当中。翻转位置计算模块由S 计算需要翻转的比特位置,然后输出给顶层模块进行比特翻转;翻转完毕后,进行下一次译码迭代。