CN101373976A - 生成ldpc校验矩阵的方法和设备 - Google Patents
生成ldpc校验矩阵的方法和设备 Download PDFInfo
- Publication number
- CN101373976A CN101373976A CNA2007101427926A CN200710142792A CN101373976A CN 101373976 A CN101373976 A CN 101373976A CN A2007101427926 A CNA2007101427926 A CN A2007101427926A CN 200710142792 A CN200710142792 A CN 200710142792A CN 101373976 A CN101373976 A CN 101373976A
- Authority
- CN
- China
- Prior art keywords
- matrix
- row
- ldpc
- weight
- check
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
- H03M13/1188—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
公开了一种生成LDPC校验矩阵的方法和设备。该方法包括步骤:用z x z的单位矩阵对具有zig-zag结构的基矩阵中校验比特所对应的部分中的1元素进行扩展,其中z是自然数;以及用z x z的预定子矩阵对所述基矩阵中第一个校验比特所对应的列中的最后一个元素进行扩展,输出LDPC校验矩阵;其中,所述预定子矩阵仅仅在次对角线上为1元素。另外,计算所述LDPC矩阵中校验比特所对应部分的各行的行重量,并且在LDPC矩阵中,以z x z的尺寸为单位,对主对角线或者次对角线上的元素进行循环移位,以便将列重为1的比特放置在具有预定重量的行上。
Description
技术领域
本发明涉及具有信道纠错能力的LDPC码的校验矩阵的构造技术,具体涉及一种生成LDPC校验矩阵的方法和设备,它能够在LDPC矩阵中保持zig-zag结构,而不会产生环,并且能够根据矩阵中的行重量来调整列重为1的校验比特所参与的校验方程,以便提高相应的码字在迭代译码中的性能。
背景技术
LDPC码是近十年来重新发现的一种强有力的前向纠错编码方法,它在长码构造条件下已经逼近香农限,因而被认为是Turbo码的有效替代技术,很有可能被用于下一代移动通信和深空通信。
Gallager在1962年提出了低密度奇偶校验码(Low DensityParity-Check Code,LDPC Code)的概念【文献1:R.G.Gallager.PhDthesis:Low Density Parity Check Codes.MIT,Cambridge,Mass.,September 1962】。LDPC码是基于奇偶校验矩阵定义的一种码,它具有以下特性:每列包含很小的固定数目j(j>=1)的1,每行包含很小的固定数目k>j的1。Gallager证明:这些码字的典型最小距离随码长的增加线性增加,而且BSC信道下译码错误的典型概率随码长指数减小。
Gallager的博士论文还给出了LDPC码的构造方法,迭代译码算法及其性能分析。由于当时计算机水平发展有限,硬件实现困难,LDPC被长期的遗忘了。直到1995年,Mackay和Neal重新发现LDPC码与Turbo码相比有着同样的优秀性能,而且在长码长的情况下还超过了Turbo码【文献2:D.J.C.MacKay and R.M.Neal.Near Shannon limitperformance of low density parity check codes.Electronics Letters,32(18):1645-1646,August 1996.Reprinted Electronics Letters,vol 33,no6,13th March 1997,p.457-458.】。因而,LDPC码成为新的研究热点,得到大家的广泛关注。
目前,对LDPC码的研究主要集中在如下几个方向。第一,考虑LDPC码在非GF(2)上的构造,也就是在多元域上的编码问题,如GF(4),GF(8)等。Mackay和Davey等在此方向作了很多探索和尝试【文献3:M.C.Davey and D.J.C.MacKay.Low density parity check codes overGF(q).In Proceedings of the 1998 IEEE Information Theory Workshop,pages 70-71.IEEE,June 1998.】,取得了很好的成果。精心构造的多元域上的校验矩阵,可以使性能有极大提高。第二,Gallager提出的LDPC码,其校验矩阵的列重和行重是固定的,这通常被称为规则的LDPC码(或者Gallager码)。
Luby,Mitzenmacher,Shokrollahi和Spielman首先提出构造不规则的二元LDPC码【文献4:M.Luby,M.Mitzenmacher,M.A.Shokrollahi,D.A.Spielman,and V.Stemann,“Practical loss-resilient codes,”in Proc.29th Annu.Symp.Theory of Computing,1997,pp.150-159.】。Luby在1998年提出,放松对行列重量的限制,构造不规则的LDPC码,也就是每列(每行)重量不相同。研究结果表明,相对于最初的Gallager码,非规则LDPC码的性能也有了极大提高。目前这两个研究方向正在不断的优化组合,来寻找性能更优的非GF(2)上的不规则LDPC码。
令人兴奋的是Davey已经找到了性能优于Turbo码的LDPC码【文献5:Matthew C.Davey,PHD Thesis:Error-correction using Low-DensityParity-Check Code,Gonville and Caius College,Cambridge,1999】。因为译码算法相对简单和硬件水平的提高,LDPC码的硬件实现从1998年以来正在成为一个研究热点,Flaron公司已经做出了吞吐量为10Gb/s的LDPC译码芯片。另外,由于LDPC的译码算法可以实现更高的并行处理阶数,所以其具有广阔的应用前景。
LDPC实质上是一个线性分组码,而每一个线性码都可以表示为一个Tanner图(也称为二分图,bipartite graph),记为G={V∪C,E},器重集合V代表由变量节点(variable node)所组成的集合,而每个变量节点则对应于LDPC码字中的每个编码比特;集合C代表校验节点(check node)的集合,每个校验节点对应于每个校验方程。当Tanner图中的变量节点所对应的编码比特参与了某个校验节点所代表的校验方程时(即该编码比特所对应的校验矩阵的列向量中与校验节点相对应的行上的元素不为0),就用边(edge)将两者连接。将和每个节点相连的边的个数称为该节点的度(degree)。所以LDPC码的奇偶校验矩阵中每一列所对应的编码比特可以表示为Tanner图中的变量节点(variable node),而奇偶校验矩阵中每一行所对应的奇偶校验方程则由校验节点(check node)来表示,如图1所示。行重量即为LDPC校验矩阵中每一行所包含的非0元素的个数,而列重量则代表LDPC校验矩阵中每一列中所包含的非0元素的个数,如图2所示。
Tanner图中长度为v的环是从某一节点出发又回到该节点,包含v条边的封闭路径,如图3所示。Tanner图中具有最短环的长度值称为围长(girth)。对于LDPC的奇偶校验矩阵所定义的Tanner图而言,长为4的环是可能存在的长度最短的环。目前的普遍共识是环的存在会影响LDPC编码的迭代译码性能,它会影响迭代译码过程的收敛性,因而在LDPC码的构造过程中要尽量避免。因此每个变量节点所能构成的环的最小长度决定了该变量节点对LDPC迭代译码算法的影响,即某个变量节点所能构成的环的最小长度越小则它的纠错能力就越弱。
相对于Turbo码而言,LDPC的译码过程更简单并且具有更高的并行度。但是,由于LDPC本质上是一种分组码,其校验矩阵是一个具有大量0元素的稀疏矩阵。而通常情况下,该校验矩阵的阶数很大,因此求逆的运算非常复杂,并且编码的复杂度也随着码长的增加而呈指数增加。另外对系统码而言,其编码的过程实际上就是根据输入的信息位来确定相应的校验比特的过程,所以人们希望能够直接利用校验矩阵来进行线性编码。于是人们提出了Zig-zag结构,如图4所示,其中校验矩阵中奇偶校验比特对应部分就是Zig-zag结构。
由图4中可以看出,在所示校验矩阵的第一行中校验比特的对应部分只有一个“1”元素,对应为第7个编码比特。也就是说该行所对应的校验方程中只包含一个校验比特,因此该校验比特可以很容易的由参与该校验方程的其它信息比特得到。在第二行中,有两个校验比特参与了该行所对应的校验方程,即第7和第8个比特。在上一步中已经通过第一行所确定的校验方程得到了第7个比特的值,因此利用第7个比特和其它参与第二行所对应的校验方程的信息比特,可以求出第8个比特的值。在剩余的行中同样具有第2行所具有的特性,即该行所对应的校验方程只包含2个校验比特,而其中一个校验比特已经在上一行中求出了,因此可以很容易地求出另外一个未知的校验比特。
因此,对于具有Zig-zag结构的校验矩阵而言,所有校验比特都可以利用上述方法递归地求解,因此其编码复杂度与码长呈线性关系,从而在LDPC校验矩阵的构造过程中获得了广泛应用。
在LDPC的校验矩阵中采用Zig-zag结构可以使得编码复杂度与码长呈线性关系,但是由于LDPC的校验矩阵的阶数很大,以802.16e中所规定的码率为1/2的LDPC而言,其最大码长为2304,因此相应的校验矩阵就是一个1152 x 2304阶的矩阵。要在接收端和发送端都维护这样一个矩阵,需要占用很大的内存,而内存的读取以及与信息比特的相乘操作会进一步引入相应的处理时延。基于这些问题,【文献6:IEEE Std.802.16e-2005】和【文献7:R1-060499,ZTE,“StructuredLDPC coding with rate matching”,3GPP TSG RAN WG1 #44 Denver,USA,February 13-17,2006】提出了结构化LDPC(Structured-LDPC,也可以称之为准循环LDPC,Quasi-LDPC)的方案,即先定义一个阶数较小的m x n维的基矩阵,在实际编码时利用阶数为z x z的子矩阵对基矩阵进行扩展,从而得到实际的用于编码的(m x z)x(n x z)的校验矩阵。
如图5所示,这是【文献6】所给出的一个6 x 24阶、码率为3/4的LDPC码的基矩阵,矩阵中的每个元素都代表一个z x z阶的子矩阵,根据z的大小的不同,利用同一个基矩阵可以得到一组码率相同而码长不同的LDPC码。图5中,元素“-1”代表一个z x z阶的全零矩阵;而其它元素则代表z x z阶单位矩阵的列根据{p(f,i,j)}所表示的值循环移位后所得到的子矩阵,z的取值对应于标准中定义的扩展因子zf,f∈[0,18]。元素“0”代表不经过循环移位的单位阵,而其它的循环移位的值{p(f,i,j)}则由相应的扩展因子zf和矩阵中的非“0”和“-1”元素按下式计算得到【文献6】:
如果在基矩阵中实现传统的Zig-zag结构,那么当用z x z阶基矩阵对其进行扩展后所得到的校验矩阵中会出现z个列重为1的校验比特以及z个仅包含单个校验比特的校验方程。如图6所示,当具有传统Zig-zag的基矩阵用3 x 3的子矩阵对其进行扩展后,所得到的校验矩阵中最后3列分别对应的是3个列重为1的校验比特,并且前3行都为仅包含单个校验比特的校验方程。当子矩阵的阶数z增加时,具有上述特性的校验比特和校验方程的数目也会随之增加。在LDPC码字中,一般认为列重越小的比特其相应的纠错能力就越差。而仅包含单个校验比特的校验方程由于参与该校验方程的比特仅有一个是校验比特,因此该校验方程只有检错能力而没有纠错能力,所以也要尽量避免这种情况的发生。
针对上述问题,在802.16e和3GPP LTE的提案中提出了一种修正后的结构,即在传统的Zig-zag结构前面加入具有3个非0元素的一列,其中第一个和最后一个元素相同,通常情况下对应为z x z的单位阵,如图7所示。当基矩阵用3 x 3的子矩阵对其进行扩展之后,所得到的校验矩阵中不包含列重为1的校验比特以及仅包含单个校验比特的校验方程。由于与加入的具有3个非0元素的列相对应的校验比特的列重量为3,而其它校验比特所对应的列重量为2,因此在实际编码时,先将所有行对应的校验方程进行模2加,这样最后结果中仅包含信息比特和与具有3个非0元素的列相对应的校验比特,由此可以很容易地求出这些校验比特。而其余的校验比特则可以利用同传统的Zig-zag结构相同的方法进行编码。
虽然上述修正后的Zig-zag结构可以解决校验矩阵中包含列重为1的校验比特以及仅包含单个校验比特的校验方程的问题,但是该结构同时在校验矩阵中校验比特所对应的部分中引入了环,如图8所示。当用于扩展的子矩阵的阶数为z时,则在扩展后的校验矩阵中与校验比特对应的部分出现3 x z个环。由于环的存在,在译码过程中的软信息传递就会不独立,因而使LDPC的迭代译码性能降低。
发明内容
鉴于上述问题,完成了本发明。本发明的目的是提供一种利用循环移位的方法在结构化LDPC(Structured-LDPC)的校验矩阵中实现Zig-zag结构的方法,以解决结构化LDPC在实际的编码过程中,利用具有准循环结构的子矩阵对传统Zig-zag结构进行扩展后会引入大量列重为1的校验比特以及仅包含单个校验比特的校验方程的问题。
在本发明的一个方面,提出了一种生成LDPC校验矩阵的方法,包括步骤:用z x z的单位矩阵对具有zig-zag结构的基矩阵中校验比特所对应的部分中的1元素进行扩展,其中z是自然数;以及用z x z的预定子矩阵对所述基矩阵中第一个校验比特所对应的列中的最后一个元素进行扩展,输出LDPC校验矩阵;其中,所述预定子矩阵仅仅在次对角线上为1元素。
优选地,该方法还包括步骤:计算所述LDPC矩阵中校验比特所对应部分的各行的行重量;在LDPC矩阵中,以z x z的尺寸为单位,对主对角线或者次对角线上的元素进行循环移位,以便将列重为1的比特放置在具有预定重量的行上。
优选地,该方法还包括步骤:计算校验矩阵中系统比特所对应的各个行向量的重量;在LDPC矩阵中,对系统比特所对应的各个向量进行循环移位,以便将列重为1的比特放置在具有预定重量的行上。
优选地,所述预定重量的行是列重最大的行。
在本发明的另一方面,提出了一种生成LDPC校验矩阵的设备,包括:第一扩展装置,用z x z的单位矩阵对具有zig-zag结构的基矩阵中校验比特所对应的部分中的1元素进行扩展,其中z是自然数;以及第二扩展装置,用z x z的预定子矩阵对所述基矩阵中第一个校验比特所对应的列中的最后一个元素进行扩展,输出LDPC校验矩阵;其中,所述预定子矩阵仅仅在次对角线上为1元素。
优选地,该设备还包括:计算装置,计算所述LDPC矩阵中校验比特所对应部分的各行的行重量;移位装置,在LDPC矩阵中,以zxz的尺寸为单位,对主对角线或者次对角线上的元素进行循环移位,以便将列重为1的比特放置在具有预定重量的行上。
优选地,该设备还包括:计算装置,计算校验矩阵中系统比特所对应的各个行向量的重量;移位装置,在LDPC矩阵中,对系统比特所对应的各个向量进行循环移位,以便将列重为1的比特放置在具有预定重量的行上。
利用本发明的方法和设备,不仅可以将利用具有准循环结构的子矩阵进行扩展后的LDPC校验矩阵中的列重为1的校验比特以及仅包含单个校验比特的校验方程的个数控制在最低限度,而且仍然保持了传统Zig-zag结构所具有的线性编码复杂度的特性。此外,该方法还可以根据矩阵中的行重量来调整列重为1的校验比特所参与的校验方程(即校验矩阵中的行),从而进一步提高相应码字在迭代译码过程中的性能。
附图说明
通过下面结合附图说明本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中:
图1是用于LDPC编码的Tanner图的示意图;
图2是说明LDPC码校验矩阵所定义的行重量和列重量的示意图;
图3是说明LDPC码所对应的Tanner图中的环(cycle)的示意图;
图4示出了具有Zig-zag结构的LDPC校验矩阵;
图5示出了现有技术IEEE802.16标准中码率为3/4的LDPC码的基矩阵;
图6示出了对具有传统Zig-zag结构的基矩阵进行扩展后的结果;
图7示出了采用修改后的Zig-zag结构的LDPC校验矩阵;
图8示出了采用修改后的Zig-zag结构的LDPC校验矩阵中环的分布;
图9是说明不同行重量对似然比更新过程的不同影响的示意图;
图10示出了根据本发明第一实施例的校验矩阵生成设备的功能框图;
图11示出了根据本发明第一实施例的校验矩阵生成方法的流程图;
图12示出了根据本发明的第一实施例用特定的子矩阵对传统的Zig-zag结构进行修改后的校验矩阵;
图13示出了根据本发明的第一实施例将具有特殊结构的子矩阵和Zig-zag结构中的主对角线上的元素进行循环移位后的结果;
图14是说明根据本发明的第一实施例将具有特殊结构的子矩阵沿主对角线进行循环移位后对似然比更新过程的影响的示意图;
图15示出了根据本发明第二实施例的校验矩阵生成设备的功能框图;
图16示出了根据本发明第二实施例的校验矩阵生成方法的流程图;
图17和图18是说明根据本发明一个实施例利用校验矩阵中系统比特对应部分中行向量的循环移位来改变列重为1的比特所对应的行重量的示意图。
具体实施方式
下面参照附图对本发明的实施例进行详细的说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。
【第一实施例】
图10示出了根据本发明第一实施例的校验矩阵生成设备的功能框图。如图10所示,根据本发明第一实施例的校验矩阵生成设备10包括第一扩展单元12,用于利用扩展因子对输入的基矩阵中的非零元素进行扩展;第二扩展单元14,用于利用具有特定结构的子矩阵对矩阵中第一个校验比特所对应的列中的最后一个元素进行扩展,输出校验矩阵;行重量计算单元16,用于计算该校验矩阵的行重量;循环移位单元18,用于根据行重量计算单元16所计算的行重量将校验矩阵中的Zig-zag结构中的元素进行循环移位,以便将列重为1的比特放在行重较大的行上。
下面对照附图11详细说明上述各个单元的执行过程。图11示出了根据本发明第一实施例的校验矩阵生成方法的流程图。
如图11所示,在步骤S11,第一扩展单元12用扩展因子,例如zx z的子矩阵,对基矩阵中校验比特所对应的矩阵中的非零元素,即1元素,进行扩展,将m x n的基矩阵扩展成(m x z) x (n x z)的矩阵。这里z是自然数。
根据本发明的第一实施例,对于具有传统Zig-zag结构的结构化的LDPC校验矩阵而言,令校验矩阵中与第一个校验比特对应的列的最后一个元素代表一个具有特定结构的z x z子矩阵。这一子矩阵的次对角线上的元素都为“1”,而除此之外的其它元素都为0,如图12所示。
在步骤S12,在第二扩展单元14中,用上述具有特定结构的子矩阵对由第一扩展单元12所扩展的基矩阵中第一个校验比特所对应的列中的最后一个元素进行扩展,输出校验矩阵。
由图12可以看到,在扩展后的矩阵中仅有一个列重为1的校验比特(第7个编码比特)以及一个仅包含单个校验比特的校验方程(对应为第12行),这与传统Zig-zag结构所具有的特性一致的,因而不会对LDPC码字的译码性能产生影响。此外,传统Zig-zag结构所具有的递归编码的特性仍然存在。
由图12所示,图中所示的第18个比特对应的是仅包含一个校验比特的校验方程,因此该校验比特可以立即由相应的信息比特得到。此外,由于第7个比特的列重为1,而其它校验比特的列重为2,因此将校验矩阵中所确定的所有校验方程进行模2加的操作后,其最终结果中将仅包含第7个比特这样一个校验比特,而其它比特都为相应的信息比特,因而第7个比特也可以由所有校验方程进行模2加后的结果立即推出。因此,利用本实施例所提出的结构,编码过程可以由第一个校验比特和最后一个校验部分开始,从两个方向同时沿着图12中箭头所标示的路径进行,因而其编码复杂度与传统Zig-zag结构一样都是线性的,即其编码复杂度随着码长的增加呈线性增长。
另外,在LDPC的迭代译码过程中,水平更新过程以矩阵中每一行所对应的校验矩阵为基准。因此若改行中所包含的编码比特越多,则其相应的迭代译码过程的似然比的更新效果越明显,如图9所示。
但是,上述具有特定结构的子矩阵的放置是固定的,这使得在所得到的LDPC校验矩阵中列重为1的校验比特只可能出现在第一行中。对于实际的LDPC校验矩阵而言,其第一行所具有的行重量可能很小,因而参与改行的所有编码比特在迭代译码过程中的似然比更新效果就会较差。而通常认为列重为1的比特其纠错能力较差。因此,如果列重为1的比特出现在似然比更新效果较差的行,也就是行重量较低的行中,其相应的纠错能力会尽一步地受到影响。
因此,希望尽量将列重为1的比特放在行重量较大的行上。换言之,需要将上述第二扩展步骤所扩展得到的校验矩阵进行修改,以便将列重为1的比特放在行重量较大的行上。
如果利用前述所提出的具有特殊结构的子矩阵,令其和Zig-zag结构中的主对角线上的元素或次对角线上的元素作循环移位,就可以在保持传统Zig-zag结构所具有的特性的前提下,根据基矩阵的实际构成将列重为1的比特放置在行重量较大的行上。
在步骤S13,在行重量计算单元16中,计算经过扩展后的基矩阵,即第二扩展单元14输出的校验矩阵中各个行的重量。然后,在步骤S14,循环移位单元18根据行重量计算单元16计算的各个行的重量,将列重为1的比特放在行重大于预定值的行上,输出经过循环移位的校验矩阵。
图13示出了根据本发明的第一实施例将具有特殊结构的子矩阵和Zig-zag结构中的主对角线上的元素进行循环移位后的结果。如图13所示,令具有特殊结构的子矩阵和Zig-zag结构中的主对角线上的元素沿着主对角线,按逆时针方向循环移移动一位。由图13可见,列重为1的比特已经由图10中所在的第一行移动到了第七行。
图14是说明根据本发明的第一实施例将具有特殊结构的子矩阵沿主对角线进行循环移位后对似然比更新过程的影响的示意图。如图14所示,假定原来LDPC矩阵中的第一行的行重量为3,因而在LDPC迭代译码的水平更新过程中只有2个比特所对应的节点向列重为1的比特所对应的节点传递更新的消息,其更新效果较差。而利用第一实施例所提出的方法,列重为1的比特被重新放置在行重量为4的第7行上,这样在LDPC迭代译码的水平更新过程中就有3个比特所对应的节点向列重为1的比特所对应的节点传递更新的消息,因而消息传递过程的更新效果得到了改善。
【第二实施例】
在上面的第一实施例中,将具有特定结构的子矩阵同基矩阵中主对角线或次对角线上的元素作循环移位,从而改变列重为1的比特所在行的行重量。但是也可以通过以通过对校验矩阵中系统比特所对应的部分进行行的循环移位来取得相同的效果。
如图15所示,第二实施例的校验矩阵生成设备10包括第一扩展单元12,用于利用扩展因子对输入的基矩阵中的非零元素进行扩展;第二扩展单元14,用于利用具有特定结构的子矩阵对矩阵中第一个校验比特所对应的列中的最后一个元素进行扩展,输出校验矩阵;行重量计算单元16’,用于计算该校验矩阵中与系统比特对应的行向量的行重量;以及循环移位单元18’,用于根据行重量计算单元16所计算的行重量来对系统比特对应的行向量进行循环移位,以便将列重为1的比特放在行重较大的行上。
下面对照附图16详细说明上述各个单元的执行过程。图16示出了根据本发明第二实施例的校验矩阵生成方法的流程图。
如图11所示,在步骤S21,第一扩展单元12用扩展因子,例如z x z的子矩阵,对基矩阵矩阵中校验比特所对应的矩阵中的非零元素,即1元素,进行扩展,将m x n的基矩阵扩展成(m x z) x (n xz)的矩阵。
与第一实施例类似,对于具有传统Zig-zag结构的结构化的LDPC校验矩阵而言,令校验矩阵中与第一个校验比特对应的列的最后一个元素代表一个具有特定结构的z x z子矩阵。这一子矩阵的次对角线上的元素都为“1”,而除此之外的其它元素都为0。
在步骤S22,在第二扩展单元14中,用上述具有特定结构的子矩阵对由第一扩展单元12所扩展的基矩阵中第一个校验比特所对应的列中的最后一个元素进行扩展,输出校验矩阵。
在步骤S23,行重量计算单元16’计算该校验矩阵中与系统比特对应的行向量的行重量。
在步骤S24,循环移位单元18’根据行重量计算单元16所计算的行重量来对系统比特对应的行向量进行循环移位,以便将列重为1的比特放在行重较大的行上。
如图17所示,对图17中系统比特对应部分中的行向量进行循环移位以改变列重为1的比特所对应的行向量。由图18可知,经过相应的循环移位操作之后,列重为1的比特所对应的行重量由图17中的3变为图18中的4,因而其迭代译码过程中信息的更新过程获得了改善。
以上虽然描述了将列重为1的比特放置在行重较大的行上,但是根据不同的应用环境,也可以通过循环移位来将列重为1的比特放置在具有预定重量的行上。
因此,本发明提出了利用一个具有特定结构的子矩阵在结构化的LDPC的校验矩阵中进行循环移位来构造校验矩阵的方法。这一子矩阵在次对角线上的元素都为1,而其它元素为0。采用这一方法构造的LDPC基矩阵,在对其利用z x z的子矩阵进行扩展之后仅含有一个列重为1的校验比特以及一个仅包含单个校验比特的校验方程,这一特性与传统Zig-zag结构是一致的,因而不会对LDPC码字的整体纠错性能产生影响。同时,在所得的校验矩阵中与校验比特的对应部分不存在环,因此较802.16e和LTE提案中提出的改进Zig-zag而言具有更好的迭代译码性能。此外,由于LDPC的迭代译码过程中的水平更新过程以矩阵中每一行所对应的校验矩阵为基准,因此若改行中所包含的编码比特越多,则其相应的迭代译码过程的似然比的更新效果越明显。而利用本文所提出的方法还可以根据矩阵中的行重量来调整列重为1的校验比特所参与的校验方程(即校验矩阵中的行),从而进一步提高相应码字在迭代译码过程中的性能。
至此已经结合优选实施例对本发明进行了描述。本领域技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不应该被理解为被局限于上述特定实施例,而应由所附权利要求所限定。
Claims (8)
1.一种生成LDPC校验矩阵的方法,包括步骤:
用zxz的单位矩阵对具有zig-zag结构的基矩阵中校验比特所对应的部分中的1元素进行扩展,其中z是自然数;以及
用zxz的预定子矩阵对所述基矩阵中第一个校验比特所对应的列中的最后一个元素进行扩展,输出LDPC校验矩阵;
其中,所述预定子矩阵仅仅在次对角线上为1元素。
2.如权利要求1所述的方法,还包括步骤:
计算所述LDPC矩阵中校验比特所对应部分的各行的行重量;
在LDPC矩阵中,以zxz的尺寸为单位,对主对角线或者次对角线上的元素进行循环移位,以便将列重为1的比特放置在具有预定重量的行上。
3.如权利要求1所述的方法,还包括步骤:
计算校验矩阵中系统比特所对应的各个行向量的重量;
在LDPC矩阵中,对系统比特所对应的各个向量进行循环移位,以便将列重为1的比特放置在具有预定重量的行上。
4.如权利要求2或3所述的方法,其中所述预定重量的行是列重最大的行。
5.一种生成LDPC校验矩阵的设备,包括:
第一扩展装置,用zxz的单位矩阵对具有zig-zag结构的基矩阵中校验比特所对应的部分中的1元素进行扩展,其中z是自然数;以及
第二扩展装置,用zxz的预定子矩阵对所述基矩阵中第一个校验比特所对应的列中的最后一个元素进行扩展,输出LDPC校验矩阵;
其中,所述预定子矩阵仅仅在次对角线上为1元素。
6.如权利要求5所述的设备,还包括:
计算装置,计算所述LDPC矩阵中校验比特所对应部分的各行的行重量;
移位装置,在LDPC矩阵中,以zxz的尺寸为单位,对主对角线或者次对角线上的元素进行循环移位,以便将列重为1的比特放置在具有预定重量的行上。
7.如权利要求5所述的设备,还包括:
计算装置,计算校验矩阵中系统比特所对应的各个行向量的重量;
移位装置,在LDPC矩阵中,对系统比特所对应的各个向量进行循环移位,以便将列重为1的比特放置在具有预定重量的行上。
8.如权利要求6或7所述的设备,其中所述预定重量的行是列重最大的行。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNA2007101427926A CN101373976A (zh) | 2007-08-23 | 2007-08-23 | 生成ldpc校验矩阵的方法和设备 |
| PCT/JP2008/002283 WO2009025092A1 (ja) | 2007-08-23 | 2008-08-22 | 低密度パリティ検査符号検査行列生成方法および低密度パリティ検査符号検査行列生成装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNA2007101427926A CN101373976A (zh) | 2007-08-23 | 2007-08-23 | 生成ldpc校验矩阵的方法和设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN101373976A true CN101373976A (zh) | 2009-02-25 |
Family
ID=40378001
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNA2007101427926A Pending CN101373976A (zh) | 2007-08-23 | 2007-08-23 | 生成ldpc校验矩阵的方法和设备 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN101373976A (zh) |
| WO (1) | WO2009025092A1 (zh) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103731160B (zh) * | 2014-01-09 | 2016-08-17 | 西安电子科技大学 | 分组空间耦合低密度奇偶校验编码方法 |
| WO2018014249A1 (zh) * | 2016-07-20 | 2018-01-25 | 华为技术有限公司 | 低密度奇偶校验码基矩阵生成方法及装置 |
| CN108134611A (zh) * | 2017-12-14 | 2018-06-08 | 重庆邮电大学 | 一种利用ACE与Zig-Zag的低错误平层QC-LDPC码构造方案 |
| CN108566212A (zh) * | 2018-05-03 | 2018-09-21 | 重庆邮电大学 | 一种利用EETS与Zig-Zag的低错误平层QC-LDPC码构造方案 |
| CN109766214A (zh) * | 2019-04-01 | 2019-05-17 | 苏州中晟宏芯信息科技有限公司 | 一种最优h矩阵生成方法及装置 |
| CN110224703A (zh) * | 2019-05-31 | 2019-09-10 | 华中科技大学 | 一种准循环矩阵及其构造方法 |
| CN111492586A (zh) * | 2017-12-15 | 2020-08-04 | 华为技术有限公司 | Ldpc码的原模图扩展方法 |
| CN115118288A (zh) * | 2022-07-28 | 2022-09-27 | 南京信息工程大学 | 一种块对角结构的sc-ldpc码及其构造方法、系统 |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2091156B1 (en) | 2008-02-18 | 2013-08-28 | Samsung Electronics Co., Ltd. | Apparatus and method for channel encoding and decoding in a communication system using low-density parity-check codes |
| ES2437144T3 (es) * | 2008-02-18 | 2014-01-09 | Samsung Electronics Co., Ltd. | Aparato y método para codificación y descodificación de canal en un sistema de comunicación utilizando códigos de comprobación de paridad de baja densidad |
| CN102723956B (zh) * | 2012-05-25 | 2015-03-11 | 华中科技大学 | 一种ldpc码的生成方法 |
| CN114050835B (zh) * | 2021-11-11 | 2024-11-22 | 东南大学 | 一种基于奇偶校验预编码的rs码编码方法 |
| CN120601895A (zh) * | 2024-03-04 | 2025-09-05 | 华为技术有限公司 | Ldpc的编译码方法和相关装置、设备及存储介质 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100913876B1 (ko) * | 2004-12-01 | 2009-08-26 | 삼성전자주식회사 | 저밀도 패리티 검사 부호의 생성 방법 및 장치 |
-
2007
- 2007-08-23 CN CNA2007101427926A patent/CN101373976A/zh active Pending
-
2008
- 2008-08-22 WO PCT/JP2008/002283 patent/WO2009025092A1/ja active Application Filing
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103731160B (zh) * | 2014-01-09 | 2016-08-17 | 西安电子科技大学 | 分组空间耦合低密度奇偶校验编码方法 |
| WO2018014249A1 (zh) * | 2016-07-20 | 2018-01-25 | 华为技术有限公司 | 低密度奇偶校验码基矩阵生成方法及装置 |
| US10879931B2 (en) | 2016-07-20 | 2020-12-29 | Huawei Technologies Co., Ltd. | Method and apparatus for generating low-density parity-check code basis matrix |
| CN108134611A (zh) * | 2017-12-14 | 2018-06-08 | 重庆邮电大学 | 一种利用ACE与Zig-Zag的低错误平层QC-LDPC码构造方案 |
| CN111492586A (zh) * | 2017-12-15 | 2020-08-04 | 华为技术有限公司 | Ldpc码的原模图扩展方法 |
| US11309917B2 (en) | 2017-12-15 | 2022-04-19 | Huawei Technologies Co., Ltd. | Base parity-check matrices for LDPC codes that have subsets of orthogonal rows |
| CN111492586B (zh) * | 2017-12-15 | 2022-09-09 | 华为技术有限公司 | 具有正交行的ldpc码的基矩阵设计方法及装置 |
| CN108566212A (zh) * | 2018-05-03 | 2018-09-21 | 重庆邮电大学 | 一种利用EETS与Zig-Zag的低错误平层QC-LDPC码构造方案 |
| CN109766214A (zh) * | 2019-04-01 | 2019-05-17 | 苏州中晟宏芯信息科技有限公司 | 一种最优h矩阵生成方法及装置 |
| CN110224703A (zh) * | 2019-05-31 | 2019-09-10 | 华中科技大学 | 一种准循环矩阵及其构造方法 |
| CN110224703B (zh) * | 2019-05-31 | 2020-11-17 | 华中科技大学 | 一种准循环矩阵及其构造方法 |
| CN115118288A (zh) * | 2022-07-28 | 2022-09-27 | 南京信息工程大学 | 一种块对角结构的sc-ldpc码及其构造方法、系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2009025092A1 (ja) | 2009-02-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101373976A (zh) | 生成ldpc校验矩阵的方法和设备 | |
| US8185797B2 (en) | Basic matrix, coder/encoder and generation method of the low density parity check codes | |
| KR102347823B1 (ko) | 구조화된 ldpc의 부호화 및 복호화 방법 및 장치 | |
| US8103935B2 (en) | Test matrix generating method, encoding method, decoding method, communication apparatus, communication system, encoder and decoder | |
| US8433972B2 (en) | Systems and methods for constructing the base matrix of quasi-cyclic low-density parity-check codes | |
| ES3031114T3 (en) | Encoding method, decoding method, encoding device and decoding device for structured qc-ldpc codes | |
| US7536623B2 (en) | Method and apparatus for generating a low-density parity check code | |
| CN101141133B (zh) | 一种结构化低密度校验码的编码方法 | |
| CN101162907B (zh) | 一种利用低密度奇偶校验码实现编码的方法及装置 | |
| JP2010532129A (ja) | パリティ検査行列の生成 | |
| CN113612486A (zh) | 一种构建pbrl ldpc码的基矩阵方法、系统、装置及存储介质 | |
| CN102412842A (zh) | 一种低密度奇偶校验码的编码方法及装置 | |
| JP4005084B2 (ja) | 検査行列生成方法および検査行列生成装置 | |
| JPWO2010035501A1 (ja) | Ldpc符号を構成する方法、送信装置および受信装置 | |
| CN101663823A (zh) | 设计多码率的低密度奇偶校验码的方法和设备及其信息存储介质 | |
| JP2008514106A (ja) | Ldpcコードを用いた符号化及び復号化方法 | |
| CN102394659A (zh) | Ldpc码校验矩阵构造方法及对应矩阵乘法运算装置 | |
| US20090217122A1 (en) | Coding Apparatus and Coding Method | |
| KR100918741B1 (ko) | 이동 통신 시스템에서 채널 부호화 장치 및 방법 | |
| KR20060116022A (ko) | 패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램 | |
| CN108390676A (zh) | 一种结合等差数列与原模图的qc-ldpc码新颖构造方法 | |
| KR101147768B1 (ko) | 채널 코드를 이용한 복호화 방법 및 장치 | |
| CN105871385B (zh) | 一种ldpc卷积码构造方法 | |
| KR101216075B1 (ko) | 채널 코드를 이용한 복호화 및 복호화 장치 | |
| WO2018126914A1 (zh) | 准循环低密度奇偶校验码的编码方法及装置、存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
| WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090225 |