CN101442317B - 数据解码装置和方法、发送/接收系统、接收装置和方法 - Google Patents
数据解码装置和方法、发送/接收系统、接收装置和方法 Download PDFInfo
- Publication number
- CN101442317B CN101442317B CN2008101702881A CN200810170288A CN101442317B CN 101442317 B CN101442317 B CN 101442317B CN 2008101702881 A CN2008101702881 A CN 2008101702881A CN 200810170288 A CN200810170288 A CN 200810170288A CN 101442317 B CN101442317 B CN 101442317B
- Authority
- CN
- China
- Prior art keywords
- matrix
- sign indicating
- integer
- indicating number
- unit matrix
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 42
- 239000011159 matrix material Substances 0.000 claims description 678
- 238000012545 processing Methods 0.000 claims description 172
- 230000008707 rearrangement Effects 0.000 claims description 40
- 230000005540 biological transmission Effects 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 133
- 230000006870 function Effects 0.000 description 27
- 238000007792 addition Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000000151 deposition Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6513—Support of multiple code types, e.g. unified decoder for LDPC and turbo codes
-
- 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
-
- 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/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- 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/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- 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/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1165—QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
-
- 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
- H03M13/1168—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
-
- 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开一种用于对以第一格式或第二格式接收的LDPC(低密度奇偶校验)码进行解码的解码装置,其中用以对各自通过以第一或者第二格式接收的LDPC码而获得的接收值进行解码的处理包括并行执行的分别作为F个校验节点的处理的至少F个校验节点处理或者并行执行的分别作为F个变量节点的处理的至少F个变量节点处理。
Description
相关申请的交叉援引
本发明包含与2007年10月19日向日本专利局提交的日本专利申请JP 2007-272517有关的主题内容,其全部内容通过援引结合于此。
技术领域
本发明涉及解码装置、数据解码方法、数据发送/接收系统、数据接收装置、数据接收方法和程序。具体而言,本发明涉及能够对结构相互不同的多个LDPC(低密度奇偶校验)码进行解码并且具有小的电路尺寸的解码装置、数据解码方法、数据发送/接收系统、数据接收装置、数据接收方法及程序。
背景技术
通信系统采用编码技术以便通过具有噪声的通信信道来执行可靠通信。例如在无线系统(或者无线电系统)如卫星网络中,有归结于地理和环境原因的诸多噪声源。各通信信道可以视为具有固定容量的信道、可以视为能够代表在某一SNR(信噪比)的每符号位数的信道并且规定了称为香农极限的理论上限。出于这一原因,编码设计的目标在于实现逼近香农极限的速率。这一目标具有与带宽受限的卫星系统特别紧密的关系。
近年来已经开发了各表现出与香农极限接近的性能的编码方法。各编码方法也称为在基于Turbo码如PCCC(并行级联卷积码)和SCCC(串行级联卷积码)的编码处理中采用的所谓Turbo编码技术。尽管正在开发这些Turbo码,但是LDPC码(低密度奇偶校验码)仍然已经广受关注。LDPC码是在已知已久的编码方法中使用的码。
LDPC码首先由R.G.Gallager在“Low Density Parity Check Codes”(Cambridge,Massachusetts,MIT Press,1963)中提出。随后,LDPC码如在D.J.C Mackay的“Good error correcting codes based on very parse matrices”(提交给IEEE Trans.Inf.Theory,IT-45,pp.399-431,1999)中 以及M.G.Luby,M.Mitzenmacher,M.A.Shokrollahi和D.A.Spielman的“Analysis of low density codes and improved designs using irregulargraphs”(见Proceedings of ACM Symposium on Theory of Computing,pp.249-258,1998)中所述再次受到关注。
近年来进行的研究结果已经逐渐地表明在LDPC码的情况下通过增加码长度有可能以与Turbo码相同的方式展现接近香农极限的性能。此外,LDPC码具有显现最小距离与码长度成比例的性质。因此,LDPC码的特征在于LDPC码提供良好块误差概率特征的优点而几乎未出现所谓的误差基底现象。误差基底现象是在比如Turbo码这样的码的解码特征中观察到的现象。
LDPC码具体地说明如下。注意LDPC码是线性码而并非必然是二维码。然而在如下描述中将LDPC码作为二维码来说明。
LDPC码的最突出特征是定义LDPC码的奇偶校验矩阵是稀疏矩阵。稀疏矩阵是其中各自具有值1的元素的数目很小的矩阵。令符号H表示稀疏奇偶校验矩阵。图1是示出了典型稀疏奇偶校验矩阵H的图。如图1的图解中所示,各列的汉明加权是三而各行的汉明加权是六。列或者行的汉明加权是包括在列或者行中的矩阵元素中各自具有值1的元素的数目。
如上所述由各列的汉明加权恒定并且各行的汉明加权恒定的奇偶校验矩阵H定义的LDPC码称为规则LDPC码。另一方面,由汉明加权因列而不同并且汉明加权因行而不同的奇偶校验矩阵H定义的LDPC码称为不规则LDPC码。
通过基于定义LDPC码的奇偶校验矩阵H创建生成矩阵G来执行基于此类LDPC码的编码处理。然后,生成矩阵G与二维信息消息u相乘以便产生编码字c。具体而言,用于基于LDCP码来执行编码处理的编码装置创建如下生成矩阵G,就根据定义LDPC码的奇偶校验矩阵H导出的重排(rearrange)矩阵HT而言方程GHT=0对于该生成矩阵G成立。如果生成矩阵G是k×n矩阵,则编码装置然后将生成矩阵G乘以k位信息消息以便产生由n位组成的编码字c(=uG)。在如下描述中,由k位组成的信息消息也称为向量u。编码装置最终通过将值为零的各编码字映射到+1而将值为1的各编码字映射到-1经由预先确定的通信线路向接收器发送编码字。总之,编码装置基于由奇偶校验矩阵H定义的LDPC码将信息消息u编码成编码字c。
注意如果由n位组成的编码字c是与例如在如图2的图解中所示的由(n-k)行和n列组成的(n-k)行×n列奇偶校验矩阵H中的由k位信息消息和随后(n-k)个奇偶校验位组成的n位序列相匹配的组织码,则与由n位组成的编码字的k位信息消息u对应的(n-k)行×k列矩阵部分称为信息部分,而与由n位组成的编码字的(n-k)个奇偶校验位对应的(n-k)行×(n-k)列矩阵部分称为奇偶校验部分。如果奇偶校验部分是下三角矩降或者上三角矩阵,则通过利用定义LDPC码的奇偶校验矩阵H来执行用以通过采用基于LDPC码的编码方法对信息消息u进行编码的处理。
也就是说,如图2的图解中所示,奇偶校验矩阵H包括信息部分和用作奇偶校验部分的下三角矩阵,而用作奇偶校验部分的下三角矩阵的每个元素是1。在这种情况下如下获得奇偶校验位序列。首先,编码字c的奇偶校验位序列的第一奇偶校验位具有对作为与元素具有值1的奇偶校验矩阵H的信息部分的第一行中包括的矩阵元素相对应的位而各自包含于信息消息u中的位执行EXOR(异或逻辑求和)处理而得到的值。
然后,编码字c的奇偶校验位序列的第二奇偶校验位具有对奇偶校验位序列的第一奇偶校验位和作为与元素具有值1的奇偶校验矩阵H的信息部分的第二行中包括的矩阵元素相对应的位而各自包含于信息消息u中的消息位执行EXOR处理而得到的值。
随后,编码字c的奇偶校验位序列的第三奇偶校验位具有对奇偶校验位序列的第一和第二奇偶校验位以及作为与元素具有值1的奇偶校验矩阵H的信息部分的第三行中包括的矩阵元素相对应的位而各自包含于信息消息u中的消息位执行EXOR处理而得到的值。
随后,以相同方式得到奇偶校验位序列的第四和后续奇偶校验位。广而言之,编码字c的奇偶校验位序列的第i奇偶校验位具有对奇偶校验位序列的第一至第(i-1)奇偶校验位和作为与元素具有值1的奇偶校验矩阵H的信息部分的第i行中包括的矩阵元素相对应的位而各自包含于信息消息u中的消息位执行EXOR处理而得到的值。
奇偶校验位序列的(n-k)个奇偶校验位计算如上,然后将奇偶校验位序列放置于在由k位组成的信息消息之后的位置上以便生成n位编码字c。
另一方面,也可以根据以在由各自也称为消息节点的变量节点和校验节点组成的所谓Tanner图上的置信传播为基础的消息传递算法来执行利 用LDPC码的解码处理。消息传递算法是由Gallager作为所谓的概率解码的算法而提出的算法。下文将变量节点和校验节点任意地简称为节点。
然而在概率解码算法的情况下,在节点之间传递的消息是实数值。因此,为了解析地求解消息,有必要跟踪具有连续值的消息的概率分布。也就是说,有必要进行极为困难的分析。为了解决这一问题,Gallager已经提出算法A和B作为各自用于对LDPC码进行解码或者严格地说是对通过利用LDPC码而已经编码的数据进行解码的算法。
通常根据图3中所示流程图代表的处理来执行用以对通过利用LDPC码编码的数据进行解码的解码处理。在如下描述中,用以对通过利用LDPC码编码的数据进行解码的处理也简称为用以对LDPC码进行解码的处理,而用作解码对象的LDPC码意味着通过利用LDPC码已经编码的数据。注意在该处理中,符号U0(u0i)表示基于具有某一码长的LDPC码而编码的接收数据的第i个值,符号uj表示从校验节点输出的第j个消息、严格地说是从连接到校验节点的第j个边输出的消息,而符号vi表示从变量节点输出的第i个消息、严格上说是从连接到变量节点的第i个边输出的消息。此外在这一情况下,消息是如下实数值,该实数值用于将所谓的对数似然比等表达为代表了值0的似然度的值。
如图3中所示,代表了解码处理过程的流程图始于步骤S101,在该步骤接收数据值U0(u0i)而消息uj和变量k各初始化为0。变量k是代表重复处理次数的整数。然后,解码处理的流程前进到步骤S102。在步骤S102结合消息ui来使用所接收的数据值U0(u0i)以便在变量节点执行根据方程(1)的处理,从而获得消息vi。然后,将消息vi用于在校验节点执行根据方程(2)的处理以便获得消息uj。
在方程(1)中使用的符号dv表示如下参数,该参数代表在竖直(或者列)方向上各自具有值1的元素的数目,而在方程(1)中使用的符号dc表示如下参数,该参数代表在水平(或者行)方向上各自具有值1的元 素的数目。也就是说,符号dv和dc表示分别代表各列汉明加权和各行汉明加权的参数。可以任意地选择这些参数dv和dc的值。例如在码(3,6)的情况下,各列汉明加权的值设置为3(也就是说dv=3),而各行汉明加权的值设置为6(也就是说dc=6)。
注意在根据方程(1)的求和处理中,从尝试输出消息的边输入的消息未用作该处理的对象。因此,求和处理的范围从1开始而在(dv-1)结束。按照相同的方式,在根据方程(2)的乘法处理中,从尝试输出消息的边输入的消息未用作该处理的对象。因此,乘法处理的范围从1开始而在(dc-1)结束。此外,可以根据如下方程(3)和(4)来执行根据方程(2)获得消息uj的值的乘法处理。根据方程(3)预先创建针对两个给定输入v1和v2的函数R(v1,v2)的值1的表。如方程(3)所示,函数R(v1,v2)的值x是输入v1和v2的函数。然后,可以根据方程(4)以递归方式通过使用从表中获得的值x来获得消息uj的值。
x=2tanh-1{tanh(v1/2)tanh(v2/2)}=R(v1,v2) ...(3)
此外在步骤S102,变量k2被递增1。然后,解码处理的流程前进到步骤S103。在步骤S103,比较变量k与预先确定的重复解码计数N以便产生关于变量k等于还是大于重复解码计数N的确定结果。如果在步骤S103执行的处理所产生的确定结果表示变量k既不等于也不大于预先确定的重复解码计数N,则解码处理的流程回到步骤S102以重复步骤S102和S103的处理。
另一方面,如果在步骤S103执行的处理所产生的确定结果表示变量k等于或者大于预先确定的重复解码计数N,则解码处理的流程前进到步骤S104,在该步骤通过执行根据方程(5)的处理来获得消息v作为将最终输出的解码结果。然后,结束用以对通过利用LDPC码编码的数据进行解码的解码处理。
根据方程(5)的计算处理与根据方程(1)的计算处理不同之处在于通过利用来自连接到变量节点的所有边的消息uj来执行根据方程(5)的计算处理。
在用以对通过利用LDPC码而编码的数据进行解码的解码处理中,例如在码(3,6)的情况下,如图4的图解中所示在节点之间交换消息。注意在图4的图解中,等号“=”所示各节点是执行根据方程(1)的求和处理的变量节点。另一方面,加号运算符“+”所示各节点是执行根据方程(2)的乘法处理的校验节点。
具体而言,根据前文引用的算法A,使消息为二维,并且在加号运算符“+”所示校验节点对供应到校验节点的(dc-1)个输入消息vi执行异或逻辑求和处理,而在等号“=”所示变量节点,如果向变量节点供应的(dv-1)个输入消息uj具有全部不同的位值则在输出数据R之前反转所接收的数据R的符号。
此外,近年来进行了与用于对通过利用LDPC码而编码的数据进行解码处理的方法的实施有关的研究。在描述用于对通过利用LDPC码而编码的数据进行解码处理的方法之前,首先创建和说明用以对通过利用LPDC码而编码的数据进行解码的处理的模型。
图5是示出了将码(3,6)的LDPC码定义为编码率为1/2而码长度为12的LDPC码的典型奇偶校验矩阵H的图解。可以通过如图6的图解中所示的Tanner图来表达在图5的图解中表示为定义LDPC码的矩阵的奇偶校验矩阵H。在图6的图解中,等号符号“=”所示各节点是变量节点,而加号运算符“+”所示各节点是校验节点。校验节点和变量节点对应于奇偶校验矩阵H中的行和列。将校验节点和变量节点相互连接的线称为与值为1的矩阵元素相对应的边。也就是说,如果在奇偶校验矩阵H中作为第j行和第i列的交点而存在的交点处的矩阵元素具有值1,则从图6的图解顶部开始的第i个变量节点(也就是等号符号“=”所表示的第i个节点)和从图6的图解顶部开始的第j个校验节点(也就是加号运算符“+”所表示的第j个节点)通过与值为1的矩阵元素所在的交点相对应的边来相互连接。将变量节点和校验节点相互连接的边表示了作为与变量节点关联的位在通过利用LDCP码而编码的接收数据中包括的位具有就校验节点而言的约束条件。注意图6的图解中所示的Tanner图表达了如上所述图5的图解中所示的奇偶校验矩阵H。
用作对通过利用LDPC码而编码的数据进行解码的方法来工作的和 积算法是用于重复地执行变量节点和校验节点的处理的算法。
在变量节点,如图7的图解中所示执行作为变量节点的处理的由方程(1)代表的求和处理。在图7的图解中所示的求和处理中,根据来自连接到变量节点的其余边的消息u1和u2以及接收的数据值u0i来计算与在连接到变量节点的边之中存在的第i个边相对应的消息vi。也可以用相同方式计算与任何其它边相对应的消息。
在说明在校验节点执行的处理之前,通过利用a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)这一关系将方程(2)改写为方程(6),其中sign(x)对于x≥0而言具有值1(或者逻辑值0)或者对于x<0而言具有值-1(或者逻辑值1)。
在校验节点,如图8的图解中所示执行根据方程(7)的校验节点处理。在图8的图解中所示的乘法处理中,根据来自连接到校验节点的其余边的消息v1、v2、v3、v4和v5来计算与在连接到校验节点的边之中存在的第j个边相对应的消息uj。也可以用相同方式计算与任何其它边相对应的消息。
注意非线性函数 也可以表达如下: 在这一情况下,对于x>0, 也就是说,执行非线性函数 的处理结果等于执行非线性函数 的反函数 的处理结果。实际上,硬件用于实施各函数非线性函数 和非线性函数 的反函数 用于实施各函数非线性函数 和非线性函数 的反函数 的硬件通常是LUT(查找表)。因此,在这一情况下,可以使用非线性函数 和非线性函数 的反函数 共用的LUT。
此外,在变量节点作为根据方程(1)的求和处理而执行的处理可以分成根据方程(5)的求和处理和根据方程(8)的减法处理。
vi=v-udv ...(8)
因此,通过重复根据方程(5)和(8)的处理,可以重复变量节点的处理,也就是说可以重复根据方程(1)的变量节点处理。按照相同方式,通过重复根据方程(7)的处理,可以重复校验节点的处理。在这一情况下,作为重复根据方程(5)和(8)的处理的结果而获得的根据方程(8)的最后处理的结果可以用作解码处理的最终结果。
如果和积算法通过硬件实施为用于解码装置的算法,有必要通过利用尺寸恰当的电路以适当工作频率重复变量节点处理和校验节点处理。变量节点处理是根据方程(1)或者(5)和(8)在每个变量节点执行的处理,而校验节点处理是根据方程(7)在每个校验节点执行的处理。
这样的解码装置的例子说明如下。
用于对通过利用LPDC码而编码的数据进行解码的算法的特征在于该算法允许实施性能很高的全并行处理解码装置。然而,用于码长度大的数据的全并行处理解码装置具有极大的电路尺寸,使得难以实施该装置。
为了解决这一问题,近年来已经提出一种具有如下结构的LDPC码作为在通信系统如DVB-S.2(ETSI EN302307)中使用的LDPC码,该结构适合于实施具有实用电路尺寸的解码装置。出于这一原因,所提出的LDPC码在以下描述中称为DVB-S.2LDPC码。
具有通过重排如上所述的奇偶校验矩阵中的行和列而获得的结构的矩阵可以定义DVB-S.2LDPC码。
也就是说,具有通过组合包括P×P单位矩阵(其中P=360)、P×P准单位矩阵、P×P移位矩阵、P×P求和矩阵和P×P零矩阵的多个配置矩阵而获得的结构的奇偶检验矩阵可以表达DVB-S.2LDPC码。准单位矩阵是其中各自具有值1的一个或者多个矩阵元素被设置为0的单位矩阵。移位矩阵是通过对单位矩阵或者准单位矩阵执行循环移位运算而获得的矩阵。求和矩阵是通过对单位矩阵、准单位矩阵和移位矩阵中的至少两个矩阵执行矩阵相加运算而获得的矩阵。注意在以下描述中,具有这样的结构 的奇偶校验矩阵被称为由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵,而由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵所定义的LDPC码称为P码。
通过利用这样的P码,有可能实施一种用于同时处理分别代表P个接收值的P位和分别代表P个消息的P位的解码装置。
然而为了使以下说明易于理解,针对P=6给出说明。图9是示出了定义编码率为2/3而码长为108的LDPC码的奇偶校验矩阵H的图。图9的图解中所示的奇偶校验矩阵H是由各自具有6×6结构的配置矩阵组成的典型奇偶校验矩阵。为了使各自具有6×6结构的各配置矩阵易于识别,在图9的图解中所示的奇偶校验矩阵H中的6×6配置矩阵之间提供间隙。为了使图9的图解易于查看,奇偶校验矩阵H中各自具有值0的各矩阵元素用句点“.”代表。也就是说,图9的图解中所示的奇偶校验矩阵具有通过组合包括6×6单位矩阵、6×6准单位矩阵、6×6移位矩阵、6×6求和矩阵和6×6零矩阵的多个配置矩阵而获得的结构。如前文所述,准单位矩阵是其中各自具有值1的一个或者多个矩阵元素被设置为0的单位矩阵。
图10是示出了用于对通过利用在上文中描述的LDPC码为P=6的LDPC码而编码的数据进行解码的现有技术的典型解码装置的框图。
图10的框图中所示的典型解码装置的配置包括接收值缓存器200、接收值存放存储器201、节点处理部分202、移位部分203、消息存放存储器204和解码结果存放存储器205。
接收值缓存器200是用于在从通信线路接收的数据D200作为数据D201传送到接收值存放存储器201之前将数据D200存储为尺寸为一个码的数据的缓存器。根据用于向接收值缓存器200发送数据D200的发送方法,在一些情况下可以执行用以重排在接收值缓存器200中存储的数据D200的码位(code bit)的处理。
以每个由6位组成的六个单位按照图9的图解中所示的奇偶校验矩阵H的列的顺序从接收值存放存储器201同时读出数据D201。也就是说,以各自为由六行和六列组成的矩阵的单位从接收值存放存储器201读出数据D201,并且将该数据作为接收数据D202供应到节点处理部分202。
节点处理部分202利用分别由标号210-1至210-6表示的六个节点处理器。六个节点处理器210-1至210-6各自根据由图10的框图中未示出的控制部分发出的命令,对从接收值存放存储器201读出的六个数据D202 中的预定一个数据和从消息存放存储器204接收的六个消息D205中的预定一个消息同时执行校验节点处理或者变量节点处理、并且将消息D202作为处理的结果输出到移位部分203。也就是说,节点处理器210-1至210-6将六个消息D203作为并行执行的处理的结果分别供应到移位部分203。此外,节点处理器210-1至210-6也分别将节点处理器210-1至210-6同时执行的变量节点处理的六个解码结果D206分别同时输出到解码结果存放存储器205。
当在节点处理部分202中利用的节点处理器210-1至210-6分别将六个消息D203供应到移位部分203时,图10的框图中未示出的控制部分向移位部分203提供如下信息,该信息表示与六个消息D203相对应的边各自是这样的边,针对该边已经对用作图9的图解中所示的奇偶校验矩阵H的元素矩阵的比如单位矩阵这样的配置矩阵执行一些循环移位运算。基于此信息,移位部分203执行循环移位运算以重排六个消息D203并且将六个消息D204作为运算的结果输出到消息存放存储器204。
在消息存放存储器204中,将从移位部分203接收的6个消息D204存储于由图10的框图中未示出的控制部分所指定的地址。消息存放存储器204将从图10的框图中未示出的控制部分所指定的地址读出的六个数据作为六个消息D205输出到节点处理部分202。
解码结果存放存储器205用于存储由节点处理部分202的节点处理器210-1至210-6同时执行的变量节点处理的六个解码结果D206。这6个解码结果D206实际上是6位的数据。在完成解码处理之后,将6位数据作为解码结果D207输出。
注意,通过恰当地控制向各存储器中写入数据的顺序、从各存储器读出数据的顺序和移位量,图10的框图中所示的典型解码装置不仅能够对单个码进行解码,而且也能够对结构相同的其它码进行解码。
图11是示出了在节点处理部分202中利用的六个节点处理器210-1至210-6中的每一个节点处理器的典型配置的框图。在下文中,如果没有必要将六个节点处理器210-1至210-6相互区分,则六个节点处理器210-1至210-6各自仅以通用标号210来表示。
具有图11的框图中所示的典型配置的节点处理器210能够通过将处理从一个处理切换到另一处理来交替地执行根据方程(1)的变量节点处理和根据方程(7)的校验节点处理。
节点处理器210具有各自用于从外源接收消息或者数据的两个输入端口P301和P302。具体而言,在图10的框图中所示的典型解码装置中,输入端口P301是用于从接收值存放存储器201接收数据D202的端口,而输入端口P302是用于从消息存放存储器204接收消息D205的端口。
此外,节点处理器201也具有各自用于输出消息或者处理结果的输出端口P303和P304。具体而言,在图10的框图中所示的典型解码装置中,输出端口P303是用于向移位部分203输出消息D203的端口,而输出端口P304是用于向解码结果存放存储器205供应解码结果D206的端口。
除此之外,节点处理器201也利用各自具有输入端子V和C的选择器301、316和318。通过利用各选择器301、316和318来选择输入端子V,节点处理器210执行变量节点处理。另一方面,通过利用各选择器301、316和318来选择输入端子C,节点处理器210执行校验节点处理。
首先说明由用作变量节点的节点处理器210执行的变量节点处理。
节点处理器210通过输入端口P302从图10的框图中所示的典型解码装置的消息存放存储器204接收源自校验节点的一列消息D205。将消息D205作为消息D301(或者消息uj)而依次逐个地供应到选择器301。选择器301将消息D301作为消息D306供应到加法器302。加法器302还接收由选择器317输出的数据D323。加法器302将选择器317所输出的数据D323与选择器301所输出的数据D306相加以便产生和,然后将该和存储于寄存器303中。
如果选择器317已经选择了其连接到输出数据D307的寄存器303的输入端子,则加法器302将寄存器303通过选择器317向加法器302供应的数据D307与选择器301所输出的消息D306相加以产生和,然后再将该和存储于寄存器303中。
另一方面,如果选择器317已经选择了其连接到输出数据D322的选择器318的输入端子,则加法器302将选择器318通过选择器317向加法器302供应的数据D322与选择器301所输出的消息D306相加以便产生和。顺便提一点,由选择器318输出的数据D322是作为数据D300由输入端口P301接收的数据D202(或者u0i。因此,加法器302将接收的数据D202(或者u0i)与选择器301所输出的消息D306相加以便产生和,该和被存储于寄存器303中。
随着对一列重复进行上述操作,在寄存器303中积累总值等于∑uj+ u0i的数据D307,其中求和∑uj覆盖范围j=1至dv。总值等于∑uj+u0i的数据D307然后通过选择器304传送到寄存器305。
同时,延迟FIFO 310用于通过在延迟FIFO 310中保持作为源自校验节点的消息由选择器301输出的消息D306来延迟消息D306直至寄存器输出总值等于∑uj+u0i的新数据D308为止,其中求和∑uj覆盖范围j=1至dv。延迟FIFO 310然后将延迟的消息D306作为延迟的输入消息D315输出到减法器312。
减法器312从由寄存器305输出的新数据D308中减去由延迟FIFO310输出的延迟的输入消息D315,以便产生大小等于∑uj+u0i的差值D316,其中求和∑uj覆盖范围j=1至(dv-1)。减法器312将差值D316输出到选择器316。然后,选择器317将差值D316作为消息D321输出到输出端口P303。最终,输出端口P303将消息D321作为输出消息D203传递到在图10的框图中所示的典型解码装置中利用的移位部分203。
换而言之,当执行根据方程(1)的变量节点的处理时,用作变量节点的节点处理器210通过从连接到用作变量节点的节点处理器210的所有校验节点接收的消息之和以及接收的数据中减去由特定校验节点供应的消息来计算要通过边向特定校验节点输出的消息。
接着说明由用作校验节点的节点处理器210执行的校验节点处理。
节点处理器210通过输入端口P302从图10的框图中所示的典型解码装置的消息存放存储器204接收源自变量节点的一行消息D205。将该消息D205作为消息D301(或者消息vi)而依次逐个消息地由输入端口P302传递,并且作为绝对值D303(或者|vi|)供应到LUT 300。
LUT 300是用于将表达校验节点处理的方程(7)中所用的非线性函数 的值存储为各自与作为绝对值D303(或者|vi|)的变元x相关联的值的LUT。也就是说,LUT 300用于存储值D305(或者 )。当向LUT 300供应绝对值D303(或者|vi|)时,LUT 300输出值D305(或者 )。
从LUT 300读出的值D305(或者 )作为消息D306通过选择器301供应到加法器302。加法器302将选择器301所输出的消息D306与选择器317所输出的数据D323相加以产生和,然后将该和存储于寄存器303中。在这一情况下,选择器317已经选择了其连接到输出数据D307的寄存器303的输入端子。因此,加法器302将寄存器303通过选择器 317向加法器302供应的数据D307与选择器301所输出的消息D306相加以便产生和,然后再将该和存储于寄存器303中。因此,数据D307是值D305(或者 )的累积和。
随着就一行消息D301(或者消息vi)对从LUT 300读出的值D305(或者 )累积地求和以产生一行累积和D307,在范围i=1至dc内计算的大小等于 的和D307通过选择器304供应到寄存器305。
同时,延迟FIFO 310用于通过在延迟FIFO 310中保持由选择器301输出的消息D306来延迟消息D306,直至寄存器305输出总值与在范围i=1至dc内计算的 相等的新数据D308为止。也就是说,延迟FIFO310用于延迟从LUT 300读出的值D305(或者 )。延迟FIFO 310然后将延迟的值D305作为延迟的输入消息D315输出到减法器312。
LUT 314是如下工作的LUT。在LUT 314中,差值D316视为变元x。对于变元x,从LUT 314读出作为非线性函数 的反函数 在根据方程(7)的校验节点处理中使用的反函数 的值。具体而言,当减法器312向LUT 314提供量值与在范围i=1至(dc-1)内计算的 相等的差值D316时,LUT 314输出作为反函数 值的值
与上述操作同时,EXOR电路306对各消息D 301(或者各消息vi)的符号位D304(或者sign(vi))和存储于寄存器307中的值D310执行异或逻辑求和处理,以便产生逻辑和D309,并且再次在寄存器307中存储该和D309。消息D301的符号位D304是表示消息D301是正消息还是负消息的位。
随着针对一行的消息D301(或者消息vi)的符号位由EXOR电路306累积地求和并且存储于寄存器307中,寄存器307通过选择器向寄存器309供应在范围i=1至dc内计算的∏sign(vi)所代表的累积值D310。
同时,延迟FIFO 310用于通过在延迟FIFO 310中保持乘法运算中所用的符号位D304(或者sign(vi))来延迟符号位D304(或者sign(vi)),直至寄存器308输出在范围i=1至dc内计算的∏sign(vi)所代表的新数据D311为止。延迟FIFO 310然后将延迟的符号位D304 作为延迟的符号位D313输出到EXOR电路315。
EXOR电路315对从延迟FIFO 310接收的延迟符号位D313和存储于寄存器309中的累积值D311执行异或逻辑求和处理,以便产生在范围i=1至(dc-1)内计算的∏sign(vi)所代表的符号位D319并且向选择器316供应该符号位D319。
最终,选择器316将从EXOR电路315接收的符号位D319附加到由LUT 314输出的值 以便产生消息D312,并且向输出端口P303输出消息D321,该输出端口P303然后将消息D312传递到图10的框图中所示的典型解码装置的移位部分203。
换而言之,当执行根据方程(7)的校验节点的处理时,节点处理器210通过从连接到用作校验节点的节点处理器210的所有校验节点接收的消息之和中减去由特定变量节点供应的消息来计算要通过边向特定变量节点输出的消息。
在解码的最终阶段,节点处理器210执行根据方程(5)的处理而不执行根据方程(1)的变量节点处理,并且通过输出端口P304将该处理结果所获得的数据D308作为解码结果D206输出到图10的框图中所示的典型解码装置的解码结果存放存储器205。解码的最终阶段通常是在将变量节点处理和校验节点处理重复进行了N次之后执行的最后的变量节点处理,其中N是预先确定的整数。
要注意,尽管图10的框图中所示的典型解码装置是用于对P=6的码进行解码的解码装置,但是用于对P不同于6的P码进行解码的解码装置可以基本上被设计成具有与图10的框图中所示的典型解码装置的配置相同的配置。
发明内容
然而,如果将用于对P码进行解码的解码装置实施成利用现有技术的技术并且具有与图10的框图中所示的典型解码装置的配置相同的配置,则需要并行连接的P个节点处理器,而不是仅需要并行连接的六个节点处理器。此外,移位部分需要执行P×P次循环移位运算,而不是仅执行6×6次循环移位运算。除此之外,各存储器必须允许能够同时写入和读出P个数据,而不是仅需要同时写入和读出六个数据。
因此对于取值较大的P,出现了整个解码装置的电路尺寸不期望地增加的问题。
此外,现有技术的解码装置不能对除了P码之外的码进行解码。例如,现有技术的解码装置不能对Q码进行解码。因此,在发送系统中使用的码必须都是P码。因而不期望地出现了另一问题:在一种通常利用针对面向各自具有高传输率的固定接收器的服务而设计的P码和针对面向各自具有低传输率但是对功率消耗具有较大限制的便携式接收器的服务而设计的Q码的系统中,为了配置对P码和Q码共用的接收器,必须相互分离地设计专用于对P码进行解码的解码装置和专用于对Q码进行解码的解码装置。
针对上述问题,本发明的发明人提出一种能够对具有不同结构的并且通过利用LDPC码来编码的多个码进行解码的解码装置,而且有可能减小其电路尺寸。
根据本发明的一个实施例,提供一种用于对以如下格式接收的LDPC(低密度奇偶校验)码进行解码的解码装置:
由第一原始奇偶校验矩阵表达的或者由第一重排后矩阵表达的第一格式,其中第一原始奇偶校验矩阵具有通过组合多个第一配置矩阵而获得的第一结构,第一配置矩阵包括P×P单位矩阵、通过将P×P单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的P×P准单位矩阵、通过对P×P单位矩阵或者P×P准单位矩阵执行循环移位运算而获得的P×P移位矩阵、通过对P×P单位矩阵、P×P准单位矩阵和P×P移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的P×P求和矩阵、以及P×P零矩阵,而第一重排后矩阵是通过重排第一原始奇偶校验矩阵中的至少一行和一列、作为具有第一结构的矩阵而获得的,其中符号P表示整数;或者
由第二原始奇偶校验矩阵表达的或者由第二重排后矩阵表达的第二格式,其中第二原始奇偶校验矩阵具有通过组合多个第二配置矩阵而获得的第二结构,第二配置矩阵包括Q×Q单位矩阵、通过将Q×Q单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的Q×Q准单位矩阵、通过对Q×Q单位矩阵或者Q×Q准单位矩阵执行循环移位运算而获得的Q×Q移位矩阵、通过对Q×Q单位矩阵、Q×Q准单位矩阵和Q×Q移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的Q×Q求和矩阵、以及Q×Q零矩阵,而第二重排后矩阵是通过重排第二原始奇偶校验矩阵中的至少一行和一列、作为具有第二结构的矩阵而获得的,其中符号Q表示如下整数,该整数具有整数Q和P的非一公约数F,
其中,用以对各自通过以第一或者第二格式接收LDPC码而获得的接收值进行解码的处理包括并行执行的分别作为F个校验节点的处理的至少F个校验节点处理或者并行执行的分别作为F个变量节点的处理的至少F个变量节点处理。
上述解码装置包括:
消息计算装置,用于通过并行执行F个校验节点处理或者F个变量节点处理来执行对各自通过接收LDPC码而获得的接收值进行解码的处理、并且输出通过F个校验节点处理或者F个变量节点处理而获得的F个消息;
移位装置,用于对消息计算装置所生成的F个消息执行F×F次循环移位运算并且输出通过F×F次循环移位运算而获得的F个消息;以及
存储装置,用于存储由移位装置生成的F个消息并且允许读出存储的F个消息、或者存储上述F个接收值并且允许读出存储的F个接收值。
解码装置还包括:控制装置,用于通过对具有第一结构的第一奇偶校验矩阵或者具有第二结构的第二奇偶校验矩阵所表达的接收值至少执行列重排处理或者与列重排处理等效的处理来控制用以向消息计算装置供应与在具有根据第一或者第二配置矩阵导出的第三配置矩阵的第三结构的矩阵中包括的第三配置矩阵相对应的F个接收值组成的单位的操作作为用以向消息计算装置供应接收值的操作,其中第三结构是通过组合多个第三配置矩阵而获得的结构,第三配置矩阵包括F×F单位矩阵、通过将F×F单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的F×F准单位矩阵、通过对F×F单位矩阵或者F×F准单位矩阵执行循环移位运算而获得的F×F移位矩阵、通过对F×F单位矩阵、F×F准单位矩阵和F×F移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的F×F求和矩阵、以及F×F零矩阵。
根据本发明另一实施例的解码方法是一种用于该解码装置的解码方法,而根据本发明其它实施例的程序是一种实施该解码方法的程序。
也就是说,根据本发明的其它实施例,提供一种由用于对以如下格式接收的LDPC码进行解码的解码装置采用的解码方法:
由第一原始奇偶校验矩阵表达的或者由第一重排后矩阵表达的第一格式,其中第一原始奇偶校验矩阵具有通过组合多个第一配置矩阵而获得的第一结构,第一配置矩阵包括P×P单位矩阵、通过将P×P单位矩阵的 一个或者多个矩阵元素各自的值从1设置为0而获得的P×P准单位矩阵、通过对P×P单位矩阵或者P×P准单位矩阵执行循环移位运算而获得的P×P移位矩阵、通过对P×P单位矩阵、P×P准单位矩阵和P×P移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的P×P求和矩阵、以及P×P零矩阵,而第一重排后矩阵是通过重排第一原始奇偶校验矩阵中的至少一行和一列、作为具有第一结构的矩阵而获得的,其中符号P表示整数;或者
由第二原始奇偶校验矩阵表达的或者由第二重排后矩阵表达的第二格式,其中第二原始奇偶校验矩阵具有通过组合多个第二配置矩阵而获得的第二结构,第二配置矩阵包括Q×Q单位矩阵、通过将Q×Q单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的Q×Q准单位矩阵、通过对Q×Q单位矩阵或者Q×Q准单位矩阵执行循环移位运算而获得的Q×Q移位矩阵、通过对Q×Q单位矩阵、Q×Q准单位矩阵和Q×Q移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的Q×Q求和矩阵、以及Q×Q零矩阵,而第二重排后矩阵是通过重排第二原始奇偶校验矩阵中的至少一行和一列、作为具有第二结构的矩阵而获得的,其中符号Q表示如下整数,该整数具有整数Q和P的非一公约数F,
其中,为了对各自通过以第一或者第二格式接收LDPC码而获得的接收值进行解码,解码装置执行以下步骤:并行执行分别作为F个校验节点的处理的F个校验节点处理或者并行执行分别作为F个变量节点的处理的F个变量节点处理。
此外,根据本发明的其它实施例,提供一种由用于控制解码装置的计算机执行的程序,该解码装置用于对以如下格式接收的LDPC码进行解码:
由第一原始奇偶校验矩阵表达的或者由第一重排后矩阵表达的第一格式,其中第一原始奇偶校验矩阵具有通过组合多个第一配置矩阵而获得的第一结构,第一配置矩阵包括P×P单位矩阵、通过将P×P单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的P×P准单位矩阵、通过对P×P单位矩阵或者P×P准单位矩阵执行循环移位运算而获得的P×P移位矩阵、通过对P×P单位矩阵、P×P准单位矩阵和P×P移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的P×P求和矩阵、以及P×P零矩阵,而第一重排后矩阵是通过重排第一原始奇偶校验矩阵中的至少一 行和一列、作为具有第一结构的矩阵而获得的,其中符号P表示整数;或者
由第二原始奇偶校验矩阵表达的或者由第二重排后矩阵表达的第二格式,其中第二原始奇偶校验矩阵具有通过组合多个第二配置矩阵而获得的第二结构,第二配置矩阵包括Q×Q单位矩阵、通过将Q×Q单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的Q×Q准单位矩阵、通过对Q×Q单位矩阵或者Q×Q准单位矩阵执行循环移位运算而获得的Q×Q移位矩阵、通过对Q×Q单位矩阵、Q×Q准单位矩阵和Q×Q移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的Q×Q求和矩阵、以及Q×Q零矩阵,而第二重排后矩阵是通过重排第二原始奇偶校验矩阵中的至少一行和一列、作为具有第二结构的矩阵而获得的,其中符号Q表示如下整数,该整数具有整数Q和P的非一公约数F,
其中,用以对各自通过以第一或者第二格式接收LDPC码而获得的接收值进行解码的处理包括以下步骤:并行执行分别作为F个校验节点的处理的F个校验节点处理或者并行执行分别作为F个变量节点的处理的F个变量节点处理。
根据本发明的又一实施例,提供一种数据发送/接收系统,其中:
用作纠错码的LDPC(低密度奇偶校验)码具有可以由原始奇偶校验矩阵表达的或者由重排后矩阵表达的格式,原始奇偶校验矩阵具有通过组合多个配置矩阵而获得的结构,配置矩阵包括α×α单位矩阵、通过将α×α单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的α×α准单位矩阵、通过对α×α单位矩阵或者α×α准单位矩阵执行循环移位运算而获得的α×α移位矩阵、通过对α×α单位矩阵、α×α准单位矩阵和α×α移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的α×α求和矩阵、以及α×α零矩阵,而重排后矩阵是通过重排原始奇偶校验矩阵中的至少一行和一列、作为具有该结构的矩阵而获得的,其中符号α表示除了1之外的任何整数;
从各自与除了1之外的整数F的倍数相等的多个不同整数之中选择K个整数,其中符号K表示至少等于2的整数;
使用选择的K个整数中的各整数作为整数α以提供K个不同类型的LDPC码;以及
使用K个不同类型的LDPC码中的各LDPC码作为纠错码。
在根据本发明又一实施例的数据发送/接收系统中,如下所述确定的LDPC码用作纠错码。用作纠错码的LDPC(低密度奇偶校验)码具有可以由原始奇偶校验矩阵表达的或者由重排后矩阵表达的格式,原始奇偶校验矩阵具有通过组合多个配置矩阵而获得的结构,配置矩阵包括α×α单位矩阵、通过将α×α单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的α×α准单位矩阵、通过对α×α单位矩阵或者α×α准单位矩阵执行循环移位运算而获得的α×α移位矩阵、通过对α×α单位矩阵、α×α准单位矩阵和α×α移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的α×α求和矩阵、以及α×α零矩阵,而重排后矩阵是通过重排原始奇偶校验矩阵中的至少一行和一列、作为具有该结构的矩阵而获得的,其中符号α表示除了1之外的任何整数。首先,从各自与除了1之外的整数F的倍数相等的多个不同整数之中选择K个整数,其中符号K表示至少等于2的整数。然后,使用选择的K个整数中的各整数作为整数α以提供K个不同类型的LDPC码。最后,使用K个不同类型的LDPC码中的各LDPC码作为纠错码。
根据本发明的又一实施例,提供一种由数据发送/接收系统利用的数据接收装置,其中:
用作纠错码的LDPC(低密度奇偶校验)码具有可以由原始奇偶校验矩阵表达的或者由重排后矩阵表达的格式,原始奇偶校验矩阵具有通过组合多个配置矩阵而获得的结构,配置矩阵包括α×α单位矩阵、通过将α×α单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的α×α准单位矩阵、通过对α×α单位矩阵或者α×α准单位矩阵执行循环移位运算而获得的α×α移位矩阵、通过对α×α单位矩阵、α×α准单位矩阵和α×α移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的α×α求和矩阵、以及α×α零矩阵,而重排后矩阵是通过重排原始奇偶校验矩阵中的至少一行和一列、作为具有该结构的矩阵而获得的,其中符号α表示除了1之外的任何整数;
从各自与除了1之外的整数F的倍数相等的多个不同整数之中选择K个整数,其中符号K表示至少等于2的整数;
使用选择的K个整数中的各整数作为整数α以提供K个不同类型的LDPC码;以及
使用K个不同类型的LDPC码中的各LDPC码作为纠错码。
数据接收装置包括:解码装置,用于执行处理以通过并行执行分别作为F个校验节点的处理的至少F个校验节点处理或者并行执行分别作为F个变量节点的处理的至少F个变量节点处理来对各自通过接收作为如下LDPC码的K个不同类型之一的LDPC码而获得的接收值进行解码,该LDPC码具有在整数α设置为K个整数之一时的格式。
根据本发明又一实施例的数据接收方法是一种为上述数据接收装置提供的方法。
也就是说,根据本发明的又一实施例,提供一种由数据发送/接收系统利用的数据接收装置所采用的数据接收方法,其中:
用作纠错码的LDPC(低密度奇偶校验)码具有可以由原始奇偶校验矩阵表达的或者由重排后矩阵表达的格式,原始奇偶校验矩阵具有通过组合多个配置矩阵而获得的结构,配置矩阵包括α×α单位矩阵、通过将α×α单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的α×α准单位矩阵、通过对α×α单位矩阵或者α×α准单位矩阵执行循环移位运算而获得的α×α移位矩阵、通过对α×α单位矩阵、α×α准单位矩阵和α×α移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的α×α求和矩阵、以及α×α零矩阵,而重排后矩阵是通过重排原始奇偶校验矩阵中的至少一行和一列、作为具有该结构的矩阵而获得的,其中符号α表示除了1之外的任何整数;
从各自与除了1之外的整数F的倍数相等的多个不同整数之中选择K个整数,其中符号K表示至少等于2的整数;
使用选择的K个整数中的各整数作为整数α以提供K个不同类型的LDPC码;以及
使用K个不同类型的LDPC码中的各LDPC码作为纠错码,
数据接收方法包括以下步骤:执行处理以通过并行执行分别作为F个校验节点的处理的至少F个校验节点处理或者并行执行分别作为F个变量节点的处理的至少F个变量节点处理来对各自通过接收作为如下LDPC码的K个不同类型之一的LDPC码而获得的接收值进行解码,该LDPC码具有在整数α设置为K个整数之一时的格式。
根据本发明,有可能提供一种用于对LDPC码进行解码的解码装置、一种利用该解码装置作为装置配置要素的数据接收装置、以及一种包括该数据接收装置作为系统配置要素的数据发送/接收系统。具体而言,根据 本发明实施例的解码装置能够对结构相互不同的多个LDPC码进行解码。也有可能减少根据本发明实施例的解码装置的电路尺寸和整个数据接收装置的电路尺寸。
附图说明
图1是示出了定义LDPC码的典型稀疏奇偶校验矩阵的图;
图2是示出了作为定义LDPC码的奇偶校验矩阵的包括下三角矩阵的典型奇偶校验矩阵的图;
图3示出了为了对LDPC码进行解码而执行的一系列处理的说明性流程图;
图4是示出了消息流的说明图;
图5是示出了定义码(3,6)的LDPC码的典型奇偶校验矩阵的图;
图6是示出了代表图5的图解中所示的典型奇偶校验矩阵的Tanner图的图;
图7是当说明在变量节点执行处理以计算消息时所参照的说明图;
图8是当说明在校验节点执行处理以计算消息时所参照的说明图;
图9是示出了由各自具有6×6结构的配置矩阵组成的典型奇偶校验矩阵的图;
图10是示出了对利用上述LDPC码即P=6的LDPC码来编码的数据进行解码的现有技术的典型解码装置的框图;
图11是示出了在图10的图解中所示的解码装置中包括的节点处理部分中所用节点处理器的典型配置的框图;
图12是示出了作为对使用上述LDPC码即P=6的LDPC码来编码的数据进行解码的装置而由本发明的一个实施例提供的典型的解码装置的框图;
图13是示出了用作奇偶校验矩阵的配置矩阵的典型的6×6移位矩阵的图;
图14是在描述为了重排图13的图解中所示的6×6移位矩阵中的行和列以便生成3×3配置矩阵而执行的处理的过程时将参照的说明图;
图15是示出了作为通过对图9的图解中所示的典型6×6奇偶校验矩阵执行图14的说明图中所示的过程而获得的重排后的矩阵、即由各自具有3×3配置的配置矩阵组成的重排后的矩阵的图;
图16是在描述为了重排图13的图解中所示的6×6移位矩阵中的行和 列以便生成2×2配置矩阵而执行的处理的过程时将参照的说明图;以及
图17是示出了根据本发明的另一实施例的作为解码装置来工作的计算机的典型配置的框图。
具体实施方式
在说明本发明的优选实施例之前,先在以下的有关说明中解释所公开的本发明与实施例之间的关系。要注意,即使有在本说明书中描述的但是未作为与本发明相对应的实施例而包括在以下的有关说明中,这样的实施例也不应解释为不与本发明相对应的实施例。反言之,作为与具体发明相对应的实施例而包括在以下的有关说明中不应解释为不与除了该具体发明之外的本发明相对应的实施例。
此外,以下的有关说明不应解释为涵盖本说明书所公开的所有发明的综合性说明。换言之,以下的有关说明绝非否定存在有虽记载于本说明书但却未包括在对其提交专利申请的权利要求书中的发明。也就是说,以下的有关说明绝非否定存在有将来要包含在不同的专利申请中的发明、包含在对本说明书的补正中的发明或要添加的发明。
根据本发明的一个实施例,提供一种用于对以如下格式接收的LDPC(低密度奇偶校验)码进行解码的解码装置(比如图12的图解中所示的解码装置):
由第一原始奇偶校验矩阵表达的或者由第一重排后矩阵表达的第一格式,其中第一原始奇偶校验矩阵具有通过组合多个第一配置矩阵而获得的第一结构,第一配置矩阵包括P×P单位矩阵、通过将P×P单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的P×P准单位矩阵、通过对P×P单位矩阵或者P×P准单位矩阵执行循环移位运算而获得的P×P移位矩阵、通过对P×P单位矩阵、P×P准单位矩阵和P×P移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的P×P求和矩阵、以及P×P零矩阵,而第一重排后矩阵是通过重排第一原始奇偶校验矩阵中的至少一行和一列、作为具有第一结构的矩阵而获得的,其中符号P表示整数;或者
由第二原始奇偶校验矩阵表达的或者由第二重排后矩阵表达的第二格式,其中第二原始奇偶校验矩阵具有通过组合多个第二配置矩阵而获得的第二结构,第二配置矩阵包括Q×Q单位矩阵、通过将Q×Q单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的Q×Q准单位矩阵、通过对Q×Q单位矩阵或者Q×Q准单位矩阵执行循环移位运算而获 得的Q×Q移位矩阵、通过对Q×Q单位矩阵、Q×Q准单位矩阵和Q×Q移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的Q×Q求和矩阵、以及Q×Q零矩阵,而第二重排后矩阵是通过重排第二原始奇偶校验矩阵中的至少一行和一列、作为具有第二结构的矩阵而获得的,其中符号Q表示如下整数,该整数具有整数Q和P的非一公约数F,
其中,用以对各自通过以第一或者第二格式接收LDPC码而获得的接收值进行解码的处理包括并行执行的分别作为F个校验节点的处理的至少F个校验节点处理或者并行执行的分别作为F个变量节点的处理的至少F个变量节点处理(例如在F=3的情况下,用以对接收值进行解码的处理包括由图12的图解中所示的解码装置中所用的节点处理器510-1至510-3执行的处理)。
上述解码装置包括:
消息计算装置(比如图12的图解中所示的解码装置中所用的节点处理部分502),用于通过并行执行F个校验节点处理或者F个变量节点处理来执行对各自通过接收LDPC码而获得的接收值进行解码的处理、并且输出通过F个校验节点处理或者F个变量节点处理而获得的F个消息;
移位装置(比如图12的图解中所示的解码装置中所用的移位部分503),用于对消息计算装置所生成的F个消息执行F×F次循环移位运算并且输出通过F×F次循环移位运算而获得的F个消息;以及
存储装置(比如图12的图解中所示的解码装置中所用的消息存放存储器504或接收值存放存储器501),用于存储由移位装置生成的F个消息并且允许读出所存储的F个消息、或者存储上述F个接收值并且允许读出所存储的F个接收值。
解码装置还包括控制装置(比如图12的图解中所示的解码装置中所用的控制部分506),用于通过对具有第一结构的第一奇偶校验矩阵或者具有第二结构的第二奇偶校验矩阵所表达的接收值至少执行列重排处理或者与列重排处理等效的处理来控制作为用以向消息计算装置供应接收值的操作、用以向消息计算装置供应由与作为根据第一或者第二配置矩阵导出的第三配置矩阵、在具有第三结构的矩阵中包括的第三配置矩阵相对应的F个接收值组成的单位的操作,其中第三结构是通过组合多个第三配置矩阵而获得的结构,第三配置矩阵包括F×F单位矩阵、通过将F×F单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的F×F准 单位矩阵、通过对F×F单位矩阵或者F×F准单位矩阵执行循环移位运算而获得的F×F移位矩阵、通过对F×F单位矩阵、F×F准单位矩阵和F×F移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的F×F求和矩阵、以及F×F零矩阵。
接着,对本发明的技术说明如下。
在本专利说明书中使用的技术术语“P码”是LDPC码之一。P码具有QC(quasi cyclic,准循环)码的性质。
QC码是如下这样的码,该码的编码字是通过按照N(其中N是自然数)个循环对任意的原始编码字执行循环移位运算而获得的一连串位,以便产生与原始编码字不同的另一编码字。
通常可以利用典型的循环矩阵来表达定义QC码的奇偶校验矩阵。循环矩阵在本专利说明书中称为移位矩阵。也称为移位矩阵的循环矩阵被定义为通过对从另一矩阵的所有列中选择的特定列执行循环移位运算而获得的矩阵。该特定列的例子是第一列。
如前文所述,在定义P码的奇偶校验矩阵中包括的移位矩阵是通过对P×P单位矩阵或者准单位矩阵执行循环移位运算而获得的矩阵。具体而言,通过按列依次地对P×P单位矩阵或者P×P准单位矩阵的具体列执行循环移位运算,可以按矩阵依次地生成类型相互不同的移位矩阵。在完成对P×P单位矩阵或者P×P准单位矩阵的P列所执行的循环移位运算时,重新生成原始P×P单位矩阵或者原始P×P准单位矩阵。也就是说,循环移位运算的单位是P列。
有必要关注以下事实:严格上说,在定义QC码的矩阵中未包括用于定义P码的P×P准单位矩阵和该准单位矩阵的P×P移位矩阵。也就是说,准单位矩阵仅在对包括P码的DVB-S2 LDPC码进行定义的奇偶校验矩阵的右上角的位置上出现。因此从这一观点来看,严格上说,DVB-S2 LDPC码不是QC码。不过,在用于对DVB-S2 LDPC码进行解码的解码装置中,仅对这一缺欠部分执行简单的例外处理。因此对于对DVB-S2 LDPC码进行解码的解码装置和对QC码进行解码的解码装置,其解码装置的架构之间没有什么区别。出于上述原因,并不将P码说成是QC码之一。而是如上所述,P码是具有QC(准循环)码的性质的LDPC码。
换而言之,由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵是通过规则地布置它的配置矩阵而获得的矩阵,这些配置矩阵包括P×P单 位矩阵、通过将P×P单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的P×P准单位矩阵、通过对P×P单位矩阵或者P×P准单位矩阵执行循环移位运算而获得的P×P移位矩阵、通过对P×P单位矩阵、P×P准单位矩阵和P×P移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的P×P求和矩阵、以及P×P零矩阵。由于P码可以表达为具有这样的规则结构的奇偶校验矩阵,所以将P码说成是具有QC(准循环)码的性质的LDPC码。
也就是说,P码具有规则特征,这意味着可以通过具有如下结构的奇偶校验矩阵来表达P码,该结构是通过规则地排列如下单元而配置的,该单元是P×P配置矩阵,比如P×P单位矩阵、P×P准单位矩阵、P×P移位矩阵、P×P求和矩降和P×P零矩阵。如果通过采用现有技术的技术来实施用于对P码进行解码的解码装置,以具有与图10的框图中所示的典型解码装置的配置相同的配置,则需要并行连接的P个节点处理器而不是仅需要并行连接的六个节点处理器。此外,移位部分需要执行P×P次循环移位运算而不是仅执行6×6次循环移位运算。除此之外,各存储器必须允许同时写入和读出P个数据而不是仅六个数据。
为了解决上述问题,本发明的发明人创新了一种技术。根据这一技术,通过重排由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵的行和列,从而执行重排处理以便生成使其F×F配置矩阵规则地布置的矩阵,或者执行与该排列处理等效的处理,并且最后对作为根据具有F×F配置矩阵的排列后的矩阵的数据、通过重排处理或者与该排列处理等效的处理结果而获得的数据执行解码处理。在这一情况下,符号F表示整数P的约数。在以下描述中,重排处理和与该排列处理等效的处理均简称为重排处理。将F×F配置矩阵分类为与P×P配置矩阵相同的类别。也就是说,F×F配置矩阵分类为如下类别:F×F单位矩阵、通过将F×F单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的F×F准单位矩阵、通过对F×F单位矩阵或者F×F准单位矩阵执行循环移位运算而获得的F×F移位矩阵、通过对F×F单位矩阵、F×F准单位矩阵和F×F移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的F×F求和矩阵、以及F×F零矩阵。
注意,重排处理和与该排列处理等效的处理由于如下原因而均简称为重排处理。在用以对数据进行解码的处理(或者用以向节点处理器供应数据的处理)之前,并非必须通过实际地重排在作为由各自具有P×P结构 的配置矩阵组成的原始矩阵而存储于缓存器中的奇偶校验矩阵中的行和/或列来执行重排处理,以便生成由各自具有F×F结构的配置矩阵组成的排列后的矩阵,并且在通过在紧接于节点处理器之前的级提供的存储器向节点处理器供应排列后的矩阵之前再次在缓存器中存储排列后的矩阵。也就是说,根据一种针对与该排列处理等效的处理而提供的等效技术,也可以执行等效处理以在用以向节点处理器供应数据的操作之前,与数据在与由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵相一致的传入形式一样地将数据存储于缓存器中、然后在存储器中重排在由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵中的行和/或列以便生成由各自具有F×F结构的配置矩阵组成的排列后的矩阵之前将数据从缓存器传送到存储器。换而言之,从节点处理器来看,重排处理和等效处理实现如下相同的状态,在该状态下已经重排在由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵中的行和/或列,以便生成由各自具有F×F结构的配置矩阵组成的矩阵。这样的状态对于节点处理器的处理需求而言是足够的。
换而言之,本发明所提供的技术是一种用于执行重排处理的技术,该重排处理包括用以至少重排作为由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵所表达的值而存储于缓存器中的成列接收值的处理或者包括与该处理等效的处理。因此,本发明所提供的技术也可以称为如下技术,该技术用于实施用以按照各自由与F×F配置矩阵相对应的F个接收值组成的单位向节点处理器供应接收值的操作,作为对用以向节点处理器供应接收值的操作的控制。
因此,通过采用本发明所提供的技术,即使在用以对P码进行解码的处理中,也可以将由P个节点处理器同时执行的P个并行处理减少为仅由F个节点处理器同时执行的F个并行处理。此外,移位部分仅需要执行F×F次循环移位运算而不是P×P次循环移位运算。除此之外,各存储器仅需要允许同时写入和读出F个数据而不是P个数据。
如上所述,通过采用本发明所提供的技术,可以使根据本发明实施例的整个解码装置的电路尺寸比现有技术的解码装置的电路尺寸小得多。然而,正如随后将详细描述的,有其中存在整数P的多个约数的情况。在这样的情况下,并非必须以最小约数作为约数F。而是恰当的做法是选择对于传输速率和工作频率而言最优的约数作为约数F。
此外,正如随后将详细描述的,有其中不同于整数P的非1整数Q也具有约数F的情况。也就是说,约数F是整数P和Q的公约数。在这 一情况下,根据本发明所提供的技术利用F个并行节点处理器的解码装置不仅能够对P码进行解码,而且也能够对P码或者Q码有选择地进行解码。
接着,对根据本发明一个实施例的解码装置具体说明如下。令整数P是6(P=6)而整数P的约数F是3(F=3)。在这一情况下,通过采用本发明所提供的技术,有可能构造具有比如图12的框图中所示配置这样的配置的解码装置。也就是说,图12是示出了本发明的一个实施例所应用到的解码装置的典型配置的框图。
图12的框图中所示的典型解码装置具有如下配置,该配置包括接收值缓存器500、接收值存放存储器501、节点处理部分502、移位部分503、消息存放存储器504、解码结果存放存储器505和控制部分506。
图12的框图中所示的典型解码装置的整体配置除了控制部分506之外与图10的框图中所示的典型解码装置的整体配置基本上相同。也就是说,各自代表功能配置要素的方块的相互关系以及各个单独功能配置要素所充当的角色即各个功能配置要素的功能,在图12的框图中所示的典型解码装置中除了控制部分506之外与图10的框图中所示的典型解码装置基本上相同。然而从各功能配置要素的观点来看,图12的框图中所示的典型解码装置和图10的框图中所示的典型解码装置具有如下差异。
在图10的框图中所示的典型解码装置中利用的接收值缓存器200、接收值存放存储器201、消息存放存储器204和解码结果存放存储器205各自具有允许同时读出针对P=6的六个数据(或者6位)的配置。另一方面,在图12的框图中所示的典型解码装置中利用的接收值缓存器500、接收值存放存储器501、消息存放存储器504和解码结果存放存储器505各自具有允许同时读出针对F=3的仅三个数据(或者3位)的配置。
此外,在图10的框图中所示的典型解码装置中利用的移位部分203具有能够执行其中P=6的P×P次循环移位运算的配置。另一方面,在图12的框图中所示的典型解码装置中利用的移位部分503具有仅能够执行其中F=3的3×3次循环移位运算的配置。
除此之外,在图10的框图中所示的典型解码装置中利用的节点处理部分202具有6(=P)个节点处理器210-1至210-6。另一方面,在图12的框图中所示的典型解码装置中利用的节点处理部分502仅具有3(=F)个节点处理器510-1至510-3。
因此,由于图12的框图中所示的典型解码装置和图10的框图中所示的典型解码装置具有从各功能配置要素的观点来看的上述差异,所以与图10的框图中所示的典型解码装置比较,图12的框图中所示的典型解码装置可以配置为电路尺寸小的装置。
注意,作为各节点处理器510-1至510-3,可以原样使用具有图11的框图中所示配置的节点处理器210。即使节点处理器510-1至510-3本身各自具有与图11的框图中所示的配置不同的配置,也毋庸赘言本发明仍可以应用于图12的框图中所示的解码装置。
此外,毋庸赘言本发明也可以应用于具有如下配置的解码装置,该配置包括作为分别与三个校验节点处理器的电路分离的电路的三个可变节点处理器,以取代各自既用作变量节点处理器又用作校验节点处理器的节点处理器510-1至510-3。
除此之外,也毋庸赘言本发明还可以应用于其中不利用节点处理器510-1至510-3而执行变量节点处理的情况。
接着说明图12的框图中所示的典型解码装置所执行的操作。
注意正如随后所说明的,比如图12的框图中所示的典型解码装置能够对P码进行解码,其中P是具有约数F的任何整数值。然而,为了在以下说明图12的框图中所示的典型解码装置所执行的操作时,使图12的框图中所示的典型解码装置易于与图10的框图中所示的典型解码装置比较,假设解码对象是由如图9的图解中所示的、各自具有6×6结构的配置矩阵组成的奇偶校验矩阵所定义的P(=6)码。
接收值缓存器500是用于在作为大小为1个码的数据从通信线路接收的数据D500被作为数据D501传送到接收值存放存储器510之前存储数据D500的缓存器。
用以重排奇偶校验矩阵的列的重排处理对应于用以重排码位序列的码位的处理。因此,根据由控制部分506执行的控制如下执行,存储于接收值缓存器500中的数据D500的重排处理。
图9的图解中所示的奇偶校验矩阵被视为各自作为重排单位的6×6配置矩阵的集合体。对各6×6配置矩阵进行重排处理,以如图13和图14的图解中所示基于预先确定的规则将6×6配置矩阵重排成作为3×3配置矩阵的集合体的重排后矩阵。根据预先确定的规则,图14的图解中所示的各3×3配置矩阵是包括具有如下行号的某些行和具有如下列号的某些列的矩阵,这些行号具有通过将各行号除以2而获得的相同余数,而这些列号具有通过将各列号除以2而获得的相同余数。因此,3×3配置矩阵是 如图14的图解中所示的由各自具有偶数或者奇数行号的行和各自具有偶数或者奇数列号的列组成的矩阵。换而言之,图13的图解中所示的6×6配置矩阵可以说成是被分隔成如图14的图解中所示的四个3×3配置矩阵。
具体而言,可参照图13,该图是示出了如图9的图解中所示的、由各自具有6×6结构的配置矩阵组成的奇偶校验矩阵的典型的6×6移位矩阵的图。在图13的图中,圆圈(○)中包围的各数字是列号,而矩形(□)中包围的各数字是行号。
作为例子,对图13的图解中所示的6×6移位矩阵进行根据上述规则的重排处理,以便将6×6移位矩阵转换成如图14的图解中所示的四个3×3配置矩阵组成的重排后矩阵。不言而喻,通过利用虚线将图14的图解中所示的重排后矩阵分隔成如图14中所示的两个3×3零矩阵、一个3×3准单位矩阵和一个3×3移位矩阵这四个3×3配置矩阵。
组成如图9的图解中所示的、由各自具有6×6结构的配置矩阵组成的奇偶校验矩阵的其它各6×6配置矩阵也进行上述重排处理。因而,如图9的图解中所示的、由各自具有6×6结构的配置矩阵组成的奇偶校验矩阵重排成具有图15的图解中所示的结构的重排后矩阵。注意,为了易于识别通过对如图9的图解中所示的、由各自具有6×6结构的配置矩阵组成的奇偶校验矩阵进行重排处理所获得的各配置矩阵即各自具有3×3结构的配置矩阵,在图15的图解中所示的奇偶校验矩阵中的3×3配置矩阵之间提供间隙。图15的图解中所示的典型重排后矩阵包括3×3单位矩阵、3×3准单位矩阵、3×3移位矩阵、3×3求和矩阵和3×3零矩阵。
因此,除了在图10的框图中所示的典型解码装置中利用的接收值存放存储器201之后的级执行的操作是针对P=6的操作、而在图12的框图中所示的典型解码装置中利用的接收值存放存储器501之后的级执行的操作是针对F=3的操作这一事实之外,在图12的框图中所示的典型解码装置中利用的接收值存放存储器501之后的级执行的操作类似于在图10的框图中所示的典型解码装置中利用的接收值存放存储器201之后的级执行的操作。换而言之,在图12的框图中所示的典型解码装置中利用的接收值存放存储器501之后的级执行的操作与如同图12的框图中所示的解码装置是用于对其中P=3的P码进行解码的装置一样执行的操作完全相同。
如果用于在通过通信线路将重排后的码位输出到图12的框图中所示的解码装置中利用的接收值缓存器500之前重排接收的码位的方法已经先实施为传输方法,则与上述重排处理并行地以相反的方式在接收值缓存 器500中重排码位。可以在重排处理之前或者之后在接收值缓存器500中重排码位,而不是与上述重排处理并行地以相反的方式重排码位。
在以上描述中,为3的约数F(F=3)用作为6的整数P的约数(P=6)。当然,除了为1的约数F之外也可以使用整数P(=6)的另一约数F(也就是为2的约数F),因为约数如上所述必须是非一约数。然而在这一情况下,根据如下所述预先确定的规则对如图9的图解中所示的、由各自具有6×6结构的配置矩阵组成的奇偶校验矩阵执行重排处理。对各6×6配置矩阵进行用以将6×6配置矩阵重排成图16的图解中所示的重排后矩阵的重排处理。如图16的图解中所示,重排后矩阵是2×2配置矩阵的集合体,这些配置矩阵各自是由具有如下行号的某些行和具有如下列号的某些列组成的矩阵,这些行号具有通过将各行号除以3而获得的相同余数,而这些列号具有通过将各列号除以3而获得的相同余数。
具体而言,作为例子,对图13的图解中所示的6×6移位矩阵进行根据上述规则的重排处理,以便将6×6移位矩阵转换成如图16的图解中所示的九个2×2配置矩阵组成的重排后矩阵。不言而喻,通过利用虚线将图16的图解中所示的重排后矩阵分隔成如图16中所示的2×2零矩阵、2×2准单位矩阵和2×2移位矩阵这九个2×2配置矩阵。
因此在约数F为2的情况下,同样地,除了在图10的框图中所示的典型解码装置中利用的接收值存放存储器201之后的级执行的操作是针对P=6的操作、而在图12的框图中所示的典型解码装置中利用的接收值存放存储器501之后的级执行的操作是针对F=2的操作这一事实之外,在图12的框图中所示的典型解码装置中利用的接收值存放存储器501之后的级执行的操作也类似于在图10的框图中所示的典型解码装置中利用的接收值存放存储器201之后的级执行的操作。换而言之,在图12的框图中所示的典型解码装置中利用的接收值存放存储器501之后的级执行的操作与如同图12的框图中所示的解码装置是用于对其中P=2的P码进行解码的装置一样执行的操作完全相同。
也就是说,对于F=2,解码装置并非必须采用图12的框图中所示的配置。换而言之,使用如下配置是足够的,该配置包括两个并行的节点处理器、用于执行2×2次循环移位运算的移位部分以及各自允许同时写入或者读出两个数据(或者2位)的存储器。
此外,描述至此的实施例是针对P=6的实施例。然而,本发明自然而言也可以应用于整数P为除6以外的整数的情况。例如,本发明可应用于由各自具有其中P=360的P×P结构的配置矩阵组成的奇偶校验矩阵。 以这一方式,可以针对任何P值的情况采用根据本发明的技术。此外,根据本发明所提供的技术,在确定整数P的值之后,可以使用除了1之外的任何约数F。
也就是说,在已经确定整数P的值和整数P的非一约数F之后,对作为定义与LDPC码相关的P码的奇偶校验矩阵、由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵执行根据下述规则的重排处理以便构造如下配置,该配置包括F个并行节点处理器、用于执行F×F次循环移位运算的移位部分以及各自允许同时写入或者读出F个数据(或F位)的存储器。
根据上面提到的规则,广而言之,各自具有P×P结构的各配置矩阵被分隔成各自由具有如下行号的行和如下列号的列组成的F×F配置矩阵,这些行号具有通过将行号除以根据方程P=F×J导出的J(=P/F)而获得的相同余数,而这些列具有通过将列号除以J(=P/F)而获得的相同余数,其中行号是作为向组成奇偶校验矩阵的各P×P配置矩阵中包括的P行中的各行分配的编号,是包括在范围0至(P-1)中的数字,而列号是作为向组成奇偶校验矩阵的各P×P配置矩阵中包括的P列中的各列分配的编号,是包括在范围0至(P-1)中的数字。
注意如先前所述,重排处理不限于如下的处理,该处理用以重排作为各自具有P×P结构的配置矩阵组成的矩阵在缓存器中存储的奇偶校验矩阵,以便生成由各自具有F×F结构的配置矩阵组成的排列后矩阵、并且在通过存储器向节点处理器供应排列后矩阵之前再次在缓存器中存储排列后矩阵。也就是说,在上述实施例的情况下,执行重排处理以重排作为由各自具有P×P结构的配置矩阵组成的矩阵在接收值缓存器500中存储的奇偶校验矩阵,以便生成由各自具有F×F结构的配置矩阵组成的排列后矩阵、并且在通过接收值存放存储器501向节点处理部分502供应排列后矩阵之前再次在接收值缓存器500中存储排列后矩阵。然而,根据一种针对与排列处理等效的处理而提供的等效技术,也可以执行该等效处理以在用以向节点处理部分502供应数据的操作之前,与数据在与由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵相一致的传入形态中一样地将数据存储于接收值缓存器500中,然后根据上述预定规则在接收值存储器501中重排在由各自具有P×P结构的配置矩阵组成的奇偶校验矩阵中的行和/或列以便生成由各自具有F×F结构的配置矩阵组成的排列后矩阵。换而言之,根据预先确定的规则从接收值存储存储器501有选择地读出数据并且向节点处理部分502供应该数据。换而言之,重排处理是一种包括 根据等效技术的等效处理在内的广义概念的处理。注意,通过指定控制部分作为用于根据上述预定规则对从接收值存放存储器501读出数据的操作进行控制的部分,从而可容易地执行控制。在图12的框图中所示的解码装置的情况下,控制部分506用作这一控制部分。
此外,上述实施例是针对编码率为2/3和码长为108而提供的实施例,当然这些值仅是典型的值而已。也就是说,例如对于P=6和相同或者更少的总边数,即使使用任意码长和任意编码率,也可以使用相同的解码装置通过仅改变控制信号而对数据进行解码。除此之外,被设计为满足使用相同P值、码长度不超过预先确定的值并且总边数不大于预先确定的整数这一条件、对数据进行解码的装置的解码装置也能够对码长度满足该条件但编码率不同的数据进行解码。
描述至此的内容概括如下。通过应用本发明,可以在没有由整数P的值本身施加的约束情况下,根据传输速率和工作频率从整数P的约数范围中的约数值中任意地选择代表了解码处理中的并行程度的约数F的值。因而可以使解码装置的电路尺寸更小。
作为例子,对于P=360,可以从包括360、180和120这些值的范围中任意地选择它的约数F。根据如上所述约数F是并行节点处理器的数量这一事实也清楚,本发明的采用也意味着约数F的值可以称为代表了解码处理中并行程度的值。出于这一原因,允许解码装置的设计者在将解码处理中的并行程度纳入考虑之中的同时选择对于传输速率和工作频率而言最优的约数F。
也就是说,如果针对所需的传输速率选择整数P的较大约数F,则解码处理中的并行程度会变得高于实际所需的值。因此,数据仅按照比为了执行解码处理而需要的时长更长的间隔到达,这是因为执行解码处理所需要的时间由于解码处理中的并行程度高而较短。出于这一原因,从整数P的约数范围中选择最优约数F,使得各间隔大致等于执行解码处理所需要的时间长度。在这一情况下,减小约数F使得解码处理中的并行程度也降低。因而可以使解码装置的电路尺寸更小。此外,如果解码装置的电路将来在更高速度下工作,则可以选择甚至更小的约数F以提供较低的解码处理的并行程度。即使在这一情况下,仍有可能实现与现有解码装置的性能相同的性能。
此外,如果整数P和小于整数P的整数Q(P>Q)具有公约数,则一种以该公约数作为代表解码处理的并行程度的约数F的解码装置能够对P码和Q码二者均进行解码。
因此,即使针对需要高传输速率的业务而选择P值较大的码,而针对无需高传输速率的便携式接收器的业务而选择Q值较小的码,相同的解码装置仍然可以用来实施具有能够对需要高传输速率的业务的码和用于便携式接收器的业务的码进行解码这一解码功能的接收器装置作为两种业务共用的接收器装置。
也就是说,共用的接收器装置的实现使得P码和Q码二者可以在发送系统中共存。
如果例如按照8PSK(相移监控)和30Msym/s来发送DVB-S.2LDPC码,则码位的位速率是90Mbps。由于奇偶校验矩阵中的列加权的平均值约为3.5,则在重复解码处理50次的假设下,各码位所需的处理量约为3.5×50×2=350。因此,时钟频率需要设置为通过将该处理量乘以反映电路效率的值1.5而得到的乘积。因此,解码装置需要在131.25MHz(=90Mbps×350×1.5/360)的工作频率下进行操作,其中值90Mbps是码位的位速率,值350是各码所需的处理量,值1.5反映电路效率,而值360代表解码处理的并行程度。
在这一情况下,对于代表解码处理并行程度的P=360而言的现有技术的解码装置需要大量RAM作为允许同时写入和读出360个数据的存储器。这种RAM由于代表存储大的位数的数据所需的各RAM的存储容量的字数小,因而导致较差的面积效率。此外,现有技术的解码装置还需要360个并行的节点处理器。因而,现有技术的解码装置的电路尺寸极大。
因此,假设将DVB-S.2 LDPC码应用于传输速率低于90Mbps的传输系统,则即使将代表解码处理的并行程度的约数F设置为60(F=60),也有可能实现相同的工作频率和解码处理被重复相同的次数,从而有可能实现相同的解码性能。低于90Mbps的传输速率的例子是15Mbps的传输速率。
如果将代表解码处理并行程度的约数F设置为60(F=60),则允许同时写入和读出仅60个数据的存储器就足够了。因此,当配置存储器时,由于所存储的数据的位数更小,所以有可能使用相同总数的新RAM,其中各RAM的字数是过去所用RAM的字数的六倍。与过去使用的RAM即如上所述造成不良面积效率的RAM相比较,新RAM应当具有明显提高面积效率的较小的物理尺寸。作为一种替代方式,也可以使用各与过去所用的RAM具有相同的字数但数量更少的新RAM。在任一情况下,都实质上提高了用于存储相同位数的面积效率。此外,由于所需并行节点处理器的数量仅为60,所以还可以进一步减小现有技术的解码装置的电路 尺寸。
也就是说,如果例如在地面波的广播中利用DVB-S.2 LDPC码,则由于功率消耗问题而难以通过利用便携式移动接收器来接收地面波。为了解决这一困难,可以设想这样的情况,其中利用码长比针对Q=60的码更小的码来提供业务以作为面向便携式移动接收器的业务。即使对于这样的情况,通过将本发明应用于该情况,仍有可能易于实施一种作为代表解码处理的并行程度的值而将约数F设置为60(F=60)的解码装置。该解码装置能够对码长多达64,800的码进行解码,并且能够对P(=360)码和Q(=60)码二者均进行解码。因此,一种利用这样的解码装置的接收器能够接收针对固定接收器提供的业务和针对便携式接收器提供的业务。针对固定接收器提供的业务是利用P(=360)码的业务,而针对便携式接收器提供的业务是利用Q(=60)码的业务。
描述至此的内容概括如下。通过应用本发明,有可能实施一种基于整数P的约数F而对具有达的P值的LDPC码进行解码的解码装置。也就是说,有可能实施这样的解码装置,该解码装置用于具有低位率的传输系统和将来的采用更高处理速度的电路的系统。与现有技术的解码装置比较,根据本发明实施例的解码装置具有较小的电路尺寸。
此外,通过应用本发明,以具有多个约数F的整数P为基础的码可以由基于所有约数F而设计的解码装置来解码。因此,具有根据不同传输速率和供不同业务接收者用的不同业务而适当调整的尺寸的LDPC码可共存于一个传输系统中。
也就是说,即使在上述典型的发送系统中仅使用两个不同类型的P码和Q码,但是一般而言可以使用K个不同类型的α码(比如P码和Q码),其中符号α表示所用码的类型,而符号K表示所使用的码的不同类型的数量。不同类型的数量等于或者大于2(K≥2)。符号K还表示系统设计者等从各自作为非一约数F的倍数的多个不同整数中选择的整数的个数。也就是说,可以使用的不同α码的数量也是K。
顺便提一点,可以通过硬件和/或执行软件来执行先前描述的一系列处理。
如果通过执行软件来执行上述一系列处理,则组成该软件的程序由实施根据本发明实施例的解码装置的计算机来执行。该计算机具有比如图17的框图中所示配置的配置。
在图17的框图中所示的解码装置中,CPU(中央处理单元)1001通过执行存储于ROM(只读存储器)1002中的程序或者从存储模块1008 加载到RAM(随机存取存储器)1003中的程序来执行各种处理。RAM1003也用于恰当地存储在执行处理时需要的各种信息如数据。
CPU 1001、ROM 1022和RAM 1003通过总线1004相互连接,该总线也连接到输入/输出接口1005。
输入/输出接口1005连接到输入模块1006、输出模块1007、上述存储模块1008和通信模块1009。输入模块1006包括键盘和鼠标,而输出模块1007包括显示单元。存储模块1008包括硬盘。通信模块1009具有调制解调器或者终端适配器。通信模块1009是用于通过在该图的框图中未示出的网络(比如因特网)与其它装置执行通信处理的单元。
输入/输出接口1005还按照需要而连接到在其上装配记录介质的驱动器1110。该记录介质是可移动介质1111,该可移动介质可以是磁盘、光盘、磁光盘或者半导体存储器。如上所述,将由CPU 1001执行的计算机程序从可移动介质1111安装到存储模块1008中。
如先前说明的那样,可以通过硬件和/或执行软件来执行先前描述的一系列处理。如果通过执行软件来执行上述一系列处理,则组成该软件的程序通常可以从网络或者可以从可移动介质1111安装到嵌入专用硬件的计算机、通用个人计算机等中。在这一情况下,该计算机或者个人计算机是作为用作解码装置的计算机的上述计算机。通用个人计算机是可以通过将各种程序安装到该个人计算机中使之能够执行各种功能的个人计算机。
用于记录分别作为将由计算机或者通用个人计算机执行的程序而安装到计算机或者通用个人计算机中的程序的前述可移动介质1111是如图17的图解中所示与解码装置的主要单元分离地向用户提供的可移动记录介质。该可移动记录介质也称为封装介质,其例子包括磁盘如软盘、光盘如CD-ROM(光盘-只读存储器)或者DVD(数字万用盘)、磁光盘如MD(袖珍盘)以及半导体存储器。也可以在解码装置的主要单元中包括的嵌入式记录介质中预先存储程序而不是从可移动记录介质安装程序。嵌入式记录介质的例子是在存储模块1008中包括的硬盘和ROM 1002。
需要注意的是,在本专利说明书中,上述流程图的步骤不仅可按预定顺序沿时间轴来执行,也可同时或单个地执行。
此外,本领域技术人员应当理解,根据设计要求和其它因素可以想到各种修改、组合、子组合和更改,只要它们是在所附权利要求及其等效的范围内即可。
还要注意,在本说明书中使用的技术术语“系统”意味着包括多个装置的总体的配置。
Claims (7)
1.一种用于对以如下格式接收的低密度奇偶校验LDPC码进行解码的解码装置:
由第一原始奇偶校验矩阵表达的或者由第一重排后矩阵表达的第一格式,其中所述第一原始奇偶校验矩阵具有通过组合多个第一配置矩阵而获得的第一结构,所述第一配置矩阵包括P×P单位矩阵、通过将所述P×P单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的P×P准单位矩阵、通过对所述P×P单位矩阵或者所述P×P准单位矩阵执行循环移位运算而获得的P×P移位矩阵、通过对所述P×P单位矩阵、所述P×P准单位矩阵和所述P×P移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的P×P求和矩阵、以及P×P零矩阵,而所述第一重排后矩阵是通过重排所述第一原始奇偶校验矩阵中的至少一行和一列、作为具有所述第一结构的矩阵而获得的,其中符号P表示整数;或者
由第二原始奇偶校验矩阵表达的或者由第二重排后矩阵表达的第二格式,其中所述第二原始奇偶校验矩阵具有通过组合多个第二配置矩阵而获得的第二结构,所述第二配置矩阵包括Q×Q单位矩阵、通过将所述Q×Q单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的Q×Q准单位矩阵、通过对所述Q×Q单位矩阵或者所述Q×Q准单位矩阵执行循环移位运算而获得的Q×Q移位矩阵、通过对所述Q×Q单位矩阵、所述Q×Q准单位矩阵和所述Q×Q移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的Q×Q求和矩阵、以及Q×Q零矩阵,而所述第二重排后矩阵是通过重排所述第二原始奇偶校验矩阵中的至少一行和一列、作为具有所述第二结构的矩阵而获得的,其中符号Q表示如下整数,该整数具有所述整数Q和P的非一公约数F,
其中用以对各自通过以所述第一或者第二格式接收所述LDPC码而获得的接收值进行解码的处理包括并行执行的分别作为F个校验节点的处理的至少F个校验节点处理或者并行执行的分别作为F个变量节点的处理的至少F个变量节点处理。
2.根据权利要求1所述的解码装置,所述解码装置包括:
消息计算装置,用于通过并行执行所述F个校验节点处理或者F个变量节点处理来执行对各自通过接收所述LDPC码而获得的接收值进行解码的处理、并且输出通过所述F个校验节点处理或者所述F个变量节点处理而获得的F个消息;
移位装置,用于对所述消息计算装置所生成的所述F个消息执行F×F次循环移位运算并且输出通过所述F×F次循环移位运算而获得的F个消息;以及
存储装置,用于存储由所述移位装置生成的所述F个消息并且允许读出所述存储的F个消息、或者存储F个上述接收值并且允许读出所述存储的F个接收值。
3.根据权利要求2所述的解码装置,所述解码装置还包括:
控制装置,用于通过对具有所述第一结构的所述第一原始奇偶校验矩阵或者具有所述第二结构的所述第二原始奇偶校验矩阵所表达的所述接收值至少执行列重排处理或者与所述列重排处理等效的处理来控制用以向所述消息计算装置供应与在具有根据所述第一或者第二配置矩阵导出的第三配置矩阵的第三结构的矩阵中包括的第三配置矩阵相对应的所述F个接收值组成的单位的操作作为用以向所述消息计算装置供应所述接收值的操作,其中所述第三结构是通过组合多个所述第三配置矩阵而获得的结构,所述第三配置矩阵包括F×F单位矩阵、通过将所述F×F单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的F×F准单位矩阵、通过对所述F×F单位矩阵或者所述F×F准单位矩阵执行循环移位运算而获得的F×F移位矩阵、通过对所述F×F单位矩阵、所述F×F准单位矩阵和所述F×F移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的F×F求和矩阵、以及F×F零矩阵。
4.一种由用于对以如下格式接收的低密度奇偶校验LDPC码进行解码的解码装置采用的解码方法:
由第一原始奇偶校验矩阵表达的或者由第一重排后矩阵表达的第一格式,其中所述第一原始奇偶校验矩阵具有通过组合多个第一配置矩阵而获得的第一结构,所述第一配置矩阵包括P×P单位矩阵、通过将所述P×P单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的P×P准单位矩阵、通过对所述P×P单位矩阵或者所述P×P准单位矩阵执行循环移位运算而获得的P×P移位矩阵、通过对所述P×P单位矩阵、所述P×P准单位矩阵和所述P×P移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的P×P求和矩阵、以及P×P零矩阵,而所述第一重排后矩阵是通过重排所述第一原始奇偶校验矩阵中的至少一行和一列、作为具有所述第一结构的矩阵而获得的,其中符号P表示整数;或者
由第二原始奇偶校验矩阵表达的或者由第二重排后矩阵表达的第二格式,其中所述第二原始奇偶校验矩阵具有通过组合多个第二配置矩阵而获得的第二结构,所述第二配置矩阵包括Q×Q单位矩阵、通过将所述Q×Q单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的Q×Q准单位矩阵、通过对所述Q×Q单位矩阵或者所述Q×Q准单位矩阵执行循环移位运算而获得的Q×Q移位矩阵、通过对所述Q×Q单位矩阵、所述Q×Q准单位矩阵和所述Q×Q移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的Q×Q求和矩阵、以及Q×Q零矩阵,而所述第二重排后矩阵是通过重排所述第二原始奇偶校验矩阵中的至少一行和一列、作为具有所述第二结构的矩阵而获得的,其中符号Q表示如下整数,该整数具有所述整数Q和P的非一公约数F,
其中,为了对各自通过以所述第一或者第二格式接收所述LDPC码而获得的接收值进行解码,所述解码装置执行以下步骤:
并行执行分别作为F个校验节点的处理的F个校验节点处理或者并行执行分别作为F个变量节点的处理的F个变量节点处理。
5.一种数据发送/接收系统,其中:
用作纠错码的低密度奇偶校验LDPC码具有可以由原始奇偶校验矩阵表达的或者由重排后矩阵表达的格式,所述原始奇偶校验矩阵具有通过组合多个配置矩阵而获得的结构,所述配置矩阵包括α×α单位矩阵、通过将所述α×α单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的α×α准单位矩阵、通过对所述α×α单位矩阵或者所述α×α准单位矩阵执行循环移位运算而获得的α×α移位矩阵、通过对所述α×α单位矩阵、所述α×α准单位矩阵和所述α×α移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的α×α求和矩阵、以及α×α零矩阵,而所述重排后矩阵是通过重排所述原始奇偶校验矩阵中的至少一行和一列、作为具有所述结构的矩阵而获得的,其中符号α表示除了1之外的任何整数;
从各自与除了1之外的整数F的倍数相等的多个不同整数之中选择K个整数,其中符号K表示至少等于2的整数;
使用所述选择的K个整数中的各整数作为所述整数α以提供K个不同类型的LDPC码;以及
使用所述K个不同类型的所述LDPC码中的各LDPC码作为纠错码。
6.一种由数据发送/接收系统利用的数据接收装置,其中:
用作纠错码的低密度奇偶校验LDPC码具有可以由原始奇偶校验矩阵表达的或者由重排后矩阵表达的格式,所述原始奇偶校验矩阵具有通过组合多个配置矩阵而获得的结构,所述配置矩阵包括α×α单位矩阵、通过将所述α×α单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的α×α准单位矩阵、通过对所述α×α单位矩阵或者所述α×α准单位矩阵执行循环移位运算而获得的α×α移位矩阵、通过对所述α×α单位矩阵、所述α×α准单位矩阵和所述α×α移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的α×α求和矩阵、以及α×α零矩阵,而所述重排后矩阵是通过重排所述原始奇偶校验矩阵中的至少一行和一列、作为具有所述结构的矩阵而获得的,其中符号α表示除了1之外的任何整数;
从各自与除了1之外的整数F的倍数相等的多个不同整数之中选择K个整数,其中符号K表示至少等于2的整数;
使用所述选择的K个整数中的各整数作为所述整数α以提供K个不同类型的LDPC码;以及
使用所述K个不同类型的所述LDPC码中的各LDPC码作为纠错码,
所述数据接收装置包括:解码装置,用于执行处理以通过并行执行分别作为F个校验节点的处理的至少F个校验节点处理或者并行执行分别作为F个变量节点的处理的至少F个变量节点处理来对各自通过接收作为如下LDPC码的所述K个不同类型之一的所述LDPC码而获得的接收值进行解码,该LDPC码具有在所述整数α设置为所述K个整数之一时的所述格式。
7.一种由数据发送/接收系统利用的数据接收装置所采用的数据接收方法,其中:
用作纠错码的低密度奇偶校验LDPC码具有可以由原始奇偶校验矩阵表达的或者由重排后矩阵表达的格式,所述原始奇偶校验矩阵具有通过组合多个配置矩阵而获得的结构,所述配置矩阵包括α×α单位矩阵、通过将所述α×α单位矩阵的一个或者多个矩阵元素各自的值从1设置为0而获得的α×α准单位矩阵、通过对所述α×α单位矩阵或者所述α×α准单位矩阵执行循环移位运算而获得的α×α移位矩阵、通过对所述α×α单位矩阵、所述α×α准单位矩阵和所述α×α移位矩阵中的至少两个矩阵执行矩阵加法运算而获得的α×α求和矩阵、以及α×α零矩阵,而所述重排后矩阵是通过重排所述原始奇偶校验矩阵中的至少一行和一列、作为具有所述结构的矩阵而获得的,其中符号α表示除了1之外的任何整数;
从各自与除了1之外的整数F的倍数相等的多个不同整数之中选择K个整数,其中符号K表示至少等于2的整数;
使用所述选择的K个整数中的各整数作为所述整数α以提供K个不同类型的LDPC码;以及
使用所述K个不同类型的所述LDPC码中的各LDPC码作为纠错码,
所述数据接收方法包括以下步骤:
执行处理以通过并行执行分别作为F个校验节点的处理的至少F个校验节点处理或者并行执行分别作为F个变量节点的处理的至少F个变量节点处理来对各自通过接收作为如下LDPC码的所述K个不同类型之一的所述LDPC码而获得的接收值进行解码,该LDPC码具有在所述整数α设置为所述K个整数之一时的所述格式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007-272517 | 2007-10-19 | ||
JP2007272517 | 2007-10-19 | ||
JP2007272517A JP4487212B2 (ja) | 2007-10-19 | 2007-10-19 | 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101442317A CN101442317A (zh) | 2009-05-27 |
CN101442317B true CN101442317B (zh) | 2012-07-11 |
Family
ID=40564717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101702881A Expired - Fee Related CN101442317B (zh) | 2007-10-19 | 2008-10-20 | 数据解码装置和方法、发送/接收系统、接收装置和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8234555B2 (zh) |
EP (1) | EP2088679A3 (zh) |
JP (1) | JP4487212B2 (zh) |
KR (1) | KR20090040223A (zh) |
CN (1) | CN101442317B (zh) |
TW (1) | TWI373922B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8276053B2 (en) * | 2009-11-08 | 2012-09-25 | Mediatek Inc. | Decoding circuit operating in response to decoded result and/or a plurality of viterbi target levels with pattern dependency |
TW201126537A (en) * | 2010-01-20 | 2011-08-01 | Sunplus Technology Co Ltd | Memory utilization method for low density parity check code, low density parity check code decoding method and apparatus thereof |
US8539304B1 (en) * | 2010-04-27 | 2013-09-17 | Marvell International Ltd. | Parallel encoder for low-density parity-check (LDPC) codes |
JP4861509B1 (ja) | 2010-10-29 | 2012-01-25 | 株式会社東芝 | 符号化・復号化装置、データ記憶装置、及び方法 |
JP5829627B2 (ja) * | 2011-01-21 | 2015-12-09 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 符号化方法、復号方法、符号化器、及び、復号器 |
US8918694B2 (en) | 2011-02-28 | 2014-12-23 | Clariphy Communications, Inc. | Non-concatenated FEC codes for ultra-high speed optical transport networks |
US10063262B2 (en) * | 2011-02-28 | 2018-08-28 | Inphi Corporation | Non-concatenated FEC codes for ultra-high speed optical transport networks |
US10103751B2 (en) * | 2011-02-28 | 2018-10-16 | Inphi Corporation | Non-concatenated FEC codes for ultra-high speed optical transport networks |
EP3364578B1 (en) * | 2015-11-17 | 2023-07-26 | Huawei Technologies Co., Ltd. | Parallel decoding for qc-ldpc codes |
US10050642B2 (en) * | 2016-03-17 | 2018-08-14 | Silicon Motion Inc. | Low power scheme for bit flipping low density parity check decoder |
US10116333B2 (en) * | 2016-07-29 | 2018-10-30 | Sandisk Technologies Llc | Decoder with parallel decoding paths |
KR102523059B1 (ko) * | 2018-04-18 | 2023-04-19 | 에스케이하이닉스 주식회사 | 에러 정정 회로 및 그것을 포함하는 메모리 시스템 |
US10998919B2 (en) * | 2019-10-02 | 2021-05-04 | Microsoft Technology Licensing, Llc | Coded stream processing |
US11424766B1 (en) | 2020-01-31 | 2022-08-23 | Marvell Asia Pte Ltd. | Method and device for energy-efficient decoders |
US11265015B2 (en) * | 2020-05-15 | 2022-03-01 | SK Hynix Inc. | Out-of-order processing for bit-flipping decoders in non-volatile memory devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1701515A (zh) * | 2003-05-13 | 2005-11-23 | 索尼株式会社 | 解码方法、解码装置和程序 |
JP2007036776A (ja) * | 2005-07-28 | 2007-02-08 | Sony Corp | 復号装置および復号方法 |
JP2007081602A (ja) * | 2005-09-13 | 2007-03-29 | Sony Corp | 復号装置および復号方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002091592A1 (en) * | 2001-05-09 | 2002-11-14 | Comtech Telecommunications Corp. | Low density parity check codes and low density turbo product codes |
US6633856B2 (en) * | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
CN1593012B (zh) * | 2002-07-03 | 2015-05-20 | Dtvg许可公司 | 一种用于通信系统中编码信号的装置和方法 |
US7162684B2 (en) * | 2003-01-27 | 2007-01-09 | Texas Instruments Incorporated | Efficient encoder for low-density-parity-check codes |
US6957375B2 (en) * | 2003-02-26 | 2005-10-18 | Flarion Technologies, Inc. | Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation |
JP4225163B2 (ja) * | 2003-05-13 | 2009-02-18 | ソニー株式会社 | 復号装置および復号方法、並びにプログラム |
US7296208B2 (en) * | 2003-07-03 | 2007-11-13 | The Directv Group, Inc. | Method and system for generating parallel decodable low density parity check (LDPC) codes |
KR100809619B1 (ko) * | 2003-08-26 | 2008-03-05 | 삼성전자주식회사 | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 |
FI121431B (fi) * | 2004-09-13 | 2010-11-15 | Tamfelt Pmc Oy | Paperikoneessa käytettävä kudosrakenne ja menetelmä sen valmistamiseksi |
WO2006039801A1 (en) * | 2004-10-12 | 2006-04-20 | Nortel Networks Limited | System and method for low density parity check encoding of data |
CN100550655C (zh) * | 2004-11-04 | 2009-10-14 | 中兴通讯股份有限公司 | 一种低密度奇偶校验码的编码器/译码器及其生成方法 |
CN101069356A (zh) | 2004-12-02 | 2007-11-07 | 三菱电机株式会社 | 解码装置以及通信装置 |
WO2006068435A2 (en) * | 2004-12-22 | 2006-06-29 | Lg Electronics Inc. | Apparatus and method for decoding using channel code |
US7900127B2 (en) * | 2005-01-10 | 2011-03-01 | Broadcom Corporation | LDPC (Low Density Parity Check) codes with corresponding parity check matrices selectively constructed with CSI (Cyclic Shifted Identity) and null sub-matrices |
JP4622654B2 (ja) * | 2005-04-25 | 2011-02-02 | ソニー株式会社 | 復号装置および復号方法 |
JP2006340016A (ja) | 2005-06-01 | 2006-12-14 | Toshiba Microelectronics Corp | 誤り訂正符号復号装置及びそれを用いた復号方法 |
KR100946905B1 (ko) * | 2005-09-27 | 2010-03-09 | 삼성전자주식회사 | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 송수신 장치 및 방법 |
US7707479B2 (en) * | 2005-12-13 | 2010-04-27 | Samsung Electronics Co., Ltd. | Method of generating structured irregular low density parity checkcodes for wireless systems |
US7805652B1 (en) * | 2006-02-10 | 2010-09-28 | Marvell International Ltd. | Methods for generating and implementing quasi-cyclic irregular low-density parity check codes |
JP2007272517A (ja) | 2006-03-31 | 2007-10-18 | National Institute Of Multimedia Education | マイクロシナリオデータ分析システムおよびマイクロシナリオデータ分析プログラム |
JP4856605B2 (ja) * | 2006-08-31 | 2012-01-18 | パナソニック株式会社 | 符号化方法、符号化装置、及び送信装置 |
JP4702632B2 (ja) * | 2007-04-06 | 2011-06-15 | ソニー株式会社 | 符号化方法および符号化装置、並びにプログラム |
JP2008301152A (ja) | 2007-05-31 | 2008-12-11 | Sony Corp | 復号装置および方法、並びにプログラム |
JP4487213B2 (ja) * | 2007-10-19 | 2010-06-23 | ソニー株式会社 | 復号装置および方法、並びにプログラム |
-
2007
- 2007-10-19 JP JP2007272517A patent/JP4487212B2/ja not_active Expired - Fee Related
-
2008
- 2008-10-09 EP EP08253289A patent/EP2088679A3/en not_active Ceased
- 2008-10-13 TW TW097139222A patent/TWI373922B/zh active
- 2008-10-15 KR KR1020080101347A patent/KR20090040223A/ko not_active Application Discontinuation
- 2008-10-17 US US12/253,324 patent/US8234555B2/en active Active
- 2008-10-20 CN CN2008101702881A patent/CN101442317B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1701515A (zh) * | 2003-05-13 | 2005-11-23 | 索尼株式会社 | 解码方法、解码装置和程序 |
JP2007036776A (ja) * | 2005-07-28 | 2007-02-08 | Sony Corp | 復号装置および復号方法 |
JP2007081602A (ja) * | 2005-09-13 | 2007-03-29 | Sony Corp | 復号装置および復号方法 |
Also Published As
Publication number | Publication date |
---|---|
US20090106621A1 (en) | 2009-04-23 |
TW200935754A (en) | 2009-08-16 |
CN101442317A (zh) | 2009-05-27 |
US8234555B2 (en) | 2012-07-31 |
JP2009100421A (ja) | 2009-05-07 |
KR20090040223A (ko) | 2009-04-23 |
TWI373922B (en) | 2012-10-01 |
EP2088679A2 (en) | 2009-08-12 |
EP2088679A3 (en) | 2012-08-01 |
JP4487212B2 (ja) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101442317B (zh) | 数据解码装置和方法、发送/接收系统、接收装置和方法 | |
CN101414834B (zh) | 解码设备和解码方法 | |
CN100472971C (zh) | 解码方法与解码装置 | |
CN1855731B (zh) | 解码装置及解码方法 | |
CN101340194B (zh) | 解码ldpc编码信号的解码器 | |
CN101689865B (zh) | 置乱式ldpc解码 | |
CN101414835B (zh) | 接收设备及方法 | |
US11115051B2 (en) | Systems and methods for decoding error correcting codes | |
Wang et al. | VLSI design for low-density parity-check code decoding | |
CN101208864B (zh) | 解码装置及解码方法 | |
CN101364809B (zh) | 解码器 | |
Islam et al. | Quasi Cyclic Low Density Parity Check Code for High SNR Data Transfer. | |
Bates et al. | A low-cost serial decoder architecture for low-density parity-check convolutional codes | |
Zolotarev et al. | Usage of divergence within concatenated multithreshold decoding convolutional codes | |
Zhang et al. | Low-density parity-check code (LDPC) schemes with BICM | |
Wijekoon | Low Complexity Decoding of Non-binary Low-density Parity-check Codes | |
Biswal | VLSI Implementation of LDPC Codes | |
NG et al. | Design and Performance Evaluation of Error Detection and Correction using Concatenated BCH and LDPC coding Scheme for Data Streams in Satellite Communication | |
Devika | A Novel Approach to built an Area Efficient Architecture for Block LDPC Codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120711 |