专利名称:基于非正则低密度奇偶校验码的编译码器及其生成方法
技术领域:
本发明涉及一种数字通信系统用于数据传输纠错的编译码器,特别是涉及数字通信领域纠错技术中的基于低密度奇偶校验码的编译码器及其生成方法,以及生成奇偶校验矩阵所用的基础矩阵。
背景技术:
所有的数字通信系统如通信、雷达、遥控遥测、数字计算机的存储系统和内部运算以及计算机之间的数据传输等都可以归结为如图1所示的模型。其中的信源编码器是为了提高传输的有效性,信道编码器是为了抗击传输过程中各种各样的噪声和干扰,通过人为地增加冗余信息,使得系统具有自动纠正差错的能力,从而保证数字传输的可靠性。随着无线数字通信的发展及各种高速率、突发性强的业务的出现,人们对纠错编码技术提出了愈来愈高的要求。
最初纠错码的研究主要集中在以代数理论为基础的线性分组码,随后出现了汉明码、循环码、BCH码、RS码等一系列好码。五十年代出现的卷积码在编码过程中引入了寄存器,增加了码元之间的相关性,从而在相同的复杂度下获得比分组码更高的编码增益。随着各种卷积码译码算法(Viterbi算法)的出现,卷积码得到了深入研究和应用。1993年,法国的C.Berrou等人提出了Turbo码,使人们朝着编码性能的极限又迈进了一大步。在获得巨大成功的Turbo码的启发下,另一类具有相似特征和性能的编码重新得到人们的重视,这就是低密度奇偶校验码(Low Density Parity Check Codes,记为LDPC码)。LDPC码是一类可以用非常稀疏的奇偶校验矩阵或者二分图定义的线性分组码,最初由Gallager发现,所以称为Gallager码。经过数十年的沉寂,随着计算机硬件和相关理论的发展,MacKay和.Neal重新发现了它,并证明了它具有逼近香农限的性能。最新研究表明,LDPC码具有以下特点低译码复杂度,可线性时间编码,具有逼近香农限的性能,可并行译码,以及在长码长条件下优于Turbo码。
LDPC码是一种基于稀疏校验矩阵的线性分组码,正是利用它的校验矩阵的稀疏性,才能实现低复杂度的编译码,从而使得LDPC码走向实用化。前面提到的Gallager码是一种正则的LDPC码(regular ldpcc),而Luby和Mitzenmacher等人对Gallager码进行了推广,提出非正则的LDPC码(irregularldpcc)。Gallager最初提出的编码具有规则的码结构,其校验矩阵是稀疏矩阵,且每一行具有相同个数的1,每一列也具有相同个数的1。M.G.Luby认为,如果允许校验矩阵的行或者列中非零元的个数发生变化,同时保证矩阵的稀疏性,那么编码的译码算法仍然适用,而编码的性能却能够得到极大的提高,使之能够达到甚至超过Turbo码的性能。这是因为在这种编码结构中,如果对应二分图的左节点和右节点有合适的次数分布(degree distribution),那么在译码时将会存在一种波状效应(waveform effect),将极大地提高译码性能。非正则码就是这种允许同种节点有不同次数的低密度的编码,而Gallager最初提出的编码相应的称为正则码。
目前,大量文献提出用单位矩阵以及它的循环移位矩阵来构造任意可变码长的LDPC码,这种具有分组循环奇偶校验矩阵的LDPC码成为当前的研究热点。目前,如何构造出具有短圈尽量少的此类LDPC码的码构造方法还很不全面。
基于单位阵及其循环移位矩阵的LDPC码由于具有任意可变码长,编码实现简单,扩展过程中可以保证次数分布和girth(指最短圈长)分布不变的特点,成为当前学术界的研究重点。但是,目前构造的基于单位阵及其循环移位LDPC码都没有充分考虑girth的影响以及码长和girth的关系,从而使得误码率(BER)曲线在信噪比较高的时候下降速度急剧变慢,常常出现差错平底(error floor)现象,从而导致性能下降。如何才能消除LDPC码的差错平底现象,加速BER曲线下降速度,在高信噪比时提高LDPC码的性能,成为当前亟待解决的问题。
发明内容
本发明所要解决的技术问题在于提供一种非正则低密度奇偶校验码的基础矩阵及其生成方法,由使生成的奇偶校验矩阵能有效地消除差错平底现象,加速BER曲线的下降速度。
为了解决上述技术问题,本发明提供了一种非正则低密度奇偶校验码的基础矩阵,该基础矩阵Hb由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成,该基础矩阵Hb中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,其中,mod为求模运算,z为扩展因子。
进一步,上述基础矩阵还可具有以下特点所述对应于校验比特块B采用准下三角结构。
进一步,上述基础矩阵还可具有以下特点还满足以下条件设该基础矩阵Hb中重量最大的列的数目为r,删除其中的r-1列形成的所有新的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立;且对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有不等式mod(i-j+k-l+m-n,z)≠0成立。
进一步,上述基础矩阵还可具有以下特点还满足以下条件设该基础矩阵Hb中重量最大的列的数目为r,删除其中的r-1列并删除所有重量为3的列后形成的新的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立;且对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有不等式mod(i-j+k-l+m-n,z)≠0成立。
为了实现对特定码率多个码长的数据可以基于一个基础矩阵进行编译码,上述基础矩阵还可进一步具有以下特点所述基础矩阵Hb的元素值针对同一码率下的每一种码长进行修正后,均能使修正前所能满足的所有的不等式成立。
为了解决上述技术问题,本发明提供了一种非正则低密度奇偶校验码的基础矩阵的生成方法,包括以下步骤
(a)根据码率和码长的要求,确定需构造的基础矩阵Hb的行数M和列数N,并根据次数分布要求确定基础矩阵Hb的行、列的重量向量;(b)构建一个由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成的非正则的原始基础矩阵Hb’;(c)从集合{0,1,2,…,z-1}中选值填充到原始基础矩阵Hb’中“1”的位置上,得到基础矩阵Hb,且Hb中所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,mod为求模运算,z为扩展因子。
进一步地,上述基础矩阵的生成方法可具有以下特点所述步骤(c)进一步分为以下步骤(c1)假设原始基础矩阵中有r个最重列,先将原始基础矩阵Hb’中所有的r个最重列去掉,从集合{0,1,2,…,z-1}中选值填充该矩阵中一个为“1”的位置,每填一个位置,对经过该位置的所有短圈进行计算,使其满足生成的奇偶校验矩阵最短圈圈长girth≥10所要求满足的不等式;选不到值时,再以使其生成的奇偶校验矩阵girth≥8所要求满足的不等式为条件选值;(c2)完成对去掉最重列的矩阵的填充后,加入第n个最重列并去掉剩余的r-1个最重列,n=1,2,……,r,构成一个新基础矩阵,按步骤(c1)同样的方法对该最重列各个为“1”的位置进行选值填充,每选到一个值后,再将上述r-1个最重列都加入构成又一个新基础矩阵,判断该矩阵是否满足使其生成的奇偶校验矩阵满足girth≥6的不等式,如果满足,再填充下一个位置,否则对该位置重新进行选值和判断;(c3)逐一填完所有最重列后,得到所要的基础矩阵Hb。
进一步地,上述基础矩阵的生成方法可具有以下特点所述步骤(c2)中,如果所有的可选值都不能满足要求时,再执行步骤(c2)’再删除所有重量为3的列,构成一个新的基础矩阵,按步骤(c1)同样的方法对所述第n个最重列各个为“1”的位置进行选值填充,每选到一个值后,再将所述r-1个最重列都加入构成又一个新基础矩阵,判断该矩阵是否满足使其生成的奇偶校验矩阵满足girth≥6的不等式,如果满足,再填充下一个位置。
为了实现对特定码率多个码长的数据可以基于一个基础矩阵进行编译码,进一步地,上述基础矩阵的生成方法可具有以下特点所述步骤(c1)在选到使其生成的奇偶校验矩阵最短圈圈长girth≥10或girth≥8的值后,还将该基础矩阵修正为对应于该码率下其它所有码长的基础矩阵,对修正后得到的每一个基础矩阵,判断是否满足使其生成的奇偶校验矩阵girth≥8所要求满足的不等式,如果满足再执行步骤(c2),否则需重新选值,在所述步骤(c2)、(c2)’中选值时按同样方法验证填充后的基础矩阵是否对于所有码长均满足girth要求。
进一步地,上述基础矩阵的生成方法可具有以下特点所述码率为1/2、2/3或3/4,每一码率下基础矩阵Hb的行数M等于规定的校验位的位数,而列数N为12、24或48。
进一步地,上述基础矩阵的生成方法可具有以下特点所述块B采用准下三角结构。
进一步地,上述基础矩阵的生成方法可具有以下特点所述原始基础矩阵采用比特填充法构建,并且在构建的过程中统计最短圈的数目,优先选择使最短短圈的数量小的填充值。
本发明所要解决的另一技术问题在于提供一种基于非正则低密度奇偶校验码的编码器和译码器,能有效地消除LDPC码的差错平底现象,加速BER曲线的下降速度。
为了解决上述技术问题,本发明提供了一种基于非正则低密度奇偶校验码的编码器,包括编码运算模块,其特征在于,还包括基础矩阵存储模块和扩展模块,其中所述基础矩阵存储模块,用于存储由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成的基础矩阵Hb,该基础矩阵Hb中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,其中,mod为求模运算,z为扩展因子。
所述扩展模块,用于根据扩展因子和基本置换矩阵对基础矩阵进行扩展,得到(M×z)×(N×z)低密度奇偶校验码的奇偶校验矩阵。
所述编码运算模块,用于基于扩展得到的所述奇偶校验矩阵,完成从N-M比特的源数据得到N比特码字的编码运算。
为了解决上述技术问题,本发明还提供了一种基于非正则低密度奇偶校验码的译码器,包括译码运算模块,其特征在于,还包括基础矩阵存储模块和扩展模块,其中所述基础矩阵存储模块,用于存储由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成的基础矩阵Hb,该基础矩阵Hb中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,其中,mod为求模运算,z为扩展因子。
所述扩展模块,用于根据扩展因子和基本置换矩阵对基础矩阵进行扩展,得到(M×z)×(N×z)低密度奇偶校验码的奇偶校验矩阵。
所述译码运算模块,用于基于扩展得到的所述奇偶校验矩阵,对输入的受干扰后的码字比特进行纠错后输出。
进一步地,上述编码器和译码器中采用的基础矩阵Hb可具有本发明上述基础矩阵具有的任何附加特征。
为了解决上述技术问题,本发明又提供了一种基于非正则低密度奇偶校验码的编码器/译码器的生成方法,包括以下步骤(a)根据码率和码长的要求,确定需构造的基础矩阵Hb的行数M和列数N,并根据次数分布要求确定基础矩阵Hb的行、列的重量向量;(b)构建一个由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成的非正则的原始基础矩阵Hb’;(c)从集合{0,1,2,…,z-1}中选值填充到原始基础矩阵Hb’中“1”的位置上,得到基础矩阵Hb,且Hb中所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,mod为求模运算,z为扩展因子;
(d)存储得到的基础矩阵Hb,并配置一个根据基本置换矩阵和扩展因子将该基础矩阵扩展为奇偶校验矩阵的扩展模块,以及一个基于扩展得到的奇偶校验矩阵完成编码/译码运算的编码/译码运算模块,组成编码器/译码器。
进一步地,上述编码器/译码器的生成过程中,基础矩阵Hb的生成可具有本发明上述基础矩阵生成方法所具有的任何附加特征。
本发明方法着重从LDPC码的girth角度来设计好的LDPC码的编码器和译码器。但是,基础矩阵的可能组合方式的数量是极其巨大的,现有技术还没有一种使构建奇偶校验矩阵girth尽量大,最短短圈数尽量少的可行方法,也得不到满足这样要求的基础矩阵。本发明则通过提出的基础矩阵的生成方法,得到了满足这样要求的基础矩阵,即由该基础矩阵生成的LDPC奇偶校验矩阵具有高Girth且在较轻的节点上的最短短圈尽量少。这就有效地消除了LDPC码的差错平底现象,加速了BER曲线的下降速度。进一步地,本发明的基础矩阵对于特定码率条件下的可变码长均具有以上特性,因而能大大缩小存储空间,具有很好的普遍适用性。
图1为数字通信系统的模块图;图2为二分图中长度为4短圈的示意图;图3为二分图中长度为6短圈的示意图;图4为校验矩阵中长度为4短圈的示意图;图5为校验矩阵中长度为6短圈的示意图;图6为本发明实施例编译码器生成方法的流程图;图7为本发明所定义的基础矩阵结构示意图;图8是本发明实施例编译码器的结构框图;图9为本发明1/2码率一个基础矩阵实例生成19种码长低密度奇偶校验码的误帧率性能;图10为本发明3/4码率一个基础矩阵实例生成19种码长低密度奇偶校验码的误帧率性能。
具体实施例方式
LDPC码是一种特殊的线性分组码。通信中,每发送一个分组长度为N比特的码字,为了保证其具有一定的纠错能力,需要有M个校验比特,每个码字都要求满足HxT=0T,其中H为二元域上M×N维的奇偶校验矩阵。所有的运算都是在二元域GF(2)上进行的,这里加和减是“异或”运算,而乘是“与”运算。
系统分组码的直接编码方法是把一个码字x划分为N-M个信息比特s和M个校验比特c,相应地,把M×N的奇偶校验矩阵H划分为分别对应于信息比特和校验比特的M×(N-M)和M×M的两块,即H=[A|B]。根据H×x=0,可得[A|B]×[sc]=0]]>于是可以得到A×s+B×c=0,进一步推出c=B-1As。当块B采用特殊的矩阵结构,如严格下三角结构(半随机矩阵)、双下三角结构等,则B-1具有非常简单的形式,可以直接按照上面式子直接计算得到码字中校验比特部分c,并且可以保证编码器具有线性复杂度。
也可以采用Richarson线性时间编码算法奇偶校验矩阵H具有准下三角结构,设H具有如下形式H=ABTCDE]]>设编码后码字是x=(s,p1,p2),这里s为编码码字的系统比特部分,p1和p2为码字的校验比特部分,p1的长度为g,p2长度为(m-g)。上式中,A的维数是(m-g)×(n-m),B是(m-g)×g,T是(m-g)×(m-g),C是g×(n-m),D是g×g,E是g×(m-g)。所有这些矩阵都是稀疏矩阵,而T是下三角矩阵,主对角线元素全为1。校验比特部分可以由下面式子求得 p2T=-T-1(AsT+Bp1T)]]>其中,=-ET-1B+D
因此,本发明设计的LDPC码的编码器可以由LDPC奇偶校验矩阵H唯一生成,实际上LDPC码的奇偶校验矩阵不仅仅决定了LDPC码译码器的性能,而且决定了LDPC码的编码器和译码器的复杂度、存储空间和处理延时。寻找合适的LDPC码的奇偶校验矩阵结构是至关重要的。
在具体实现时,可采上述直接方法或者Richarson方法或者其它方法运算,来完成从N-M比特的源数据得到N比特码字的编码功能。事实上,该编码器就是用软件或硬件实现式中稀疏矩阵的乘法和加法运算,对于基于单位阵以及其循环移位矩阵的LDPC码,稀疏矩阵的乘法运算可以由多个z位(z为扩展因子)的循环移位寄存器和多个z位的加法器构成,而稀疏矩阵的加法运算就是由上述的多个z位的加法器完成,该多个z位循环移位寄存器和多个z位加法器就构造出一个硬件电路实现的LDPC编码器。
LDPC奇偶校验矩阵的图形表示形式是二分图。二分图和校验矩阵之间具有一一对应的关系,一个M*N的奇偶校验矩阵H定义了每个具有N比特的码字满足M个奇偶校验集的约束。一个二分图包括N个变量节点和M个奇偶校验节点。当第m个校验涉及到第n个比特位,即H中第m行第n列的元素Hm,n=1时,将有一根连线连接校验节点m和变量节点n。二分图中,任何同一类的节点之间都不会有连接,并且二分图中的总边数和校验矩阵中非零元素的个数相等。
概念girth用来定量描述二分图中的短圈。在图论中,二分图的girth是指一个图中最短圈的圈长,例如某个二分图有长度为6、8、10、12和长度更长的圈,则该二分图的girth为6,节点的girth则指通过该节点的最短圈的圈长。例如,图2中黑色加重的实线表示信息比特x1、x2和校验比特c1、c2构成了一个长度为4的圈,说明x1、x2通过长度为4的圈相互联系。图3中黑色加重的实线表示信息比特x1、x2、x3和校验比特c1、c2、c4构成了一个长度为6的圈,说明了x1、x2、x3通过长度为6的圈相互联系。图4、图5则分别给出了圈长为4和为6的短圈在LDPC奇偶校验矩阵中出现的一般形式。
LDPC码的信息传递译码算法假定变量节点是相互独立的,短圈的存在必然破坏了独立性的假设,使得译码性能明显下降。事实上,LDPC奇偶校验矩阵对应二分图的最短圈长度越长,即girth值越大,从变量节点发出的信息被传递给自身的正反馈信息将越小,则译码性能也越好。因此,本发明构造LDPC奇偶校验矩阵的原则如下首先,选择的校验矩阵的最短圈的长度girth应该尽量大;其次,对于具有同样大小girth的校验矩阵,选择的校验矩阵的最短圈的数目应该尽量少。
LDPC码的奇偶校验矩阵H设为(M×z)×(N×z)矩阵,它是由M×N个分块矩阵构成,每个分块矩阵都是z×z的基本置换矩阵的不同幂次,基本置换矩阵为单位阵时,它们都是单位阵的循环移位矩阵(文中默认为右移)。通过这样的幂次j就可以唯一标识每一个分块矩阵,单位矩阵的幂次可用0表示,矩阵一般用-1来表示。这样,如果将H的每个分块矩阵都用它的幂次代替,就得到一个M×N的幂次矩阵Hb。这里,定义Hb是H的基础矩阵,H称为Hb的扩展矩阵。在实际编码时,z=码长/基础矩阵的列数N,称为扩展因子。
例如,矩阵 可以用下面的参数z和一个2×4的基础矩阵Hb扩展得到z=3和Hb=010-12121]]>因此,也可以说本发明的LDPC码的编码器是由基础矩阵Hb,扩展因子z及所选择的基本置换矩阵唯一生成的。
构建基础矩阵Hb时,是先构建一个原始基础矩阵Hb’,原始基础矩阵的元素仅由0和1组成,该矩阵反映出最终需要构造的LDPC码的次数分布、码率等重要特征。从集合{0,1,2,…,z-1}中选择合适的值填充到原始基础矩阵中所有“1”的位置上,再将“0”用“-1”代替,就得到了对应的基础矩阵,其中z为对应码长的扩展因子。
校验矩阵H的girth与其基础矩阵Hb之间存在关联,通过数学推理和计算机仿真的验证,可以得到以下结论(分析过程可以参照本申请人的中国专利申请200410009746.5的相关内容)LDPC奇偶校验矩阵girth≥6的充分必要条件为它的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有mod(i-j+k-l,z)≠0(mod为求模运算,z为扩展因子,选偶数)。
LDPC奇偶校验矩阵girth≥8的充分必要条件为它的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有mod(i-j+k-l,z)≠0;且对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有mod(i-j+k-l+m-n,z)≠0。
LDPC奇偶校验矩阵girth≥10的充分必要条件为它的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有mod(i-j+k-l,z/2)≠0;对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有mod(i-j+k-l+m-n,z)≠0;且对于所有构成了长度为8的短圈的任意元素i,j,k,l,m,n,s,t,总有mod(i-j+k-l+m-n+s-t,z)≠0。
当girth≥10时,提高girth对译码器的性能改善很少,所以本发明只需要考虑消除长度为4、6和8的短圈。
基于以上结论,在构建LDPC奇偶校验矩阵的基础矩阵时,就可以以上述不等式为约束条件有目的地选择元素值,使得扩展后的奇偶校验矩阵具有所期望的girth值。也可以用于对已生成的基础矩阵进行检查,判断其扩展后的奇偶校验矩阵是否具有所期望的girth值。
如果对于每个不同的扩展因子无法采用同一基础矩阵,那么,对于每个不同的码长,所述的LDPC码编译码器都需要存储一个基础矩阵,当码长很多时,就要存储很多基础矩阵,这样会占用很大的存储空间或者使得硬件实现电路很复杂。因此,从实用性考虑,本实施例对同一码率的多种码长,使用同一个基础矩阵,同时在不同码长时对该基础矩阵进行修正和扩展,使得生成的编译码器可适用于码长可变的场合。但本发明不局限于此,也可适用于对一个码长采用一个基础矩阵的方式。
修正是利用其它码长的扩展因子对基础矩阵Hb中的非负值进行修正,修正后元素值应小于该码长下的扩展因子值,修正算法可以采用取模(mod)、取整(scale+floor)或舍入(scale+round)等,设Pi,j为基础矩阵第i行第j列的非负元素,P’i,j为修正以后的元素,有对于取模(mod)方法Pij′=PijmodnN]]>对于取整(scale+floor)方法Pij′=[Pij×n2304]]]>对于舍入(scale+round)方法Pij′=Round(Pij×n2304)]]>其中,N为基础矩阵列数,n为要生成奇偶校验矩阵的低密度奇偶校验码的码长。mod为取模操作,[]为下取整操作,Round为四舍五入操作。
例如,对于码长1152比特低密度奇偶校验码,设其基础矩阵某个非负元素为93,则其修正结果为对于取模(mod)方法93mod115224=93mod48=45]]>对于取整(scale+floor)方法[93×11522304]=[46.5]=46]]>对于舍入(scale+round)方法Round(93×11522304)=Round(46.5)=47]]>
基于以上分析,如图6所示,本实施例提出的码长可变低密度奇偶校验码的编译码器的生成方法包括以下步骤步骤110,根据码率和码长的要求,确定需构造的低密度奇偶校验码的基础矩阵的行数M和列数N;不同码率下规定了不同的校验位数,本实施例将考虑1/2、2/3和3/4三种码率,采用的校验位数分别是12、8和6,,相应基础矩阵的行数M也为12、8和6。在确定列数时,需考虑码长和扩展因子为偶数这个要求,假定共有19种码长(比特),分别是576、672、768、864、960、……、2304,相邻码长之间的间隔为96比特。为了同时兼顾译码性能和存储空间的要求,本实施例三种码率下的基础矩阵均取24列(也可以取12列、48列等)。这样,可以计算得到每一码长的扩展因子z,分别为24、28、32、36、40、……、96,间隔为4。zmin=24是最小码长的扩展因子;zmax=96,是最大码长的扩展因子。
步骤120,确定需构造的低密度奇偶校验码的次数分布,并由次数分布得到所述基础矩阵的行重量向量和列重量向量;从获得最佳性能考虑,本发明采用非正则的LDPC码,次数分布可以是充分考虑信噪比门限和迭代收敛速度以及算法的复杂度,从计算结果中最终选择出来的。
步骤130,根据得到的行、列重量向量,构建一个非正则的由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成的原始基础矩阵Hb’,块B采用准下三角结构,且其第一列的列重为3,其余部分是一个双下三角结构,也并不局限于此;为了使填充后的基础矩阵容易满足上述不等式的要求,最好使该原始基础矩阵在满足行、列重量向量的可能的矩阵中girth最大。为此,可以采用比特填充法来构建得到。在构建的过程中还可以统计最短圈的数目,使最短短圈的数量尽量小,这对最终得到高girth的校验矩阵也是有益的。在矩阵不大时,也可以排列出的可能的组合并从中选择。
块B采用准下三角结构是为了能够使构建出的奇偶校验矩阵的结构符合线性时间编码,降低编码的复杂度。
步骤140,从集合{0,1,2,…,zmax-1}中选择合适的元素填充到原始基础矩阵中“1”的位置上,得到非正则的基础矩阵Hb(其格式如图7所示),该基础矩阵应满足条件一,对所有码长,该基础矩阵都能满足使对应奇偶校验矩阵girth≥6所要求满足的不等式,以及条件二,设基础矩阵Hb中重量最大的列的数目为r,删除其中的r-l列形成的所有新的基础矩阵,对于任何码长,这些新的基础矩阵都能满足使对应奇偶校验矩阵girth≥8所要求满足的不等式。
本实施例采用以下具体的填充方法来实现上述限定1)假设原始基础矩阵中有r个最重列,先将原始基础矩阵中所有的r个最重列去掉,从集合{0,1,2,…,zmax-1}中选值填充该矩阵中一个为“1”的位置(未填充的位置为空),本实施例是一列一列来填的,每填一个位置,对经过该位置的所有短圈进行计算(计算方法可参照本申请人的中国专利申请200410009746.5的相关内容),使其满足生成的奇偶校验矩阵girth≥10所要求满足的上述不等式;选不到值时,再以使其生成的奇偶校验矩阵girth≥8所要求满足的上述不等式为约束条件选值。由于矩阵很稀疏,比较容易满足girth≥8的要求。另外,如果一个位置有多个值可以满足同一约束条件,则从中随机选一个值填充。
2)对该位置填充后的矩阵,将其修正为对应于该码率下其它所有码长的基础矩阵,对修正后得到的每一个基础矩阵,判断其是否满足奇偶校验矩阵girth≥8所要求满足的上述不等式,如果满足(只要有一种修正方法可以使修正后的基础矩阵满足要求就可以,但每次填充时只能采用同一种修正方法),执行下一步,否则需重新选值,这样来保证所有码长下,基于该基础矩阵生成的奇偶校验矩阵都满足girth的要求;3)完成对去掉最重列的矩阵的填充后,加入第n个最重列并去掉剩余的r-1个最重列,n=1,2,……,r,构成一个新基础矩阵,按步骤1)和2)同样的方法和要求对该最重列各个为“1”位置进行选值填充,每次选到一个值后,再将上述r-1个最重列都加入构成又一个新基础矩阵,判断该矩阵对于所有码长,生成的奇偶校验矩阵是否满足girth≥6的要求,如果满足再执行下一步,否则对该位置重新选值和判断;4)逐一填完所有最重列r后,就得到了对于所有码长,均能满足生成的奇偶校验矩阵的Girth最少为6和上述条件二的基础矩阵。
到这一步,已生成了满足所述条件的基础矩阵。
设置上述条件二并将其作为填充时的约束条件的意义在于,在保证girth值的情况下,进一步地减少最短短圈的数目,特别是能够减少通过重量小的节点的最短短圈数,因为重量小的节点后收敛,因而可以显著地提高编译码的性能。
有时基础矩阵比较小时,可能不能满足上述的条件二,在这种情况下为了也能尽量提高性能,本实施例还提出了条件三(条件一必须满足)设基础矩阵Hb中重量最大的列的数目为r,删除其中的r-1列并删除所有重量为3的列后形成的所有新的基础矩阵,对于任何码长,这些新的基础矩阵都能满足使对应奇偶校验矩阵girth≥8所要求满足的不等式。
具体在填充时,如果步骤3)对加入第n个最重列并去掉剩余的r-1个最重列的新基础矩阵填充时,所有的可选值都不能满足对所有码长,使其生成的奇偶校验矩阵girth≥8的要求时,则再去掉所有重量为3的列形成又一新的基础矩阵,选择一个对所有码长,能使填充后的新的基础矩阵生成的奇偶校验矩阵girth≥8的值,然后再加入其它填好的最重列进行验证。这个条件要比条件二宽松一些。即本实施例要求构造的基础矩阵必须满足条件一,在此基础上较佳满足条件二,条件二满足不了时再采用满足条件三的矩阵。如果只是构建对于特定码长的基础矩阵,上述步骤中不必再进行对基础矩阵修正后再验证的操作。
如果选值时上述要求都没法满足,则需调整初值或基础矩阵的大小。
下面针对码率为1/2、2/3和3/4的LDPC码,提出了3个满足上述要求的基础矩阵(mb×nb),其中1/2码率的基础矩阵如下,大小为12×24,其中第一行为列标号
可以看出,其右半部分采用了双对角的下三角结构。其中的“-1”表示零矩阵,一列元素的列重量指该列元素中非负元素的个数。该基础矩阵修正、扩展后,对于所有码长,生成的奇偶校验矩阵的girth至少为6。
该基础矩阵的列重量分布是(第一行为列标号)
其最大列重量是12,最大总量列共有3列,分别是第4、8、12列,删除其中2列可以得到三种矩阵,如删除掉其中8、12列而保留第4列的结果如下
依此类推可以得到其它两种矩阵,可以验证这三个矩阵作为基础矩阵生成各个码长的奇偶校验矩阵的Girth为10或者8。
假设条件二得不到满足,要验证条件三时,可将该1/2码率的基础矩阵任意2个最大列重量列和重量为3的列删除,如删掉最大列重中的第8、12列而保留第4列和删除列重量为3的第12列的结果是
再对该矩阵生成的所有码长的奇偶校验矩阵的Girth进行验证,同样是采用不等式的判断方法。这里得到的girth是10或者8。
2/3码率的基础矩阵如下,大小为8×24
3/4码率的基础矩阵如下,大小为12×24
其列重量分布是(第一行为列标号)
该矩阵的最大列重量为4,最大总量列共有12列,所以保留一个最重列时,可以得到12种矩阵,其中保留第1列而删除其他最大重量列的结果是
依此类推可以得到其它11种矩阵,可以验证,用这12矩阵作为基础矩素钢与采用不锈钢进行对比试验。其中,负载为纯阻性灯泡,采用同一动力,测试工具为艾诺2103B电参数综合测试仪和水银温度计,试验环境为室内。对比产品相关参数为
各项性能指标检测结果对比如下
从上表可以看出绕组压板采用不锈钢后,定子温升降低5.0%,转子温升降低5.8%,输出功率提高8.4%,付绕组电压下降13.2%,励磁电压下降21.0%,励磁电流下降17.0%。
实施例2结构与实施例1相同,所不同之处为压板4的材料为铜。对比试验方法、试验环境、所用仪器及产品相关参数与实施例1相同,其各项性能指标检测结果对比如下
步骤160,再配置一个译码运算模块,与基础矩阵模块、修正模块和扩展模块一起组成了要生成的译码器,也如图8所示,其中译码运算模块,用于基于扩展得到的低密度奇偶校验码的奇偶校验矩阵,对输入的受干扰后的码字比特进行纠错后输出。具体可采用现有的信息传递(message passing)算法作为译码算法,但本发明不局限于此。
图9给出了依照本发明1/2码率的一个基础矩阵实例生成19种码长低密度奇偶校验码在BPSK调制、加性高斯白噪声信道、标准信传译码50次迭代下的误帧率性能。图10给出了本发明3/4码率一个基础矩阵实例生成19种码长低密度奇偶校验码在同等条件下的性能。从图中可以看出,本发明可以保证所有码长的LDPC码都可以克服差错平底,并且很好保证了随着码长增加性能连续变好的特征,即在高信噪比区间某特定码率条件下不同码长BER曲线基本没有交点(“cross”),并且加速迭代收敛的速度,有效消除差错平底(error floor)。
综上所述,本发明方法着重从LDPC码的girth角度来设计好的LDPC码的编码器和译码器,可以生成具有高Girth特性,并具有特定码率条件下可变码长的特性的LDPC码奇偶校验矩阵。能够有效地消除LDPC码的差错平底现象,减少迭代收敛次数,明显提高LDPC码的性能,并且具有很好的普遍适用性。
本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种非正则低密度奇偶校验码的基础矩阵,该基础矩阵Hb由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成,其特征在于,还满足以下条件该基础矩阵Hb中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,其中,mod为求模运算,z为扩展因子。
2.如权利要求1所述的基础矩阵,其特征在于,所述对应于校验比特块B采用准下三角结构。
3.如权利要求2所述的基础矩阵,其特征在于,还满足以下条件设该基础矩阵Hb中重量最大的列的数目为r,删除其中的r-1列形成的所有新的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立;且对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有不等式mod(i-j+k-l+m-n,z)≠0成立。
4.如权利要求2所述的基础矩阵,其特征在于,还满足以下条件设该基础矩阵Hb中重量最大的列的数目为r,删除其中的r-1列并删除所有重量为3的列后形成的新的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立;且对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有不等式mod(i-j+k-l+m-n,z)≠0成立。
5.如权利要求1、2、4所述的基础矩阵,其特征在于,所述基础矩阵Hb的元素值针对同一码率下的每一种码长进行修正后,均能使修正前所能满足的所有的不等式成立。
6.一种基于非正则低密度奇偶校验码的编码器,包括编码运算模块,其特征在于,还包括基础矩阵存储模块和扩展模块,其中所述基础矩阵存储模块,用于存储由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成的基础矩阵Hb,该基础矩阵Hb中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,其中,mod为求模运算,z为扩展因子。所述扩展模块,用于根据扩展因子和基本置换矩阵对基础矩阵进行扩展,得到(M×z)×(N×z)低密度奇偶校验码的奇偶校验矩阵。所述编码运算模块,用于基于扩展得到的所述奇偶校验矩阵,完成从N-M比特的源数据得到N比特码字的编码运算。
7.如权利要求6所述的编码器,其特征在于,所述基础矩阵Hb还满足以下条件所述对应于校验比特块B采用准下三角结构。
8.如权利要求7所述的编码器,其特征在于,所述基础矩阵Hb还满足以下条件设该基础矩阵Hb中重量最大的列的数目为r,删除其中的r-1列形成的所有新的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立;且对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有不等式mod(i-j+k-l+m-n,z)≠0成立。
9.如权利要求7所述的编码器,其特征在于,还满足以下条件设该基础矩阵Hb中重量最大的列的数目为r,删除其中的r-1列并删除所有重量为3的列后形成的新的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立;且对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有不等式mod(i-j+k-l+m-n,z)≠0成立。
10.如权利要求6、7、9所述的编码器,其特征在于,所述基础矩阵Hb的元素值针对同一码率下的每一种码长进行修正后,均能使修正前所能满足的所有的不等式成立,且该编码器还包括一个修正模块,用于根据当前数据流的码长,读取基础矩阵Hb并对其中的非负值进行修正,再交给扩展模块进行扩展。
11.一种基于非正则低密度奇偶校验码的译码器,包括译码运算模块,其特征在于,还包括基础矩阵存储模块和扩展模块,其中所述基础矩阵存储模块,用于存储由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成的基础矩阵Hb,该基础矩阵Hb中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,其中,mod为求模运算,z为扩展因子。所述扩展模块,用于根据扩展因子和基本置换矩阵对基础矩阵进行扩展,得到(M×z)×(N×z)低密度奇偶校验码的奇偶校验矩阵。所述译码运算模块,用于基于扩展得到的所述奇偶校验矩阵,对输入的受干扰后的码字比特进行纠错后输出。
12.如权利要求11所述的译码器,其特征在于,所述基础矩阵Hb还满足以下条件所述对应于校验比特块B采用准下三角结构。
13.如权利要求12所述的译码器,其特征在于,所述基础矩阵Hb还满足以下条件设该基础矩阵Hb中重量最大的列的数目为r,删除其中的r-1列形成的所有新的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立;且对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有不等式mod(i-j+k-l+m-n,z)≠0成立。
14.如权利要求12所述的译码器,其特征在于,还满足以下条件设该基础矩阵Hb中重量最大的列的数目为r,删除其中的r-1列并删除所有重量为3的列后形成的新的基础矩阵中,对于所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立;且对于所有构成了长度为6的短圈的任意元素i,j,k,l,m,n,总有不等式mod(i-j+k-l+m-n,z)≠0成立。
15.如权利要求11、12、14所述的译码器,其特征在于,所述基础矩阵Hb的元素值针对同一码率下的每一种码长进行修正后,均能使修正前所能满足的所有的不等式成立,且该编码器还包括一个修正模块,用于根据当前数据流的码长,读取基础矩阵Hb并对其中的非负值进行修正,再交给扩展模块进行扩展。
16.一种基于非正则低密度奇偶校验码的编码器/译码器的生成方法,包括以下步骤(a)根据码率和码长的要求,确定需构造的基础矩阵Hb的行数M和列数N,并根据次数分布要求确定基础矩阵Hb的行、列的重量向量;(b)构建一个由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成的非正则的原始基础矩阵Hb’;(c)从集合{0,1,2,...,z-1}选值填充到原始基础矩阵Hb’中“1”的位置上,得到基础矩阵Hb,且Hb中所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,mod为求模运算,z为扩展因子;(d)存储得到的基础矩阵Hb,并配置一个根据基本置换矩阵和扩展因子将该基础矩阵扩展为奇偶校验矩阵的扩展模块,以及一个基于扩展得到的奇偶校验矩阵完成编码/译码运算的编码/译码运算模块,组成编码器/译码器。
17.如权利要求16所述的编码器/译码器的生成方法,其特征在于,所述步骤(c)进一步分为以下步骤(c1)假设原始基础矩阵中有r个最重列,先将原始基础矩阵Hb’中所有的r个最重列去掉,从集合{0,1,2,...,z-1}中选值填充该矩阵中一个为“1”的位置,每填一个位置,对经过该位置的所有短圈进行计算,使其满足生成的奇偶校验矩阵最短圈圈长girth≥10所要求满足的不等式;选不到值时,再以使其生成的奇偶校验矩阵girth≥8所要求满足的不等式为条件选值;(c2)完成对去掉最重列的矩阵的填充后,加入第n个最重列并去掉剩余的r-1个最重列,n=1,2,......,r,构成一个新基础矩阵,按步骤(c1)同样的方法对该最重列各个为“1”的位置进行选值填充,每选到一个值后,再将上述r-1个最重列都加入构成又一个新基础矩阵,判断该矩阵是否满足使其生成的奇偶校验矩阵满足girth≥6的不等式,如果满足,再填充下一个位置,否则对该位置重新进行选值和判断;(c3)逐一填完所有最重列后,得到所要的基础矩阵Hb。
18.如权利要求17所述的编码器/译码器的生成方法,其特征在于,所述步骤(c2)中,如果所有的可选值都不能满足要求时,再执行步骤(c2)’再删除所有重量为3的列,构成一个新的基础矩阵,按步骤(c1)同样的方法对所述第n个最重列各个为“1”的位置进行选值填充,每选到一个值后,再将所述r-1个最重列都加入构成又一个新基础矩阵,判断该矩阵是否满足使其生成的奇偶校验矩阵满足girth≥6的不等式,如果满足,再填充下一个位置。
19.如权利要求17或18所述的编码器/译码器的生成方法,其特征在于,所述步骤(c1)在选到使其生成的奇偶校验矩阵最短圈圈长girth≥10或girth≥8的值后,还将该基础矩阵修正为对应于该码率下其它所有码长的基础矩阵,对修正后得到的每一个基础矩阵,判断是否满足使其生成的奇偶校验矩阵girth≥8所要求满足的不等式,如果满足再执行步骤(c2),否则需重新选值,在所述步骤(c2)、(c2)’中选值时按同样方法验证填充后的基础矩阵是否对于所有码长均满足girth要求。。
20.如权利要求19所述的编码器/译码器的生成方法,其特征在于,所述步骤(d)中,还配置了一个根据当前数据流的码长对所述基础矩阵Hb中的非负值进行修正的修正模块,该模块将修正后的基础矩阵再输出到扩展模块进行扩展。
21.如权利要求16所述的编码器/译码器的生成方法,其特征在于,所述码率为1/2、2/3或3/4,每一码率下基础矩阵Hb的行数M等于规定的校验位的位数,而列数N为12、24或48。
22.如权利要求16、17或18所述的编码器/译码器的生成方法,其特征在于,所述块B采用准下三角结构。
23.如权利要求16所述的编码器/译码器的生成方法,其特征在于,所述原始基础矩阵采用比特填充法构建,并且在构建的过程中统计最短圈的数目,优先选择使最短短圈的数量小的填充值。
24.一种非正则低密度奇偶校验码的基础矩阵的生成方法,包括以下步骤(a)根据码率和码长的要求,确定需构造的基础矩阵Hb的行数M和列数N,并根据次数分布要求确定基础矩阵Hb的行、列的重量向量;(b)构建一个由对应于信息比特的M×(N-M)的块A和对应于校验比特的M×M的块B组成的非正则的原始基础矩阵Hb’;(c)从集合{0,1,2,...,z-1}中选值填充到原始基础矩阵Hb’中“1”的位置上,得到基础矩阵Hb,且Hb中所有构成了长度为4的短圈的任意元素i,j,k,l,总有不等式mod(i-j+k-l,z)≠0成立,mod为求模运算,z为扩展因子。
25.如权利要求24所述的基础矩阵的生成方法,其特征在于,所述步骤(c)进一步分为以下步骤(c1)假设原始基础矩阵中有r个最重列,先将原始基础矩阵Hb’中所有的r个最重列去掉,从集合{0,1,2,...,z-1}中选值填充该矩阵中一个为“1”的位置,每填一个位置,对经过该位置的所有短圈进行计算,使其满足生成的奇偶校验矩阵最短圈圈长girth≥10所要求满足的不等式;选不到值时,再以使其生成的奇偶校验矩阵girth≥8所要求满足的不等式为条件选值;(c2)完成对去掉最重列的矩阵的填充后,加入第n个最重列并去掉剩余的r-1个最重列,n=1,2,......,r,构成一个新基础矩阵,按步骤(c1)同样的方法对该最重列各个为“1”的位置进行选值填充,每选到一个值后,再将上述r-1个最重列都加入构成又一个新基础矩阵,判断该矩阵是否满足使其生成的奇偶校验矩阵满足girth≥6的不等式,如果满足,再填充下一个位置,否则对该位置重新进行选值和判断;(c3)逐一填完所有最重列后,得到所要的基础矩阵Hb。
26.如权利要求25所述的基础矩阵的生成方法,其特征在于,所述步骤(c2)中,如果所有的可选值都不能满足要求时,再执行步骤(c2)’再删除所有重量为3的列,构成一个新的基础矩阵,按步骤(c1)同样的方法对所述第n个最重列各个为“1”的位置进行选值填充,每选到一个值后,再将所述r-1个最重列都加入构成又一个新基础矩阵,判断该矩阵是否满足使其生成的奇偶校验矩阵满足girth≥6的不等式,如果满足,再填充下一个位置。
27.如权利要求25或26所述的基础矩阵的生成方法,其特征在于,所述步骤(c1)在选到使其生成的奇偶校验矩阵最短圈圈长girth≥10或girth≥8的值后,还将该基础矩阵修正为对应于该码率下其它所有码长的基础矩阵,对修正后得到的每一个基础矩阵,判断是否满足使其生成的奇偶校验矩阵girth≥8所要求满足的不等式,如果满足再执行步骤(c2),否则需重新选值,在所述步骤(c2)、(c2)’中选值时按同样方法验证填充后的基础矩阵是否对于所有码长均满足girth要求。
28.如权利要求24所述的基础矩阵的生成方法,其特征在于,所述码率为1/2、2/3或3/4,每一码率下基础矩阵Hb的行数M等于规定的校验位的位数,而列数N为12、24或48。
29.如权利要求24、25或26所述的基础矩阵的生成方法,其特征在于,所述块B采用准下三角结构。
30.如权利要求24所述的基础矩阵的生成方法,其特征在于,所述原始基础矩阵采用比特填充法构建,并且在构建的过程中统计最短圈的数目,优先选择使最短短圈的数量小的填充值。
全文摘要
本发明公开了一种基于非正则低密度奇偶校验码的编码/译码器及其生成方法,包括编码/译码运算模块、基础矩阵存储模块和扩展模块,所存储的基础矩阵H
文档编号H03M13/11GK1808955SQ20051000715
公开日2006年7月26日 申请日期2005年1月23日 优先权日2005年1月23日
发明者徐俊, 袁柳清, 胡留军 申请人:中兴通讯股份有限公司