专利名称:一种算法复杂度低的准循环ldpc码的构造方法
技术领域:
本发明属于通信技术领域,具体涉及一种快速的设计准循环LDPC码的算法。
背景技术:
LDPC码(低密度校验码)[1]是一种校验矩阵为稀疏矩阵的线性校验码。由于误码率在高斯白噪声下可以接近香农极限,近些年来LDPC码得到了广泛的关注。而QC-LDPC码(准循环低密度校验码)由于可以以线性复杂度被编码,近些年来成为了研究的热点。
LDPC码可以由其校验矩阵H或其所对应的Tanner图所唯一确定[2]。LDPC码的校验矩阵是一个n×m的稀疏矩阵。如果矩阵的每一行和每一列都有相同的重量j,k(一行或一列的中1的个数称为重量)称这种LDPC码是规则的,否则这种LDPC码是不规则的。LDPC码性能与该码对应的Tanner图中的最小环的长度有很大的关系。我们称该最小环长度为该LDPC码的围长g。Tanner在[2]证明了LDPC码得最小距离dmin的下界随着围长g的增长指数增长。而且,当使用迭代解码算法(如BP(brief propagation)算法)时候,围长大的码一般比围长小的码收敛得快。因此,在设计LDPC码得时候,一般都首先考虑围长g的大小。
现有设计QC-LDPC码的方法主要有以下的几种。基于有限域上的几何[3]的方法,这种方法的缺点是只能保证构造出g>4的码。Fossorier在[4]中给出了使用循环置换矩阵构造的LDPC码的围长g和行列的重量j,k之间的关系,但是并没有给出有效的构造方法。有人提出了一种半随机的消去短环的算法,不过这种算法的复杂度十分高[5]。有人使用将矩阵倍乘的方法来消去短环,也具有比较高的复杂度[6]。另外,这些方法有一个共同的缺点,就是不够灵活,无法对生成的LDPC码的参数进行控制。
中提出了一种非代数的构造LDPC码的算法,称为PEG(progressive edge-growth)算法,这种算法在Tanner图中一次添加一条边来生成需要的LDPC码,具有较低的算法复杂度和较好的灵活性。
发明内容
本发明的目的在于提出一种算法复杂度低的QC-LDPC码的构造方法。
本发明提出的QC-LDPC码构造方法,是一种改进的PEG算法。该方法不仅能够构造具有较大最小环的QC-LDPC码,而且设计灵活,适用正则和非正则QC-LDPC码的构造,而算法的复杂度却很小,是一种灵活快速高效的QC-LDPC码的构造方法。
LDPC码是一种冗余编码,它的构造决定于奇偶校验矩阵H,这是一个只包含‘0’和‘1’且‘1’占很小比例的稀疏矩阵。和所有的线性分组码一样,域GF(2)上的(n,k)维编码C可用(n-k)×n的奇偶校验矩阵H来描述C={x|x∈GF(2),HxT=0}。因此,本发明构造QC-LDPC码,主要是构造出相应的奇偶校验矩阵。
本发明构造QC-LDPC码奇偶校验矩阵H,包括2个步骤1、构造QC-LDPC码奇偶校验矩阵的指数矩阵M(H);2、通过指数扩展把指数矩阵M(H)变换成QC-LDPC码的奇偶校验矩阵H。
具体介绍如下1、构造指数矩阵M(H)。设指数矩阵M(H)的大小为m×n,置换矩阵的大小为q×q。关于指数距阵、置换矩阵和加权Tanner图的介绍见附录1。该过程分为以下几步A、建立一个全空的的m×n距阵,即所有的元素都是#。也就是没有任何变化的加权Tanner图。
B、使用算法1对加权Tanner图的每个数据节点添加规定数目的边。算法1的描述如下在加权Tanner图中,一个顶点的度定义为与其相连的边的数目。对于每个变量节点vi,我们设计其度为dvi。对校验节点cj的度不加限制,不过规定其度尽可能的平均分布。那么我们可以分别对每个节点vi依次添加dvi条边,每条边的添加规则是使添加边产生的环的长度最大,由定理2可知,应当添加一条权值为l的边e(vi,cj)_E,使dijmin(l)最大。有可能出现有很多种可以选择的cj和l,在本算法里,我们在具有最小的度的校验节点中随机的选择一个cj和l。
算法的伪代码见算法1,其中n为数据节点的数量,fvi是vi的度,Evik是vi第k+1次添加的边。
C、使用算法2对每个数据节点更新最短距离。算法2的描述如下添加一条边e(vi,cj)后,只有dksmin(l)(k≤i),需要被更新,因为vk(k≥i)没有和任何边连接。根据k,s的不同可以分几种情况讨论(下面的所有的关于权值的加法都是mod q的。)I、如果k=i,s=j,则dksmin(w)=1---(1)]]>II、如果k=i,s≠j,则取t≤i。vi到cs的路径如下所示因此dksmin(l)new=minw-l1+l2=l{dksmin(l),(1+dtjmin(l1)+dtsmin(l2))}---(2)]]>III、如果k≠i,s=j,则取vt∈V。vi到cs的路径如下所示因此dksmin(l)new=minw-l1+l2=l{dksmin(l),(1+ditmin(l1)+dktmin(l2))}---(3)]]>
IV.如果k≠i,s≠j,则vk到cs的路径如下所示因此dksmin(l)new=min-w+l1+l2=l{dksmin(l),(1+dkjmin(l1)+dismin(l2))}---(4)]]>算法的伪代码见算法2,其中m是校验节点的数量,n是数据节点的数量,i,j分别为这次添加的边对应的数据节点和校验节点。
D、如果还有数据节点没有添加边,则转到B。
E、当所有的边都被添加后就得到了所需要的指数矩阵M(H)。
2、由指数矩阵M(H)扩展成校验距阵H。每个指数矩阵的元素在H中对应的是一个q×q的循环置换距阵,从而将m×n的指数矩阵M(H)转化成需要的mq×nq的QC-LDPC码奇偶校验矩阵H。将M(H)扩展成H,是指在指数矩阵M(H)中,在值为P(非0)的位置转换成用q×q的单位矩阵每行右移P位后的循环置换矩阵;在值为0的位置,置换成q×q的全零矩阵。其中M(H)ij在H对应的矩阵范围为H[i×q..(i+1)×q j×q..(j+1)×q,]。经过扩展后就得到了所需的H。
本发明利用贪心算法的思想,在QC-LDPC码奇偶校验矩阵的指数矩阵上不断添加边,来构造满足需要参数的奇偶校验矩阵,同时利用在添加列的过程中记录校验节点和数据节点的最小距离,作为构造过程中避免小环出现的参考信息,从而极大地提高了设计的速度。
本发明的技术效果1、算法复杂度每次添加一条边,主要的算法复杂度是使用(6),(7),(8)式来更新最短距离。
(6)式的算法的复杂度为iq2,(7)式的算法复杂度为mq2,(8)的算法复杂度为q2。每次更新的过程需要用到m次((6)式),n次((7)式),(m-1)(n-1)次((8)式)。总的复杂度为miq2+nmq2+(m-1)(n-1)q2≤3mnq2。因此一次更新的复杂度为O(mnq2),比[5]中的算法要有效的多。
2、仿真结果A.构造QC-LDPC码的时间在码的生成速度方面,在P4 3.0G,1G内存的环境下使用本发明的算法生成图2中的LDPC码(N=1008,M=504,MaxDeg=15),其中N为校验距阵的列数,M为校验矩阵的行数,MaxDeg为数据节点的最大的度。耗时7秒,使用原始的PEG算法(代码可以从[10]下载)耗时21秒,而使用[5]中的算法耗时1352秒。可以看出,本发明中的算法在速度上有明显的优势。
B.QC-LDPC码的性能本文使用的仿真算法是TDMP算法[8],这种算法具有收敛速度快的优点,最大的迭代次数是100次,采用BPSK调制,AWGN信道。
从图2和图3中可以看出。本发明构造的LDPC码的性能与原始的PEG算法[4]生成的代码相比具有比较明显的优势。原始的PEG算法生成的LDPC码是从[9]下载的。
图1为一个M(H)和其对应二分图的例子。
图2为N=1008,M=504,MaxDeg=15的仿真结果。
图3为N=504,M=252,MaxDeg=15的仿真结果。
附录一.Quasi-Cyclic LDPC码的定义QC-LDPC码的校验矩阵H,定义如下 其中勺Pij∈{#}∪{01…q-1},q质数,当Pij=#时,QPmn为q×q的全零矩阵,当Pij∈{01…q-1}时,QPmn为将q×q的矩阵右移Pmn位得到的循环置换矩阵;很明显,校验矩阵H由以下的指数矩阵M(H)所唯一的确定 对于这个矩阵,我们同样定义其行列重量I,J为非0元素的个数。另外我们采用和文献[2]中相似的方法定义一种二分图,成为加权Tanner图。在这里我们使用和Tanner图相同的术语来描述这个图。由M(H)mn,mn为M(H)的阶数,定义n个数据节点v1,v2,...,vn和m个校验节点c1,c2,...,cm,记所有数据节点的集合为V,校验节点的集合为C。如果Pij≠#,那么我们添加一条边e(vi,cj),并且给这条边一个权值w(e(vi,cj))=Pij。记所有边e(vi,cj)的集合为E,很显然,这个图是一个二分图,即得到与M(H)对应的加权Tanner图。图1给出了一个M(H)和其对应二分图(加权Tanner图)的例子。
附录二.出现环的条件本节介绍QC-LDPC码中出现环的条件。定义Δjx,jy(l)=Pjx,l-Pjy,l]]>,下面的定理给出了环出现的条件。
定理1.Fossorier在(5)中定义的H所对应的Tanner图的围长g≥2(i+1)的充分必要条件为,对于所有的2≤m≤i,0≤jk≤J-1,0≤jk+1≤J-1,0≤lk≤J-1,j0=jm,jk≠jk+1,lk≠lk+1Σk=0m-1Δjk,jk+1(lk)≠0modq---(7)]]>推论1.如果M(H)对应加权Tanner图中存在长为2l的环vi1→cj1→vi2→cj2...→cjl-1→vil,且il=i1
Σk=0l-1w(e(vik,cjk))-w(e(cik,vjk+1))=0modq---(8)]]>则其对应的H的矩阵的Tanner图存在长为2l的环。
推论2.如果M(H)对应加权Tanner图中,如果对于vi∈V,若存在cj∈C.存在路径p1(vi,cj),p2(vi,cj),且w(p1(vi,cj))=w(p2(vj,cj))。则其对应的H的矩阵的Tanner图存环,且环的长度为p1(vi,cj)和p2(vi,cj)的长度之和。
定理2.在M(H)对应加权Tanner图(C,V,E)中,添加一条权值为w的边e(vj,cj)_E,vi∈V,cj∈C。那么所得到的新的图对应的H的矩阵的Tanner图会增加一个长为dijmin(w)+1的环,并且不会增加比该环的长度更短的环。
参考文献[1]R.Gallager,“Low-density parity-check codes,”Information Theory,IEEETransactions on,vol.8,no.1,pp.21-28,Jan 1962. R.Tanner,“A recursive appproach to low complexity codes,”InformationTheory,IEEE Transactions on,vol.27,no.5,pp.533-547,Sep 1981. Y.Kou,S.Lin,and M.Fossorier,“Low-density parity-check codes basedon finite geometriesa rediscovery and new results,”Information Theory,IEEE Transactions on,vol.47,no.7,pp.2711-2736,Nov.2001. M.Fossorier,“Quasicyclic low-density parity-check codes from circulantpermutation matrices,”Information Theory,IEEE Transactions on,vol.50,no.8,pp.1788-1793,Aug.2004. L.Yang,H.Liu,and C.-J.Shi,“Code construction and fpga implementationof a low-error-floor multi-rate low-density parity-check code decoder,”Circuits and Systems IRegular Papers,IEEE Transactions on,vol.53,no.4,pp.892-904,April 2006. S.Myung,K.Yang,and Y.Kim,“Lifting methods for quasi-cyclic ldpccodes,”Communications Letters,IEEE,vol.1 0,no.6,pp.489-491,June2006. X.-Y.Hu,E.Eleftheriou,and D.Arnold,“Regular and irregular progressiveedge-growth tanner graphs,”Information Theory,IEEE Transactions on,vol.51,no.1,pp.386-398,Jan.2005. M.Mansour,“A turbo-decoding message-passing algorithm for sparseparity-check matrix codes,”Signal Processing,IEEE Transactions on,vol.54,no.11,pp.4376-4392,Nov.2006. D.J.C.Mackay,“Encyclopedia of sparse graph codes.”[Online].Availablehttp://www.inference.phy.cam.ac.uk/mackay/codes/data.html[10]D.J.C.Mackay,“Source code for progressive edge growthparity-check matrix construction.”[Online].Availablehttp://www.inference.phy.cam.ac.uk/mackay/PEGECC.html具体实施方式
具体实施方式
下面以一个具体的构造的例子来说明构造的具体方法。假设我们要构造出的矩阵H的大小为1008×504,即M=1008,N=504。置换矩阵的大小为7×7,即q=7。则指数矩阵的大小为144×72,即m=144,n=72,也就是在加权Tanner图中有144个数据节点,72个校验节点。每个数据节点的度为6,则每个校验节点的度为12。下面分布详解构造过程。
1、构造指数矩阵M(H)A、建立一个全空的144×72的矩阵。也就是生成一个没有添加任何边的加权Tanner图,该图上有144个数据节点,72个校验节点。
B、使用算法1对加权Tanner图的每个数据节点添加规定数目的边。算法的伪代码见算法3其中vi是第i个数据节点,cj是第j个校验节点。e(vi,cj)为端点为vi,cj的边。Evik是vi第k+1次添加的边。
C、使用算法2对每个数据节点更新最短距离。算法2的描述如下根据k,s的不同可以分几种情况讨论(下面的所有的关于权值的加法都是mod q的。)I、如果k=i,s=j,则dksmin(w)=1---(5)]]>II、如果k=i,s≠j,则取t≤i。
dksmin(l)new=minw-l1+l2=l{dksmin(l),(1+dtjmin(l1)+dtsmin(l2))}---(6)]]>III、如果k≠i,s=j,则取vt∈V。
dksmin(l)new=minw-l1+l2=l{dksmin(l),(1+ditmin(l1)+dktmin(l2))}---(7)]]>IV.如果k≠i,s≠j,dksmin(l)new=min-w+l1+l2=l{dksmin(l),(1+dkjmin(l1)+dismin(l2))}---(8)]]>算法的伪代码见算法2,i,j分别为这次添加的边对应的数据节点和校验节点。
D、如果还有数据节点没有添加边,则转到B。
E、当所有的边都被添加后就得到了所需要的指数矩阵M(H)。
2、由指数矩阵M(H)扩展出校验距阵H。指数矩阵的每个元素对在H中对应的是一个7×7的循环置换距阵,从而将144×72的指数矩阵M(H)转化成需要的1024×512的QC-LDPC码奇偶校验矩阵H。将M(H)扩展成H,是指在指数矩阵M(H)中,在值为P(非#)的位置转换成用7×7的单位矩阵每行右移P位后的循环置换矩阵;在值为#的位置,置换成7×7的全零矩阵。其中M(H)ij在H对应的矩阵范围为H[i×7..(i+1)×7,j×7..(j+1)×7]。经过扩展后就得到了所需的H。
权利要求
1.一种算法复杂度低的准循环LDPC码的构造方法,包括(1)构造QC-LDPC码奇偶校验矩阵的指数矩阵M(H);(2)通过指数扩展把指数矩阵M(H)变换成QC-LDPC码的奇偶校验矩阵H;其中QC-LDPC码的校验矩阵H,定义如下 其中Pij∈{#}∪{01…q-1},q质数,当Pij=#时,QPmn为q×q的全零矩阵,当Pij∈{01…q-1}时,QPmn为将q×q的矩阵右移Pmn位得到的循环置换矩阵;校验矩阵H由以下的指数矩阵M(H)所唯一的确定 由M(H)mn,mn为M(H)的阶数,定义n个数据节点v1,v2,...,vn和m个校验节点c1,c2,...,cm,记所有数据节点的集合为V,校验节点的集合为C;如果Pij≠#,那么添加一条边e(vi,cj),并且给这条边一个权值w(e(vi,cj))=Pij;记所有边e(vi,cj)的集合为E,即得到与M(H)对应的加权Tanner图;其特征在于具体步骤如下(1)构造指数矩阵M(H)该过程分为以下几步A、建立一个全空的m×n距阵,所有的元素都是#,为没有任何变化的加权Tanner图;B、使用算法1对加权Tanner图的每个数据节点添加规定数目的边,算法1的描述如下在加权Tanner图中,一个顶点的度定义为与其相连的边的数目,对于每个变量节点vi,i=1,2,…,n,设计其度为dvi,对校验节点cj的度规定其度尽可能的平均分布;那么分别对每个节点vi依次添加dvi条边,每条边的添加规则是使添加边产生的环的长度最大,即应当添加一条权值为l的边e(vi,cj)_E,使dijmin(l)最大;在本算法里,在具有最小的度的校验节点中随机的选择一个cj和l;C、使用算法2对每个数据节点更新最短距离,算法2的描述如下添加一条边e(vi,cj)后,只有dksmin(l),k≤i,需要被更新,根据k、s的不同可以分几种情况讨论,下面的所有的关于权值的加法都是modq的I、如果k=i,s=j,则dksmin(w)=1---(1)]]>II、如果k=i,s≠j,则取t≤i,vi到cs的路径如下所示因此dksmin(l)new=minw-l1+l2=l{dksmin(l),(1+dtjmin(l1)+dtsmin(l2))}---(2)]]>III、如果k≠i,s=j,则取vt∈V,vi到cs的路径如下所示因此dksmin(l)new=minw-l1+l2=l{dksmin(l),(1+ditmin(l1)+dktmin(l2))}---(3)]]>IV.如果k≠i,s≠j,则vk到cs的路径如下所示因此dksmin(l)new=min-w+l1+l2=l{dksmin(l),(1+dkjmin(l1)+dismin(l2))}---(4)]]>D、如果还有数据节点没有添加边,则转到步骤B;E、当所有的边都被添加后,就得到了所需要的指数矩阵M(H);(2)、由指数矩阵M(H)扩展成校验距阵H每个指数矩阵的元素在H中对应的是一个q×q的循环置换距阵,从而将m×n的指数矩阵M(H)转化成需要的mq×nq的QC-LDPC码奇偶校验矩阵H;将M(H)扩展成H,是指在指数矩阵M(H)中,在值为P≠0的位置转换成用q×q的单位矩阵每行右移P位后的循环置换矩阵;在值为0的位置,置换成q×q的全零矩阵;其中M(H)ij在H对应的矩阵范围为H[i×q..(i+1)×q j×q..(j+1)×q,],经过扩展后就得到所需的校验矩阵H。
全文摘要
本发明属于通信技术领域,具体为一种计算复杂度低的准循环低密度奇偶校验码(QC-LDPC)的构造方法。本方法包括2个步骤1.构造QC-LDPC码奇偶校验矩阵的指数矩阵;2.通过指数扩展把指数矩阵变换成QC-LDPC码的奇偶校验矩阵H。由本发明构造的QC-LDPC码在使用迭代解码时的误码率明显比传统的PEG算法低(特别是在高信噪比的情况下),且其算法复杂度比传统方法的算法复杂度低得多,因此本发明的构造速度比传统方法快得多。此外,本发明方法在构造QC-LDPC码的时候,可以灵活的控制生成的码的各种参数。
文档编号H03M13/00GK101072035SQ20071004150
公开日2007年11月14日 申请日期2007年5月31日 优先权日2007年5月31日
发明者王江, 张建秋 申请人:复旦大学