怎么说呢,一直以来都想写一下博客。近半年多来我一直在学习LDPC码译码上的东西,主要是在FPGA实现上的,所以这次想写一些关于这方面的内容,包括译码的原理、仿真以及实现。(当然是基于准循环LDPC码上实现的) 不过呢,我写这个的初衷是为了让初学者理解入门用的,而不是在大牛面前班门弄斧,有错误之处欢迎大家批评指正。 不知道会不会有人一开始像我一 在我当下认知中,LDPC码译码的核心就是一切围绕着那个稀疏校验矩阵做周而复始、循环往复的打转。而该码型为啥倍受人们喜爱呢,原因就在于它是一个稀疏矩阵。这就好比当你拖着无比沉重的身躯行走在即将过零点的地铁中时,这时你突然发现整节车厢都是空的!随心所欲地躺在一排位置上,舒服!一个稀疏矩阵中的那些0值就好比车厢中的空位置,你可以跑到任意位置对它进行操作,也可以理都不理它,当然我们通常选择的是后者。下面先给大家附上我所用的校验矩阵,该矩阵是CCSDS提供的(8176,7154)码,行重32,列重4。 这里面,每一行数值为1的校验节点和所要判断的码字d组成一个校验方程,对于每一列亦是如此。 以下是分割线 ================================================================= ================================================================= 好了,下面才是我今天主要想讲的内容——关于LDPC码译码的概率公式和公式中每个符号的含义。 所谓的译码过程,实则是一个概率计算的过程,好比说当下式的值大于1时那我们就会将输出值判决为1,and vice versa. 此公式就是我们整个LDPC译码的核心,下面我就先讲一讲每个符号的含义以及此公式的证明方法。 假设我们考虑接收到的码字为y,发送码字为c,S表示所发送的码字符合这j个校验方程的集合(我的理解是加上了这个约束条件相当于考虑了不同发送码字之间的相关性)。上式中 看到这样一个复杂而又庞大的公式,不要怕,要像剥洋葱一样对待它~ 我们先来证明以下引理:一个长为m的相互独立的二进制序列,其中第L个比特是1的概率为 利用构造函数的方法,对于t的m次多项式 数学归纳法证明如下:
综上,对于t的m次多项式 同理,对于多项式 由此根据引理以及条件概率公式,我们可以得到 在上式 同理,可得 由此,我们可以得到最初的公式 关于LDPC码译码的概率公式就先推导到这啦,下次再和大家讲如何从上述公式推演出BP算法以及在工程中如何 希进行初始化的。另外希望大家看了后能留下宝贵的建议,我也好努力往更好的方向发展。 |
|