1962年Gallager提出低密度校验(Low DensityParity Check,LDPC)码,后来Tanner对它进行了很有价值的补充,直到1995年又被Mackey重新提出。如果采用和积迭代译码算法,LDPC码具有非常接近香农限的性能。如果在LDPC码的Tanner图中存在环,在迭代译码的过程中错误信息将会膨胀,对于LDPC的译码性能相当有害,尤其是较短环的存在,所产生的危害尤为严重。所以,在构造LDPC的过程当中,要尽量避免短环的出现。为了尽量减小Tanner图中环的存在对相应LDPC码在和积译码算法下所得性能的影响,一些研究学者基于代数方法和启发式搜索方法,提出了一些具有较大围长的LDPC码构造方法。研究表明,通过增大LDPC码的围长,在一定程度上可以改善码的纠错性能。本文构造了正则LDPC码,在构造过程中讨论了设计围长的参数选举,使得满足一定的条件就可以避免校验矩阵的小围长出现,使得所构造的矩阵具有较大围长。
1.LDPC码的构造理论
考虑长为16的(2,4)正则LDPC码对应的Tanner,如图1所示。
从图1中很显然可以看出,该Tanner中环的最小长度为8,因此对应LDPC码的围长也为8。
按图1将其中的变量结点和校验结点依次编号,可以得到对应LDPC码的校验矩阵,如图2所示。
图2矩阵很有规律,可以看作是由两个行重为2、维数为8×8的循环方阵拼接而成。因此可以猜想,采用某些有规律的矩阵合并成校验矩阵,这样生成的LDPC码很可能会具有较大的围长。或者说,将LDPC码的校验矩阵分裂为若干个子矩阵,然后每个子矩阵再按照某种规律构造,就有可能避免小环的出现。
这里采用矩阵分裂的思想。设要构造一个长为72(n=ρUU∈N)的(λ,ρ)正则LDPC码,将该码的校验矩阵分裂为(λ,ρ)个U×U的子矩阵。
式中:每个子矩阵Hi,j=I(ai,j)(0≤i<λ,0≤j<ρ)均为一个单位阵或者单位阵的循环移位ai,j表示该单位阵的各行循环右移的位数。显然,这样构造的校验矩阵也不可能为满秩,至多为λρ-λ-1。
为便于描述,用A=(ai,j)表示由各个子方阵的循环移位参数组成的矩阵,用(I,J,i,j)表示校验矩阵中的元素,其中(I,J)为该元素所属的子矩阵的坐标,(i,j)为该元素在它所属的子矩阵中的坐标。称Tanner图中每个变量结点参与的所有环的最小长度为该变量结点的环长,则显然相应LDPC码的围长就等于各个变量结点环长的最小值。将n个变量结点分为P组,每一组变量结点对应一列子矩阵,则考虑到各个子矩阵的循环特性,有如下定理成立。
定理1 属于同组的变量结点具有相同的环长。
证明:设任意两个同组的变量结点x和y,分别对应一列子矩阵的第x列和第y列,且y-x=dmodU,其环长分别为C(x)和C(y),并设变量结点x的最小环路径如图3所示。
根据各个子矩阵的循环特性,可以找到另一个环的路径如图4所示。
显然该环路长度为C(x)且经过变量节点y,故有:
C(x)≥C(y) (2)
同理可得:
C(x)≤C(y) (3)
综合上面两式,有C(x)=C(y)即对任意两个同组的变量节点,它们的环长均相等,证毕。
由定理1可知,按照上述方法构造的校验矩阵所对应的LDPC码,所有变量节点的环长至多有ρ种情况,因此对这样构造的矩阵只需要分别从各组中抽取一个变量节点,然后只对这ρ个变量节点进行检测,即可确定整个码的围长。
2校验矩阵中循环移位参数的选取
下面讨论4环的情况。如果一个LDPC码含有4环,则它所对应的校验矩阵中必然有4个“1”处于某个矩形的四个顶点,该环路路径可表示为:
定理2 按照式(1)所示矩阵分裂方法构造的矩阵所对应的LDPC码不含长为4的环的充要条件有式(6)成立:
该定理的正确性从前面的描述中即可得知,这里不再赘述。