CN105846830B - Data processing equipment - Google Patents
Data processing equipment Download PDFInfo
- Publication number
- CN105846830B CN105846830B CN201510019132.3A CN201510019132A CN105846830B CN 105846830 B CN105846830 B CN 105846830B CN 201510019132 A CN201510019132 A CN 201510019132A CN 105846830 B CN105846830 B CN 105846830B
- Authority
- CN
- China
- Prior art keywords
- data
- data processing
- matrix
- check
- storage module
- 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
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/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/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/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
- 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
-
- 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/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- 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
- 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/6561—Parallelized implementations
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供一种数据处理装置,该装置包括:m个数据处理模块,用于按照计算顺序在第i个周期处理Ni个数据或者操作;其中且m<n,m、n和Ni均为正整数,通过m个数据处理模块在时间上的复用,从而达到对n个数据或者操作的处理,进而降低了对硬件资源的消耗。
The present invention provides a data processing device, which comprises: m data processing modules for processing N i data or operations in the ith cycle according to the calculation sequence; wherein And m<n, m, n and N i are all positive integers, Through the multiplexing of m data processing modules in time, the processing of n data or operations is achieved, thereby reducing the consumption of hardware resources.
Description
技术领域technical field
本发明涉及信息论及编码技术领域,尤其涉及一种数据处理装置。The present invention relates to the technical field of information theory and coding, and in particular, to a data processing device.
背景技术Background technique
伴随着通信技术的飞速发展以及各种传输方式对信息可靠性要求的不断提高,差错控制编码技术作为抗干扰技术的一种重要手段,在数字通信领域和数字传输系统中显示出越来越重要的作用。With the rapid development of communication technology and the continuous improvement of information reliability requirements of various transmission methods, error control coding technology, as an important means of anti-interference technology, has shown more and more importance in the field of digital communication and digital transmission systems. effect.
低密度奇偶校验(low-density parity check,LDPC)码是一类译码性能接近信道极限的线性分组码。由于其优异的纠错性能,二进制LDPC码已经被广泛地应用于各种通信、导航和数字存储系统。多进制LDPC码也已成为未来这些系统中纠错编码方案的有利竞争者。Low-density parity check (LDPC) codes are a class of linear block codes whose decoding performance is close to the channel limit. Due to its excellent error correction performance, binary LDPC codes have been widely used in various communication, navigation and digital storage systems. Multi-ary LDPC codes have also become a good contender for error correction coding schemes in these systems in the future.
但是,目前现有技术中实现LDPC码的编码器或者译码器大多数采用的是全并行结构,以全并行结构的编码器为例,假设待编码数据为c=(c0,c1...ck-1),生成矩阵为Gk×n,它们的乘积结果则为最终编码序列,因此,所谓全并行结构编码器指的是:该编码器具有n个数据处理模块,每个数据处理模块用来计算c=(c0,c1...ck-1)与Gk×n中的一列的乘积,然而这种全并行结构造成大量硬件资源的消耗。However, most of the encoders or decoders that implement LDPC codes in the prior art adopt a fully parallel structure. Taking an encoder with a fully parallel structure as an example, it is assumed that the data to be encoded is c=(c 0 , c 1 . ...... _ The data processing module is used to calculate the product of c=(c 0 , c 1 . . . ck-1 ) and a column in G k×n , however, this fully parallel structure consumes a lot of hardware resources.
发明内容SUMMARY OF THE INVENTION
本发明实施例提供一种数据处理装置,从而达到降低硬件资源消耗的目的。Embodiments of the present invention provide a data processing apparatus, so as to achieve the purpose of reducing hardware resource consumption.
第一方面,本发明实施例提供一种数据处理装置,包括:m个数据处理模块,用于按照计算顺序在第i个周期处理Ni个数据或者操作;其中且m<n,m、n和Ni均为正整数, In a first aspect, an embodiment of the present invention provides a data processing apparatus, including: m data processing modules, configured to process N i data or operations in the ith cycle according to the calculation sequence; wherein And m<n, m, n and Ni are all positive integers,
结合第一方面,在第一方面的第一种可能实施方式中,所述m个数据处理模块,具体用于:在低密度奇偶校验LDPC编码过程中,分别计算待编码数据c=(c0,c1...ck-1)与生成矩阵Gk×n中每一列相乘,其中k表示所述待编码数据的长度,n表示所述生成矩阵Gk×n的列数;在第i个周期计算c=(c0,c1...ck-1)与生成矩阵Gk×n中的Ni个列相乘,其中在前个周期,所述Ni=m,在第个周期,所述Ni=nmodm, With reference to the first aspect, in a first possible implementation manner of the first aspect, the m data processing modules are specifically configured to: in the low density parity check LDPC encoding process, respectively calculate the data to be encoded c=(c 0 , c 1 . . . c k-1 ) is multiplied by each column in the generator matrix G k×n , where k represents the length of the data to be encoded, and n represents the number of columns of the generator matrix G k×n ; Calculate c=(c 0 , c 1 . . . c k-1 ) in the ith cycle and multiply by Ni columns in the generator matrix G k×n , where the preceding cycles, the N i =m, in the cycles, the N i =nmodm,
结合第一方面,在第一方面的第二种可能实施方式中,所述数据处理模块包括:第一存储单元和第二存储单元;所述数据处理模块用于将所述生成矩阵Gk×n的每一列分为P个第一数据块,其中p≥2;所述第一存储单元用于存储一个所述第一数据块;所述第二存储单元用于存储所述第一数据块对应的所述待编码数据的第二数据块;所述m个数据处理模块,具体用于:在低密度奇偶校验LDPC编码过程中,根据分块结果,在第i个周期计算Ni个第二数据块与对应的Ni个第一数据块相乘,其中在前个周期,所述Ni=m,在第个周期至第个周期,所述Ni=nmodm, With reference to the first aspect, in a second possible implementation manner of the first aspect, the data processing module includes: a first storage unit and a second storage unit; the data processing module is configured to convert the generator matrix G k× Each column of n is divided into P first data blocks, where p≥2; the first storage unit is used to store one of the first data blocks; the second storage unit is used to store the first data block The corresponding second data block of the data to be encoded; the m data processing modules are specifically used for: in the low-density parity check LDPC encoding process, according to the block result, in the i-th cycle to calculate N i The second data block is multiplied by the corresponding N i first data blocks, where the preceding cycles, the N i =m, in the cycle to cycles, the N i =nmodm,
结合第一方面或第一方面的第一种可能实施方式或第二种可能实施方式,在第一方面的第三种可能实施方式中,还包括:第一存储模块,用于存储所述生成矩阵。With reference to the first aspect or the first possible implementation manner or the second possible implementation manner of the first aspect, in a third possible implementation manner of the first aspect, the method further includes: a first storage module, configured to store the generated matrix.
结合第一方面的第三种可能实施方式,在第一方面的第四种可能实施方式中,所述第一存储模块具体用于:若所述生成矩阵为稀疏矩阵,则所述第一存储模块仅存储所述生成矩阵的非零元素和所述非零元素对应的位置坐标;若所述生成矩阵的子矩阵为循环矩阵,则所述第一存储模块仅存储所述循环矩阵中所有的非零元素、以及其中一列非零元素对应的位置坐标和相邻两列的循环偏移量。With reference to the third possible implementation manner of the first aspect, in a fourth possible implementation manner of the first aspect, the first storage module is specifically configured to: if the generator matrix is a sparse matrix, the first storage module The module only stores the non-zero elements of the generator matrix and the position coordinates corresponding to the non-zero elements; if the sub-matrix of the generator matrix is a circulant matrix, the first storage module only stores all the Non-zero elements, the position coordinates corresponding to one of the non-zero elements in one column, and the cyclic offset of the two adjacent columns.
结合第一方面,在第一方面的第五种可能实施方式中,还包括:第二存储模块,所述第二存储模块用于存储校验矩阵Hl×n;所述校验矩阵的列对应变量节点,所述校验矩阵的行对应校验节点。With reference to the first aspect, in a fifth possible implementation manner of the first aspect, the method further includes: a second storage module, where the second storage module is configured to store a check matrix H l×n ; a column of the check matrix Corresponding to variable nodes, the rows of the check matrix correspond to check nodes.
第二方面,本发明实施例提供一种数据处理装置,包括:第二存储模块,用于存储校验矩阵Hl×n,所述校验矩阵的列对应变量节点,所述校验矩阵的行对应校验节点。第三存储模块,用于存储数据处理过程中所述变量节点和所述校验节点之间传递的数据。e个第一数据处理模块,用于处理e个所述校验节点上的数据;f个第二数据处理模块,用于处理f个所述变量节点上的数据;其中,e<l,f<n,其中e和f均为正整数。In a second aspect, an embodiment of the present invention provides a data processing apparatus, including: a second storage module, configured to store a check matrix H l×n , where the columns of the check matrix correspond to variable nodes, and the columns of the check matrix correspond to variable nodes. Rows correspond to check nodes. The third storage module is used to store the data transferred between the variable node and the check node in the process of data processing. e first data processing modules for processing data on e check nodes; f second data processing modules for processing data on f variable nodes; where e<1, f <n, where e and f are both positive integers.
结合第二方面,在第二方面的第一种可能实施方式中,若所述校验矩阵为循环排列矩阵和零矩阵组成,则所述第三存储模块,根据所述循环排列矩阵的结构循环自增寻址。With reference to the second aspect, in a first possible implementation manner of the second aspect, if the parity check matrix is composed of a cyclic arrangement matrix and a zero matrix, then the third storage module performs a cyclic arrangement according to the structure of the cyclic arrangement matrix. Self-incrementing addressing.
本发明实施例提供一种数据处理装置,该装置包括:m个数据处理模块,用于按照计算顺序在第i个周期处理Ni个数据或者操作;其中且m<n,m、n和Ni均为正整数,通过m个数据处理模块在时间上的复用,从而达到对n个数据或者操作的处理,从而降低了对硬件资源的消耗。An embodiment of the present invention provides a data processing apparatus, the apparatus includes: m data processing modules, configured to process N i data or operations in the i-th cycle according to the calculation sequence; wherein And m<n, m, n and Ni are all positive integers, Through the multiplexing of m data processing modules in time, the processing of n data or operations is achieved, thereby reducing the consumption of hardware resources.
附图说明Description of drawings
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。In order to illustrate the embodiments of the present invention or the technical solutions in the prior art more clearly, the following will briefly introduce the accompanying drawings used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description These are some embodiments of the present invention, and for those of ordinary skill in the art, other drawings can also be obtained from these drawings without any creative effort.
图1为现有技术提供的一种全并行结构的编码器的示意图;1 is a schematic diagram of an encoder with a fully parallel structure provided by the prior art;
图2为本发明实施例一提供的一种数据处理装置的示意图;FIG. 2 is a schematic diagram of a data processing apparatus according to Embodiment 1 of the present invention;
图3为本发明实施例二提供的一种数据处理装置的示意图;3 is a schematic diagram of a data processing apparatus according to Embodiment 2 of the present invention;
图4为本发明实施例三提供的数据处理装置的示意图;4 is a schematic diagram of a data processing apparatus according to Embodiment 3 of the present invention;
图5为本发明实施例五提供的一种数据处理装置的结构示意图;5 is a schematic structural diagram of a data processing apparatus according to Embodiment 5 of the present invention;
图6为本发明实施例六提供的一种数据处理装置的结构示意图;6 is a schematic structural diagram of a data processing apparatus according to Embodiment 6 of the present invention;
图7为本发明实施例六提供的Tanner示意图;7 is a schematic diagram of a Tanner provided in Embodiment 6 of the present invention;
图8为本发明实施例六提供的SPC码和REP码的译码模型。FIG. 8 is a decoding model of an SPC code and a REP code according to Embodiment 6 of the present invention.
具体实施方式Detailed ways
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。In order to make the purposes, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments These are some embodiments of the present invention, but not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.
在LDPC编码过程中,假设待编码数据为c=(c0,c1...ck-1),生成矩阵为Gk×n,它们的乘积结果则为最终编码序列,因此编码器需要计算c=(c0,c1...ck-1)与Gk×n每一列的乘积,图1为现有技术提供的一种全并行结构的编码器的示意图,如图1所示,该编码器包括n个数据处理模块,每个数据处理模块用来计算c=(c0,c1...ck-1)与Gk×n中的一列的乘积,即每一个数据处理模块输出一个最终编码序列的一个码字,因此在一个运算周期内n个数据处理模块将输出全部码字。这中全并行结构的编码器会造成硬件资源的浪费,为了解决这一技术问题,本发明提供了一种数据处理装置。In the LDPC encoding process, it is assumed that the data to be encoded is c=(c 0 , c 1 . . . c k-1 ), the generator matrix is G k×n , and the product of them is the final encoded sequence, so the encoder needs to Calculate the product of c=(c 0 , c 1 . . . c k-1 ) and each column of G k×n . FIG. 1 is a schematic diagram of an encoder with a fully parallel structure provided in the prior art, as shown in FIG. 1 . As shown, the encoder includes n data processing modules, each data processing module is used to calculate the product of c=(c 0 , c 1 . . . c k-1 ) and a column in G k×n , that is, each The data processing module outputs one codeword of a final coding sequence, so the n data processing modules will output all the codewords in one operation cycle. The encoder with full parallel structure will cause waste of hardware resources. In order to solve this technical problem, the present invention provides a data processing device.
实施例一Example 1
图2为本发明实施例一提供的一种数据处理装置的示意图,该数据处理装置可以应用于LDPC编码或者译码的场景,其中该装置可以为LDPC编码器,或者LDPC译码器,如图2所示,该数据处理装置包括:m个数据处理模块201,用于按照计算顺序在第i个周期处理Ni个数据或者操作;其中且m<n,m、n和Ni均为正整数, FIG. 2 is a schematic diagram of a data processing apparatus according to Embodiment 1 of the present invention. The data processing apparatus can be applied to a scenario of LDPC encoding or decoding, where the apparatus can be an LDPC encoder or an LDPC decoder, as shown in FIG. 2, the data processing apparatus includes: m data processing modules 201 for processing N i data or operations in the ith cycle according to the calculation sequence; wherein And m<n, m, n and N i are all positive integers,
具体地,比如:由于计算c=(c0,c1...ck-1)与Gk×n相乘的计算顺序为:c=(c0,c1...ck-1)分别与Gk×n的第一列至第n列相乘,本实施例中的数据处理装置具有m个数据处理模块201,并且m<n,因此,在第一个周期,可以分别计算c=(c0,c1...ck-1)与Gk×n的第一列至第m列相乘,输出m个码字,该例子中,第一个周期中的Ni即为m,在第二个周期,可以分别计算c=(c0,c1...ck-1)与Gk×n的第m+1列至第2m列,为了充分利用已有的硬件资源,在每一个周期尽可能的使每一个数据处理模块201处理一个数据或者操作。进一步地,在第i个周期处理Ni个数据或者操作,这里的Ni个操作可以理解为Ni个相乘操作,这里的Ni个数据可以理解为Ni个具体数字,也可以是Ni个向量,矩阵等。本发明实施例对此不做限制。Specifically, for example, since the calculation sequence of multiplying c=(c 0 , c 1 . . . c k -1 ) and G k×n is: c=(c 0 , c 1 . ) are respectively multiplied by the first to nth columns of G k×n . The data processing apparatus in this embodiment has m data processing modules 201, and m<n. Therefore, in the first cycle, it can be calculated separately c=(c 0 , c 1 . . . c k-1 ) is multiplied by the first column to the m-th column of G k×n to output m codewords, in this example, Ni in the first cycle is m. In the second cycle, c=(c 0 , c 1 ... c k-1 ) and the m+1th to 2mth columns of G k×n can be calculated respectively. In order to make full use of the existing the hardware resources, and make each data processing module 201 process one data or operation as much as possible in each cycle. Further, in the ith cycle, Ni data or operations are processed, and the Ni operations here can be understood as Ni multiplication operations, and the Ni data here can be understood as Ni specific numbers, or it can be N i vectors, matrices, etc. This embodiment of the present invention does not limit this.
进一步地,该数据处理装置还包括用于存储长度为k的待编码数据c=(c0,c1...ck-1)的存储模块,和用于存储长度为k的生成矩阵Gk×n的每一列的存储模块。由于每一列都是按照先后顺序与c=(c0,c1...ck-1)相乘,因此用于存储每一列的存储模块可以实现复用的效果。Further, the data processing device further includes a storage module for storing the data to be encoded c=(c 0 , c 1 . . . c k-1 ) of length k, and a generator matrix G for storing length k Memory modules for each column of k×n . Since each column is multiplied by c=(c 0 , c 1 . . . ck-1 ) in sequence, the memory module for storing each column can achieve the effect of multiplexing.
更进一步地,该数据处理装置还包括乘法器和加法器,使用k个乘法器用来完成待编码数据c=(c0,c1...ck-1)的各个元素与生成矩阵的对应元素乘法运算,使用k-1个加法器用来计算上述乘积之和,通过乘法器和加法器的作用则可以生成一个码字。Furthermore, the data processing device also includes a multiplier and an adder, and k multipliers are used to complete the correspondence between each element of the data to be encoded c=(c 0 ,c 1 . . .c k-1 ) and the generator matrix For element-wise multiplication, k-1 adders are used to calculate the sum of the above products, and a codeword can be generated by the action of the multiplier and the adder.
本发明实施例提供了一种数据处理装置,其中该装置包括:m个数据处理模块,用于按照计算顺序在第i个周期处理Ni个数据或者操作;其中且m<n,m、n和Ni均为正整数,通过m个数据处理模块在时间上的复用,从而达到对n个数据或者操作的处理,从而降低了对硬件资源的消耗。An embodiment of the present invention provides a data processing apparatus, wherein the apparatus includes: m data processing modules, configured to process N i data or operations in the ith cycle according to the calculation sequence; wherein And m<n, m, n and N i are all positive integers, Through the multiplexing of m data processing modules in time, the processing of n data or operations is achieved, thereby reducing the consumption of hardware resources.
实施例二Embodiment 2
图3为本发明实施例二提供的一种数据处理装置的示意图,该装置具体可以为LDPC编码器,其中该编码器包括m个数据处理模块,所述m个数据处理模块具体用于:在低密度奇偶校验LDPC编码过程中,分别计算待编码数据c=(c0,c1...ck-1)与生成矩阵Gk×n中每一列相乘,其中k表示所述待编码数据的长度;n表示所述生成矩阵Gk×n的列数,在第i个周期计算c=(c0,c1...ck-1)与生成矩阵Gk×n中的Ni个列相乘,其中在前个周期,所述Ni=m,在第个周期,所述Ni=nmodm, 3 is a schematic diagram of a data processing apparatus provided in Embodiment 2 of the present invention. The apparatus may specifically be an LDPC encoder, wherein the encoder includes m data processing modules, and the m data processing modules are specifically used for: In the low-density parity check LDPC encoding process, the data to be encoded c = (c 0 , c 1 . The length of the encoded data; n represents the number of columns of the generator matrix G k×n , and c=(c 0 , c 1 . . . c k-1 ) and the generator matrix G k×n are calculated in the i-th cycle Multiply N i columns, where the first cycles, the N i =m, in the cycles, the N i =nmodm,
由于该数据处理装置包括m个数据处理模块,因此可以称该数据处理装置的并行度为m。Since the data processing apparatus includes m data processing modules, the parallelism of the data processing apparatus can be called m.
举个例子,假设m=3,k=3,n=5,则在低密度奇偶校验LDPC编码过程中,在第1个周期3个数据处理模块分别计算c=(c0,c1,c2)与生成矩阵G3×5中的第1列、第2列和第3列相乘,在第2个周期,其中2个数据处理模块分别计算c=(c0,c1,c2)与生成矩阵G3×5中的第4列和第5列相乘。For example, assuming m=3, k=3, n=5, then in the low density parity check LDPC encoding process, the three data processing modules in the first cycle calculate c=(c 0 , c 1 , c 2 ) is multiplied with the 1st, 2nd and 3rd columns in the generator matrix G 3×5 , and in the second cycle, the two data processing modules calculate c=(c 0 ,c 1 ,c respectively 2 ) Multiply with the 4th and 5th columns in the generator matrix G 3×5 .
进一步地,该数据处理装置还包括用于存储长度为k的待编码数据c=(c0,c1...ck-1)的存储模块,和用于存储长度为k的生成矩阵Gk×n的每一列的存储模块。由于每一列都是按照先后顺序与c=(c0,c1...ck-1)相乘,因此用于存储每一列的存储模块可以实现复用的效果。Further, the data processing device further includes a storage module for storing the data to be encoded c=(c 0 , c 1 . . . c k-1 ) of length k, and a generator matrix G for storing length k Memory modules for each column of k×n . Since each column is multiplied by c=(c 0 , c 1 . . . ck-1 ) in sequence, the memory module for storing each column can achieve the effect of multiplexing.
更进一步地,该数据处理装置还包括乘法器和加法器,使用k个乘法器用来完成待编码数据c=(c0,c1...ck-1)的各个元素与生成矩阵的对应元素乘法运算,使用k-1个加法器用来计算上述乘积之和,通过乘法器和加法器的作用则可以生成一个码字。Furthermore, the data processing device also includes a multiplier and an adder, and k multipliers are used to complete the correspondence between each element of the data to be encoded c=(c 0 ,c 1 . . .c k-1 ) and the generator matrix For element-wise multiplication, k-1 adders are used to calculate the sum of the above products, and a codeword can be generated by the action of the multiplier and the adder.
本发明实施例提供了一种数据处理装置,该装置包括m个数据处理模块,所述m个数据处理模块具体用于:在低密度奇偶校验LDPC编码过程中,分别计算待编码数据c=(c0,c1...ck-1)与生成矩阵Gk×n中每一列相乘,其中k表示所述待编码数据的长度,n表示所述生成矩阵Gk×n的列数,在第i个周期计算c=(c0,c1...ck-1)与生成矩阵Gk×n中的Ni个列相乘,其中在前个周期,所述Ni=m,在第个周期,所述Ni=nmodm,从而实现了数据处理模块在时间上的复用,进而,降低了对硬件资源的消耗。An embodiment of the present invention provides a data processing device, the device includes m data processing modules, and the m data processing modules are specifically used for: in a low density parity check LDPC encoding process, respectively calculate the data to be encoded c= (c 0 , c 1 . . . c k-1 ) are multiplied by each column in the generator matrix G k×n , where k represents the length of the data to be encoded, and n represents the column of the generator matrix G k×n number, calculated at the ith cycle c=(c 0 , c 1 . . . c k-1 ) and multiplied by N i columns in the generator matrix G k×n , where the preceding cycles, the N i =m, in the cycles, the N i =nmodm, Thus, the time multiplexing of the data processing modules is realized, and further, the consumption of hardware resources is reduced.
实施例三Embodiment 3
图4为本发明实施例三提供的数据处理装置的示意图,实施例三在实施例二的基础上,将对生成矩阵Gk×n中每一列进行分块,基于分块的思想,实施例三提供的数据处理装置中的数据处理模块包括:第一存储单元401和第二存储单元402;其中,数据处理模块用于将所述生成矩阵Gk×n的每一列分为P个第一数据块;其中p≥2。如图4所示,第一存储单元401用于存储一个第一数据块;第二存储单元402用于存储第一数据块对应的所述待编码数据的第二数据块;图4所示的第一存储单元401此时存储长度为d的第一数据块,第二存储单元402此时存储长度为d的第二数据块,当然,该数据处理模块还包括乘法器、加法器和累加器,m个数据处理模块具体用于:在低密度奇偶校验LDPC编码过程中,根据分块结果,在第i个周期计算Ni个第二数据块与对应的Ni个第一数据块相乘,其中在前个周期,所述Ni=m,在第个周期至第个周期,所述Ni=nmodm, FIG. 4 is a schematic diagram of a data processing apparatus according to Embodiment 3 of the present invention. On the basis of Embodiment 2, Embodiment 3 divides each column in the generator matrix G k×n into blocks. Based on the idea of dividing, the embodiment The data processing module in the provided data processing device includes: a first storage unit 401 and a second storage unit 402; wherein, the data processing module is configured to divide each column of the generator matrix G k×n into P first storage units data block; where p ≥ 2. As shown in FIG. 4 , the first storage unit 401 is used to store a first data block; the second storage unit 402 is used to store the second data block of the to-be-encoded data corresponding to the first data block; The first storage unit 401 stores a first data block with a length of d at this time, and the second storage unit 402 stores a second data block with a length of d at this time. Of course, the data processing module also includes a multiplier, an adder and an accumulator. , the m data processing modules are specifically used for: in the low density parity check LDPC encoding process, according to the block result, in the ith cycle, calculate the difference between the N i second data blocks and the corresponding N i first data blocks. multiplied by which precedes cycles, the N i =m, in the cycle to cycles, the N i =nmodm,
具体地,第一存储单元401相对于每一个第一数据块都可以实现复用,第二存储单元402相对于第二数据块也可以实现复用,即不需要开辟多余的存储空间,所有的第一数据块按照时间顺序使用一个第一存储单元401即可,所有的第二数据块按照时间顺序使用一个第二存储单元402即可。Specifically, the first storage unit 401 can be multiplexed with respect to each first data block, and the second storage unit 402 can also be multiplexed with respect to the second data block, that is, there is no need to open up redundant storage space, all the One first storage unit 401 may be used for the first data block in chronological order, and only one second storage unit 402 may be used for all second data blocks in chronological order.
举个例子:假设m=3,k=3,n=5,P=2,即生成矩阵G3×5每一列被分成了2个第一数据块,针对每一列,从上至下的顺序,第一个元素构成一个第一数据块,第二个元素和第三个元素构成一个第一数据块,因此,生成矩阵G3×5实际包括了10个第一数据块,相应地,待编码数据c=(c0,c1,c2)也被分为2个第二数据块,从左至右,第一个元素c0构成一个第二数据块,第二个元素c1和第三个元素c2构成一个第二数据块,则在低密度奇偶校验LDPC编码过程中,按照计算顺序,即在第1个周期3个数据处理模块分别计算c=(c0,c1,c2)的第一个元素构成的第二数据块与生成矩阵G3×5中由第一列第一个元素构成的第一数据块的乘积,c=(c0,c1,c2)的第一个元素构成的第二数据块与生成矩阵G3×5中由第二列第一个元素构成的第一数据块的乘积,c=(c0,c1,c2)的第一个元素构成的第二数据块与生成矩阵G3×5中由第三列第一个元素构成的第一数据块的乘积;在第2个周期3个数据处理模块分别计算c=(c0,c1,c2)的第二个元素和第三个元素构成的第二数据块与生成矩阵G3×5中由第一列第二个元素和第三个元素构成的第一数据块的乘积,c=(c0,c1,c2)的第二个元素和第三个元素构成的第二数据块与生成矩阵G3×5中由第二列第二个元素和第三个元素构成的第一数据块的乘积,c=(c0,c1,c2)的第二个元素和第三个元素构成的第二数据块与生成矩阵G3×5中由第三列第二个元素和第三个元素构成的第一数据块的乘积,并将计算结果分别与第1个周期中的计算结果累加,依次类推。从而实现数据处理模块的复用。For example: suppose m=3, k=3, n=5, P=2, that is, each column of the generator matrix G 3×5 is divided into 2 first data blocks, for each column, the order from top to bottom , the first element constitutes a first data block, and the second element and the third element constitute a first data block. Therefore, the generator matrix G 3×5 actually includes 10 first data blocks. The encoded data c=(c 0 , c 1 , c 2 ) is also divided into 2 second data blocks, from left to right, the first element c 0 constitutes a second data block, the second elements c 1 and The third element c 2 constitutes a second data block, then in the low density parity check LDPC encoding process, according to the calculation sequence, that is, in the first cycle, the three data processing modules respectively calculate c=(c 0 , c 1 , c 2 ) is the product of the second data block formed by the first element and the first data block formed by the first element of the first column in the generator matrix G 3×5 , c=(c 0 ,c 1 ,c The product of the second data block formed by the first element of 2 ) and the first data block formed by the first element of the second column in the generator matrix G 3×5 , c=(c 0 , c 1 , c 2 ) The product of the second data block formed by the first element and the first data block formed by the first element of the third column in the generator matrix G 3×5 ; in the second cycle, the three data processing modules calculate c= The second data block composed of the second element and the third element of (c 0 , c 1 , c 2 ) and the second data block composed of the second element and the third element of the first column in the generator matrix G 3×5 The product of a data block, the second data block formed by the second element and the third element of c=(c 0 , c 1 , c 2 ) and the second element of the second column in the generator matrix G 3×5 The product of the first data block formed by the third element, the second data block formed by the second element and the third element of c=(c 0 , c 1 , c 2 ) and the generator matrix G 3×5 The product of the first data block consisting of the second element and the third element of the third column, and the calculation results are respectively accumulated with the calculation results in the first cycle, and so on. Thereby realizing the multiplexing of data processing modules.
本发明实施例提供一种数据处理装置,其中该装置的数据处理模块包括:第一存储单元和第二存储单元;数据处理模块用于将所述生成矩阵Gk×n的每一列分为P个第一数据块;第一存储单元用于存储一个第一数据块;第二存储单元用于存储第一数据块对应的所述待编码数据的第二数据块;m个数据处理模块,具体用于:在低密度奇偶校验LDPC编码过程中,根据分块结果,在第i个周期计算Ni个第二数据块与对应的Ni个第一数据块相乘,其中在前个周期,所述Ni=m,在第个周期至第个周期,所述Ni=nmodm,从而提高数据处理模块、以及该模块中的第一存储单元和第二存储单元的利用效率,降低了每个数据处理模块上的计算复杂度。An embodiment of the present invention provides a data processing device, wherein a data processing module of the device includes: a first storage unit and a second storage unit; the data processing module is configured to divide each column of the generator matrix G k×n into P the first data block; the first storage unit is used to store a first data block; the second storage unit is used to store the second data block of the data to be encoded corresponding to the first data block; m data processing modules, specifically Used for: in the low density parity check LDPC encoding process, according to the block result, in the i-th cycle, calculate the multiplication of Ni second data blocks and the corresponding Ni first data blocks, where the preceding cycles, the N i =m, in the cycle to cycles, the N i =nmodm, Thus, the utilization efficiency of the data processing module and the first storage unit and the second storage unit in the module is improved, and the computational complexity of each data processing module is reduced.
实施例四Embodiment 4
本发明实施例四提供一种数据处理装置,其中该装置基于校验矩阵获取最终编码序列的思想实现存储空间的复用的,具体地,通过校验矩阵获取最终编码序列的具体方法为:假设待编码数据为M=(m0,m1...mk-1),校验矩阵为Hl×n,校验符号为p1,p2……pn-k,则假设校验矩阵由Hl×n=(QI),其中Q为(n-k)×k的矩阵,对应M,I为(n-k)×(n-k)的矩阵,对应已编码数据的冗余位,当I为准双对角矩阵,即该I除对角线上的元素,以及对角线上方或上方元素之外的元素均为0时,该矩阵就为准双对角矩阵。基于可以得到第一个冗余位p1可以直接由待编码数据中的元素计算得到,第二个冗余位p2可以由第一个冗余位p1和待编码数据中的元素共同计算得到,依次类推,pn-k可以由pn-k-1和待编码数据中的元素共同计算得到。因此,可以首先从存储(M,p1,p2......pn-k)的存储模块中读出校验矩阵中第一行第一个非零元素对应的(M,p1,p2......pn-k)中的信息位,从存储校验矩阵的存储模块中读出该非零元素,然后将它们相乘,存入累加器中,接着从存储(M,p1,p2......pn-k)的存储模块中读出校验矩阵中第一行第二个非零元素对应的(M,p1,p2......pn-k)中的信息位,从存储校验矩阵的存储模块中读出该非零元素,然后将它们相乘,结果与累加器中的结果相加。依次类推,直到计算出第一个校验位,将累加器中的结果存入存储(M,p1,p2......pn-k)的存储模块中。最后,清空累加器,重复上述步骤,直到所有冗余位计算完毕。上述过程根据计算时间的先后顺序实现了存储空间的复用。The fourth embodiment of the present invention provides a data processing device, wherein the device realizes the multiplexing of storage space based on the idea of obtaining the final coded sequence through the check matrix. Specifically, the specific method for obtaining the final coded sequence through the check matrix is as follows: suppose The data to be encoded is M=(m 0 , m 1 ...... m k-1 ), the check matrix is H l×n , and the check symbols are p 1 , p 2 ...... p nk , then Assuming that the check matrix is H l×n =(QI), where Q is the matrix of (nk)×k, corresponding to M, and I is the matrix of (nk)×(nk), corresponding to the redundant bits of the encoded data, when I is a quasi-bidiagonal matrix, that is, when the elements of I except the elements on the diagonal and the elements above or above the diagonal are all 0, the matrix is a quasi-bidiagonal matrix. based on It can be obtained that the first redundant bit p 1 can be directly calculated from the elements in the data to be encoded, and the second redundant bit p 2 can be calculated from the first redundant bit p 1 and the elements in the data to be encoded. , and so on, p nk can be jointly calculated by p nk-1 and the elements in the data to be encoded. Therefore , the ( M, p 1 , p 2 ......p nk ), read the non-zero elements from the storage module that stores the parity check matrix, multiply them, store them in the accumulator, and then store (M, (M,p 1 ,p 2 ......p corresponding to the second non-zero element in the first row of the parity check matrix) is read from the memory module of p 1 ,p 2 ......p nk ) nk ), read out the non-zero elements from the storage module storing the parity check matrix, then multiply them, and add the result to the result in the accumulator. And so on, until the first check digit is calculated, and the result in the accumulator is stored in the storage module storing (M, p 1 , p 2 ......p nk ). Finally, clear the accumulator and repeat the above steps until all redundant bits are calculated. The above process realizes the multiplexing of storage space according to the sequence of computing time.
实施例五Embodiment 5
图5为本发明实施例五提供的一种数据处理装置的结构示意图,在实施例一、实施例二和实施例三的基础之上,该数据处理装置除了包括m个数据处理模块501之外,还包括第一存储模块502,该第一存储模块502用于存储生成矩阵。FIG. 5 is a schematic structural diagram of a data processing apparatus according to Embodiment 5 of the present invention. On the basis of Embodiment 1, Embodiment 2 and Embodiment 3, the data processing apparatus includes m data processing modules 501 except for , and also includes a first storage module 502, where the first storage module 502 is used to store the generator matrix.
具体地,第一存储模块502具体用于:Specifically, the first storage module 502 is specifically used for:
(1)若生成矩阵为稀疏矩阵,则第一存储模块502仅存储生成矩阵的非零元素和非零元素对应的位置坐标。(1) If the generator matrix is a sparse matrix, the first storage module 502 only stores the non-zero elements of the generator matrix and the position coordinates corresponding to the non-zero elements.
具体地,矩阵中非零元素的个数远远小于矩阵元素的总数,则称该矩阵为稀疏矩阵,因此,第一存储模块502仅存储生成矩阵的非零元素和非零元素对应的位置坐标。进一步地,当本发明采用的是二进制LDPC编码,则生成矩阵中的非零元素只是1,因此,第一存储模块502中可以仅存储非零元素1对应的位置坐标即可。Specifically, if the number of non-zero elements in the matrix is much smaller than the total number of matrix elements, the matrix is called a sparse matrix. Therefore, the first storage module 502 only stores the non-zero elements of the generated matrix and the position coordinates corresponding to the non-zero elements. . Further, when binary LDPC coding is adopted in the present invention, the non-zero elements in the generator matrix are only 1. Therefore, only the position coordinates corresponding to the non-zero elements 1 may be stored in the first storage module 502 .
(2)若所述生成矩阵的子矩阵为循环矩阵,则所述第一存储模块502仅存储所述循环矩阵中所有的非零元素、以及其中一列非零元素对应的位置坐标和相邻两列的循环偏移量。(2) If the submatrix of the generator matrix is a circulant matrix, the first storage module 502 only stores all non-zero elements in the circulant matrix, and the position coordinates corresponding to one column of non-zero elements and the adjacent two Cyclic offset of the column.
具体地,若所述生成矩阵的子矩阵为循环矩阵,则成该生成矩阵为准循环矩阵,比 如生成矩阵其中Gij为循环矩阵,(i=1,2...s;j=1,2...r), 基于循环矩阵具有的特点,则第一存储模块502仅存储循环矩阵中所有的非零元素、以及其 中一列非零元素对应的位置坐标和相邻两列的循环偏移量。比如:q×q的循环矩阵则第一存储模块502可以只存储q个非零元素,然后存储第一列非 零元素g0的位置,以及相邻两列的循环偏移量1,这样其他列的非零元素则可以通过第一列 非零元素的位置和循环偏移量推导得到。进一步地,当本发明采用的是二进制LDPC编码,则 生成矩阵中的非零元素只是1,因此,第一存储模块502中可以仅存储非零元素1对应的位置 和循环偏移量即可。 Specifically, if the submatrix of the generator matrix is a cyclic matrix, the generator matrix is a quasi-cyclic matrix, such as a generator matrix where G ij is a circulant matrix, (i=1,2...s; j=1,2...r). Based on the characteristics of the circulant matrix, the first storage module 502 only stores all the non-circular matrix in the circulant matrix. The zero element, the position coordinate corresponding to one of the non-zero elements in one column, and the cyclic offset of the two adjacent columns. For example: Circular matrix of q × q Then the first storage module 502 can only store q non-zero elements, and then store the position of the non-zero element g 0 in the first column, and the cyclic offset 1 of the two adjacent columns, so that the non-zero elements of other columns can be passed through The positions and cyclic offsets of the non-zero elements in the first column are derived. Further, when binary LDPC coding is adopted in the present invention, the non-zero elements in the generator matrix are only 1. Therefore, the first storage module 502 may only store the position and cyclic offset corresponding to the non-zero element 1.
本发明实施例提供一种数据处理装置,该装置还包括第一存储模块,用于存储生成矩阵。其中若生成矩阵为稀疏矩阵,则第一存储模块仅存储生成矩阵的非零元素和非零元素对应的位置坐标;若生成矩阵的子矩阵为循环矩阵,则第一存储模块仅存储所述循环矩阵中所有的非零元素、以及其中一列非零元素对应的位置坐标和相邻两列的循环偏移量,从而实现第一存储模块的复用效果。进而降低对硬件资源的消耗。An embodiment of the present invention provides a data processing apparatus, the apparatus further includes a first storage module for storing the generator matrix. Wherein, if the generator matrix is a sparse matrix, the first storage module only stores the non-zero elements of the generator matrix and the position coordinates corresponding to the non-zero elements; if the sub-matrix of the generator matrix is a cyclic matrix, the first storage module only stores the cyclic matrix All non-zero elements in the matrix, the position coordinates corresponding to one column of non-zero elements, and the cyclic offsets of two adjacent columns, thereby realizing the multiplexing effect of the first storage module. Thus, the consumption of hardware resources is reduced.
实施例六Embodiment 6
图6为本发明实施例六提供的一种数据处理装置的结构示意图,本发明实施例中的数据处理装置可以为译码器,该数据处理装置包括第二存储模块601,用于存储校验矩阵Hl×n,所述校验矩阵的列对应变量节点,所述校验矩阵的行对应校验节点。第三存储模块604,用于存储数据处理过程中变量节点和校验节点之间传递的数据。e个第一数据处理模块602,用于处理e个所述校验节点上的数据;f个第二数据处理模块603,用于处理f个所述变量节点上的数据;其中,e<l,f<n,其中e和f均为正整数。6 is a schematic structural diagram of a data processing apparatus according to Embodiment 6 of the present invention. The data processing apparatus in this embodiment of the present invention may be a decoder, and the data processing apparatus includes a second storage module 601 for storing checksums In the matrix H l×n , the columns of the check matrix correspond to variable nodes, and the rows of the check matrix correspond to check nodes. The third storage module 604 is used to store the data transferred between the variable node and the check node in the data processing process. e first data processing modules 602 are used to process the data on the e check nodes; f second data processing modules 603 are used to process the data on the f variable nodes; wherein, e<1 , f<n, where e and f are positive integers.
具体地,本发明实施例提供的数据处理装置使用的是置信传播类算法,它是基于Tanner图的迭代译码的。图7为本发明实施例六提供的Tanner示意图,其中校验矩阵的列对应变量节点,校验矩阵的行对应校验节点,表示一个校验方程,上面一行为校验节点,下面一行为变量节点,连接变量节点与校验节点之间的线对应校验矩阵中不为0的元素,称之为边。从Tanner图上来看,可以把LDPC码看作是单奇偶校验(Single Parity Check,简称SPC)码与重复(Repeat,简称REP)码的交错连接,图8为本发明实施例六提供的SPC码和REP码的译码模型,译码是一个置信信息通过边在变量节点与校验节点之间的迭代过程。首先,信道接收到的置信信息传递给变量节点,每个变量节点向与之相连的每个校验节点发送更新的置信信息,这就是SPC译码模型的工作。每个校验节点通过计算向与之相连的变量节点发送更新信息,这是REP译码模型的工作。整个译码过程从变量节点开始,不断的重复,直到所有校验方程都满足后译码完成,或者达到最大迭代次数后译码停止。Specifically, the data processing apparatus provided by the embodiment of the present invention uses a belief propagation algorithm, which is based on the iterative decoding of the Tanner graph. 7 is a schematic diagram of a Tanner provided in Embodiment 6 of the present invention, wherein the columns of the check matrix correspond to variable nodes, and the rows of the check matrix correspond to check nodes, representing a check equation, the upper row is a check node, and the lower row is a variable Node, the line connecting the variable node and the check node corresponds to the element in the check matrix that is not 0, which is called an edge. From the Tanner diagram, an LDPC code can be regarded as an interleaved connection of a Single Parity Check (Single Parity Check, SPC) code and a Repeat (Repeat, REP) code, and FIG. 8 is the SPC provided by Embodiment 6 of the present invention Code and REP code decoding model, decoding is an iterative process of belief information passing between variable nodes and check nodes through edges. First, the confidence information received by the channel is passed to the variable nodes, and each variable node sends the updated confidence information to each check node connected to it. This is the work of the SPC decoding model. Each check node sends update information to the variable node connected to it through calculation, which is the work of the REP decoding model. The whole decoding process starts from the variable node and repeats continuously until all the verification equations are satisfied and the decoding is completed, or the decoding stops when the maximum number of iterations is reached.
在译码过程中,第一数据处理模块602和第二数据处理模块603之间的传输输入输出端口并不直接连接,而是通过第三存储模块604连接,从而可以只实现e个第一数据处理模块602及f个第二数据处理模块603通过多次运算,可以分别处理完l个数据和n个数据。In the decoding process, the transmission input and output ports between the first data processing module 602 and the second data processing module 603 are not directly connected, but are connected through the third storage module 604, so that only e first data can be realized The processing module 602 and the f second data processing modules 603 can process l data and n data respectively through multiple operations.
其中e个第一数据处理模块602及f个第二数据处理模块603的具体工作步骤包括:The specific working steps of the e first data processing modules 602 and the f second data processing modules 603 include:
(1)f个第二数据处理模块603读取前f个变量节点对应的信道数据,初始化进入第三存储模块604中,并作出硬判决,然后各第二数据处理模块603分别读取下一组信道数据,直至将所有信道数据初始化入第三存储模块604中;(1) The f second data processing modules 603 read the channel data corresponding to the first f variable nodes, initialize them into the third storage module 604, and make a hard decision, and then each second data processing module 603 reads the next group channel data, until all channel data are initialized into the third storage module 604;
(2)e个第一数据处理模块602从第三存储模块604中读取第二数据处理模块603传递给前e个校验节点的数据,进行计算及验证校验方程,并将结果保存至存储器604中,然后各第一数据处理模块602分别从第三存储模块604中读取下一组第一数据处理模块602接收的数据,直至完成所有校验节点上的数据计算;(2) The e first data processing modules 602 read the data transmitted by the second data processing module 603 to the first e check nodes from the third storage module 604, perform calculations and verify the check equation, and save the results to In the memory 604, then each first data processing module 602 reads the data received by the next group of first data processing modules 602 from the third storage module 604, until the data calculation on all check nodes is completed;
(3)若所有校验方程都得到满足,则停止迭代译码,输出译码结果,否则进行第二数据处理模块603继续计算。f个第二数据处理模块603从第三存储模块604中读取第一数据处理模块602传递给前f个变量节点的数据,进行计算及作出硬判决,并将结果保存回第三存储模块604中,然后各第二数据处理模块603分别从第三存储模块604中读取下一组变量节点接收的数据,直至完成所有变量节点计算完毕;(3) If all the check equations are satisfied, stop iterative decoding, and output the decoding result, otherwise, perform the second data processing module 603 to continue the calculation. The f second data processing modules 603 read the data passed by the first data processing module 602 to the first f variable nodes from the third storage module 604 , perform calculations and make hard decisions, and save the results back to the third storage module 604 , then each second data processing module 603 reads the data received by the next group of variable nodes from the third storage module 604, until the calculation of all variable nodes is completed;
(4)如此反复,直至所有校验方程得到满足或达到最大迭代次数后停止译码。(4) Repeat this until all check equations are satisfied or the maximum number of iterations is reached, and then the decoding is stopped.
进一步地,在LDPC码的校验矩阵中,每行或每列都有不止一个非零元素,对应的第一数据处理模块602和第二数据处理模块603也就有不止一个输入/输出端口。可以将单个数据处理模块所需的g个输入分多次输入,每次输入后就开始进行计算,并将所需中间结果存储在存储器中,最终得到所需的运算结果,从而实现在时间上对硬件资源进行复用。Further, in the check matrix of the LDPC code, each row or each column has more than one non-zero element, and the corresponding first data processing module 602 and the second data processing module 603 also have more than one input/output port. The g inputs required by a single data processing module can be divided into multiple inputs, and the calculation is started after each input, and the required intermediate results are stored in the memory, and finally the required operation results are obtained, so as to realize the time Reuse hardware resources.
以第一数据处理模块602为例,在第一数据处理模块602只有三个端口时,设第一数据处理模块602的输入为D0,D1,D2,二端口运算电路可以直接根据输入的数据计算出输出数据,计算步骤如下:Taking the first data processing module 602 as an example, when the first data processing module 602 has only three ports, set the input of the first data processing module 602 to be D 0 , D 1 , D 2 , and the two-port arithmetic circuit can directly The output data is calculated from the data, and the calculation steps are as follows:
(1)读入D0,保存在一组存储器中;(1) Read in D 0 and save it in a group of memories;
(2)读入D1,保存在另一组存储器中,同时利用二端口运算电路计算将结果保存到第三组存储器中;(2) Read in D 1 , save it in another set of memory, and use the two-port arithmetic circuit to calculate save the result to the third bank of memory;
(3)读入D2,利用二端口运算电路计算将结果覆盖至原记录D0的存储器中;(3) Read in D 2 and use the two-port arithmetic circuit to calculate Overwrite the result to the memory of the original record D 0 ;
(4)再次读入D2,利用二端口运算电路计算将结果覆盖至原记录D1的存储器中。(4) Read in D 2 again, and use the two-port arithmetic circuit to calculate Overwrite the result to the memory of the original record D1.
其中,上述的既可以是二进制LDPC编码过程中的运算规则,也可以是多进制LDPC编码过程中的运算规则。此时第一数据处理模块602每次只读入一个端口的数据,整个计算过程中也只需要三组存储器保存所有中间结果及最终结果;当第一数据处理模块602有四个端口时,可以先忽视第四个端口,按照三端口,第一数据处理模块602进行计算,将结果 保存在三组存储器中,然后根据三端口,第一数据处理模块602任一端口的输入及输出计算出的结果保存在第四组存储器中,再将第四个端口的输入与前三组存储器中的数据进行运算,并将这三组存储器中的数据更新为运算的结果,则只需四组存储器,并进行七次计算即可求出具有四端口的第一数据处理模块602的全部输出,依次类推,当计算具有N端口的第一数据处理模块602的输出时,可以先忽视最后一个端口,按照N-1端口第一数据处理模块602来计算,然后计算N-1端口所有端口输入数据的和并保存到1组新的存储器中,再将最后一个端口的输入与之前N-1组存储器中的数据进行运算,并将计算结果更新到对应的存储器中,就可以只占用N组存储器,并进行(3+N)(N-2)/2次计算完成全部端口的输出数据的计算。Among them, the above It may be an operation rule in the binary LDPC encoding process, or may be an operation rule in the multi-ary LDPC encoding process. At this time, the first data processing module 602 only reads the data of one port at a time, and only three sets of memories are needed to store all intermediate results and final results in the whole calculation process; when the first data processing module 602 has four ports, it can be The fourth port is ignored first, and according to the three ports, the first data processing module 602 performs calculation, and the result is calculated by the first data processing module 602 Stored in three sets of memories, and then according to the three ports, the input and output of any port of the first data processing module 602 is calculated The result is stored in the fourth group of memory, and then the input of the fourth port is operated with the data in the first three groups of memories, and the data in these three groups of memories is updated to the result of the operation, then only four groups of memories are needed. , and perform seven calculations to obtain all the outputs of the first data processing module 602 with four ports, and so on, when calculating the output of the first data processing module 602 with N ports, the last port can be ignored first, Calculate according to the first data processing module 602 of the N-1 port, then calculate the sum of the input data of all ports of the N-1 port and save it in a new group of memory, and then compare the input of the last port with the previous N-1 group of memories The data in the operation is performed, and the calculation result is updated to the corresponding memory, so that only N groups of memory can be occupied, and (3+N)(N-2)/2 calculations are performed to complete the calculation of the output data of all ports.
可选地,若所述校验矩阵为循环排列矩阵(Circulant Permutation Matrices,简称CPM)和零矩阵组成,则所述第三存储模块604,根据循环排列矩阵的结构循环自增寻址。结合图7中所有的边对应的非零元素都在CPM中。假设H中的一个CPM表示校验节点与变量节点之间的连接,该CPM的偏移量为o,即该CPM是由p×p的单位阵的所有行向右循环移动o个位置得到。校验节点CN1就与变量节点VNo+1相连,CNp-o与VNp,CNp-o+1与VN1相连,CNp与VNo相连。我们把连接这p个连续的校验节点与p个连续的变量节点之间的边称之为块边。Optionally, if the parity check matrix is composed of Circulant Permutation Matrices (CPM for short) and a zero matrix, the third storage module 604 performs cyclic auto-increment addressing according to the structure of the cyclic permutation matrix. The non-zero elements corresponding to all the edges in Figure 7 are in the CPM. Assuming that a CPM in H represents the connection between the check node and the variable node, the offset of the CPM is o, that is, the CPM is obtained by cyclically moving all the rows of the p×p identity matrix to the right by o positions. The check node CN 1 is connected to the variable node VN o+1 , CN po is connected to VN p , CN p-o+1 is connected to VN 1 , and CN p is connected to VN o . We call the edges connecting the p consecutive check nodes and p consecutive variable nodes as block edges.
因此整个Tanner图中的变量节点与校验节点之间的信息交换都在一个一个的块边进行。当p个变量节点按照VN1,VN2,...,VNp的顺序更新时,首先将它们的更新结果分别转存到地址为A0+1,A0+2,...,A0+p的存储单元中去;然后当与该循环块相连的p个校验节点顺序更新时,就可以连续的从这p个地址连续的存储单元中顺序读取VN1,VN2,...,VNp的更新结果。只不过起始地址应该从A0+o+1开始,当地址自加到A0+p时便从A0+1重新自加到A0+o,如此就实现了对应连接的信息转移,采用块边的寻址方式,只用记录存储单元地址段的起始地址A0和o。当变量节点更新时,地址从A0+1开始到A0+p结束;当校验节点更新时,地址从A0+o+1开始,循环增加到A0+o结束。这样与传统的译码器交换信息的寻址方式相比,存储复杂度降为了原来的p/2,而且采用循环自增的地址产生方式,寻址效率也大大提高。Therefore, the information exchange between the variable node and the check node in the entire Tanner graph is carried out one by one block edge. When the p variable nodes are updated in the order of VN 1 , VN 2 ,..., VN p , firstly store their update results to addresses A 0 +1, A 0 +2,...,A respectively 0 +p storage unit; then when the p check nodes connected to the loop block are updated sequentially, VN 1 , VN 2 ,. .., the updated result of VN p . It's just that the starting address should start from A 0 +o+1. When the address is self-added to A 0 +p, it will be self-added from A 0 +1 to A 0 +o, thus realizing the information transfer of the corresponding connection. Using the addressing mode of the block edge, only the starting addresses A 0 and o of the address segment of the storage unit are recorded. When the variable node is updated, the address starts from A 0 +1 and ends at A 0 +p; when the check node is updated, the address starts from A 0 +o+1, and the loop increases to A 0 +o and ends. In this way, compared with the traditional addressing mode in which the decoder exchanges information, the storage complexity is reduced to p/2, and the addressing efficiency is greatly improved by adopting the cyclic self-incrementing address generation mode.
本发明实施例提供了一种数据处理装置,包括:第二存储模块,用于存储校验矩阵Hl×n,所述校验矩阵的列对应变量节点,所述校验矩阵的行对应校验节点。第三存储模块,用于存储数据处理过程中变量节点和校验节点之间传递的数据。e个第一数据处理模块,用于处理e个所述校验节点上的数据;f个第二数据处理模块,用于处理f个所述变量节点上的数据;其中,e<l,f<n,其中e和f均为正整数。从而实现数据处理模块、第二存储模块、第三存储模块的复用。An embodiment of the present invention provides a data processing apparatus, including: a second storage module for storing a check matrix H l×n , where the columns of the check matrix correspond to variable nodes, and the rows of the check matrix correspond to the check matrix test node. The third storage module is used to store the data transferred between the variable node and the check node in the process of data processing. e first data processing modules for processing data on e check nodes; f second data processing modules for processing data on f variable nodes; where e<1, f <n, where e and f are both positive integers. Thereby, the multiplexing of the data processing module, the second storage module and the third storage module is realized.
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。Those of ordinary skill in the art can understand that all or part of the steps of implementing the above method embodiments may be completed by program instructions related to hardware. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, the steps including the above method embodiments are executed; and the foregoing storage medium includes: ROM, RAM, magnetic disk or optical disk and other media that can store program codes.
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, but not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: The technical solutions described in the foregoing embodiments can still be modified, or some or all of the technical features thereof can be equivalently replaced; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the technical solutions of the embodiments of the present invention. scope.
Claims (6)
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510019132.3A CN105846830B (en) | 2015-01-14 | 2015-01-14 | Data processing equipment |
| PCT/CN2016/070865 WO2016112857A1 (en) | 2015-01-14 | 2016-01-14 | Ldpc code encoder and decoder |
| CN201680015662.3A CN107852176A (en) | 2015-01-14 | 2016-01-14 | LDPC code encoder and decoder |
| US15/529,620 US10536169B2 (en) | 2015-01-14 | 2016-01-14 | Encoder and decoder for LDPC code |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510019132.3A CN105846830B (en) | 2015-01-14 | 2015-01-14 | Data processing equipment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN105846830A CN105846830A (en) | 2016-08-10 |
| CN105846830B true CN105846830B (en) | 2019-07-30 |
Family
ID=56405255
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201510019132.3A Expired - Fee Related CN105846830B (en) | 2015-01-14 | 2015-01-14 | Data processing equipment |
| CN201680015662.3A Pending CN107852176A (en) | 2015-01-14 | 2016-01-14 | LDPC code encoder and decoder |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201680015662.3A Pending CN107852176A (en) | 2015-01-14 | 2016-01-14 | LDPC code encoder and decoder |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10536169B2 (en) |
| CN (2) | CN105846830B (en) |
| WO (1) | WO2016112857A1 (en) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107872231B (en) * | 2016-09-28 | 2023-04-28 | 北京忆芯科技有限公司 | LDPC decoding method and device |
| TWI684856B (en) * | 2018-04-20 | 2020-02-11 | 慧榮科技股份有限公司 | Decoding method and associated flash memory controller and electronic device |
| CN110401453B (en) * | 2018-04-24 | 2023-10-03 | 北京忆芯科技有限公司 | Low delay LDPC decoder and decoding method thereof |
| CN110147222B (en) * | 2018-09-18 | 2021-02-05 | 安徽寒武纪信息科技有限公司 | Computing device and method |
| CN111064475A (en) * | 2018-10-16 | 2020-04-24 | 华为技术有限公司 | Decoding method and device based on low density parity check code |
| CN110474647B (en) * | 2019-07-03 | 2023-05-23 | 深圳市通创通信有限公司 | Decoding method, device, decoder and storage medium for LDPC code with finite field structure |
| CN110518919B (en) * | 2019-08-01 | 2023-01-06 | 湖南国科锐承电子科技有限公司 | Layered decoding method and system for low-density parity check code |
| CN112583420B (en) * | 2019-09-30 | 2024-01-09 | 上海华为技术有限公司 | A data processing method and decoder |
| CN110768679B (en) * | 2019-10-30 | 2023-08-22 | 湖南国科微电子股份有限公司 | Code word checking method and system of 64-system LDPC |
| CN111211791A (en) * | 2020-02-27 | 2020-05-29 | 深圳市航天华拓科技有限公司 | LDPC encoding and decoding method and system |
| CN112152637B (en) * | 2020-09-10 | 2024-04-30 | 南京中科晶上通信技术有限公司 | DVB-S2 LDPC decoding variable node updating module and implementation method thereof |
| CN112242851B (en) * | 2020-11-23 | 2024-03-19 | 湖南国科锐承电子科技有限公司 | An iterative data processing method and decoder system in hierarchical decoding of LDPC codes |
| CN113411087B (en) * | 2021-06-30 | 2023-05-09 | 展讯半导体(成都)有限公司 | Method and circuit for decoding q-element LDPC and receiver comprising same |
| CN113595563B (en) * | 2021-08-02 | 2024-03-29 | 上海金卓科技有限公司 | LDPC decoding method, device, equipment and storage medium |
| CN114584259B (en) * | 2022-02-18 | 2024-02-09 | 阿里巴巴(中国)有限公司 | Decoding method, decoding device, decoding equipment and storage medium |
| CN116192159A (en) * | 2023-02-28 | 2023-05-30 | 西安思丹德信息技术有限公司 | An FPGA-based LDPC encoding and decoding method and system equipment medium |
| WO2025000134A1 (en) * | 2023-06-25 | 2025-01-02 | 长江存储科技有限责任公司 | Decoder, decoding method, memory controller, and memory system |
| CN117375636B (en) * | 2023-12-07 | 2024-04-12 | 成都星联芯通科技有限公司 | Method, device and equipment for improving throughput rate of QC-LDPC decoder |
| CN119788096B (en) * | 2025-03-05 | 2025-06-24 | 山东云海国创云计算装备产业创新中心有限公司 | Data transmission method, device, computer equipment and storage medium |
| CN120768379B (en) * | 2025-06-27 | 2026-04-14 | 电子科技大学 | GPU parallel implementation method for multi-frame multi-code rate LDPC decoding |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1770641A (en) * | 2005-11-21 | 2006-05-10 | 东南大学 | A Minimal Sum Decoding Method Based on Sectional Offset Correction |
| CN101383618A (en) * | 2007-09-05 | 2009-03-11 | 中兴通讯股份有限公司 | A method for encoding a cyclic redundancy check code of a transmission block |
| CN101488760A (en) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | Encoding method for low code rate LDPC code |
| CN105659931B (en) * | 2008-12-18 | 2012-09-19 | 北京空间飞行器总体设计部 | A kind of satellite telemetry channel coding method |
| CN102801432A (en) * | 2012-07-20 | 2012-11-28 | 航天恒星科技有限公司 | A serial FHT-BP decoding method and device for multi-ary LDPC |
| CN103905055A (en) * | 2014-04-23 | 2014-07-02 | 荣成市鼎通电子信息科技有限公司 | Partial parallel input QC-LDPC encoder for right shift accumulation |
| CN103929189A (en) * | 2014-04-23 | 2014-07-16 | 荣成市鼎通电子信息科技有限公司 | Partial parallel input left shift accumulation QC-LDPC encoder in near-earth communications |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7266750B1 (en) * | 2002-07-10 | 2007-09-04 | Maxtor Corporation | Error recovery strategies for iterative decoders |
| US7159170B2 (en) * | 2003-06-13 | 2007-01-02 | Broadcom Corporation | LDPC (low density parity check) coded modulation symbol decoding |
| US7395490B2 (en) * | 2004-07-21 | 2008-07-01 | Qualcomm Incorporated | LDPC decoding methods and apparatus |
| US8418023B2 (en) * | 2007-05-01 | 2013-04-09 | The Texas A&M University System | Low density parity check decoder for irregular LDPC codes |
| TW200908569A (en) * | 2007-05-21 | 2009-02-16 | Ramot At Tel Aviv University Co Ltd | Memory-efficient LDPC decoding |
| US8370711B2 (en) * | 2008-06-23 | 2013-02-05 | Ramot At Tel Aviv University Ltd. | Interruption criteria for block decoding |
| CN101640543B (en) * | 2008-07-31 | 2013-06-05 | 深圳市同洲电子股份有限公司 | Device and method for encoding LDPC code |
| US8335949B2 (en) * | 2009-11-06 | 2012-12-18 | Trellisware Technologies, Inc. | Tunable early-stopping for decoders |
| JP5310701B2 (en) * | 2010-10-29 | 2013-10-09 | 株式会社Jvcケンウッド | Decoding device and decoding method |
| US8549387B2 (en) * | 2010-11-04 | 2013-10-01 | Himax Media Solutions, Inc. | System and method of decoding LDPC code blocks |
| JP2012244305A (en) * | 2011-05-17 | 2012-12-10 | Toshiba Corp | Memory controller, semiconductor memory device and decoding method |
| CN202395755U (en) * | 2011-09-29 | 2012-08-22 | 中国电子科技集团公司第五十四研究所 | QC_LDPC high-speed partial parallel channel decoder |
| US8707144B2 (en) * | 2011-10-17 | 2014-04-22 | Lsi Corporation | LDPC decoder with targeted symbol flipping |
| CN103023516A (en) * | 2013-01-01 | 2013-04-03 | 苏州威士达信息科技有限公司 | LDPC (low density parity check) coder capable of generating matrix and check matrix jointly and coding method |
| GB2510932B (en) * | 2013-08-27 | 2015-01-21 | Imagination Tech Ltd | An improved decoder for low-density parity-check codes |
| KR102114860B1 (en) * | 2013-09-04 | 2020-05-25 | 엘지전자 주식회사 | Home appliance, home appliance system and a controlling method of home appliance |
| US9184767B2 (en) * | 2013-09-19 | 2015-11-10 | SanDisk Technologies, Inc. | Scoring variable nodes for low density parity check code decoding |
| CN103916134B (en) * | 2014-03-24 | 2017-01-11 | 清华大学 | Low-density parity check code aliasing and decoding method and multi-core collaborative aliasing decoder |
| CN103929207A (en) * | 2014-04-23 | 2014-07-16 | 荣成市鼎通电子信息科技有限公司 | Partially parallel input QC-LDPC encoder based on right-shift accumulation in CMMB |
| US9503125B2 (en) * | 2014-05-08 | 2016-11-22 | Sandisk Technologies Llc | Modified trellis-based min-max decoder for non-binary low-density parity-check error-correcting codes |
| CN103957015B (en) * | 2014-05-12 | 2017-02-01 | 福州大学 | Nonuniform quantizing coding method used for decoding LDPC code and application of method in decoder |
-
2015
- 2015-01-14 CN CN201510019132.3A patent/CN105846830B/en not_active Expired - Fee Related
-
2016
- 2016-01-14 CN CN201680015662.3A patent/CN107852176A/en active Pending
- 2016-01-14 WO PCT/CN2016/070865 patent/WO2016112857A1/en not_active Ceased
- 2016-01-14 US US15/529,620 patent/US10536169B2/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1770641A (en) * | 2005-11-21 | 2006-05-10 | 东南大学 | A Minimal Sum Decoding Method Based on Sectional Offset Correction |
| CN101383618A (en) * | 2007-09-05 | 2009-03-11 | 中兴通讯股份有限公司 | A method for encoding a cyclic redundancy check code of a transmission block |
| CN105659931B (en) * | 2008-12-18 | 2012-09-19 | 北京空间飞行器总体设计部 | A kind of satellite telemetry channel coding method |
| CN101488760A (en) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | Encoding method for low code rate LDPC code |
| CN102801432A (en) * | 2012-07-20 | 2012-11-28 | 航天恒星科技有限公司 | A serial FHT-BP decoding method and device for multi-ary LDPC |
| CN103905055A (en) * | 2014-04-23 | 2014-07-02 | 荣成市鼎通电子信息科技有限公司 | Partial parallel input QC-LDPC encoder for right shift accumulation |
| CN103929189A (en) * | 2014-04-23 | 2014-07-16 | 荣成市鼎通电子信息科技有限公司 | Partial parallel input left shift accumulation QC-LDPC encoder in near-earth communications |
Also Published As
| Publication number | Publication date |
|---|---|
| US20170264314A1 (en) | 2017-09-14 |
| US10536169B2 (en) | 2020-01-14 |
| CN107852176A (en) | 2018-03-27 |
| WO2016112857A1 (en) | 2016-07-21 |
| CN105846830A (en) | 2016-08-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105846830B (en) | Data processing equipment | |
| CN104868925B (en) | Encoding method, decoding method, encoding device and decoding device of structured LDPC code | |
| CN107370490B (en) | Structured LDPC encoding and decoding method and device | |
| CN101106381B (en) | Hierarchical LDPC decoder and decoding processing method | |
| CN107786211B (en) | Algebraic structure obtaining method, encoding method and encoder of IRA-QC-LDPC code | |
| CN102394660B (en) | Encoding method and encoder for block interleaved quasi-cyclic extended parallel encoding LDPC code | |
| CN111384970B (en) | Decoding method, device and communication equipment | |
| JP5774237B2 (en) | Error correction encoding method and error correction encoding apparatus | |
| CN102377437B (en) | Method and device for coding quasi-cyclic low density parity check codes | |
| CN101604977A (en) | Method for encoding digital data by using low density parity check matrix and encoder | |
| CN100589357C (en) | LDPC code vector decoding device and method based on unit matrix and its cyclic shift matrix | |
| CN100592639C (en) | Low-density parity-check encoding method, device, and method for generating parity-check matrix | |
| CN111313912A (en) | LDPC code encoder and encoding method | |
| CN104579366B (en) | High speed QC-LDPC encoder in WPAN based on three class pipeline | |
| WO2017193614A1 (en) | Encoding method and device and decoding method and device for structured ldpc | |
| CN111181570A (en) | FPGA (field programmable Gate array) -based coding and decoding method and device | |
| CN102624402B (en) | LDPC (low density parity check) decoder | |
| Bharadwaj et al. | Efficient Encoding Algorithm and Architecture for 2-D Quasicyclic LDPC Codes with Applications to 2-D Magnetic Recording | |
| CN119496516B (en) | Dynamic coding construction and low-complexity coding method and device for error correction and encryption fusion | |
| EP2951926A1 (en) | Ldpc code design and encoding apparatus for their application | |
| CN108540138B (en) | A CSRAA coding circuit and encoder | |
| CN108736898B (en) | A LDPC code codec multiplexing method suitable for 5G system | |
| CN116436472A (en) | Coding method and device for a low-density parity-check code | |
| CN104579364B (en) | High speed QC-LDPC encoders based on four level production lines in CDR | |
| CN118174738A (en) | A quasi-cyclic LDPC code type and its deep overlapping decoder implementation method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| 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: 20190730 Termination date: 20220114 |