CN101272150B - 一种低密度生成矩阵码的译码方法及装置 - Google Patents
一种低密度生成矩阵码的译码方法及装置 Download PDFInfo
- Publication number
- CN101272150B CN101272150B CN2008100969931A CN200810096993A CN101272150B CN 101272150 B CN101272150 B CN 101272150B CN 2008100969931 A CN2008100969931 A CN 2008100969931A CN 200810096993 A CN200810096993 A CN 200810096993A CN 101272150 B CN101272150 B CN 101272150B
- Authority
- CN
- China
- Prior art keywords
- matrix
- word
- sequence
- row
- code
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 161
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000003379 elimination reaction Methods 0.000 claims description 37
- 230000008030 elimination Effects 0.000 claims description 30
- 238000006467 substitution reaction Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000007792 addition Methods 0.000 description 21
- 239000013598 vector Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- HTIQEAQVCYTUBX-UHFFFAOYSA-N amlodipine Chemical compound CCOC(=O)C1=C(COCCN)NC(C)=C(C(=O)OC)C1C1=CC=CC=C1Cl HTIQEAQVCYTUBX-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000000844 transformation 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/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/1191—Codes on graphs other than LDPC 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
Abstract
一种低密度生成矩阵码的译码方法及装置,对接收到的经过LDGC编码后传输的比特信息序列进行译码,该方法包括:在接收到的码字序列R中填充L-K个已知比特并将R中被信道擦除的码字符号删除,得到R e;将被信道擦除的码字符号对应的行从LDGC生成矩阵的转置矩阵G ldgct中删除,得到G e;用WNum个处理字依序存储G e中各行的全部或部分相同位置的矩阵元素,每个处理字存储G e的WWid个矩阵元素;根据G e×I t=R e解得I t;根据G ldgct(0:L-1,0:L-1)×I t=s t求出s t,并从s t中删除填充的L-K个已知比特得到K比特的原始信息序列。采用本发明可减少译码器的存储开销,加快译码速度。
Description
技术领域
本发明涉及数据编译码领域,尤其涉及一种低密度生成矩阵码的译码方法及装置。
背景技术
信道编码的目的是为了保证信息的可靠传输,信道编码方案的实现复杂度主要在译码端,译码器通常是信道编码方案的关键部分。译码器可以采用硬件实现,即采用硬件逻辑单元构建译码器;也可以采用软件实现,即采用通用处理器(CPU),通过程序实现译码器;还可以采用软硬件结合的实现方法实现译码器。
LDGC(Low Density Generator Matrix Codes,低密度生成矩阵码)广义地是指:其生成矩阵是一个稀疏的二元矩阵(即矩阵元素仅由0和1组成)的一类码,包括了结构化LDGC码和Raptor(瑞普特)码等非结构化LDGC码。
LDGC适于对擦除信道进行前向纠错(FEC)。在数据传输过程中,如果接收端接收到的数据包出现校验错误,则将错误的数据段丢弃,相当于进行擦除。LDGC码可以有效对抗数据的丢失。
同时,LDGC是一种线性分组码,其生成矩阵(编码矩阵)中的元素均来自二元域(GF(2)域),即生成矩阵的元素仅由0和1组成;并且其非零元素通常是稀疏的,即矩阵中“1”的数量只占矩阵总元素数量很小的比例;此外,LDGC还是一种系统码,即使用LDGC生成矩阵对K比特信息位进行编码所生成的码字的前K比特与该信息位相同。LDGC编译码过程涉及的运算都是GF(2)域上的运算。
结构化LDGC的生成矩阵还具有其它特征,可以由一个很小的基础矩阵通过扩展修正得到;特别地,其前L行对应的方阵通常是一个上三角或下三角矩阵。而Raptor码等不具有结构化特点的LDGC生成矩阵是一个随机的二元矩阵。下面用Gldgc统一表示LDGC生成矩阵,当需要分别表示时,用Gstruct表示结构化LDGC的生成矩阵的转置,用Grandom表示不具有结构化特点的LDGC生成矩阵(可以简称为非结构化LDGC生成矩阵)的转置,特别地Grandom包括Raptor码的生成矩阵。
下面的叙述中凡是以小写t为下标的“向量”或“矩阵”都表示是原“向量”或“矩阵”的转置,向量或矩阵与其转置从内容上看是完全一样的,有时可以表示同一个对象。例如,定义Gldgct是Gldgc的转置,It是I的转置,Rt是R的转置,因I和R都是行向量,这里It和Rt都是列向量;下面用Gstruct、Grandom分别表示各自的转置后的生成矩阵Gldgct。
图1是转置后的LDGC生成矩阵Gldgct的示意图。如图1a所示,结构化LDGC生成矩阵Gstruct中的前L行对应的方阵通常是一个上三角或下三角矩阵。如图1b所示,Raptor码的前L行对应的方阵是一个随机的矩阵,不具有上三角或下三角矩阵特点。其中,图中的x,y可以为0。
LDGC的编码是利用系统码中信息位(即待发送数据)与中间变量的对应关系先求出中间变量,然后再用中间变量乘以生成矩阵得到编码后的码字。具体地说,编码过程是先对K比特原始信息序列m填充d=L-K个已知比特后产生L比特序列s,然后根据方程组关系式:I×Gldgc(0∶L-1,0∶L-1)=s,解方程组得到L比特中间变量序列I,然后再由中间变量乘以生成矩阵,即I×Gldgc(0∶L-1,0∶N+d-1)得到N+d比特(包含d个填充比特)的码字序列C’ldgc,C’ldgc的d个填充比特不需要传输,因而真正传输的是N比特的码字序列Cldgc。Cldgc经过信道后(可能发生擦除),接收端接收的码字序列为R。其中,s是1×L的向量;I是1×L的向量;R是1×N的向量,其转置Rt为N×1的向量;Gldgc(0∶L-1,0∶L-1)是L×L方阵,该方阵通常是一个上三角或下三角矩阵,Gldgc(0∶L-1,0∶N+d-1)是L×(N+d)的矩阵。编码的详细过程可以参考专利“低密度生成矩阵码的编码方法和装置、及译码方法和装置”。
图2是低密度生成矩阵码的译码方法流程图。如图2所示,译码过程包含如下步骤:
201:在接收码字序列Rt的相应位置填充长度为d=L-K的已知比特序列,例如:1,1,...,1,同时删除被信道擦除的码字符号,得到Re;
其中K为原始信息位的长度,L为原始信息位经过填充后编码的长度。
202:根据接收码字序列Rt被擦除的情况,对Gldgct进行行擦除(删除)处理,得到擦除生成矩阵Ge。
图3为根据接收码字序列Rt的擦除情况对生成矩阵进行擦除处理的示意图。如图3所示,经过擦除处理的生成矩阵Ge的前L行已不再是下三角方阵。
假设填充已知比特序列后的R=(r0,r1,......rN+d-1)T中的XT个符号:{ri,rj,...,rp...rx}被信道擦除;其中,前L个符号中的XL个符号{ri,rj,...,rp}被信道擦除;则Xset={i,j,...,p,...,x};XsetL={i,j,...p}。相应地擦除Gldgct中的第{i,j,...,p,...,x}行,即得到Ge,这时Ge上面的矩阵由于擦除了若干行,已经不是严格对角化,如图3(c)所示。
203:根据方程组关系式Ge×It=Re,解方程组求得中间变量It;
204:根据方程组关系式Gldgct(0∶L-1,0∶L-1)×It=st求出st,并从st中删除上述填充的d个已知比特,得到K比特的原始信息序列m,完成LDGC译码。
在上述译码过程中最关键的步骤是求中间变量It,这通常需要解大型的二元线性方程组。工程上,解线性方程组可以采用高斯消元或迭代等方法,根据LDGC的特点,高斯消元法更适合LDGC译码。因而,高斯消元过程的快慢直接影响到LDGC译码的速度。
根据方程组关系式Gldgct(0∶N+d-1,0∶L-1)×It=Rt(发生信道擦除时将Gldgct记为Ge,将Rt记为Re,上述方程组关系式为Ge×It=Re)求解中间变量It的过程中,所进行的高斯消元需要对Gldgct(发生信道擦除时为Ge)作“行置换、行相加和列置换”三种初等变换。根据线性代数原理,为了保证方程组的正确性,对Gldgct(Ge)进行初等变换的同时,需要对It和Rt(发生信道擦除时为Re)作如下相应的处理:
1)行置换,若Gldgct(Ge)的第i行和第j行进行置换,则Rt(Re)的第i比特和第j个比特需要进行置换;
2)行相加,若Gldgct(Ge)的第i行和第j行进行相加,则Rt(Re)的第i比特和第j个比特需要进行相加(模2加);
3)列置换,若Gldgct(Ge)的第i列和第j列进行置换,则It的第i比特和第j个比特需要进行置换。
由于最终结果需要得到It,而It中的元素在Gldgct(Ge)作列置换时相应地作了置换,因而需要对It的置换情况作记录,以便用于后面的求逆置换过程。工程上,可以通过一个数组来记录It的置换情况。而Rt不是最终需要的数据,可以直接对其处理,不需要记录其处理情况。
因为这些变换关系是严格对应的,而且高斯消元的主要复杂度体现在对Gldgct(Ge)的处理上,下面为了叙述的简便,凡是针对Gldgct(Ge)的初等变换,相应地对It和Rt(Re)的处理需严格按照上面的三种情况来处理。为了突出重点,下面有时会简化对It和Rt(Re)的处理的描述。
通常,实现高斯消元的复杂度(计算量)主要体现在矩阵的“行相加”操作上。由于Gldgct的元素均来自GF(2)域;所以Gldgct(Ge)中两行的相加操作是“模2相加”操作,例如:
第i行内容row_i为:(1,0,0,0,0,1,0,1);
第j行内容row_j为:(1,1,0,0,0,1,1,1);
进行高斯消元时发生用row_i消row_j的操作,则相当于:
row_j=row_i+row_j=
(1,0,0,0,0,1,0,1)+(1,1,0,0,0,1,1,1)=(0,1,0,0,0,0,1,0);
这里“+”为GF(2)域中的加法(模2加);
由上面的例子可以看出,由于Gldgct中的元素均来自GF(2)域,即元素的取值只有0和1两种,如果直接存储这些0和1元素,即每个比特元素占一个存储单元,或者说占一个处理器的字(通常为32比特),则码长较长时Gldgct(Ge)需要很大的存储空间;而且,行相加操作需要分别对每一个元素进行模2加,非常费时。
发明内容
本发明所要解决的技术问题是,克服现有技术的不足,提出一种减少LDGC生成矩阵所占用的存储空间,并提高运算速度的低密度生成矩阵码的译码方法及装置。
为了解决上述问题,本发明提供一种低密度生成矩阵码的译码方法,对接收到的经过LDGC编码后传输的比特信息序列进行译码,该方法包括如下内容:
S1:在接收到的码字序列R中填充L-K个已知比特并将R中被信道擦除的码字符号删除,得到Re;
S2:将上述被信道擦除的码字符号对应的行从LDGC生成矩阵的转置矩阵Gldgct中删除,得到Ge;其中,用WNum个处理字依序存储Ge中各行的全部或部分相同位置的矩阵元素,每个处理字存储Ge的WWid个矩阵元素;
S3:根据关系式Ge×It=Re解得It;
S4:根据关系式Gldgct(0∶L-1,0∶L-1)×It=st求出st,并从st中删除上述填充的L-K个已知比特得到K比特的原始信息序列;
上述Gldgct为N+L-K行、L列的GF(2)域矩阵,WWid为处理字的字宽,WNum=ceil(P/WWid),P为Ge各行中用所述处理字的一个比特存储的矩阵元素的个数。
此外,步骤S3中,采用高斯消元法求解所述It;并且在高斯消元过程中,对于Ge中用所述处理字的一个比特存储的各行的矩阵元素,使用Ge中两行对应的处理字的比特异或运算实现对应行的行相加。
此外,所述Gldgct的前L行对应的方阵为下三角矩阵;
步骤S3包括如下子步骤:
S31:对Ge进行列置换,生成 其中A是M阶下三角矩阵,并记录Ge和Ga的列置换对应关系;
S32:根据关系式Ga×I′t=Re解得I′t,并根据上述列置换对应关系对I′t进行逆置换得到It;
其中,所述P为矩阵C和B的列数,用所述处理字依序存储C和B中各行的全部矩阵元素,每个处理字的各比特依序存储C和B的WWid个矩阵元素。
此外,所述M=L-XL,XL为R的前L个码字符号中被信道擦除的比特数;P=XL。
此外,设XsetL为填充所述L-K个已知比特后R的前L个码字符号中,被删除的码字符号的序号集合,该集合中的序号个数为所述XL;
步骤S31中,将所述Ge中列序号属于XsetL的列移至Ge的最右端,对应列空出的位置由后续列序号不属于XsetL的列依次填充,得到所述Ga。
本发明还提供一种低密度生成矩阵码的译码装置,该装置包括:填充擦除单元,高斯消元单元,信息序列生成单元,其中:
所述填充擦除单元,用于在接收到的码字序列R中填充L-K个已知比特,并将被信道擦除的码字符号删除,生成并输出Re;并将上述被信道擦除的码字符号对应的行从LDGC生成矩阵的转置矩阵Gldgct中删除,生成并输出Ge;其中,用WNum个处理字依序存储Ge中各行的全部或部分相同位置的矩阵元素,每个处理字存储Ge的WWid个矩阵元素;
所述高斯消元单元,用于根据关系式Ge×It=Re对Ge进行高斯消元,解得并输出It;
所述信息序列生成单元,用于接收所述高斯消元单元输出的It;根据关系式Gldgct(0∶L-1,0∶L-1)×It=st获得st,并从st中删除所述L-K个已知比特后输出K比特的原始信息序列;
上述Gldgct为N+L-K行、L列的GF(2)域矩阵,WWid为处理字的字宽,WNum=ceil(P/WWid),P为Ge各行中用所述处理字的一个比特存储的矩阵元素的个数。
此外,所述高斯消元单元采用高斯消元法求解所述It;并且在高斯消元过程中,对于Ge中用所述处理字的一个比特存储的各行的矩阵元素,使用Ge中两行对应的处理字的比特异或运算实现对应行的行相加。
此外,所述Gldgct的前L行对应的方阵为下三角矩阵;
所述装置还包含列置换单元,用于对所述填充擦除单元输出的Ge进行列置换,生成 其中A是M阶下三角矩阵,并输出Ge和Ga的列置换对应关系信息;
所述高斯消元单元根据关系式Ga×I′t=Re解得I′t,并根据所述列置换单元输出的列置换对应关系信息对I′t进行逆置换得到并输出所述It;
其中,所述P为矩阵C和B的列数,用所述处理字依序存储C和B中各行的全部矩阵元素,每个处理字的各比特依序存储C和B的WWid个矩阵元素。
此外,所述M=L-XL,XL为R的前L个码字符号中被信道擦除的比特数;P=XL。
此外,设XsetL为填充所述L-K个已知比特后R的前L个码字符号中,被删除的码字符号的序号集合,该集合中的序号个数为所述XL;
所述列置换单元将所述Ge中列序号属于XsetL的列移至Ge的最右端,对应列空出的位置由后续列序号不属于XsetL的列依次填充,得到所述Ga。
采用本发明的LDGC译码方法,充分利用LDGC生成矩阵的特点以及处理器可以并行处理多个比特的特点,采用处理器的一个“字”(简称处理字)存储并表示译码LDGC生成矩阵的“处理器字宽”个元素,与直接存储LDGC生成矩阵元素的存储结构和数据表示方法相比,本发明大大减少了译码器的存储开销,并加快了译码速度,使LDGC可更灵活地应用到高速的通信系统中。
附图说明
图1是转置后的LDGC生成矩阵Gldgct的示意图;
图2是低密度生成矩阵码的译码方法流程图;
图3为根据接收码字序列Rt的擦除情况对生成矩阵进行擦除处理的示意图;
图4是本发明第一实施例低密度生成矩阵码的译码方法流程图;
图5是本发明第二实施例低密度生成矩阵码的译码方法流程图;
图6为对擦除生成矩阵Ge进行列置换的示意图;
图7为本发明实施例低密度生成矩阵码的译码装置示意图。
具体实施方式
由上可知,由于LDGC生成矩阵(包括Gstruct和Grandom)的矩阵元素仅由0和1组成,且高斯消元所涉及的行相加运算为模2加;因此可以仅用一个比特存储并表示一个矩阵元素,并且用比特异或(即按位异或)取代各矩阵元素的模2加,快速实现LDGC生成矩阵的行相加运算。
例如:
将第i行内容row_i表示为:10000101;
将第j行内容row_j表示为:11000111;
将第i行内容与第j行内容相加可以等同为:
下面将结合附图和实施例对本发明进行详细描述,需要注意的是,本发明仅关注的软件、或软硬件结合的译码器实现方法。
图4是本发明第一实施例低密度生成矩阵码的译码方法流程图;本实施例是针对结构化和非结构化LDGC生成矩阵(Gstruct和Grandom)的通用译码方法。如图4所示,该方法包括如下步骤:
401:在接收码字序列Rt的相应位置填充长度为d=L-K的已知比特序列,同时删除被信道擦除的码字符号,得到Re;
其中K为原始信息位的长度,L为原始信息位经过填充后编码的长度。
假设填充已知比特序列后的Rt=(r0,r1,......rN+d-1)T中的XT个符号:{ri,rj,...,rp...rx}被信道擦除,其中,前L个符号中的XL个符号{ri,rj,...,rp}被信道擦除;则Xset={i,j,...,p,...,x};XsetL={i,j,...p}。
402:根据接收码字序列Rt被擦除的情况,对Gldgct进行行擦除(删除)处理,得到擦除生成矩阵Ge;其中,Ge的每一行用WNum个处理器的字(简称处理字)表示,当然,Gldgct的每一行也可以用WNum个处理器字表示;
设Xset={i,j,...,p,...,x};XsetL={i,j,...p},相应地擦除Gldgct中的第{i,j,...,p,...,x}行,即得到Ge。
由于Ge(Gldgct)的每一行包含L个元素,因此WNum=ceil(L/WWid);WWid为处理器字宽(通常为8、16、32、64,单位为比特);即用一个处理字来依序存储和表示Ge(Gldgct)中连续的WWid个元素;
当L不是WWid的整数倍时,每一行的最后一个处理字包含该行的最后mod(L,WWid)个元素,对该处理字的其余Z=WWid-mod(L,WWid)个比特可以清零;
上述ceil表示向上取整运算,mod表示求模运算。
最终,Ge(Gldgct)可以采用一个二维数组来表示,二维数组中的一个元素是一个处理字。该二维数组的元素总数为:(N+d-XT)× WNum;XT为擦除的行数。由此可知,采用本发明的上述矩阵表示方法可节约大量的存储空间。
例如,处理器字宽WWid=32,Ge(Gldgct)的每一行包含L=2000个元素,因此需要ceil(2000/32)=63个处理字来表示Ge(Gldgct)的每一行;由于2000不是32的整数倍,mod(2000,32)=16,因此最后一个处理字中只有16个有效比特,该处理字的其余32-16=16个比特没有意义,清0即可。
403:根据方程组关系式Ge×It=Re,解方程组解得中间变量It;
采用高斯消元法求解中间变量It的过程中,涉及的“行相加”操作采用处理器的比特异或(XOR)指令实现;因此一次完整的行相加操作可用WNum个处理字的比特异或操作代替,相当于并行处理行相加操作,并行度为WWid,极大地提高了“行相加”操作的运算速度。
404:根据方程组关系式Gldgct(0∶L-1,0∶L-1)× It=st求出st,并从st中删除上述填充的d个已知比特得到K比特的原始信息序列m,完成LDGC译码。
图5是本发明第二实施例低密度生成矩阵码的译码方法流程图;本实施例是针对结构化LDGC生成矩阵(Gstruct)的译码方法,可以仅使用处理字存储经过擦除、列置换处理后的Gstruct中各行的部分元素。如图5所示,该方法包括如下步骤:
501:在接收码字序列Rt的相应位置填充长度为d=L-K的已知比特序列,同时删除被信道擦除的码字符号,得到Re;
其中K为原始信息位的长度,L为原始信息位经过填充后编码的长度。
假设填充已知比特序列后的Rt=(r0,r1,......rN+d-1)T中的XT个符号:{ri,rj,...,rp...rx}被信道擦除,其中,前L个符号中的XL个符号{ri,rj,...,rp}被信道擦除;则Xset={i,j,...,p,...,x};XsetL={i,j,...p}。
502:根据接收码字序列Rt被擦除的情况,对Gldgct进行行擦除(删除)处理,得到擦除生成矩阵Ge;
设Xset={i,j,...,p,...,x};XsetL={i,j,...p},相应地擦除Gldgct中的第{i,j,...,p,...,x}行,即得到Ge。
503:对擦除生成矩阵Ge进行列置换,使Ge中以(0,0)为顶点的M阶方阵为下三角矩阵,将Ge置换后的矩阵记作置换生成矩阵Ga;同时记录Ge和Ga的列置换对应关系,用于将上述列置换过程中对It进行相应的置换操作生成的I′t进行逆操作;
图6为对擦除生成矩阵Ge进行列置换的示意图。
具体地说,为了得到下三角矩阵,将Ge中列序号属于XsetL的列移至Ge的最右端,对应列空出的位置由后续列序号不属于XsetL的列依次填充,得到置换生成矩阵:
其中,矩阵A是M阶方阵,其对角线上都是非零元素,并具有严格下三角的特点;矩阵C是大小为M×L-M)的矩阵;矩阵D是(N-K-(XT-XL))×M的矩阵;矩阵B是(N-K-(XT-XL))×(L-M)的矩阵。上述M=L-XL。
504:将Ga中的B和C的每一行用WNum个处理器字表示;
由于B和C的每行的长度为XsetL,设处理器字宽为WWid,则:
WNum=ceil(XsetL/WWid)。
如果XsetL不是WWid的整数倍,则每一行最后一个处理字包含该行的最后mod(XsetL,WWid)个元素;对该处理字的其余Z=WWid-mod(XsetL,WWid)个比特可以清零。
因此,B和C可以分别采用一个二维数组来表示,二维数组中的一个元素是一个处理字。矩阵C对应的二维数组的元素总数为:M×WNum;矩阵B对应的二维数组的元素总数为:(N-K-(XT-XL))×WNum。
例如,B和C的行长度为XsetL=200;设处理器字宽WWid=32,则:
WNum=ceil(XsetL/WWid)=ceil(200/32)=7;即B和C的每一行需要用7个处理字来存储和表示。
由于200不是32的整数倍,mod(XsetL,WWid)=mod(200,32)=8,因此最后一个处理字中包含8个有效比特,该处理字其余32-8=24个比特没意义,可以清零。
所以,矩阵C可以用元素总数为M×7的二维数组存储和表示,矩阵B可以用元素总数为(N-K-(XT-XL))×7的二维数组存储和表示;相对于现有技术中用元素总数为M×200的二维数组表示C,用元素总数为(N-K-(XT-XL))×200的二维数组表示B,节省了大量的存储空间。
需要注意的是,由于矩阵A和D中的非零元素可以由编码时构造生成矩阵所定义的公式直接计算得到,所以A和D实际上不需要存储,在对A和D进行消元的过程中只需通过编码时构造生成矩阵所定义的公式直接计算得到非零元素的位置,然后根据这些非零元素的位置进行“行相加”即可。当然,也可以用同样的方法对A和D进行存储和表示。而B和C可以看作是随机的稀疏矩阵,所以对其进行的行相加操作,只能将对应元素逐个地相加。采用一个处理字表示WWid个元素的数据结构可以使软件处理行相加的能力最优。
505:根据方程组关系式Ga×It’=Re,解方程组解得中间变量It’;并根据It到It’的置换关系(即Ge到Ga的列置换关系)进行逆置换,即可由It’求得It。
采用高斯消元法求解中间变量It’的过程中,涉及矩阵B和C的“行相加”操作采用处理器的比特异或(XOR)指令实现;因此,一次完整的行相加操作可用WNum个处理字的比特异或操作代替,相当于并行处理行相加操作,并行度为WWid,极大地提高了“行相加”操作的运算速度。
506:根据方程组关系式Gldgct(0∶L-1,0∶L-1)×It=st求出st,并从st中删除上述填充的d个已知比特得到K比特的原始信息序列m,完成LDGC译码。
图7为本发明实施例低密度生成矩阵码的译码装置示意图。如图7所示,该装置包含:填充擦除单元,列置换单元,高斯消元单元,信息序列生成单元。其中,
填充擦除单元,用于在接收到的码字序列R中填充d=L-K个已知比特,并将被信道擦除的码字符号删除,生成并输出Re;并将上述被信道擦除的码字符号对应的行从LDGC生成矩阵的转置矩阵Gldgct中删除,生成并输出Ge;
其中,对于结构化非结构化LDGC生成矩阵,填充擦除单元用WNum个处理字依序存储Ge中每一行的全部或部分矩阵元素,每个处理字存储Ge的WWid个矩阵元素;WWid为处理字的字宽,WNum=ceil(Len/WWid)。Len为一行中为需要用处理字表示的元素个数。
列置换单元,用于对所述填充擦除单元输出的Ge进行列置换,使Ge中以第0行、第0列元素为顶点的M阶方阵A为下三角矩阵,生成并输出 并输出Ge和Ga的列置换对应关系信息;
所述M=L-XL,XL为R的前L个符号中被信道擦除的比特数。
列置换单元可将Ge中列序号属于XsetL的列移至Ge的最右端,对应列空出的位置由后续列序号不属于XsetL的列依次填充,得到所述Ga。对于非结构化LDGC生成矩阵,该单元为可选单元。
高斯消元单元,用于根据关系式Ge×It=Re对所述填充擦除单元输出的Ge进行高斯消元,解得并输出It;或根据关系式Ga×I′t=Re对所述列置换单元输出的Ga进行高斯消元,解得I′t,并根据列置换单元输出的所述列置换对应关系信息对I′t进行逆置换,得到并输出It;
信息序列生成单元,用于接收高斯消元单元输出的It;根据关系式Gldgct(0∶L-1,0∶L-1)×It=st获得st,并从st中删除d个已知比特后输出K比特的原始信息序列。
由上可知,对于LDGC生成矩阵采用本发明的译码方法及装置,可加快高斯消元的处理速度。
根据本发明的基本原理,上述实施例还可以有多种变换方式:
对于其它形状的LDGC生成矩阵,例如,前L行为上三角矩阵,可将其变换成下三角矩阵后采用本发明的译码方法。
Claims (8)
1.一种低密度生成矩阵码的译码方法,对接收到的经过低密度生成矩阵码LDGC编码后传输的比特信息序列进行译码,其特征在于,该方法包括如下内容:
S1:在接收到的码字序列R中填充L-K个已知比特并将R中被信道擦除的码字符号删除,得到Re;其中K为原始信息位的长度,L为原始信息位经过填充后编码的长度;
S2:将上述被信道擦除的码字符号对应的行从LDGC生成矩阵的转置矩阵Gldgct中删除,得到Ge;其中,Ge中每一行矩阵元素用WNum个处理字依序存储,第T个处理字存储该行中第(T-1)×WWid+1个至第T×WWid个矩阵元素,1≤T<WNum,第WNum个处理字存储该行末尾的mod(L,WWid)个元素,每个处理字存储Ge的WWid个矩阵元素;
S3:根据关系式Ge×It=Re解得It;
S4:根据关系式Gldgct(0:L-1,0:L-1)×It=st求出st,并从st中删除上述填充的L-K个已知比特得到K比特的原始信息序列,其中0:L-1表示小标为0至L-1的L行/列;上述Gldgct为N+L-K行、L列的GF(2)域矩阵,WWid为处理字的字宽,WNum=ceil(P/WWid),P为Ge各行中用所述处理字的一个比特存储的矩阵元素的个数,其中GF(2)域为仅由0和1元素组成的二元域,N为传输码字序列Cldgc的比特数,ceil表示向上取整运算。
2.如权利要求1所述的方法,其特征在于,
步骤S3中,采用高斯消元法求解所述It;并且在高斯消元过程中,对于Ge中用所述处理字的一个比特存储的各行的矩阵元素,使用Ge中两行对应的处理字的比特异或运算实现对应行的行相加。
3.如权利要求1所述的方法,其特征在于,
所述Gldgct的前L行对应的方阵为下三角矩阵;
步骤S3包括如下子步骤:
S31:对Ge进行列置换,生成其中A是M阶下三角矩阵,并记录Ge和Ga的列置换对应关系;
S32:根据关系式Ga×I′t=Re解得I′t,并根据上述列置换对应关系对I′t进行逆置换得到It;
其中,所述P为矩阵C和B的列数,用所述处理字依序存储C和B中各行的全部矩阵元素,每个处理字的各比特依序存储C和B的WWid个矩阵元素,所述M=L-XL,XL为R的前L个码字符号中被信道擦除的比特数;P=XL。
4.如权利要求3所述的方法,其特征在于,
设XsetL为填充所述L-K个已知比特后R的前L个码字符号中,被删除的码字符号的序号集合,该集合中的序号个数为XL;其中,XL为填充所述L-K个已知比特后的R的前L个码字符号中被信道擦除的比特数;
步骤S31中,将所述Ge中列序号属于XsetL的列移至Ge的最右端,对应列空出的位置由后续列序号不属于XsetL的列依次填充,得到所述Ga。
5.一种低密度生成矩阵码的译码装置,其特征在于,该装置包括:填充擦除单元,高斯消元单元,信息序列生成单元,其中:
所述填充擦除单元,用于在接收到的码字序列R中填充L-K个已知比特,并将被信道擦除的码字符号删除,生成并输出Re;并将上述被信道擦除的码字符号对应的行从低密度生成矩阵码LDGC生成矩阵的转置矩阵Gldgct中删除,生成并输出Ge;其中,Ge中每一行矩阵元素用WNum个处理字依序存储,第T个处理字存储该行中第(T-1)×WWid+1个至第T×WWid个矩阵元素,1≤T<WNum,第WNum个处理字存储该行末尾的mod(L,WWid)个元素,每个处理字存储Ge的WWid个矩阵元素;
所述高斯消元单元,用于根据关系式Ge×It=Re对Ge进行高斯消元,解得并输出It;
所述信息序列生成单元,用于接收所述高斯消元单元输出的It;根据关系式Gldgct(0:L-1,0:L-1)×It=st获得st,并从st中删除所述L-K个已知比特后输出K比特的原始信息序列;其中,K为原始信息位的长度,L为原始信息位经过填充后编码的长度,0:L-1表示小标为0至L-1的L行/列;
上述Gldgct为N+L-K行、L列的GF(2)域矩阵,WWid为处理字的字宽,WNum=ceil(P/WWid),P为Ge各行中用所述处理字的一个比特存储的矩阵元素的个数,GF(2)域为仅由0和1元素组成的二元域,N为传输码字序列Cldgc的比特数,ceil表示向上取整运算。
6.如权利要求5所述的装置,其特征在于,
所述高斯消元单元采用高斯消元法求解所述It;并且在高斯消元过程中,对于Ge中用所述处理字的一个比特存储的各行的矩阵元素,使用Ge中两行对应的处理字的比特异或运算实现对应行的行相加。
8.如权利要求7所述的装置,其特征在于,
设XsetL为填充所述L-K个已知比特后R的前L个码字符号中,被删除的码字符号的序号集合,该集合中的序号个数为所述XL;其中,XL为填充所述L-K个已知比特后的R的前L个码字符号中被信道擦除的比特数;
所述列置换单元将所述Ge中列序号属于XsetL的列移至Ge的最右端,对应列空出的位置由后续列序号不属于XsetL的列依次填充,得到所述Ga。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100969931A CN101272150B (zh) | 2008-05-14 | 2008-05-14 | 一种低密度生成矩阵码的译码方法及装置 |
US12/991,628 US8438448B2 (en) | 2008-05-14 | 2008-10-14 | Decoding method and device for low density generator matrix codes |
EP08874245.7A EP2276177B1 (en) | 2008-05-14 | 2008-10-14 | Decoding method and device of low density generator matrix codes |
PCT/CN2008/072684 WO2009137973A1 (zh) | 2008-05-14 | 2008-10-14 | 一种低密度生成矩阵码的译码方法及装置 |
RU2010145061/08A RU2461962C2 (ru) | 2008-05-14 | 2008-10-14 | Способ и устройство декодирования кода порождающей матрицы с низкой плотностью |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100969931A CN101272150B (zh) | 2008-05-14 | 2008-05-14 | 一种低密度生成矩阵码的译码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101272150A CN101272150A (zh) | 2008-09-24 |
CN101272150B true CN101272150B (zh) | 2010-09-29 |
Family
ID=40005887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100969931A Expired - Fee Related CN101272150B (zh) | 2008-05-14 | 2008-05-14 | 一种低密度生成矩阵码的译码方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8438448B2 (zh) |
EP (1) | EP2276177B1 (zh) |
CN (1) | CN101272150B (zh) |
RU (1) | RU2461962C2 (zh) |
WO (1) | WO2009137973A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272223B (zh) * | 2008-04-30 | 2011-04-20 | 中兴通讯股份有限公司 | 一种低密度生成矩阵码的译码方法及装置 |
CN101272150B (zh) | 2008-05-14 | 2010-09-29 | 中兴通讯股份有限公司 | 一种低密度生成矩阵码的译码方法及装置 |
CN101834613B (zh) * | 2009-03-09 | 2012-11-21 | 电信科学技术研究院 | 一种ldpc码的编码方法及编码器 |
JP5952971B2 (ja) * | 2013-08-16 | 2016-07-13 | 日本電信電話株式会社 | 通信路復号方法及び通信路復号装置 |
JP2017005285A (ja) * | 2013-11-07 | 2017-01-05 | 三菱電機株式会社 | 復号装置 |
DE102014215477B3 (de) * | 2014-08-05 | 2016-01-21 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Verfahren zum Übertragen von Daten |
RU2613845C1 (ru) * | 2016-04-01 | 2017-03-21 | федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Способ формирования ключа шифрования/дешифрования |
CN109951191B (zh) * | 2017-12-21 | 2023-04-18 | 国广融合(北京)传媒科技发展有限公司 | 非系统Raptor码的渐进式译码方法及装置 |
CN113556136B (zh) * | 2021-07-06 | 2024-05-17 | 北京航空航天大学 | 一种gn陪集码译码方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1526647B1 (en) * | 2002-07-02 | 2008-10-01 | Mitsubishi Electric Corporation | Generation of a check matrix for irregular low-density parity-check (LDPC) codes |
JP4555334B2 (ja) | 2004-04-28 | 2010-09-29 | サムスン エレクトロニクス カンパニー リミテッド | 可変ブロック長を有するブロック低密度パリティ検査符号の符号化/復号化装置及び方法 |
US7523343B2 (en) * | 2004-04-30 | 2009-04-21 | Microsoft Corporation | Real-time file system repairs |
WO2006000020A1 (en) | 2004-06-29 | 2006-01-05 | European Nickel Plc | Improved leaching of base metals |
WO2006020826A2 (en) * | 2004-08-11 | 2006-02-23 | Digital Fountain, Inc. | Method and apparatus for fast encoding of data symbols according to half-weight codes |
US7188297B2 (en) | 2004-08-12 | 2007-03-06 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
KR100913876B1 (ko) * | 2004-12-01 | 2009-08-26 | 삼성전자주식회사 | 저밀도 패리티 검사 부호의 생성 방법 및 장치 |
JP4563454B2 (ja) * | 2005-08-10 | 2010-10-13 | 三菱電機株式会社 | 検査行列生成方法、符号化方法、復号方法、通信装置、通信システム、符号化器および復号器 |
US7530002B2 (en) * | 2006-01-03 | 2009-05-05 | Broadcom Corporation | Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder |
WO2008003094A2 (en) * | 2006-06-29 | 2008-01-03 | Digital Fountain, Inc. | Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes |
US7831895B2 (en) * | 2006-07-25 | 2010-11-09 | Communications Coding Corporation | Universal error control coding system for digital communication and data storage systems |
US7958429B2 (en) * | 2007-07-02 | 2011-06-07 | Broadcom Corporation | Distributed processing LDPC (low density parity check) decoder |
CN100589327C (zh) | 2007-09-25 | 2010-02-10 | 华为技术有限公司 | 编码、解码方法及编码器、解码器 |
CN101272150B (zh) | 2008-05-14 | 2010-09-29 | 中兴通讯股份有限公司 | 一种低密度生成矩阵码的译码方法及装置 |
-
2008
- 2008-05-14 CN CN2008100969931A patent/CN101272150B/zh not_active Expired - Fee Related
- 2008-10-14 US US12/991,628 patent/US8438448B2/en active Active
- 2008-10-14 EP EP08874245.7A patent/EP2276177B1/en not_active Not-in-force
- 2008-10-14 WO PCT/CN2008/072684 patent/WO2009137973A1/zh active Application Filing
- 2008-10-14 RU RU2010145061/08A patent/RU2461962C2/ru not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2009137973A1 (zh) | 2009-11-19 |
CN101272150A (zh) | 2008-09-24 |
RU2010145061A (ru) | 2012-05-20 |
EP2276177A4 (en) | 2014-03-05 |
US20110060960A1 (en) | 2011-03-10 |
US8438448B2 (en) | 2013-05-07 |
EP2276177B1 (en) | 2017-08-02 |
RU2461962C2 (ru) | 2012-09-20 |
EP2276177A1 (en) | 2011-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101272150B (zh) | 一种低密度生成矩阵码的译码方法及装置 | |
US7178085B2 (en) | Encoder using low density parity check codes and encoding method thereof | |
EP2176758B1 (en) | Generation of parity-check matrices | |
CN103888148B (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
Johansson et al. | Fast correlation attacks based on turbo code techniques | |
CN101405944B (zh) | 一种ldpc码的纠删译码方法及系统 | |
KR101211433B1 (ko) | 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법 | |
CN101453297A (zh) | 低密度生成矩阵码的编码方法和装置、及译码方法和装置 | |
CN109586732B (zh) | 中短码ldpc编解码系统和方法 | |
KR20070063851A (ko) | 패리티 검사 행렬, 패리티 검사 행렬 생성 방법, 인코딩방법 및 에러 정정 장치 | |
CN101465655B (zh) | 极短码长低密度奇偶校验码的编码方法 | |
US20020083391A1 (en) | Method and apparatus for encoding a product code | |
CN101577554B (zh) | 多码长多码率的低密度奇偶校验码的编码方法 | |
CN101272223B (zh) | 一种低密度生成矩阵码的译码方法及装置 | |
CN109245775B (zh) | 一种译码器及其实现译码的方法 | |
CN103959656B (zh) | 错误校正器编码和解码 | |
CN101577553B (zh) | 低密度奇偶校验码的低复杂度编码方法 | |
CN107666367B (zh) | 一种编码方法及装置 | |
CN116366074B (zh) | 基于二元扩域及提高满度比的lt码混合编解码方法及系统 | |
KR101268061B1 (ko) | 다상-누산 코드를 이용한 부호화 방법 및 복호화 방법 | |
RU2575399C1 (ru) | Способ декодирования ldpc-кодов и устройство его реализующее | |
CN1996812B (zh) | 一种3744点低密度校验编码方法及装置 | |
CN115694519A (zh) | RaptorQ码预编码矩阵构造方法和装置、存储介质和终端 | |
Sousa-da Silv et al. | Burst erasure correction using LDPC codes constructed on base matrices generated by matched groups, nested polygons and superposed circulant matrices | |
KR101221062B1 (ko) | 가변 usc 부호를 이용한 부호화 및 복호화 방법 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180427 Address after: California, USA Patentee after: Global innovation polymerization LLC Address before: 518057 Department of law, Zhongxing building, South hi tech Industrial Park, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen Patentee before: ZTE Corp. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100929 |
|
CF01 | Termination of patent right due to non-payment of annual fee |