WO2017193614A1 - 结构化ldpc的编码、译码方法及装置 - Google Patents

结构化ldpc的编码、译码方法及装置 Download PDF

Info

Publication number
WO2017193614A1
WO2017193614A1 PCT/CN2017/070488 CN2017070488W WO2017193614A1 WO 2017193614 A1 WO2017193614 A1 WO 2017193614A1 CN 2017070488 W CN2017070488 W CN 2017070488W WO 2017193614 A1 WO2017193614 A1 WO 2017193614A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
equal
upper left
column
ldpc
Prior art date
Application number
PCT/CN2017/070488
Other languages
English (en)
French (fr)
Inventor
徐俊
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from CN201610884876.6A external-priority patent/CN107370490B/zh
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Priority to US16/301,290 priority Critical patent/US10892778B2/en
Priority to EP23185378.9A priority patent/EP4231532A3/en
Priority to JP2018560038A priority patent/JP7025349B2/ja
Priority to KR1020187036299A priority patent/KR102229233B1/ko
Priority to EP17795241.3A priority patent/EP3457575B1/en
Priority to KR1020217007505A priority patent/KR102347823B1/ko
Publication of WO2017193614A1 publication Critical patent/WO2017193614A1/zh
Priority to US17/110,832 priority patent/US11323134B2/en
Priority to JP2022019134A priority patent/JP7372369B2/ja

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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

Definitions

  • the present invention relates to the field of communications, and in particular, to a coding and decoding method and apparatus for a structured Low Density Parity Check Codes (LDPC).
  • LDPC Low Density Parity Check Codes
  • FIG. 1 is a typical digital communication system.
  • LDPC is a class of linear block codes that can be defined with very sparse parity check matrices or bipartite graphs, originally discovered by Gallager, so called Gallager codes.
  • MacKay and .Neal After decades of silence, with the development of computer hardware and related theories, MacKay and .Neal rediscovered it and proved its ability to approach the Shannon limit.
  • the latest research shows that the LDPC code has the following characteristics: low decoding complexity, linear time coding, close to Shannon limit performance, parallel decoding, and superior Turbo code under long code length conditions.
  • the LDPC code is a special linear block code.
  • the LDPC code is a linear block code based on the sparse check matrix. It is because of the sparsity of its check matrix that low-complexity coding and decoding can be realized, which makes the LDPC code practical.
  • the Gallager code mentioned above is a regular LDPC code (regular ldpcc), while Luby and Mitzenmacher et al. generalize the Gallager code and propose a non-regular LDPC code (irregular ldpcc).
  • the code originally proposed by Gallager has a regular code structure, its check matrix is a sparse matrix, and each row has the same number of 1, and each column also has the same number of ones.
  • M.G.Luby believes that if the number of non-zero elements in a row or column of a check matrix is allowed to change, While ensuring the sparsity of the matrix, the coding decoding algorithm is still applicable, and the performance of the coding can be greatly improved, so that it can achieve or exceed the performance of the Turbo code. This is because in this coding structure, if the left and right nodes of the corresponding bipartite graph have a proper degree distribution, there will be a wave effect at the time of decoding, which will greatly Improve decoding performance.
  • the non-regular code is the low-density code that allows the same kind of nodes to have different numbers of times, and the code originally proposed by Gallager is called a regular code.
  • the graphical representation of the LDPC parity check matrix is a bipartite graph.
  • An M*N parity check matrix H defines a constraint that each codeword having N bits satisfies M parity sets.
  • a bipartite graph includes N variable nodes and M parity nodes.
  • the bipartite graph there is no connection between any nodes of the same class, and the total number of edges in the bipartite graph is equal to the number of non-zero elements in the check matrix.
  • the concept girth is used to quantitatively describe the short circle in the bipartite graph.
  • the girth of the bipartite graph refers to the circle length of the shortest circle in a graph. For example, if a bipartite graph has a length of 6, 8, 10, 12 and a longer length, the girth of the bipartite graph is 6.
  • the girth of the variable node refers to the circle length of the shortest circle passing through the node. Since a variable node uniquely corresponds to one codeword bit, the girth of a codeword bit is the girth of a variable node. Structured LDPC code
  • Structured LDPC code is one of the most popular LDPC codes in the industry. It has the widest application and is currently appearing in IEEE802.11n/ad, IEEE802.16e and other international standards. This type of LDPC code is often called in academia. It is a quasi-cyclic LDPC code or a multilateral LDPC code.
  • the parity check matrix H of such an LDPC code structured LDPC code is set to a (M ⁇ z) ⁇ (N ⁇ z) matrix, which is composed of M ⁇ N block matrices, each of which is z
  • the different permutation of the basic permutation matrix of ⁇ z When the basic permutation matrix is a unit matrix, they are cyclic shifting matrices of the unit array (the default is right shift in the text). By such a power j, each block matrix can be uniquely identified.
  • the power of the identity matrix can be represented by 0, and the matrix is generally represented by -1.
  • Hb is the basic matrix of H
  • H is called the extension matrix of Hb.
  • z code length / number of columns N of the basic matrix, called the spreading factor.
  • the structured LDPC code is defined by a parity check matrix H of size (mb ⁇ z) ⁇ (nb ⁇ z), wherein the parity check matrix H is of size mb ⁇ nb
  • the basic matrix Hb, the expansion factor z, and the basic permutation matrix P are determined by three variables.
  • the hb ij power matrix of all elements in the base matrix Hb is replaced by a full 0 square matrix or a basic permutation matrix P to obtain an expanded parity check matrix H, where hb ij is an element in Hb.
  • the basic matrix Hb is defined as follows.
  • the expanded parity check matrix H is defined as follows.
  • the encoder of the LDPC code is uniquely generated by the base matrix Hb, the spreading factor z and the selected basic permutation matrix. According to the definition of the above basic matrix, it can be seen Given a spreading factor (an integer z greater than one), the underlying matrix and the parity check matrix are essentially one thing.
  • B]. According to H ⁇ x 0, you can get:
  • B-1 has a very simple form, which can be directly calculated according to the above formula to obtain a check in the codeword. Bit portion c, and can guarantee that the encoder has linear complexity.
  • the Richarson linear time coding algorithm can also be used:
  • the parity check matrix H has a quasi-lower triangular structure, and H has the following form:
  • the length of p 2 is (mg).
  • the dimension of A is (mg) ⁇ (nm)
  • B is (mg) ⁇ g
  • T is (mg) ⁇ (mg)
  • C is g ⁇ (nm)
  • D is g ⁇ g
  • E It is g ⁇ (mg). All of these matrices are sparse matrices
  • T is the lower triangular matrix with the main diagonal elements all ones.
  • the check bit portion can be obtained by the following formula:
  • a vector decoding method can also be considered. If the check bit portion of a structured LDPC code is a strictly lower triangular matrix, it can be coded according to the following vector method, which is very mature and simple.
  • the information sequence x can be divided into kb subsequences of length z:
  • each subsequence is as follows:
  • x(i) [x i ⁇ z , x i ⁇ z+1 , x i ⁇ z+2 ,...,x i ⁇ z+z-1 ]
  • the check sequence b is divided into mb subsequences of length z:
  • each subsequence is as follows:
  • b(i) [b i ⁇ z , b i ⁇ z+1 , b i ⁇ z+2 ,...,b i ⁇ z+z-1 ]
  • each subsequence is as follows:
  • v(i) [v i ⁇ z , v i ⁇ z+1 , v i ⁇ z+2 ,...,v i ⁇ z+z-1 ]
  • the LDPC code encoding steps are as follows:
  • the encoder of the LDPC code can be uniquely described by the LDPC parity check matrix H,
  • the coding method of the body is very mature and simple, and will not be described here.
  • the parity check matrix of the LDPC code not only determines the performance of the LDPC code decoder, but also determines the complexity, storage space and processing delay of the encoder and decoder of the LDPC code, and also determines what can be supported. Incremental redundancy HARQ and whether it is flexible enough. Therefore, it is crucial to find the parity check matrix structure of the appropriate LDPC code, which determines the use prospect of the LDPC code.
  • the above direct method or the Richarson method or other method operations may be used to complete the encoding function of the N-bit codeword from the source data of the N-M bit.
  • the encoder is a multiplication and addition of sparse matrices in software or hardware implementations.
  • the multiplication of sparse matrices can be performed by multiple z-bits (z is The expansion factor is composed of a cyclic shift register and a plurality of z-bit adders, and the addition of the sparse matrix is performed by the above-mentioned plurality of z-bit adders, the plurality of z-bit cyclic shift registers and a plurality of z
  • the bit adder constructs a LDPC encoder implemented by a hardware circuit.
  • the graphical representation of the LDPC parity check matrix is a bipartite graph.
  • An M*N parity check matrix H defines a constraint that each codeword having N bits satisfies M parity sets.
  • a bipartite graph includes N variable nodes and M parity nodes.
  • the bipartite graph there is no connection between any nodes of the same class, and the total number of edges in the bipartite graph is equal to the number of non-zero elements in the check matrix.
  • the information transfer decoding algorithm of the LDPC code assumes that the variable nodes are independent of each other, and the existence of the short circle necessarily destroys the assumption of independence, so that the decoding performance is significantly degraded.
  • the girth of the bipartite graph, the girth of the node, and the girth of the edge are explained below.
  • the short circle in the bipartite graph introduces the related concept of girth.
  • the girth of the bipartite graph refers to the circle length of the shortest circle in a figure. For example, if a bipartite graph has a length of 6, 8, 10, 12 and a longer length, the girth of the bipartite graph is 6.
  • the girth (the girth at node u) of a node u) of a node u refers to the circle length of the shortest circle passing through the node u.
  • the girth of this node u is 8.
  • the girth (the girth at node u) of an edge e refers to the circle length of the shortest circle passing through the edge e.
  • the circle e has a length of 8, 10, 12 and a longer length. Then the girth of the node u is 8.
  • the girth of a variable node is the length of the shortest path, which is equivalent to the minimum number of iterations of information coming out of this node back to the node itself.
  • the information associated with this node can be optimally passed to the remainder of the bipartite graph before the actual number of iterations reaches this minimum number of iterations. If the girth of a variable node is larger, the smaller the positive feedback information that the information sent by the variable node is passed to itself, the better the decoding performance. Therefore, it is advantageous to make the girth of the variable node as large as possible to improve the performance of the code.
  • the principle of constructing a high LDPC code is as follows: First, the length of the shortest circle (girth) of the selected code should be as large as possible; secondly, for a code having the same size girth, the number of the shortest circle of the selected code should be Try to be as small as possible.
  • the base matrix is extended to a parity check matrix, which may also be referred to as an extended matrix or a binary matrix.
  • a parity check matrix which may also be referred to as an extended matrix or a binary matrix.
  • the extended matrix H of H b may have a short circle of length 4 or more, as follows:
  • P i, P j , P k , P l constitute a short circle of length 12 or no short circle in H.
  • the extended matrix H of H b may appear as a short circle of length 6 or more, as follows:
  • the power matrix elements i, j, k, l, m, n of the z ⁇ z block matrix P i , P j , P k , P l , P m , P n form a length of 6 in H b
  • P i , P j , P k , P l , P m , P n form a short circle
  • the extended matrix H of H b may appear as a short circle of length 8 or more, as follows:
  • the LDPC code codec needs to store a basic matrix.
  • the code length is large, a lot of bases are stored.
  • Matrix which takes up a lot of storage space or makes the hardware implementation circuit complicated.
  • the correction is to use the expansion factor of other code lengths to correct the non-negative elements in the basic matrix Hb.
  • the corrected element value should be smaller than the expansion factor value under the code length.
  • the correction algorithm can adopt mod and rounding. (scale+floor) or rounding (scale+round), etc. Let Pi,j be the non-negative element of the i-th row and the j-th column of the basic matrix, and P’i,j be the element after the correction, including:
  • N is the number of basic matrix columns and n is the code length of the low density parity check code to generate the parity check matrix.
  • Mod is the modulo operation, [] is the next rounding operation, and Round is the rounding operation.
  • the maximum code length is 2304.
  • the reading and writing of the log likelihood ratio information seriously affects the arrangement of the LDPC code pipeline. Specifically, at a high code rate, for ordinary The LDPC code structure, after the decoder needs the basic matrix to complete the processing, can start the next stage pipeline, if the first stage water is particularly long, the efficiency of the decoder will be seriously reduced.
  • the new air interface (5G New RAT) of the 5th generation mobile communication standard is officially established.
  • This new air interface needs to support ultra-high throughput and low processing delay, so a new coding scheme is needed to replace the current turbo coding.
  • the current communication standard LDPC code does not support incremental redundancy HARQ well, and does not have sufficient bit rate and transport block size flexibility. Therefore, it is necessary to design a new LDPC coding structure to ensure the performance close to the turbo code. Incremental redundancy HARQ can be supported under flexible conditions, and there is also a need for much lower complexity and ultra-high-speed processing capabilities than turbo codes.
  • the embodiments of the present invention provide a coding and decoding method and a device for a structured LDPC, so as to at least solve the problem that the existing LDPC codec in the related art cannot support incremental redundant HARQ and insufficient flexibility.
  • the basic matrix Hb includes one Or a plurality of sub-matrices, the sub-matrix comprising: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the number of rows and the number of columns of the upper left sub-matrix Hb1 and the upper left sub-matrix Hb2 are smaller than the number of rows of the basic matrix Hb And the number of columns, and the upper left sub-matrix Hb1 is an upper left sub-matrix of the upper left sub-matrix Hb2; and the LDPC encoding operation is performed on the source information bit sequence according to the basic matrix and the spreading factor Z corresponding to the basic matrix Hb, a sequence of code words, where Z is a positive integer greater than or equal to .
  • a decoding method of an LDPC including:
  • hb ij represents the elements of the i-th row and j-column of the base matrix Hb
  • i is the row index of the base matrix
  • j is the column index of the base matrix
  • Kb Nb-Mb
  • Kb is greater than
  • the base matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left corner a matrix Hb2, wherein the number of rows and the number of columns of the upper left corner submatrix Hb1 and the upper left corner submatrix Hb2 are smaller than the number of rows and columns of the base matrix Hb, and the upper left corner submatrix Hb1 is the upper left of the upper left corner submatrix Hb2 Corner submatrix
  • the codeword of the preset number of bits is subjected to a decoding operation to obtain a source information bit sequence, wherein Z is a positive integer greater than or equal to 1.
  • an apparatus for encoding an LDPC including:
  • the basic matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the number of rows and columns of the upper left sub-matrix Hb1 and the upper left sub-matrix Hb2 are smaller than The number of rows and the number of columns of the base matrix Hb, and the upper left corner submatrix Hb1 is the upper left corner submatrix of the upper left corner submatrix Hb2;
  • the encoding module is configured to perform an LDPC encoding operation on the source information bit sequence according to the basic matrix and the spreading factor Z corresponding to the basic matrix Hb, to obtain a codeword sequence, where Z is a positive integer greater than or equal to 1.
  • the basic matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the number of rows and columns of the upper left sub-matrix Hb1 and the upper left sub-matrix Hb2 are smaller than The number of rows and the number of columns of the base matrix Hb, and the upper left corner submatrix Hb1 is the upper left corner submatrix of the upper left corner submatrix Hb2;
  • a decoding module configured to perform a decoding operation according to the base matrix and a spreading factor Z corresponding to the basic matrix Hb, and a codeword of a preset number of bits, to obtain a source information bit sequence, where Z is greater than or equal to A positive integer.
  • a storage medium is also provided.
  • the storage medium is arranged to store program code for performing the following steps:
  • the basic matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the number of rows and the number of columns of the upper left corner submatrix Hb1 and the upper left corner submatrix Hb2 are smaller than the number of rows and columns of the base matrix Hb, and the upper left corner submatrix Hb1 is the upper left corner of the upper left corner submatrix Hb2 a matrix; performing an LDPC encoding operation on the source information bit sequence according to the base matrix and the spreading factor Z corresponding to the base matrix Hb to obtain a codeword sequence, where Z is a positive integer greater than or equal to 1.
  • a storage medium is also provided.
  • the storage medium is arranged to store program code for performing the following steps:
  • hb ij represents the elements of the i-th row and j-column of the base matrix Hb
  • i is the row index of the base matrix
  • j is the column index of the base matrix
  • Kb Nb-Mb
  • Kb is greater than
  • the base matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left corner a matrix Hb2, wherein the number of rows and the number of columns of the upper left corner submatrix Hb1 and the upper left corner submatrix Hb2 are smaller than the number of rows and columns of the base matrix Hb, and the upper left corner submatrix Hb1 is the upper left of the upper left corner submatrix Hb2 Corner submatrix
  • the codeword of the preset number of bits is subjected to a decoding operation to obtain a source information bit sequence, wherein Z is a positive integer greater than or equal to 1.
  • the solution provided by the embodiment of the present invention completes coding or decoding according to the basic matrix and its corresponding spreading factor by designing a suitable basic matrix, realizes ultra-high speed LDPC encoding and decoding, and realizes close to turbo code.
  • the compiled code performance solves the problem that the existing LDPC codec cannot support incremental redundancy HARQ and lack of flexibility.
  • FIG. 1 is a block diagram showing the structure of a digital communication system in the related art
  • FIG. 2 is a schematic structural diagram of an encoder of a structured LDPC code according to Embodiment 1 of the present invention
  • Embodiment 3 is a schematic diagram of a basic matrix used in Embodiment 1 of the present invention.
  • FIG. 4 is a schematic structural diagram of a decoder of a structured LDPC code according to Embodiment 2 of the present invention.
  • FIG. 5 is a flow chart of a method for encoding a structured LDPC code according to Embodiment 3 of the present invention. Cheng Tu
  • FIG. 6 is a flowchart of a method for decoding a structured LDPC code according to Embodiment 4 of the present invention.
  • FIG. 7 is a schematic structural diagram of a coding apparatus for a structured LDPC code according to Embodiment 5 of the present invention.
  • FIG. 8 is a schematic structural diagram of a decoding apparatus for a structured LDPC code according to Embodiment 5 of the present invention.
  • FIG. 9 is a first schematic diagram of a memory storage manner according to Embodiment 8 of the present invention.
  • FIG. 10 is a second schematic diagram of a memory storage manner according to Embodiment 8 of the present invention.
  • an embodiment of the present invention provides a coding and decoding method and apparatus, an encoder, and a decoder for a structured LDPC code.
  • Embodiments of the present invention for practical considerations, use the same base matrix for multiple code rates and multiple code lengths, usually corresponding to the maximum code length, and correct the base matrix at different code lengths.
  • the embodiment of the present invention by defining the Girth feature of the basic matrix of different code lengths, it is ensured that the turbo code performance can be achieved under various code length conditions.
  • the present invention is not limited to this, and may be applied to one for each code length. The way the base matrix is.
  • the solution provided in the embodiment of the present application is not limited to the structure of the matrix in the embodiment of the present application, for example, the matrix corresponding to the system bit and the position of the matrix corresponding to the check bit are interchangeable.
  • the coding and coding schemes based on the design ideas in the embodiments of the present application are all within the scope of the present application.
  • An embodiment of the present invention provides an apparatus for encoding a structured low-density parity check code LDPC in digital communication.
  • the structure thereof is as shown in FIG. 2, and includes at least a processor 202 and a memory 201.
  • the memory 201 is configured to store at least a base matrix used for encoding.
  • i is the row index of the base matrix
  • j is the column index of the base matrix
  • Kb Nb-Mb
  • Nb is an integer
  • Kb is an integer greater than or equal to 4.
  • the basic matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the number of rows and columns of the upper left sub-matrix Hb1 and the upper left sub-matrix Hb2 are smaller than The number of rows and the number of columns of the base matrix Hb are described, and the upper left corner submatrix Hb1 is the upper left corner submatrix of the upper left corner submatrix Hb2.
  • the intersection of the front L0 row and the front Kb+4 column of the matrix Hb constitutes an upper left sub-matrix Hb1
  • the number of elements of the corresponding non-zero Z*Z square matrix of each row of the upper left sub-matrix Hb1 is Less than or equal to Kb+2 and greater than or equal to Kb-2
  • the square matrix of the last four columns of the upper left sub-matrix Hb1 is a lower left triangular matrix or a quasi-lower left triangular matrix
  • the upper left sub-matrix Hb2 is composed of an intersection of a front Kb row and a first 2*Kb column of the matrix Hb, and all elements of the sub-matrix formed by the intersection of the first 4 rows and the last Kb-4 column of the upper left sub-matrix Hb2 All of the elements corresponding to the Z*Z zero square matrix, the submatrix formed by the intersection of the last kb-4 row and the last kb-4 column of the upper left submatrix Hb2 is a size of (kb-4)*(kb-4).
  • the Kb+1 column of the upper left sub-matrix Hb2 has only one element corresponding to the non-zero Z*Z square matrix, if the upper left sub-matrix Hb1
  • the square matrix of the last four columns is a quasi-lower triangular matrix, and all elements of the Kb+1 column of the upper left submatrix Hb2 are elements corresponding to the zero Z*Z square matrix;
  • intersection of the last kb-4 row and the front kb column of the upper left sub-matrix Hb2 constitutes a sub-matrix, and the number of elements of the corresponding non-zero Z*Z square matrix of each row in the sub-matrix is less than or equal to Kb-2;
  • Nb is greater than or equal to 2*Kb and L0 is equal to 4 or 3.
  • the expansion factor Z supports a set of determined values ⁇ z1, z2, z3..., zV ⁇ , where z1, z2, ..., zV are arranged in ascending order, zr, zs, zt, zu are The expansion factor of the four determined values in the set satisfies z1 ⁇ zr ⁇ zs ⁇ zt ⁇ zu ⁇ zV, wherein V, r, s, t, u are subscripts, 1 ⁇ r ⁇ s ⁇ t ⁇ u ⁇ V, V is an integer greater than or equal to 2;
  • girth of at least one of all codeword bits having a weight greater than 2 in each LDPC codeword is equal to four.
  • all girths of codeword bits having a weight greater than 2 in each LDPC codeword are equal to 6, wherein R is less than or equal to Kb/2 ;
  • each codeword bit of one LDPC codeword corresponds to each column of the parity check matrix
  • each codeword bit of one LDPC codeword corresponds to each column of the parity check matrix
  • the foregoing basic matrix Hb may further include:
  • the upper left sub-matrix Hb3 is composed of the intersection of the first 2*kb row and the first 3*Kb column of the base matrix Hb to form the upper left sub-matrix Hb3, and the intersection of the last Kb row and the last Kb column of Hb3 constitutes a sub-matrix.
  • All elements of the submatrix formed by the intersection of the pre-Kb line and the last Kb column of Hb3 are elements corresponding to the Z*Z zero square matrix
  • the Kb+1 column to the 2*Kb column of Hb3 constitute a submatrix, and there are only one element of each corresponding non-zero square matrix in each column of the L1 column of the submatrix, and the remaining Kb-L1 column in the submatrix All the entries are elements corresponding to the Z*Z zero square matrix, where L1 is an integer greater than or equal to 0 and less than Kb;
  • Nb is greater than or equal to 3*Kb.
  • Nb is a determined positive integer from 2*Kb to 12*Kb.
  • Kb takes an integer between 2 and 16.
  • eMMB Enhanced Mobile Broadband
  • Ultra-Reliable and Low latency Communication Ultra-Reliable and Low latency Communication
  • the URL is referred to as URLLC.
  • the scene uses different values of Kb.
  • the number of elements of the corresponding non-zero Z*Z square matrix of the g-th row of the base matrix Hb is less than or equal to the number of elements of the non-zero Z*Z square matrix corresponding to the g+1 row.
  • g 1, 2, ..., Nb-1.
  • the present invention is not limited to this manner, and may be that the last element is 0, and any element may be 0.
  • the processor 202 is configured to determine the base matrix and the spreading factor z, and complete an LDPC encoding operation of obtaining Nb ⁇ z bit codewords from source data of (Nb ⁇ Mb) ⁇ z bits.
  • the matrix Hb corresponds to a code rate of 1/3
  • Hb1 is a matrix of 4*12
  • Hb2 is a matrix of 8*16
  • Hb3 is 16*24.
  • the matrix example of Fig. 3 satisfies both the characteristics of Hb1, the features of Hb2, and the characteristics of Hb3. When the characteristics of Hb1 are satisfied, the 2/3 code rate LDPC code has a performance close to the turbo code, and the matrix has only 4 lines, so the need for ultra high speed processing is satisfied.
  • Hb1 and Hb2 are the upper-left sub-matrices of Hb, which belong to a nested structure, so it can support incremental redundant HARQ.
  • the A-part matrix is a systematic bit-part matrix
  • the B-part is a check-bit partial matrix.
  • the element value -1 in the matrix corresponds to a full-zero square matrix
  • the element value is a non-zero square matrix corresponding to the square matrix cyclic shift.
  • the matrix after the corresponding value.
  • the elements of the first corresponding non-zero square matrix in all columns of the base matrix Hb are all zero.
  • the cyclic shift network only needs to complete the cyclic shift difference.
  • the LDPC hierarchical decoder having the matrix structure of the present invention does not require a cyclic shift inverse network, and the route is halved as compared with the conventional scheme.
  • the foregoing encoder may further have the following feature: further comprising: an expansion module configured to expand the base matrix according to a spreading factor and a basic permutation matrix to obtain (M ⁇ z) ⁇ (N ⁇ z) low-density parity a parity check matrix of the check code, wherein the decoding module performs an encoding operation based on the parity check matrix obtained by the base matrix extension.
  • the information bits are LDPC-encoded by the structure of the proposed basic matrix, and the LDPC codewords can be generated.
  • the receiving end receives the signals and performs demodulation and the like.
  • the received LDPC codeword is generated and the received LDPC codeword is sent to the LDPC decoder.
  • the LDPC codeword can ensure the improvement of the decoding pipeline speed, that is, the decoder processing speed has improved. This effectively improves the efficiency of the LDPC code and speeds up the decoding speed.
  • the structure of the basic matrix proposed by the present invention can also reduce the switching network by allowing the use of an inverse cyclic shift network (for write storage), and further reduce hardware complexity.
  • Embodiments of the present invention provide a decoding apparatus for a structured low-density parity check code LDPC in digital communication, which has a structure as shown in FIG. 4, and includes at least a processor 402 and a memory 401.
  • the memory 401 is configured to store at least a base matrix used for encoding.
  • the basis The check matrix includes the following features:
  • i the row index of the base matrix
  • j is the column index of the base matrix
  • Kb Nb-Mb
  • Kb is an integer greater than or equal to 4
  • Nb is an integer.
  • the basic matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the number of rows and columns of the upper left sub-matrix Hb1 and the upper left sub-matrix Hb2 are smaller than The number of rows and the number of columns of the base matrix Hb are described, and the upper left corner submatrix Hb1 is the upper left corner submatrix of the upper left corner submatrix Hb2.
  • the upper left sub-matrix Hb1 is composed of an intersection of a front L0 row and a front Kb+4 column of the matrix Hb, and an element of a corresponding non-zero Z*Z square matrix of each row of the upper left sub-matrix Hb1
  • the number is less than or equal to Kb+2 and greater than or equal to Kb-2
  • the square matrix of the last four columns of the upper left sub-matrix Hb1 is a lower left triangular matrix or a quasi-lower left triangular matrix;
  • the upper left sub-matrix Hb2 is composed of an intersection of a front Kb row and a first 2*Kb column of the matrix Hb, and all elements of the sub-matrix formed by the intersection of the first 4 rows and the last Kb-4 column of the upper left sub-matrix Hb2 All of the elements corresponding to the Z*Z zero square matrix, the submatrix formed by the intersection of the last kb-4 row and the last kb-4 column of the upper left submatrix Hb2 is a size of (kb-4)*(kb-4).
  • the Kb+1 column of the upper left sub-matrix Hb2 has only one element corresponding to the non-zero Z*Z square matrix, if the upper left sub-matrix Hb1
  • the square matrix of the last four columns is a quasi-lower triangular matrix, and all elements of the Kb+1 column of the upper left submatrix Hb2 are elements corresponding to the zero Z*Z square matrix;
  • intersection of the last kb-4 row and the front kb column of the upper left sub-matrix Hb2 constitutes a sub-matrix, and the number of elements of the corresponding non-zero Z*Z square matrix of each row in the sub-matrix is less than or equal to Kb-2;
  • Nb is greater than or equal to 2*Kb and L0 is equal to 4 or 3.
  • the expansion factor Z supports a set of determined values ⁇ z1, z2, z3..., zV ⁇ , where z1, z2, ..., zV are arranged in ascending order, zr, zs, zt, zu are The expansion factor of the four determined values in the set satisfies z1 ⁇ zr ⁇ zs ⁇ zt ⁇ zu ⁇ zV, wherein V, r, s, t, u are subscripts, 1 ⁇ r ⁇ s ⁇ t ⁇ u ⁇ V, V is an integer greater than or equal to 2;
  • each codeword bit of one LDPC codeword corresponds to each column of the parity check matrix
  • each codeword bit of one LDPC codeword corresponds to each column of the parity check matrix
  • the basic matrix Hb further includes: an upper left sub-matrix Hb3.
  • the upper left sub-matrix Hb3 is formed by the intersection of the first 2*kb row and the first 3*Kb column of the base matrix Hb, and the intersection of the last Kb row and the last Kb column of Hb3 constitutes a sub-matrix. Is a cyclic shift matrix of unit array or unit array of size kb*kb;
  • All elements of the submatrix formed by the intersection of the pre-Kb line and the last Kb column of Hb3 are elements corresponding to the Z*Z zero square matrix
  • the Kb+1 column to the 2*Kb column of Hb3 constitute a submatrix, and there are only one element of each corresponding non-zero square matrix in each column of the L1 column of the submatrix, and the remaining Kb-L1 column in the submatrix All the entries are elements corresponding to the Z*Z zero square matrix, where L1 is an integer greater than or equal to 0 and less than Kb;
  • Nb is greater than or equal to 3*Kb and L0 is equal to 4 or 3.
  • Nb is a determined positive integer from 2*Kb to 12*Kb.
  • Kb takes an integer between 2 and 16.
  • the eMMB scenario and the URLLC scenario use different Kb values.
  • the number of elements of the corresponding non-zero Z*Z square matrix of the g-th row of the base matrix Hb is less than or equal to the number of elements of the non-zero Z*Z square matrix corresponding to the g+1 row.
  • g 1, 2, ..., Nb-1.
  • the one processor 402 is configured to perform an LDPC decoding operation of obtaining (Nb-Mb) ⁇ z bit information data from the Nb ⁇ z bit codeword according to the base matrix and the spreading factor z.
  • the matrix Hb corresponds to a code rate of 1/3
  • Hb1 is a matrix of 4*12
  • Hb2 is a matrix of 8*16
  • Hb3 is 16*24.
  • the matrix example of Fig. 3 satisfies both the characteristics of Hb1, the features of Hb2, and the characteristics of Hb3. When the characteristics of Hb1 are satisfied, the 2/3 code rate LDPC code has a performance close to the turbo code, and the matrix has only 4 lines, so the need for ultra high speed processing is satisfied.
  • Hb1 and Hb2 are the upper-left sub-matrices of Hb, which belong to a nested structure, so it can support incremental redundant HARQ.
  • the structure of the present invention can support very high or relatively flexible parallelism, satisfying the decoding requirements suitable for ultra-high speed decoding, thereby achieving Gbps.
  • the information bits are LDPC-decoded by the structure of the proposed basic matrix, and the LDPC decoder receives the LDPC codewords. Since the number of rows of the basic matrix is very small, the LDPC decoder can ensure the improvement of the decoding pipeline speed, that is, the processing speed of the decoder is improved. This effectively improves the efficiency of the LDPC code and speeds up the decoding speed.
  • the structure of the basic matrix proposed by the present invention can also reduce the switching network by allowing the use of an inverse cyclic shift network (for write storage), and further reduce hardware complexity.
  • the embodiment of the invention provides a coding method for a structured LDPC code, which is completed by using the method.
  • the flow of LDPC encoding is shown in Figure 5, including:
  • Step 501 determining a base matrix Hb used for encoding
  • the basic check matrix includes the following features:
  • i the row index of the base matrix
  • j is the column index of the base matrix
  • Kb Nb-Mb
  • Kb is an integer greater than or equal to 4
  • Nb is an integer.
  • the basic matrix Hb further includes at least the following feature: the basic matrix Hb includes one or more sub-matrices, and the sub-matrices include: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the upper left The number of rows and the number of columns of the corner submatrix Hb1 and the upper left corner submatrix Hb2 are both smaller than the number of rows and columns of the base matrix Hb, and the upper left corner submatrix Hb1 is the upper left submatrix of the upper left corner submatrix Hb2.
  • the above features may be expressed as the following implementations, but are not limited thereto:
  • the upper left sub-matrix Hb1 is composed of an intersection of a front L0 row and a front Kb+4 column of the matrix Hb, and the number of elements of the corresponding non-zero Z*Z square matrix of each row of the upper left sub-matrix Hb1 is less than or equal to Kb+2 is greater than or equal to Kb-2, and the square matrix of the last four columns of the upper left sub-matrix Hb1 is a lower left triangular matrix or a quasi-lower left triangular matrix; and/or
  • the upper left sub-matrix Hb2 is composed of an intersection of a front Kb row and a first 2*Kb column of the matrix Hb, and all elements of the sub-matrix formed by the intersection of the first 4 rows and the last Kb-4 column of the upper left sub-matrix Hb2 All of the elements corresponding to the Z*Z zero square matrix, the submatrix formed by the intersection of the last kb-4 row and the last kb-4 column of the upper left submatrix Hb2 is a size of (kb-4)*(kb-4).
  • the Kb+1 column of the upper left sub-matrix Hb2 has only one element corresponding to the non-zero Z*Z square matrix, if the upper left corner
  • the square matrix of the last four columns of the sub-matrix Hb1 is a quasi-lower triangular matrix, and all elements of the Kb+1 column of the upper left sub-matrix Hb2 are elements corresponding to the zero Z*Z square matrix;
  • intersection of the last kb-4 row and the front kb column of the upper left sub-matrix Hb2 constitutes a sub-matrix, and the number of elements of the corresponding non-zero Z*Z square matrix of each row in the sub-matrix is less than or equal to Kb-2;
  • Nb is greater than or equal to 2*Kb and L0 is equal to 4 or 3.
  • the expansion factor Z supports a set of determined values ⁇ z1, z2, z3..., zV ⁇ , where z1, z2, ..., zV are arranged in ascending order, zr, zs, zt, zu are The expansion factor of the four determined values in the set satisfies z1 ⁇ zr ⁇ zs ⁇ zt ⁇ zu ⁇ zV, wherein V, r, s, t, u are subscripts, 1 ⁇ r ⁇ s ⁇ t ⁇ u ⁇ V, V is an integer greater than or equal to 2;
  • each codeword bit of one LDPC codeword corresponds to each column of the parity check matrix
  • the basic matrix Hb of a 1/3 code rate structured LDPC code is defined as follows:
  • the basic matrix Hb(zi) corresponding to each spreading factor is obtained by the scale+floor algorithm in the background art.
  • the basic matrix further has the following feature: the upper left sub-matrix Hb3 is composed of the intersection of the first 2*kb row and the first 3*Kb column of the basic matrix Hb, and the upper left sub-matrix Hb3, the last Kb row and the last of Hb3 The intersection of the Kb columns constitutes a sub-matrix which is a cyclic array of unit arrays or unit arrays of size kb*kb;
  • All elements of the submatrix formed by the intersection of the pre-Kb line and the last Kb column of Hb3 are elements corresponding to the Z*Z zero square matrix
  • the Kb+1 column to the 2*Kb column of Hb3 constitute a submatrix, and there are only one element of each corresponding non-zero square matrix in each column of the L1 column of the submatrix, and the remaining Kb-L1 column in the submatrix All the entries are elements corresponding to the Z*Z zero square matrix, where L1 is an integer greater than or equal to 0 and less than Kb;
  • Nb is greater than or equal to 3*Kb.
  • Nb is a determined positive integer from 2*Kb to 12*Kb.
  • Kb takes an integer between 2 and 16.
  • the eMMB scenario and the URLLC scenario use different Kb values.
  • the number of elements of the corresponding non-zero Z*Z square matrix of the g-th row of the base matrix Hb is less than or equal to the number of elements of the non-zero Z*Z square matrix corresponding to the g+1 row.
  • g 1, 2, ..., Nb-1.
  • Step 502 Perform an LDPC encoding operation of obtaining Nb ⁇ z bit codewords from source data of (Nb-Mb) ⁇ z bits according to the basic matrix and its corresponding spreading factor.
  • z is the expansion factor and z is a positive integer greater than or equal to 1.
  • the embodiment of the present invention provides a decoding method for a structured LDPC code.
  • the process for completing the LPDC encoding using the method is as shown in FIG. 6, and includes:
  • Step 601 Determine a basic matrix used for decoding.
  • the basic matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the number of rows and columns of the upper left sub-matrix Hb1 and the upper left sub-matrix Hb2 are both Less than the number of rows and columns of the base matrix Hb, and the upper left corner submatrix Hb1 is the upper left corner submatrix of the upper left corner submatrix Hb2;
  • the basic matrix includes the following features:
  • Hb [A, B]
  • hb ij represents the number of the basic matrix
  • i is the row index of the base matrix
  • j is the column index of the base matrix
  • Kb Nb-Mb
  • Kb is an integer greater than or equal to 4.
  • the basic matrix Hb further includes at least one of the following features:
  • the upper left sub-matrix Hb1 is composed of an intersection of a front L0 row and a front Kb+4 column of the matrix Hb, and the number of elements of the corresponding non-zero Z*Z square matrix of each row of the upper left sub-matrix Hb1 is less than or equal to Kb+2 is greater than or equal to Kb-2, and the square matrix of the last four columns of the upper left sub-matrix Hb1 is a lower left triangular matrix or a quasi-lower left triangular matrix; and/or
  • the upper left sub-matrix Hb2 is composed of an intersection of a front Kb row and a first 2*Kb column of the matrix Hb, and all elements of the sub-matrix formed by the intersection of the first 4 rows and the last Kb-4 column of the upper left sub-matrix Hb2 All of the elements corresponding to the Z*Z zero square matrix, the submatrix formed by the intersection of the last kb-4 row and the last kb-4 column of the upper left submatrix Hb2 is a size of (kb-4)*(kb-4).
  • the Kb+1 column of the upper left sub-matrix Hb2 has only one element corresponding to the non-zero Z*Z square matrix, if the upper left sub-matrix Hb1
  • the square matrix of the last four columns is a quasi-lower triangular matrix, and all elements of the Kb+1 column of the upper left submatrix Hb2 are elements corresponding to the zero Z*Z square matrix;
  • intersection of the last kb-4 row and the front kb column of the upper left sub-matrix Hb2 constitutes a sub-matrix, and the number of elements of the corresponding non-zero Z*Z square matrix of each row in the sub-matrix is less than or equal to Kb-2;
  • Nb is greater than or equal to 2*Kb and L0 is equal to 4 or 3.
  • the expansion factor Z supports a set of determined values ⁇ z1, z2, z3..., zV ⁇ , where z1, z2, ..., zV are arranged in ascending order, zr, zs, zt, zu are The expansion factor of the four determined values in the set satisfies z1 ⁇ zr ⁇ zs ⁇ zt ⁇ zu ⁇ zV, wherein V, r, s, t, u are subscripts, 1 ⁇ r ⁇ s ⁇ t ⁇ u ⁇ V, V is an integer greater than or equal to 2;
  • each codeword bit of one LDPC codeword corresponds to each column of the parity check matrix
  • the technical feature of the coding method of the structured LDPC code further includes:
  • the upper left sub-matrix Hb3 is composed of the intersection of the first 2*kb row and the first 3*Kb column of the base matrix Hb to form the upper left sub-matrix Hb3, and the intersection of the last Kb row and the last Kb column of Hb3 constitutes a sub-matrix.
  • All elements of the submatrix formed by the intersection of the pre-Kb line and the last Kb column of Hb3 are elements corresponding to the Z*Z zero square matrix
  • the Kb+1 column to the 2*Kb column of Hb3 constitute a submatrix, and there are only one element of each corresponding non-zero square matrix in each column of the L1 column of the submatrix, and the remaining Kb-L1 column in the submatrix All the entries are elements corresponding to the Z*Z zero square matrix, where L1 is an integer greater than or equal to 0 and less than Kb;
  • Nb is greater than or equal to 3*Kb.
  • Nb is a determined positive integer from 2*Kb to 12*Kb.
  • Kb takes an integer between 2 and 16.
  • the eMMB scenario and the URLLC scenario use different Kb values.
  • the number of elements of the corresponding non-zero Z*Z square matrix of the g-th row of the base matrix Hb is less than or equal to the number of elements of the non-zero Z*Z square matrix corresponding to the g+1 row.
  • g 1, 2, ..., Nb-1.
  • Step 602 Perform an LDPC decoding operation for obtaining (Nb-Mb) ⁇ z bit information data from a codeword of Nb ⁇ z bits according to the basic matrix and a corresponding spreading factor.
  • z is the expansion factor and z is a positive integer greater than or equal to 1.
  • An embodiment of the present invention provides a coding apparatus for a structured LDPC code, and the structure thereof is as shown in FIG. 7, and includes:
  • the determining module 701 is configured to determine a basic matrix used for encoding, and the basic check matrix includes the following features:
  • i is the row index of the base matrix
  • j is the column index of the base matrix
  • Kb Nb-Mb
  • Nb is an integer
  • Kb is an integer greater than or equal to 4.
  • the basic matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the number of rows and columns of the upper left sub-matrix Hb1 and the upper left sub-matrix Hb2 are both It is smaller than the number of rows and columns of the base matrix Hb, and the upper left corner submatrix Hb1 is the upper left corner submatrix of the upper left corner submatrix Hb2. That is, the basic matrix Hb includes at least one of the following features:
  • the upper left sub-matrix Hb1 is intersected by the front L0 line and the front Kb+4 column of the matrix Hb
  • the set configuration, the number of elements of the corresponding non-zero Z*Z square matrix of each row of the upper left corner sub-matrix Hb1 is less than or equal to Kb+2 and greater than or equal to Kb-2, and the square of the last four columns of the upper left sub-matrix Hb1
  • the matrix is a lower left triangular matrix or a quasi-lower left triangular matrix; and/or
  • the upper left sub-matrix Hb2 is composed of an intersection of a front Kb row and a first 2*Kb column of the matrix Hb, and all elements of the sub-matrix formed by the intersection of the first 4 rows and the last Kb-4 column of the upper left sub-matrix Hb2 All of the elements corresponding to the Z*Z zero square matrix, the submatrix formed by the intersection of the last kb-4 row and the last kb-4 column of the upper left submatrix Hb2 is a size of (kb-4)*(kb-4).
  • the Kb+1 column of the upper left sub-matrix Hb2 has only one element corresponding to the non-zero Z*Z square matrix, if the upper left sub-matrix Hb1
  • the square matrix of the last four columns is a quasi-lower triangular matrix, and all elements of the Kb+1 column of the upper left submatrix Hb2 are elements corresponding to the zero Z*Z square matrix;
  • intersection of the last kb-4 row and the front kb column of the upper left sub-matrix Hb2 constitutes a sub-matrix, and the number of elements of the corresponding non-zero Z*Z square matrix of each row in the sub-matrix is less than or equal to Kb-2;
  • Nb is greater than or equal to 2*Kb and L0 is equal to 4 or 3.
  • the expansion factor Z supports a set of determined values ⁇ z 1 , z 2 , z 3 ..., z V ⁇ , where z 1 , z 2 , . . . , z V are arranged in ascending order, z r , z s , z t , z u are expansion factors of the four determined values in the set and satisfy z 1 ⁇ z r ⁇ z s ⁇ z t ⁇ z u ⁇ z V , wherein V, r, s, t, u is a subscript, 1 ⁇ r ⁇ s ⁇ t ⁇ u ⁇ V, and V is an integer greater than or equal to 2;
  • the girth of all systematic bits having a weight greater than 2 in each LDPC codeword is equal to 8, in Each of the LDPC code words has a girth greater than or equal to 10;
  • each codeword bit of one LDPC codeword corresponds to each column of the parity check matrix
  • the coding method of the structured LDPC code further includes:
  • the upper left sub-matrix Hb3 is composed of the intersection of the first 2*kb row and the first 3*Kb column of the base matrix Hb to form the upper left sub-matrix Hb3, and the intersection of the last Kb row and the last Kb column of Hb3 constitutes a sub-matrix.
  • All elements of the submatrix formed by the intersection of the pre-Kb line and the last Kb column of Hb3 are elements corresponding to the Z*Z zero square matrix
  • the Kb+1 column to the 2*Kb column of Hb3 constitute a submatrix, and there are only one element of each corresponding non-zero square matrix in each column of the L1 column of the submatrix, and the remaining Kb-L1 column in the submatrix All the entries are elements corresponding to the Z*Z zero square matrix, where L1 is an integer greater than or equal to 0 and less than Kb;
  • Nb is greater than or equal to 3*Kb.
  • Nb is a determined positive integer from 2*Kb to 12*Kb.
  • Kb takes an integer between 2 and 16.
  • the eMMB scenario and the URLLC scenario use different Kb values.
  • the number of elements of the corresponding non-zero Z*Z square matrix of the g-th row of the base matrix Hb is less than or equal to the number of elements of the non-zero Z*Z square matrix corresponding to the g+1 row.
  • g 1, 2, ..., Nb-1.
  • the encoding module 702 is configured to perform an LDPC encoding operation of obtaining Nb ⁇ z bit codewords from source data of (Nb-Mb) ⁇ z bits according to the basic matrix and its corresponding spreading factor, where z is an expansion factor, z is a positive integer greater than or equal to 1.
  • the embodiment of the present invention further provides a decoding device for a structured LDPC code, and the structure thereof is as shown in FIG.
  • the determining module 801 is configured to determine a base matrix used for decoding, and the basic check matrix includes the following features:
  • i is the row index of the base matrix
  • j is the column index of the base matrix
  • Kb Nb-Mb
  • Nb is an integer
  • Kb is an integer greater than or equal to 4.
  • the basic matrix Hb further includes at least one of the following features:
  • the upper left sub-matrix Hb1 is composed of an intersection of a front L0 row and a front Kb+4 column of the matrix Hb, and the number of elements of the corresponding non-zero Z*Z square matrix of each row of the upper left sub-matrix Hb1 is less than or equal to Kb+2 and greater than or equal to Kb-2, the last four of the upper left sub-matrix Hb1
  • the square matrix of the column is a lower left triangular matrix or a quasi-lower left triangular matrix; and/or
  • the upper left sub-matrix Hb2 is composed of an intersection of a front Kb row and a first 2*Kb column of the matrix Hb, and all elements of the sub-matrix formed by the intersection of the first 4 rows and the last Kb-4 column of the upper left sub-matrix Hb2 All of the elements corresponding to the Z*Z zero square matrix, the submatrix formed by the intersection of the last kb-4 row and the last kb-4 column of the upper left submatrix Hb2 is a size of (kb-4)*(kb-4).
  • the Kb+1 column of the upper left sub-matrix Hb2 has only one element corresponding to the non-zero Z*Z square matrix, if the upper left sub-matrix Hb1
  • the square matrix of the last four columns is a quasi-lower triangular matrix, and all elements of the Kb+1 column of the upper left submatrix Hb2 are elements corresponding to the zero Z*Z square matrix;
  • intersection of the last kb-4 row and the front kb column of the upper left sub-matrix Hb2 constitutes a sub-matrix, and the number of elements of the corresponding non-zero Z*Z square matrix of each row in the sub-matrix is less than or equal to Kb-2;
  • Nb is greater than or equal to 2*Kb and L0 is equal to 4 or 3.
  • the expansion factor Z supports a set of determined values ⁇ z1, z2, z3..., zV ⁇ , where z1, z2, ..., zV are arranged in ascending order, zr, zs, zt, zu are The expansion factor of the four determined values in the set satisfies z1 ⁇ zr ⁇ zs ⁇ zt ⁇ zu ⁇ zV, wherein V, r, s, t, u are subscripts, 1 ⁇ r ⁇ s ⁇ t ⁇ u ⁇ V, V is an integer greater than or equal to 2;
  • each codeword bit of one LDPC codeword corresponds to each column of the parity check matrix
  • the basic matrix Hb further has the following features:
  • the upper left sub-matrix Hb3 is composed of the intersection of the first 2*kb row and the first 3*Kb column of the base matrix Hb to form the upper left sub-matrix Hb3, and the intersection of the last Kb row and the last Kb column of Hb3 constitutes a sub-matrix.
  • All elements of the submatrix formed by the intersection of the pre-Kb line and the last Kb column of Hb3 are elements corresponding to the Z*Z zero square matrix
  • the Kb+1 column to the 2*Kb column of Hb3 constitute a submatrix, and there are only one element of each corresponding non-zero square matrix in each column of the L1 column of the submatrix, and the remaining Kb-L1 column in the submatrix All the entries are elements corresponding to the Z*Z zero square matrix, where L1 is an integer greater than or equal to 0 and less than Kb;
  • Nb is greater than or equal to 3*Kb.
  • Nb is a determined positive integer from 2*Kb to 12*Kb.
  • Kb takes an integer between 2 and 16.
  • the eMMB scenario and the URLLC scenario use different Kb values.
  • the number of elements of the corresponding non-zero Z*Z square matrix of the g-th row of the base matrix Hb is less than or equal to the number of elements of the non-zero Z*Z square matrix corresponding to the g+1 row.
  • g 1, 2, ..., Nb-1.
  • the decoding module 802 is configured to perform an LDPC decoding operation for obtaining (Nb-Mb) ⁇ z bit information data from the Nb ⁇ z bit codeword according to the basic matrix and the corresponding spreading factor, where z is an expansion factor , z is a positive integer greater than or equal to 1.
  • the decoding module 802 includes:
  • the row updating unit 8021 of the base matrix is configured to perform a row update on the basic matrix by using a hierarchical BP algorithm or a modified minimum sum algorithm, including:
  • the side information is check node to variable node information
  • the decoding decision unit 8022 is configured to calculate the codeword log likelihood ratio using the side information, perform a hard decision, and check whether it is correct, if correct, output the correct codeword, and if it is wrong, continue the decoding process.
  • the embodiments of the present invention provide a coding method, a decoding method, an encoding apparatus, and a decoding apparatus for a structured LDPC code.
  • a basic matrix including K0 upper and lower adjacent pairs used for encoding or decoding By determining the basic matrix including K0 upper and lower adjacent pairs used for encoding or decoding, encoding or decoding is completed according to the basic matrix and its corresponding spreading factor, and high-speed line LDPC encoding and decoding is realized, and the solution is solved.
  • the technical solution provided by the embodiments of the present invention can be applied to an error correction coding technology for data transmission in a digital communication system, and an LDPC code with improved efficiency or reduced complexity is obtained, which is particularly suitable for an ultra-high speed scenario.
  • Embodiments of the present invention also provide a storage medium.
  • the storage medium can be configured to store program code for performing the following steps:
  • the basic matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein the upper left corner
  • the number of rows and the number of columns of the matrix Hb1 and the upper-left sub-matrix Hb2 are both smaller than the number of rows and columns of the base matrix Hb, and the upper-left sub-matrix Hb1 is the upper-left sub-matrix of the upper-left sub-matrix Hb2;
  • the spreading factor Z corresponding to the basic matrix Hb performs an LDPC encoding operation on the source information bit sequence to obtain a codeword sequence, where Z is a positive integer greater than or equal to 1.
  • the foregoing storage medium may include, but not limited to, a USB flash drive, a Read-Only Memory (ROM), a Random Access Memory (RAM), a mobile hard disk, and a magnetic memory.
  • ROM Read-Only Memory
  • RAM Random Access Memory
  • a mobile hard disk e.g., a hard disk
  • magnetic memory e.g., a hard disk
  • Embodiments of the present invention also provide another storage medium.
  • the foregoing storage medium may be configured to store program code for performing the following steps:
  • hb ij represents the elements of the i-th row and j-column of the base matrix Hb
  • i is the row index of the base matrix
  • j is the column index of the base matrix
  • Kb Nb-Mb
  • Kb is greater than An integer equal to 4.
  • the basic matrix Hb includes one or more sub-matrices including: an upper left sub-matrix Hb1 and an upper left sub-matrix Hb2, wherein The number of rows and the number of columns of the upper left corner submatrix Hb1 and the upper left corner submatrix Hb2 are both smaller than the number of rows and columns of the base matrix Hb, and the upper left corner submatrix Hb1 is the upper left submatrix of the upper left corner submatrix Hb2;
  • the codeword of the preset number of bits is subjected to a decoding operation to obtain a source information bit sequence, wherein Z is a positive integer greater than or equal to 1.
  • the LDPC code supports V code lengths, each code length has a base matrix Hb having the same size Mb*nb, and the position of the corresponding non-zero square matrix element of the base matrix of each code length appears in the matrix. All are the same or at most 3 different (ie, the positions of up to three non-zero square elements in the position of the corresponding non-zero square matrix elements of the base matrix of each code length appearing in the matrix are different).
  • the spreading factor Z supports a set of determined sets ⁇ z 1 , z 2 , z 3 , . . .
  • each code length is one element of the set of spreading factors, each code length
  • the values of the non-zero square matrix elements are calculated by the corresponding non-zero square matrix elements of the maximum code length, and at least include one of the following methods:
  • z vmax is the extension of the maximum code length Factor
  • z v is the expansion factor of the vth code length
  • h ij v corresponding non-zero square matrix elements of the i-th row and the j-th column of the v-th code length.
  • Mod is the modulo operation
  • [] is the next rounding operation
  • Round is the rounding operation.
  • the positive integer value pl is an element of the subset Pset, wherein the subset Pset is a subset of all positive integer factors of Pmax, n is a natural number, and Pmax is greater than or equal to 4. Integer.
  • the values of the non-zero square matrix elements in the basic matrix corresponding to each code length described above are calculated by using the non-zero square matrix elements of the basic matrix corresponding to the maximum code length, including three modes. Wherein, if the calculation is performed according to mode 1, the basic matrix of other expansion factors is obtained, including two steps:
  • Step 1 The first part of the formula 1 is calculated as follows:
  • the basic matrix for calculating other expansion factors (less than 1280) according to the method described in step 1 above includes the following:
  • Hb' 1 , Hb' 2 , Hb' 3 (the spreading factors are ⁇ 32, 96, 160 ⁇ respectively) are as follows:
  • Hb' 4 , Hb' 5 (the expansion factors are ⁇ 256, 768 ⁇ respectively) are as follows:
  • Step 2 According to the latter part of the calculation formula of the mode 1, as follows
  • h' ij v is the i-th row and the j-th column element in the base matrix Hb' v corresponding to the expansion factor zv, and the value of zv is ⁇ 32, 96, 160, 256, 768 ⁇ . Therefore, according to the calculation method of step 2, the remaining five basic matrices (the corresponding expansion factors are respectively ⁇ 32, 96, 160, 256, 768 ⁇ ) can be calculated, as follows:
  • the method of the method 1 has the beneficial effects that a plurality of code lengths can be used in the same set of decoders, and only a small number of control circuits need to be added, that is, the solution enables the LDPC code to support very flexible.
  • the code length design solves the problem of lack of flexible code length of the existing LDPC code; and can ensure that the matrix characteristic of the LDPC code does not change much from the large expansion factor to the small expansion factor, thereby ensuring that the LDPC code is in the Maintaining relatively high decoding performance over a large code length range.
  • FIG. 9 corresponds to the LDPC code basic matrix.
  • the information storage mode of a column includes the storage of external information and channel demodulation information.
  • the value of n is a maximum of 5, so 5 words are required, as in word0 to word4 in Fig. 9; since Pmax is equal to 256, the size of each word is 256.
  • the codeword information of length 768 may be interleaved before decoding, the interleaving method includes: determining the deinterleaving method by at least one parameter: the parameter Pmax, the parameter Pl and the parameter n.
  • the bit reverse order sequential interleaving method is: the index before the interleaving is F0, and the F0 is converted.
  • Y is the small data block to be decoded before interleaving
  • Y' is the small data block to be decoded after interleaving
  • examples of F0 and F1 the decimal value of F0 is 15, and the 8-bit binary sequence is 00001111.
  • the method includes: determining the deinterleaving method by at least one of the following parameters: the parameter Pmax, the parameter pl, and the parameter n.
  • the codeword bits are then selected from the deinterleaved codeword data sequence.
  • the length from the decimal conversion to the binary sequence described above is determined by Pmax, and Pmax needs a positive integer power equal to 2, which is the length of the binary sequence.
  • the interleaving and de-interleaving methods described above may also be used, and the codewords of the preset number of bits are first interleaved before decoding the codewords of the preset number of bits.
  • the interleaving method is consistent with the above method, and then LDPC decoding is performed to obtain a decoded sequence, and then the decoded sequence is deinterleaved, and corresponding bits are selected to obtain a source information bit sequence.
  • the LDPC code decoder (word size 256, with 5 word memory design) can support all expansion factors to satisfy the following: all positive integer factors of Pmax and all of 5 or less The integer value obtained by multiplying a positive integer.
  • Pmax is the 8th power of 2
  • Pmax is not limited to the positive integer power of 2, and may be greater than any other integer greater than 4.
  • the source information bit sequence is subjected to LDPC encoding operation to obtain a codeword sequence.
  • the coding method described above may be adopted.
  • a decoding method, an interleaving method, and a de-interleaving method, and related algorithms Summarizing the above coding side interleaving method: first, the information bits before encoding are uniformly segmented, each segment length is pl bits; then, Pmax-pl bits are added after each segment, and each segment has a Pmax bit after adding; then, A binary bit flip BRO interlace of length Pmax is performed for each segment.
  • the coded codeword bits are uniformly segmented, and each segment length is Pmax bits; then, each segment is subjected to binary bit flip BRO deinterleaving of length Pmax.
  • Step 1 The method 2 calculates the partial calculation formula of the formula as follows
  • the basic matrix for calculating other expansion factors (less than 1280) according to the method described in step 1 of the above manner 2 includes the following:
  • Hb' 1 , Hb' 2 , Hb' 3 (the spreading factors are ⁇ 32, 96, 160 ⁇ respectively) are as follows:
  • Hb' 4 , Hb' 5 (the spreading factors are ⁇ 256, 768 ⁇ respectively) are as follows:
  • Step 2 According to the remaining calculation formula of the calculation formula of the mode 2, as follows:
  • the method of the method 2 has the beneficial effects that a plurality of code lengths can be used in the same set of decoders, and only a small number of control circuits need to be added, that is, the solution enables the LDPC code to be very flexible.
  • the code length design solves the problem of lack of flexible code length of the existing LDPC code; and can ensure that the matrix characteristic of the LDPC code does not change much from the large expansion factor to the small expansion factor, thereby ensuring that the LDPC code is in the Maintaining relatively high decoding performance over a large code length range.
  • Step 1 The method 3 calculates the partial calculation formula of the formula as follows
  • step 1 in the mode 3 is the same as the method of step 1 in the mode 1 described above. Therefore, the basic matrices Hb' 1 , Hb' 2 , Hb' 3 , Hb' 4 and Hb' 5 of other spreading factors (less than 1280) are calculated according to the method described in the first step of the mode 3 described above. The calculations obtained in the first step of the mode 1 and the mode 2 are equal, and are not described here.
  • Step 2 According to the remaining calculation formula of the calculation formula of the mode 1, as follows
  • the method of the third method has the beneficial effects that a plurality of code lengths can be used in the same set of decoders, and only a few control circuits need to be added, that is, the solution enables the LDPC code to support very flexible.
  • the code length design solves the problem of lack of flexible code length of the existing LDPC code; and can ensure that the matrix characteristic of the LDPC code does not change much from the large expansion factor to the small expansion factor, thereby ensuring that the LDPC code is in the Maintaining relatively high decoding performance over a large code length range.
  • the LDPC code supports V kinds of code lengths, each code length corresponding to a basic matrix Hb having the same size Mb*Nb, and the position of the corresponding non-zero square matrix element of the basic matrix of each code length appearing in the matrix All are the same or at most 3 different.
  • the spreading factor Z supports a set of determined sets ⁇ z 1 , z 2 , z 3 , . . . , z Vmax ⁇ , and the spreading factor of each code length is one element of the set of spreading factors, each code length
  • the values of the non-zero square matrix elements are calculated by the corresponding non-zero square matrix elements of the maximum code length, that is,
  • z Vmax is the extension of the maximum code length Factor
  • z v is the expansion factor of the vth code length
  • h ij v the non-negative-1 element of the i-th row and the j-th column of the v-th code length.
  • Mod is the modulo operation
  • [] is the next rounding operation
  • Round is the rounding operation.
  • the positive integer value pl is an element of the subset Pset, wherein the subset Pset is a subset of all positive integer factors of Pmax, n is a natural number, and Pmax is greater than or equal to
  • the submatrix is the block B corresponding to the Mb ⁇ Mb of the check bits, and the base matrix Hb 6 can be described as [A, B]; the other basic matrices under the other code lengths ⁇ 20, 40, 80, 160, 240 ⁇
  • the same matrix parameters Kb, Nb, Mb) are respectively described above, and will not be described again here.
  • the spreading factor of various code lengths ⁇ 100, 200, 400, 800, 1200, 2400 ⁇ is one of the elements of the spreading factor set ⁇ 20, 40, 80, 160, 240, 480 ⁇ , and the corresponding non-coding length of each code length
  • the value of the zero square matrix element is calculated by the corresponding non-zero square matrix element with a maximum code length of 2400, that is,
  • the value of ⁇ corresponding to any expansion factor in 160, 240, 480 ⁇ is as follows ⁇ 24, 12, 6, 3, 2, 1 ⁇ ; further, according to the above formula, the corresponding code length is ⁇ 100, 200, 400,
  • the basic matrices of 800, 1200 ⁇ (corresponding to the set of expansion factors is ⁇ 20, 40, 80, 160, 240 ⁇ ) are as follows:
  • At least three corresponding non-zero square matrix elements are different between all the basic matrices described above.
  • six basic matrices ⁇ Hb 1 , Hb 2 , Hb 3 , Hb 4 , and Hb 5 may be found.
  • There are at most three corresponding non-zero square matrix elements between Hb 6 ⁇ and the beneficial effect is that the basic matrix can be guaranteed to maintain a uniform basic matrix characteristic (such as degree distribution), and a new matrix can be added.
  • modules or steps of the present invention described above can be implemented by a general-purpose computing device that can be centralized on a single computing device or distributed across a network of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein.
  • the steps shown or described are performed, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps thereof are fabricated as a single integrated circuit module.
  • the invention is not limited to any specific combination of hardware and software.
  • the solution provided by the embodiment of the present invention can be used in the LDPC encoding and decoding process, and by designing a suitable basic matrix, according to the basic matrix and its corresponding expansion factor, encoding or decoding is completed, and ultra-high speed is realized.
  • the LDPC encoding and decoding implements the coding and decoding performance close to the turbo code, and solves the problem that the existing LDPC codec cannot support the incremental redundancy HARQ and the lack of flexibility.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

一种结构化LDPC的编码、译码方法及装置,其中,上述编码方法包括:确定编码使用的基础矩阵,所述基础矩阵包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;根据所述基础矩阵和与所述基础矩阵对应的扩展因子Z,对源信息比特序列进行LDPC编码运算,得到码字序列,其中,Z是大于等于1的正整数。解决了相关技术中LDPC编译码器无法支持递增冗余HARQ和灵活性不足的问题。

Description

结构化LDPC的编码、译码方法及装置 技术领域
本发明涉及通信领域,具体而言,涉及一种结构化低密度奇偶校验码(Low Density Parity Check Codes,简称为LDPC)的编码、译码方法及装置。
背景技术
随着无线数字通信的发展及各种高速率、突发性强的业务的出现,人们对纠错编码技术提出了愈来愈高的要求,图1为一种典型的数字通信系统。LDPC是一类可以用非常稀疏的奇偶校验矩阵或者二分图定义的线性分组码,最初由Gallager发现,所以称为Gallager码。经过数十年的沉寂,随着计算机硬件和相关理论的发展,MacKay和.Neal重新发现了它,并证明了它具有逼近香农限的性能。最新研究表明,LDPC码具有以下特点:低译码复杂度,可线性时间编码,具有逼近香农限性能,可并行译码,以及在长码长条件下优于Turbo码。
LDPC码是一种特殊的线性分组码。通信中,每发送一个分组长度为N比特的码字,为了保证其具有一定的纠错能力,需要有M个校验比特,每个码字都要求满足HxT=0T,其中H为二元域上M×N维的奇偶校验矩阵。所有的运算都是在二元域GF(2)上进行的,这里加和减是“异或”运算,而乘是“与”运算。
LDPC码是一种基于稀疏校验矩阵的线性分组码,正是利用它的校验矩阵的稀疏性,才能实现低复杂度的编译码,从而使得LDPC码走向实用化。前面提到的Gallager码是一种正则的LDPC码(regular ldpcc),而Luby和Mitzenmacher等人对Gallager码进行了推广,提出非正则的LDPC码(irregular ldpcc)。Gallager最初提出的编码具有规则的码结构,其校验矩阵是稀疏矩阵,且每一行具有相同个数的1,每一列也具有相同个数的1。M.G.Luby认为,如果允许校验矩阵的行或者列中非零元的个数发生变化, 同时保证矩阵的稀疏性,那么编码的译码算法仍然适用,而编码的性能却能够得到极大的提高,使之能够达到甚至超过Turbo码的性能。这是因为在这种编码结构中,如果对应二分图的左节点和右节点有合适的次数分布(degree distribution),那么在译码时将会存在一种波状效应(waveform effect),将极大地提高译码性能。非正则码就是这种允许同种节点有不同次数的低密度的编码,而Gallager最初提出的编码相应的称为正则码。
LDPC奇偶校验矩阵的图形表示形式是二分图。二分图和校验矩阵之间具有一一对应的关系,一个M*N的奇偶校验矩阵H定义了每个具有N比特的码字满足M个奇偶校验集的约束。一个二分图包括N个变量节点和M个奇偶校验节点。当第m个校验涉及到第n个比特位,即H中第m行第n列的元素Hm,n=1时,将有一根连线连接校验节点m和变量节点n。二分图中,任何同一类的节点之间都不会有连接,并且二分图中的总边数和校验矩阵中非零元素的个数相等。
概念girth用来定量描述二分图中的短圈。在图论中,二分图的girth是指一个图中最短圈的圈长,例如:某个二分图有长度为6、8、10、12和长度更长的圈,则该二分图的girth为6,变量节点的girth则指通过该节点的最短圈的圈长,由于一个变量节点唯一对应一个码字比特,所以一个码字比特的girth就是一个变量节点的girth。结构化LDPC码
结构化LDPC码是一类工业界最流行的LDPC码,具有最广阔的应用,目前出现在IEEE802.11n/ad、IEEE802.16e等国际标准中,这一类LDPC码在学术界又常常被称为准循环LDPC码或多边LDPC码。
这类LDPC码结构化的LDPC码的奇偶校验矩阵H设为(M×z)×(N×z)矩阵,它是由M×N个分块矩阵构成,每个分块矩阵都是z×z的基本置换矩阵的不同幂次,基本置换矩阵为单位阵时,它们都是单位阵的循环移位矩阵(文中默认为右移)。通过这样的幂次j就可以唯一标识每一个分块矩阵,单位矩阵的幂次可用0表示,矩阵一般用-1来表示。这样,如果将H的每个分块矩阵都用它的幂次代替,就得到一个M×N的幂次矩阵Hb。这 里,定义Hb是H的基础矩阵,H称为Hb的扩展矩阵。在实际编码时,z=码长/基础矩阵的列数N,称为扩展因子。
例如,矩阵
Figure PCTCN2017070488-appb-000001
可以用下面的参数z和一个2×4的基础矩阵Hb扩展得到:
z=3和
Figure PCTCN2017070488-appb-000002
准确的定义如下:(N,K)结构化LDPC码是由大小为(mb×z)×(nb×z)的奇偶校验矩阵H定义,其中奇偶校验矩阵H是由大小为mb×nb的基础矩阵Hb、扩展因子z和基本置换矩阵P三个变量确定。信息序列长度K=(nb-mb)×z,码字长度N=nb×z,码率r=k/n。基础矩阵Hb中所有元素置换成全0方阵或者基本置换矩阵P的hbij次幂矩阵得到扩展后奇偶校验矩阵H,其中hbij是Hb中的元素。基础矩阵Hb的定义如下,
Figure PCTCN2017070488-appb-000003
扩展后奇偶校验矩阵H的定义如下,
Figure PCTCN2017070488-appb-000004
因此,也可以说LDPC码的编码器是由基础矩阵Hb,扩展因子z及所选择的基本置换矩阵唯一生成的。根据上述基础矩阵的定义,可以看出 在给定扩展因子(一个大于1的整数z)的条件下,基础矩阵和奇偶校验矩阵本质上是一个东西。
LDPC码编码
系统分组码的直接编码方法是:把一个码字x划分为N-M个信息比特s和M个校验比特c,相应地,把M×N的奇偶校验矩阵H划分为分别对应于信息比特和校验比特的M×(N-M)和M×M大小的两块,即H=[A|B]。根据H×x=0,可得:
Figure PCTCN2017070488-appb-000005
于是可以得到A×s+B×c=0,进一步推出c=B-1As。当块B采用特殊的矩阵结构,如严格下三角结构(半随机矩阵)、双下三角结构等,则B-1具有非常简单的形式,可以直接按照上面式子直接计算得到码字中校验比特部分c,并且可以保证编码器具有线性复杂度。
也可以采用Richarson线性时间编码算法:奇偶校验矩阵H具有准下三角结构,设H具有如下形式:
Figure PCTCN2017070488-appb-000006
设编码后码字是x=(s,p1,p2),这里s为编码码字的系统比特部分,p1和p2为码字的校验比特部分,p1的长度为g,p2长度为(m-g)。上式中,A的维数是(m-g)×(n-m),B是(m-g)×g,T是(m-g)×(m-g),C是g×(n-m),D是g×g,E是g×(m-g)。所有这些矩阵都是稀疏矩阵,而T是下三角矩阵,主对角线元素全为1。校验比特部分可以由下面式子求得:
Figure PCTCN2017070488-appb-000007
Figure PCTCN2017070488-appb-000008
其中,
Figure PCTCN2017070488-appb-000009
考虑到结构化LDPC码的向量特征,还可以考虑采用向量译码的方法,如果一个结构化LDPC码的校验位部分是一个严格下三角矩阵,则可以按照以下向量方式来编码,非常成熟和简单。
(n,k)结构化LDPC码的编码码字为c=(x,b),其中x=(x0,x1,…,xk-1)是信息序列,b=(b0,b1,…,bn-k-1)是校验序列。
对输入的k个比特的信息序列x进行LDPC编码,产生含有n-k个比特的校验序列b,LDPC编码码字c=[x,b],其中,n=nb×z,k=kb×z,kb=nb-mb,z是扩展因子。信息序列x可以分成kb个长度为z的子序列:
x=[x(0),x(1),x(2),…,x(kb-1)]
其中,每个子序列如下:
x(i)=[xi×z,xi×z+1,xi×z+2,…,xi×z+z-1]
校验序列b分成mb个长度为z的子序列:
b=[b(0),b(1),b(2),…,b(mb-1)]
其中,每个子序列如下:
b(i)=[bi×z,bi×z+1,bi×z+2,…,bi×z+z-1]
定义中间变量序列v,其中v分为mb个长度为z的子序列:
v=[v(0),v(1),v(2),…,v(mb-1)]
其中,每个子序列如下:
v(i)=[vi×z,vi×z+1,vi×z+2,…,vi×z+z-1]
LDPC码编码步骤如下:
计算中间变量序列v:
Figure PCTCN2017070488-appb-000010
计算校验序列b:
Figure PCTCN2017070488-appb-000011
Figure PCTCN2017070488-appb-000012
计算LDPC码字c=[x,b]。
总之,LDPC码的编码器可以由LDPC奇偶校验矩阵H唯一描述,具 体的编码方法已经非常成熟和简单,所此处不再赘述。另外,LDPC码的奇偶校验矩阵不仅仅决定了LDPC码译码器的性能,而且决定了LDPC码的编码器和译码器的复杂度、存储空间和处理延时,还决定了什么可以支持递增冗余HARQ和是否足够灵活。所以,寻找合适的LDPC码的奇偶校验矩阵结构是至关重要的,决定了LDPC码的使用前景。
在具体实现时,可采上述直接方法或者Richarson方法或者其它方法运算,来完成从N-M比特的源数据得到N比特码字的编码功能。事实上,该编码器就是用软件或硬件实现式中稀疏矩阵的乘法和加法运算,对于基于单位阵及其循环移位矩阵的LDPC码,稀疏矩阵的乘法运算可以由多个z位(z为扩展因子)的循环移位寄存器和多个z位的加法器构成,而稀疏矩阵的加法运算就是由上述的多个z位的加法器完成,该多个z位循环移位寄存器和多个z位加法器就构造出一个硬件电路实现的LDPC编码器。
LDPC的译码
LDPC奇偶校验矩阵的图形表示形式是二分图。二分图和校验矩阵之间具有一一对应的关系,一个M*N的奇偶校验矩阵H定义了每个具有N比特的码字满足M个奇偶校验集的约束。一个二分图包括N个变量节点和M个奇偶校验节点。当第m个校验涉及到第n个比特位,即H中第m行第n列的元素Hm,n=1时,将有一根连线连接校验节点m和变量节点n。二分图中,任何同一类的节点之间都不会有连接,并且二分图中的总边数和校验矩阵中非零元素的个数相等。
LDPC码的信息传递译码算法假定变量节点是相互独立的,短圈的存在必然破坏了独立性的假设,使得译码性能明显下降。事实上,LDPC奇偶校验矩阵对应二分图的最短圈长度越长,即girth值越大,从变量节点发出的信息被传递给自身的正反馈信息将越小,则译码性能也越好。校验矩阵H的girth与基础矩阵Hb之间存在关联,通过数学推理和计算机仿真的验证,有了相关结论。
以下解释二分图的girth、节点的girth、边的girth。为了定量描 述二分图中的短圈,引入了girth的相关概念。二分图的girth是指一个图中最短圈的圈长,例如:某个二分图有长度为6、8、10、12和长度更长的圈,则该二分图的girth为6。二分图中,某个节点u的girth(the girth at node u)是指经过节点u的最短圈的圈长,例如:经过节点u有长度为8、10、12和长度更长的圈,则该节点u的girth为8。二分图中,某条边e的girth(the girth at node u)是指经过此边e的最短圈的圈长,例如:经过节点e有长度为8、10、12和长度更长的圈,则该节点u的girth为8。
一个变量节点的girth是指最短路径的长度,它等同于从这个节点出来的信息传递回该节点本身的最小迭代次数。在实际迭代次数达到这个最小迭代次数之前,与这个节点联系的信息可以最优地传递给二分图的剩余部分。如果某个变量节点的girth如果越大,那么该变量节点发出的信息被传递给自身的正反馈信息将越小,则译码性能也越好。所以,使变量节点的girth尽量大对码性能的提高是有利的。综上所述,构造高LDPC码原则如下:首先,被选择的码的最短圈的长度(girth)应该尽量大;其次,对于具有同样大小girth的码,被选择的码的最短圈的数目应该尽量少。
在实际应用中,由基础矩阵扩展为奇偶校验矩阵,所述奇偶校验矩阵也可以称为扩展矩阵或者二进制矩阵。分析校验矩阵的拓扑可知,扩展矩阵中z×z的分块矩阵和基础矩阵的元素是唯一对应的,如果基础矩阵中某些元素不构成短圈,那么这些元素对应的分块矩阵在扩展矩阵中也将不构成短圈。所以,为了研究扩展矩阵的短圈,仅仅需要研究当基础矩阵中出现短圈时的扩展矩阵。
分析校验矩阵和二分图的拓扑结构,当基础矩阵Hb中出现长度为4的 短圈的时候,Hb的扩展矩阵H才可能出现长度为4或者更大的短圈,如下:有四个z×z的分块矩阵Pi,Pj,Pk,Pl对应的幂次元素i,j,k,l在Hb中构成了长度为4的短圈,若mod(i-j+k-l,z)=0,则Pi,Pj,Pk,Pl在H中构成了长度为4的短圈;若mod(i-j+k-l,z)=z/2,则Pi,Pj,Pk,Pl在H中构成了长度为8的短圈。其它情况下,Pi,Pj,Pk,Pl在H中构成了长度为12的短圈或者不构成短圈。
分析校验矩阵和二分图的拓扑结构,当基础矩阵Hb中出现长度为6的短圈的时候,Hb的扩展矩阵H才可能出现长度为6或者更大的短圈,如下:有六个z×z的分块矩阵Pi,Pj,Pk,Pl,Pm,Pn对应的幂次元素i,j,k,l,m,n在Hb中构成了长度为6的短圈,若mod(i-j+k-l+m-n,z)=0,则Pi,Pj,Pk,Pl,Pm,Pn在H中构成了长度为6的短圈;若mod(i-j+k-l+m-n,z)=z/2,则Pi,Pj,Pk,Pl,Pm,Pn在H中构成了长度为10的短圈。其它情况下,Pi,Pj,Pk,Pl,Pm,Pn在H中构成了长度大于等于12的短圈或者不构成短圈。
分析校验矩阵和二分图的拓扑结构,当基础矩阵Hb中出现长度为8的短圈的时候,Hb的扩展矩阵H才可能出现长度为8或者更大的短圈,如下:有八个z×z的分块矩阵Pi,Pj,Pk,Pl,Pm,Pn,,Ps,Pt对应的幂次元素i,j,k,l,m,n,s,t在Hb中构成了长度为8的短圈;若mod(i-j+k-l+m-n+s-t,z)=0,则Pi,Pj,Pk,Pl,Pm,Pn,Ps,Pt在H中构成了长度为8的短圈;其它情况下,Pi,Pj,Pk,Pl,Pm,Pn,Ps,Pt在H中构成了长度为12的短圈或者不构成短圈。
基础矩阵修正
如果对于每个不同的扩展因子无法采用同一基础矩阵,那么,对于每个不同的码长,所述的LDPC码编译码器都需要存储一个基础矩阵,当码长很多时,就要存储很多基础矩阵,这样会占用很大的存储空间或者使得硬件实现电路很复杂。
修正是利用其它码长的扩展因子对基础矩阵Hb中的非负值元素进行修正,修正后的元素值应小于该码长下的扩展因子值,修正算法可以采用取模(mod)、取整(scale+floor)或舍入(scale+round)等。设Pi,j为基础矩阵第i行第j列的非负元素,P’i,j为修正以后的元素,有:
对于取模(mod)方法:
Figure PCTCN2017070488-appb-000013
对于取整(scale+floor)方法:
Figure PCTCN2017070488-appb-000014
对于舍入(scale+round)方法:
Figure PCTCN2017070488-appb-000015
其中,N为基础矩阵列数,n为要生成奇偶校验矩阵的低密度奇偶校验码的码长。mod为取模操作,[]为下取整操作,Round为四舍五入操作。这里,假定最大码长为2304。
例如,对于码长1152比特低密度奇偶校验码,设其基础矩阵某个非负元素为93,则其修正结果为:
对于取模(mod)方法:
Figure PCTCN2017070488-appb-000016
对于取整(scale+floor)方法:
Figure PCTCN2017070488-appb-000017
对于舍入(scale+round)方法:
Figure PCTCN2017070488-appb-000018
LDPC码如果使用当前最流行的分层译码,对数似然比信息的读写严重影响了LDPC码的流水线的排列。具体地,在高码率的时候,对于普通 的LDPC码码结构,译码器需要基础矩阵一行完成处理以后,才可以开始下一级流水线,如果一级流水特别长,将严重降低译码器的效率。
在3GPP标准中,第5代移动通信标准的新空口(5G New RAT)正式立项了,这个新空口需要支持超高吞吐量和低的处理延迟,所以需要新的编码方案来代替当前的turbo编码方案。但是,当前的通信标准的LDPC码不能够很好地支持递增冗余HARQ,不具有足够的码率和传输块大小的灵活性,所以需要设计新的LDPC编码结构,在保证接近turbo码的性能和灵活性的条件下可以支持递增冗余HARQ,而且还需要有比turbo码低的多的复杂度和超高速处理能力。
发明内容
本发明实施例提供了一种结构化LDPC的编码、译码方法及装置,以至少解决相关技术中现有LDPC编译码器无法支持递增冗余HARQ和灵活性不足的问题。
根据本发明的一个实施例,提供了一种LDPC的编码方法,包括:确定编码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数,i=1、…、Mb,j=1,…、Nb;所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,对源信息比特序列进行LDPC编码运算,得到码字序列,其中,Z是大于等于1的正整数。
根据本发明的一个实施例,提供了一种LDPC的译码方法,包括:
确定译码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系 统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数,i=1、…、Mb,j=1,…、Nb;所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,预设比特数的码字进行译码运算,得到源信息比特序列,其中,Z是大于等于1的正整数。
根据本发明的另一个实施例,提供了一种LDPC的编码装置,包括:
确定模块,设置为确定编码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数,i=1、…、Mb,j=1,…、Nb;
所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
编码模块,设置为根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,对源信息比特序列进行LDPC编码运算,得到码字序列,其中,Z是大于等于1的正整数。
根据本发明的又一个实施例,提供了一种LDPC的译码装置,包括:确定模块,设置为确定译码使用的基础矩阵Hb,其中,所述基础矩阵Hb 包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数,i=1、…、Mb,j=1,…、Nb;所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
译码模块,设置为根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,预设比特数的码字进行译码运算,得到源信息比特序列,其中,Z是大于等于1的正整数。
根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:
确定编码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数,i=1、…、Mb,j=1,…、Nb;所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,对源信息比特序列进行LDPC编码运算,得到码字序列,其中,Z是大于等于1的正整数。
根据本发明的再一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:
确定译码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系 统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数,i=1、…、Mb,j=1,…、Nb;所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,预设比特数的码字进行译码运算,得到源信息比特序列,其中,Z是大于等于1的正整数。
本发明实施例提供的方案,通过设计合适的基础矩阵,根据所述基础矩阵和其对应的扩展因子,完成编码或译码,实现了超高速度的LDPC编码和译码,实现了接近turbo码的编译码性能,解决了现有LDPC编译码器无法支持递增冗余HARQ和灵活性不足的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为相关技术中的数字通信系统的结构框图;
图2为本发明的实施例一提供的结构化LDPC码的编码器的结构示意图;
图3为本发明的实施例一中所使用的基础矩阵示意图;
图4为本发明的实施例二提供的结构化LDPC码的译码器的结构示意图;
图5为本发明的实施例三提供的一种结构化LDPC码的编码方法的流 程图;
图6为本发明的实施例四提供的一种结构化LDPC码的译码方法的流程图;
图7为本发明的实施例五提供的一种结构化LDPC码的编码装置的结构示意图;
图8为本发明的实施例五提供的一种结构化LDPC码的译码装置的结构示意图;
图9为本发明的实施例八提供的一种存储器存储方式的示意图一;
图10为本发明的实施例八提供的一种存储器存储方式的示意图二。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
对于传统的结构化LDPC码,往往无法支持递增冗余HARQ方案,或者往往无法提供超高吞吐量,或者无法达到接近turbo码的性能,或者灵活性不足。但是,基础矩阵的可能结构和组成方式的数量是极其巨大的,现有技术还没有一种综合可行的解决方法,也得不到满足这样要求的基础矩阵。
为了解决上述问题,本发明的实施例提供了一种结构化LDPC码的编码、译码方法及装置、编码器和译码器。本发明的实施例从实用性考虑,对多个码率和多种码长,使用同一个基础矩阵,通常是对应于最大码长而生成的,同时在不同码长时对该基础矩阵进行修正,本发明实施例通过定义不同码长的基础矩阵的Girth特征,保证了在各种码长条件下可以达到turbo码性能。但本发明不局限于此,也可适用于对每一个码长采用一个 基础矩阵的方式。
需要说明的是,本申请实施例中提供的解决方案并不限于本申请实施例中矩阵的结构,例如对应于系统比特的矩阵和对应于校验比特的矩阵的位置是可以左右互换的,凡是基于本申请实施例中的设计思想进行的编译码方案均落入本申请的保护范围之内。
实施例一
本发明实施例提供了一种数字通信中结构化低密度奇偶校验码LDPC的编码装置,其结构如图2所示,至少包括处理器202和存储器201。
所述存储器201,设置为至少存储编码使用的基础矩阵。
所述基础矩阵包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Nb是整数,Kb是大于等于4的整数。i=1、…、Mb,j=1,…、Nb。
所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵。
可选地,所述矩阵Hb的前L0行和前Kb+4列的交集构成了左上角子矩阵Hb1,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角矩阵;和/或
所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子矩阵Hb2的最后kb-4行和最后kb-4列的交集构成的子矩阵是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4 行、第Kb+1到Kb+3列的交集构成的子矩阵的所有元素都是对应零Z*Z方阵的元素;
若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列仅有一个对应非零Z*Z方阵的元素,若左上角子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的所有元素都是对应零Z*Z方阵的元素;
所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于Kb-2;
其中,Nb大于等于2*Kb,L0等于4或3。
2)所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4。对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;
当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC 码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。
其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,
每个码字比特的重量是指对应列中非零元素的个数,在这里,i=1,2,…,V。
根据所述基础矩阵和其对应的扩展因子Z,完成对(Nb-Mb)×Z比特的源信息比特序列LDPC编码运算,得到Nb×Z比特码字序列的,其中Z为扩展因子,Z是大于等于1的正整数。
可选地,所述上述基础矩阵Hb还可以包括:
该左上角子矩阵Hb3由所述基础矩阵Hb的前2*kb行和前3*Kb列的交集构成了左上角子矩阵Hb3,Hb3的最后Kb行和最后Kb列的交集构成子矩阵是一个大小为kb*kb的单位阵或者单位阵的循环移位矩阵;
Hb3的前Kb行和最后Kb列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素;
Hb3的第Kb+1列到2*Kb列构成一个子矩阵,在该子矩阵的L1列中每一列所有的对应非零方阵的元素只有1个,在这个子矩阵的剩余Kb-L1列的所有元素(entry)都是对应Z*Z零方阵的元素,其中,L1是大于等于0且小于Kb的整数;
其中,Nb大于等于3*Kb。
可选地,Nb是2*Kb到12*Kb的一个确定正整数。
可选地,Kb取值为2到16之间的一个整数。
可选地,增强移动宽带(Enhanced Mobile Broadband,简称为eMMB)场景和超高可靠和低延迟(Ultra-Reliable and Low latency Communication, 简称为URLLC)场景使用不同的Kb取值。
可选地,基础矩阵Hb的第g行的对应非零Z*Z方阵的元素个数小于等于g+1行对应非零Z*Z方阵的元素个数。其中,g=1,2,…,Nb-1。
可选地,所述基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=1、…、Nb。
需要指出,本发明不局限这种方式,还可以是最后一个元素为0,还可以任意元素是0。这些方式都可以保证,如果采用分层译码,可以不使用循环移位逆网络,可以明显减少路由开销,取得有益效果。
所述处理器202,设置为确定所述基础矩阵和扩展因子z,完成从(Nb-Mb)×z比特的源数据得到Nb×z比特码字的LDPC编码运算。
下面给一个更加具体的例子,符合以上描述要求的基础矩阵Hb如图3所示。
对于图3所示基础矩阵Hb,该矩阵Hb对应码率为1/3,矩阵Mb=16和Nb=24,Hb1是4*12的矩阵,Hb2是8*16的矩阵,Hb3是16*24的矩阵。该基础矩阵对应扩展因子z=336。图3的矩阵例子就同时满足Hb1的特征、Hb2的特征和Hb3的特征。当满足的Hb1的特征时候,2/3码率的LDPC码具有接近turbo码的性能,该矩阵只有4行,所以满足超高速处理的需要。由于满足的Hb2的特征时候,保证了LDPC具有优选的次数分布,同时由于满足特定TBS=336*8的girth要求,从而使得1/2码率的LDPC码具有接近turbo码的性能;该矩阵只有8行,所以满足超高速处理的需要;另外Hb1是Hb2的左上角子矩阵,属于嵌套结构,所以可以支持递增冗余HARQ。可选地,由于满足的Hb3的特征时候,保证了LDPC具有优选的次数分布,同时由于满足特定TBS=336*8的girth要求,从而使得1/3码率的LDPC码具有接近turbo码的性能;该矩阵只有16行,所以满足超高速处理的需要;另外Hb1和Hb2都是Hb的左上角子矩阵,属于嵌套结构,所以可以支持递增冗余HARQ。
所述矩阵Hb的前L0=4行和前Kb+4=8列的交集构成了左上角子矩阵 Hb1,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数依次等于9、10、10和10,这些值都小于等于Kb+2=10且大于等于Kb-2=8,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角矩阵。
以上所给出的矩阵中,A部分矩阵为系统位部分矩阵,B部分为校验位部分矩阵,矩阵中元素值-1对应全0方阵,元素值是非零方阵对应于方阵循环移位相应值后的矩阵。此外,基础矩阵Hb的所有列中第一对应非零方阵的元素都是0。此时,循环移位网络只需要完成循环移位差值即可。此时,具有本发明矩阵结构的LDPC分层译码器不需要循环移位逆网络,同传统方案比较,路由减半。
可选地,上述编码器还可具有以下特点:还包括扩展模块,设置为根据扩展因子和基本置换矩阵对所述基础矩阵进行扩展,得到(M×z)×(N×z)低密度奇偶校验码的奇偶校验矩阵,所述译码模块是基于所述基础矩阵扩展得到的该奇偶校验矩阵进行编码运算。
本发明实施例则通过提出的基础矩阵的结构对信息比特进行LDPC编码,可以产生LDPC码字,这样的LDPC码字经过调制等模块以后发送到信道,接收端接收信号后进行解调等处理,产生接收的LDPC码字,接收LDPC码字将送到LDPC译码器。这样LDPC码字可以保证译码的流水线速度取得了提升的效果,即译码器处理速度取得了提升的效果。这就有效地提高了LDPC码的效率,加速了译码速度。进一步地,本发明提出的基础矩阵的结构通过允许不使用逆循环移位网络(用于写会存储)还可以使得交换网络减少,同样进一步减少硬件复杂度。
实施例二
本发明实施例提供了一种数字通信中结构化低密度奇偶校验码LDPC的译码装置,其结构如图4所示,至少包括处理器402和存储器401。
所述存储器401,设置为至少存储编码使用的基础矩阵。所述的基础 校验矩阵包括以下特征:
所述基础矩阵包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数。i=1、…、Mb,j=1,…、Nb。
所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵。
可选地,所述左上角子矩阵Hb1由所述矩阵Hb的前L0行和前Kb+4列的交集构成,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角矩阵;和/或
所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子矩阵Hb2的最后kb-4行和最后kb-4列的交集构成的子矩阵是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4行、第Kb+1到Kb+3列的交集构成的子矩阵的所有元素都是对应零Z*Z方阵的元素;
若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列仅有一个对应非零Z*Z方阵的元素,若左上角子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的所有元素都是对应零Z*Z方阵的元素;
所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于 Kb-2;
其中,Nb大于等于2*Kb,L0等于4或3。
2)所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4;对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;
当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。
其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,在这里,i=1,2,…,V。
根据所述基础矩阵和其对应的扩展因子Z,完成对(Nb-Mb)×Z比特的源信息比特序列LDPC编码运算,得到Nb×Z比特码字序列的,其中Z为扩展因子,Z是大于等于1的正整数。
可选地,所述基础矩阵Hb还包括:左上角子矩阵Hb3。
可选地,该左上角子矩阵Hb3由所述基础矩阵Hb的前2*kb行和前3*Kb列的交集构成了左上角子矩阵Hb3,Hb3的最后Kb行和最后Kb列的交集构成子矩阵是一个大小为kb*kb的单位阵或者单位阵的循环移位矩阵;
Hb3的前Kb行和最后Kb列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素;
Hb3的第Kb+1列到2*Kb列构成一个子矩阵,在该子矩阵的L1列中每一列所有的对应非零方阵的元素只有1个,在这个子矩阵的剩余Kb-L1列的所有元素(entry)都是对应Z*Z零方阵的元素,其中,L1是大于等于0且小于Kb的整数;
其中,Nb大于等于3*Kb,L0等于4或3。
可选地,Nb是2*Kb到12*Kb的一个确定正整数。
可选地,Kb取值为2到16之间的一个整数。
更进一步,eMMB场景和URLLC场景使用不同的Kb取值。
可选地,基础矩阵Hb的第g行的对应非零Z*Z方阵的元素个数小于等于g+1行对应非零Z*Z方阵的元素个数。其中,g=1,2,…,Nb-1。
可选地,所述基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=1、…、Nb。
基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=0、1、…、Nb-1。
所述一个处理器402,设置为根据所述基础矩阵和扩展因子z,完成从Nb×z比特的码字得到(Nb-Mb)×z比特信息数据的LDPC译码运算。
下面给一个更加具体的例子,符合以上描述要求的基础矩阵Hb如图3所示。
对于图3所示基础矩阵Hb,该矩阵Hb对应码率为1/3,矩阵Mb=16和Nb=24,Hb1是4*12的矩阵,Hb2是8*16的矩阵,Hb3是16*24的矩阵。该基础矩阵对应扩展因子z=336。图3的矩阵例子就同时满足Hb1的特征、Hb2的特征和Hb3的特征。当满足的Hb1的特征时候,2/3码率的LDPC码具有接近turbo码的性能,该矩阵只有4行,所以满足超高速处理的需要。由于满足的Hb2的特征时候,保证了LDPC具有优选的次数分布,同时由于满足特定TBS=336*8的girth要求,从而使得1/2码率的LDPC码具有接近turbo码的性能;该矩阵只有8行,所以满足超高速处理的需要;另外Hb1是Hb2的左上角子矩阵,属于嵌套结构,所以可以支持递增冗余HARQ。可选地,由于满足的Hb3的特征时候,保证了LDPC具有优选的次数分布,同时由于满足特定TBS=336*8的girth要求,从而使得1/3码率的LDPC码具有接近turbo码的性能;该矩阵只有16行,所以满足超高速处理的需要;另外Hb1和Hb2都是Hb的左上角子矩阵,属于嵌套结构,所以可以支持递增冗余HARQ。
所以,本发明的结构可以支持非常高或者比较灵活的并行度,满足适合于超高速译码,从而达到Gbps的译码需求。本实施例则通过提出的基础矩阵的结构对信息比特进行LDPC译码,LDPC译码器接收LDPC码字。由于基础矩阵的行数非常小,这样LDPC译码器可以保证译码的流水线速度取得了提升的效果,即译码器处理速度取得了提升的效果。这就有效地提高了LDPC码的效率,加速了译码速度。进一步地,本发明提出的基础矩阵的结构通过允许不使用逆循环移位网络(用于写会存储)还可以使得交换网络减少,同样进一步减少硬件复杂度。
实施例三
本发明实施例提供了一种结构化LDPC码的编码方法,使用该方法完 成LDPC编码的流程如图5所示,包括:
步骤501、确定编码使用的基础矩阵Hb;
可选地,所述的基础校验矩阵包括以下特征:
所述基础矩阵包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数。i=1、…、Mb,j=1,…、Nb。
可选地,所述的基础矩阵Hb至少还包括具有以下特征:所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵。可选地,上述特征可以表现为以下实现方式,但不限于此:
所述左上角子矩阵Hb1由所述矩阵Hb的前L0行和前Kb+4列的交集构成,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角矩阵;和/或
所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子矩阵Hb2的最后kb-4行和最后kb-4列的交集构成的子矩阵是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4行、第Kb+1到Kb+3列的交集构成的子矩阵的所有元素都是对应零Z*Z方阵的元素;
若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列仅有一个对应非零Z*Z方阵的元素,若左上角 子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的所有元素都是对应零Z*Z方阵的元素;
所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于Kb-2;
其中,Nb大于等于2*Kb,L0等于4或3。
2)所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4;对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;
当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。
根据所述基础矩阵和其对应的扩展因子Z,完成对(Nb-Mb)×Z比特的源信息比特序列LDPC编码运算,得到Nb×Z比特码字序列的,其中Z为扩展因子,Z是大于等于1的正整数。
对于2)而言,有一个更加具体的例子如下:
一个1/3码率的结构化LDPC码的基础矩阵Hb定义如下:
Figure PCTCN2017070488-appb-000019
这个LDPC码的扩展因子支持一组确定值集合{z1,z2,z3…,zV}={13,50,125,250,500,750,1000},这里,V=7,Zmax=1000。每个扩展因子对应的基础矩阵Hb(zi)通过背景技术中scale+floor算法来得到。
在这里,r=2,z1=13≤Z=zi<z2=50时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中13*5=65比特的girth等于4;对于对应扩展因子Z=zi和删除最重R=8列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
在这里,s=3,当z2≤Z=zi<z3时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
在这里,t=4,当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础 矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中125个重量大于2的校验比特的girth大于等于8;
在这里,u=7,当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
在这里,u=7,V=7,zu≤Z=zi<zV为空,说明不存在这种情况。
进一步,所述基础矩阵还具备以下特征:该左上角子矩阵Hb3由所述基础矩阵Hb的前2*kb行和前3*Kb列的交集构成了左上角子矩阵Hb3,Hb3的最后Kb行和最后Kb列的交集构成子矩阵是一个大小为kb*kb的单位阵或者单位阵的循环移位矩阵;
Hb3的前Kb行和最后Kb列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素;
Hb3的第Kb+1列到2*Kb列构成一个子矩阵,在该子矩阵的L1列中每一列所有的对应非零方阵的元素只有1个,在这个子矩阵的剩余Kb-L1列的所有元素(entry)都是对应Z*Z零方阵的元素,其中,L1是大于等于0且小于Kb的整数;
其中,Nb大于等于3*Kb。
可选地,Nb是2*Kb到12*Kb的一个确定正整数。
可选地,Kb取值为2到16之间的一个整数。
更进一步,eMMB场景和URLLC场景使用不同的Kb取值。
可选地,基础矩阵Hb的第g行的对应非零Z*Z方阵的元素个数小于等于g+1行对应非零Z*Z方阵的元素个数。其中,g=1,2,…,Nb-1。
可选地,所述基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=1、…、Nb。
基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第 一个元素是0,Lj是大于等于1的正整数,j=0、1、…、Nb-1。
步骤502、根据所述基础矩阵和其对应的扩展因子,完成从(Nb-Mb)×z比特的源数据得到Nb×z比特码字的LDPC编码运算;
其中z为扩展因子,z是大于等于1的正整数。
实施例四
本发明实施例提供了一种结构化LDPC码的译码方法,使用该方法完成LPDC编码的流程如图6所示,包括:
步骤601、确定译码使用的基础矩阵;
其中,所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
即所述基础矩阵包括以下特征:
根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,预设比特数的码字进行译码运算,得到源信息比特序列,其中,Z是大于等于1的正整数。所述基础矩阵包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数。Nb是整数,i=1、…、Mb,j=1,…、Nb。
所述的基础矩阵Hb至少还包括以下特征之一:
所述左上角子矩阵Hb1由所述矩阵Hb的前L0行和前Kb+4列的交集构成,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角矩阵;和/或
所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子矩阵Hb2的最后kb-4行和最后kb-4列的交集构成的子矩阵是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4行、第Kb+1到Kb+3列的交集构成的子矩阵的所有元素都是对应零Z*Z方阵的元素;
若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列仅有一个对应非零Z*Z方阵的元素,若左上角子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的所有元素都是对应零Z*Z方阵的元素;
所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于Kb-2;
其中,Nb大于等于2*Kb,L0等于4或3。
2)所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4;对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC 码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;
当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。
根据所述基础矩阵和其对应的扩展因子Z,完成对(Nb-Mb)×Z比特的源信息比特序列LDPC编码运算,得到Nb×Z比特码字序列的,其中Z为扩展因子,Z是大于等于1的正整数。
可选地,所述结构化LDPC码的编码方法的技术特征还包括:
该左上角子矩阵Hb3由所述基础矩阵Hb的前2*kb行和前3*Kb列的交集构成了左上角子矩阵Hb3,Hb3的最后Kb行和最后Kb列的交集构成子矩阵是一个大小为kb*kb的单位阵或者单位阵的循环移位矩阵;
Hb3的前Kb行和最后Kb列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素;
Hb3的第Kb+1列到2*Kb列构成一个子矩阵,在该子矩阵的L1列中每一列所有的对应非零方阵的元素只有1个,在这个子矩阵的剩余Kb-L1列的所有元素(entry)都是对应Z*Z零方阵的元素,其中,L1是大于等于0且小于Kb的整数;
其中,Nb大于等于3*Kb。
可选地,Nb是2*Kb到12*Kb的一个确定正整数。
可选地,Kb取值为2到16之间的一个整数。
更进一步,eMMB场景和URLLC场景使用不同的Kb取值。
可选地,基础矩阵Hb的第g行的对应非零Z*Z方阵的元素个数小于等于g+1行对应非零Z*Z方阵的元素个数。其中,g=1,2,…,Nb-1。
可选地,所述基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=1、…、Nb。
基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=0、1、…、Nb-1。
步骤602、根据所述基础矩阵和对应的扩展因子,完成从Nb×z比特的码字得到(Nb-Mb)×z比特信息数据的LDPC译码运算;
其中,z是扩展因子,z是大于等于1的正整数。
实施例五
本发明实施例提供了一种结构化LDPC码的编码装置,其结构如图7所示,包括:
确定模块701,设置为确定编码使用的基础矩阵,所述的基础校验矩阵包括以下特征:
所述基础矩阵包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Nb是整数,Kb是大于等于4的整数。i=1、…、Mb,j=1,…、Nb。
其中,所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵。即所述基础矩阵Hb至少包括以下特征之一:
所述左上角子矩阵Hb1由所述矩阵Hb的前L0行和前Kb+4列的交 集构成,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角矩阵;和/或
所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子矩阵Hb2的最后kb-4行和最后kb-4列的交集构成的子矩阵是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4行、第Kb+1到Kb+3列的交集构成的子矩阵的所有元素都是对应零Z*Z方阵的元素;
若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列仅有一个对应非零Z*Z方阵的元素,若左上角子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的所有元素都是对应零Z*Z方阵的元素;
所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于Kb-2;
其中,Nb大于等于2*Kb,L0等于4或3。
2)所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4,对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。
根据所述基础矩阵和其对应的扩展因子Z,完成对(Nb-Mb)×Z比特的源信息比特序列LDPC编码运算,得到Nb×Z比特码字序列的,其中Z为扩展因子,Z是大于等于1的正整数。
可选地,所述结构化LDPC码的编码方法还包括:
该左上角子矩阵Hb3由所述基础矩阵Hb的前2*kb行和前3*Kb列的交集构成了左上角子矩阵Hb3,Hb3的最后Kb行和最后Kb列的交集构成子矩阵是一个大小为kb*kb的单位阵或者单位阵的循环移位矩阵;
Hb3的前Kb行和最后Kb列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素;
Hb3的第Kb+1列到2*Kb列构成一个子矩阵,在该子矩阵的L1列中每一列所有的对应非零方阵的元素只有1个,在这个子矩阵的剩余Kb-L1列的所有元素(entry)都是对应Z*Z零方阵的元素,其中,L1是大于等于0且小于Kb的整数;
其中,Nb大于等于3*Kb。
可选地,Nb是2*Kb到12*Kb的一个确定正整数。
可选地,Kb取值为2到16之间的一个整数。
更进一步,eMMB场景和URLLC场景使用不同的Kb取值。
可选地,基础矩阵Hb的第g行的对应非零Z*Z方阵的元素个数小于等于g+1行对应非零Z*Z方阵的元素个数。其中,g=1,2,…,Nb-1。
可选地,所述基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=1、…、Nb。
基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=0、1、…、Nb-1。
编码模块702,设置为根据所述基础矩阵和其对应的扩展因子,完成从(Nb-Mb)×z比特的源数据得到Nb×z比特码字的LDPC编码运算,其中z为扩展因子,z是大于等于1的正整数。
本发明实施例还提供了一种结构化LDPC码的译码装置,其结构如图8所示,包括:
确定模块801,设置为确定译码使用的基础矩阵,所述的基础校验矩阵包括以下特征:
所述基础矩阵包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Nb是整数,Kb是大于等于4的整数。i=1、…、Mb,j=1,…、Nb。
所述的基础矩阵Hb至少还包括以下特征之一:
所述左上角子矩阵Hb1由所述矩阵Hb的前L0行和前Kb+4列的交集构成,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四 列的方阵是一个左下三角矩阵或者准左下三角矩阵;和/或
所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子矩阵Hb2的最后kb-4行和最后kb-4列的交集构成的子矩阵是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4行、第Kb+1到Kb+3列的交集构成的子矩阵的所有元素都是对应零Z*Z方阵的元素;
若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列仅有一个对应非零Z*Z方阵的元素,若左上角子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的所有元素都是对应零Z*Z方阵的元素;
所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于Kb-2;
其中,Nb大于等于2*Kb,L0等于4或3。
2)所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4;对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;
当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。根据所述基础矩阵和其对应的扩展因子Z,完成对(Nb-Mb)×Z比特的源信息比特序列LDPC编码运算,得到Nb×Z比特码字序列的,其中Z为扩展因子,Z是大于等于1的正整数。
可选地,所述基础矩阵Hb还具备以下特征:
该左上角子矩阵Hb3由所述基础矩阵Hb的前2*kb行和前3*Kb列的交集构成了左上角子矩阵Hb3,Hb3的最后Kb行和最后Kb列的交集构成子矩阵是一个大小为kb*kb的单位阵或者单位阵的循环移位矩阵;
Hb3的前Kb行和最后Kb列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素;
Hb3的第Kb+1列到2*Kb列构成一个子矩阵,在该子矩阵的L1列中每一列所有的对应非零方阵的元素只有1个,在这个子矩阵的剩余Kb-L1列的所有元素(entry)都是对应Z*Z零方阵的元素,其中,L1是大于等于0且小于Kb的整数;
其中,Nb大于等于3*Kb。
可选地,Nb是2*Kb到12*Kb的一个确定正整数。
可选地,Kb取值为2到16之间的一个整数。
更进一步,eMMB场景和URLLC场景使用不同的Kb取值。
可选地,基础矩阵Hb的第g行的对应非零Z*Z方阵的元素个数小于等于g+1行对应非零Z*Z方阵的元素个数。其中,g=1,2,…,Nb-1。
可选地,所述基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=1、…、Nb。
基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=0、1、…、Nb-1。
译码模块802,设置为根据所述基础矩阵和对应的扩展因子,完成从Nb×z比特的码字得到(Nb-Mb)×z比特信息数据的LDPC译码运算,其中,z是扩展因子,z是大于等于1的正整数。
优选的,所述译码模块802包括:
基础矩阵的行更新单元8021,设置为采用分层BP算法或者修正的最小和算法,对所述基础矩阵进行行更新,包括:
所述边信息为校验节点到变量节点信息;
译码判决单元8022,设置为使用所述边信息计算码字对数似然比,并进行硬判,并检验是否正确,若正确则输出正确码字,若错误则继续译码处理。
综上所述,本发明的实施例提供了一种结构化LDPC码的编码方法、译码方法、编码装置和译码装置。通过确定编码或译码使用的包含K0个上下相邻对的基础矩阵,根据所述基础矩阵和其对应的扩展因子,完成编码或译码,实现了高流水线速度的LDPC编码和译码,解决了现有编译码器效率低下的问题。本发明的实施例提供的技术方案可以应用于数字通信系统中数据传输的纠错编码技术,得到一种效率提升或者复杂度减少的LDPC码,特别适用超高速的场景。
实施例六
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上 述存储介质可以被设置为存储用于执行以下步骤的程序代码:
确定编码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数。i=1、…、Mb,j=1,…、Nb;所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,对源信息比特序列进行LDPC编码运算,得到码字序列,其中,Z是大于等于1的正整数。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
实施例七
本发明的实施例还提供了另一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
确定译码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数。Nb是整数,i=1、…、Mb,j=1,…、Nb;所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵 Hb1是左上角子矩阵Hb2的左上角子矩阵;
根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,预设比特数的码字进行译码运算,得到源信息比特序列,其中,Z是大于等于1的正整数。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
实施例八
所述的LDPC码支持V种码长,每种码长都有一个具有相同大小Mb*nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同(即每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置中最多有三个非零方阵元素的位置是不同的)。所述的扩展因子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,至少包括以下方式之一:
方式一:对于取模(mod)方法:
Figure PCTCN2017070488-appb-000020
方式2:取整(scale+floor)方法:
Figure PCTCN2017070488-appb-000021
方式3:舍入(scale+round)方法:
Figure PCTCN2017070488-appb-000022
其中,α=Pmax/Pl,v=1,2,....,Vmax,z1,z2,z3,…,zVmax是按照从小到大排列的,zvmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
Figure PCTCN2017070488-appb-000023
是最大码长的第i行和第j列的对应非零方阵元素,hij v第v个码长的第i 行和第j列的对应非零方阵元素。mod为取模操作,[]为下取整操作,Round为四舍五入操作。所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n。其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
这里有一个更加具体的例子。
所述的Pset为{256,32},nset为{1,3,5},即Pmax=256,可以知道有6个扩展因子,扩展因子Z支持一组确定的集合大小为6,即Vmax=6,一组扩展因子集合为{32,96,160,256,768,1280},对应的码长集合为{128,384,640,1024,3072,5120},对应的最大扩展因子zvmax=1280,其最大扩展因子zvmax=1280对应的基础矩阵Hb6为:
Figure PCTCN2017070488-appb-000024
以上所述的每种码长对应的基础矩阵中的非零方阵元素的取值都是通过最大码长对应的基础矩阵的非零方阵元素计算得到,包括3种方式。其中,如果按方式1进行计算获得其他扩展因子的基础矩阵,包括2个步骤:
步骤1.所述方式1计算公式的前部分,如下:
Figure PCTCN2017070488-appb-000025
其中,
Figure PCTCN2017070488-appb-000026
是最大扩展因子zvmax=1280(vmax=6)对应的基础矩阵Hb6中的第i行和第j列元素;α=Pmax/pl,所以α有2个数:1对应Pset的第1个元素256,对应扩展因子为{256,768,1280};8对应Pset的第2个元素32,对应扩展因子为{32,96,160};v=1,2,3,4,5。所以按以上所述的步骤1所述的方法计算出其他扩展因子(小于1280的,)的基础矩阵包括如下:
对应于α等于8的3个扩展因子的基础矩阵:Hb'1,Hb'2,Hb'3(扩 展因子分别为{32,96,160})如下:
Figure PCTCN2017070488-appb-000027
对应于α等于1的另外2个扩展因子的基础矩阵:Hb'4,Hb'5(扩展因子分别为{256,768})如下:
Figure PCTCN2017070488-appb-000028
由于α等于1,所以基础矩阵Hb'4和Hb'5都等于最大扩展因子的基础矩阵。
步骤2.按所述方式1的计算公式的后部分,如下
hij v=(h'ij v)modzv
其中,v=1,2,3,4,5;h'ij v是扩展因子zv对应的基础矩阵Hb'v中的第i行和第j列元素,zv的取值为{32,96,160,256,768}。所以,依据所述步骤2计算方法,可以计算出其余5种基础矩阵(分别对应的扩展因子为{32,96,160,256,768}),如下:
对应于扩展因子32的基础矩阵Hb1
Figure PCTCN2017070488-appb-000029
对应于扩展因子96的基础矩阵Hb2
Figure PCTCN2017070488-appb-000030
对应于扩展因子160的基础矩阵Hb3
Figure PCTCN2017070488-appb-000031
对应于扩展因子256的基础矩阵Hb4
Figure PCTCN2017070488-appb-000032
对应于扩展因子768的基础矩阵Hb5
Figure PCTCN2017070488-appb-000033
所述方式1的方法的有益效果在于:可以使得多种码长可以采用同一套译码器,只需要增加很少的控制电路即可实现,也就说所述方案使得LDPC码可以支持非常灵活码长设计,解决了现有LDPC码的缺乏灵活码长的问题;以及,可以保证LDPC码的矩阵特性在由大扩展因子变为小扩展因子过程中的变化不大,从而保证了LDPC码在较大码长范围内保持比较高的译码性能。
例如,依据以上所述的基础矩阵和扩展因子设计方法,对于接收译码器设计中,我们可以采用如图9所示示例的存储器设计方案,图9所示的是对应于LDPC码基础矩阵中的某列的信息存储方式,包括外信息和信道解调信息的存储方式。n取值最大为5,所以需要5个word,如图9中的word0~word4;由于Pmax等于256,所以每个word的大小为256。当LDPC编码所采用的扩展因子值z对应的Pl值,就是对应实际译码器中其在每个word中的大小,例如Pl取值为Pset={256,32}的32时,则说明实际译码器中每个word中占用为32个位置,如果等于256时,则说明实际译码器中每个word中占用为256个位置(由于等于Pmax了,所以其占满整个word);而LDPC编码所采用的扩展因子值z对应的n值,就是对应实际译码器中其在word的数目,例如n取值为nset={1,3,5}中的1时,则说明实际译码器中只用1个word存储对应基础矩阵中1列的所有z个信息,而如果n取值为nset={1,3,5}的3时,则说明实际译码器中只用3个word存储对应基础矩阵中1列的所有z个信息,而如果取值为nset={1,3,5}的5时,则说明实际译码器中用5个word存储对应基础矩阵中1列 的所有z个信息。
在此,以扩展因子为z=96为例进行详细介绍LDPC译码器中对应于基础矩阵1列中的所有z=96个信息的存储方式。扩展因子为z=96,则,对应l=1,即p1=32,n=3,所以依据以上所述,则采用扩展因子为z=96进行LDPC编码,则译码器中对应基础矩阵的任意1列的z=96个软信息存储方式为:占用n=3个word,每个word的大小为32。如图10所示,译码器中对应基础矩阵的任意1列占用n=3个word(word0~word2),如图10中的1001;每个word中占用p=32个位置,而且占用方式为从首个开始放置,每间隔8个位置放置1个信息,如图10中的1002,即在每个word中每8个位置中放置1个信息(所述信息放置所述8个位置中的首个位置);由于只占用3个word,剩下2个word(如图10中的1003)不使用。可以看出,在译码器设计中,Pmax可以对应于最大word的大小,而n的最大值对应于基础矩阵的任意1列中的扩展因子z个信息的存储器中word的数目。由于在对应所述基础矩阵的任意1列中的z=96个信息可以存储在一个存储块,不同word之间只需要通过地址来区分,而每个word的信息都是合并到一起了。
根据以上所述的将每个信息放置到word中的对应位置,每个word中每8个位置中放置1个信息,其余位置由于对于本扩展因子z=96(码长z*Nb=96*8=768)下,可以在译码之前,先对长度为768的码字信息进行交织,所述交织方法包括:由以下至少一个参数确定所述解交织方法:所述参数Pmax、所述参数pl和所述参数n。所述交织方法具体为:所述待译码码字信息序列包括768个信息,包括Nb=8个长度分别为z=96的小数据块,对每个小数据块再细分为pl=32个子块,其中先对每个子块分别填充Pmax-pl=256-32=224哑元比特获得长度为256的待译码小数据块,所述哑元比特不用于译码或译码,然后对所有所述的待译码小数据块进交织交织,交织方法为比特反转顺序(BRO,Bit Reverse Order)法;所述比特反转顺序交织方法为:交织前的索引为F0,将F0转换成8比特二进制比特序列并将所述二进制比特序列左右反转,即最高位和最低位互换, 次高位和次低位互换等等,获得反转后的二进制序列,所述二进制序列换成十进制即可获得数值为F1,即交织后的索引为F1,公式可以写为Y’F1=YF0,其中,Y是交织前的待译码小数据块,Y’是交织后的待译码小数据块,F0和F1的例子:F0的十进制数值为15,则其8比特的二进制序列为00001111,那么反转后的8比特的二进制序列为11110000,则其对应十进制为F1=240,所以在交织过程中,交织后的Y’中索引为240的值等于交织前的Y中索引为15的值。在编码之前执行了所述交织方法,那么相应地在编码后也要做相反操作(解交织方法)获得解交织后的码字数据序列,即从Y’F0=YF1操作,所述解交织方法包括:由以下至少一个参数确定所述解交织方法:所述参数Pmax、所述参数pl和所述参数n。然后从解交织后的码字数据序列中选出码字比特。以上所述的由十进制转换成二进制序列的长度有Pmax确定,Pmax需要等于2的正整数幂次,所述正整数幂次就是二进制序列的长度。
同理,在LDPC译码器中,也可以采用以上所述的交织和解交织方法,在对预设比特数的码字进行译码运算之前对预设比特数的码字先进行交织,所述交织方法与上述方法一致,然后进行LDPC译码得到译码后序列,然后对译码后序列进行解交织,并选择出相应的比特得到源信息比特序列。
从以上分析也可以看出,所述LDPC码的译码器(word大小为256,有5个word的存储器设计)可以支持所有扩展因子满足如下:Pmax的所有正整数因子和小于等于5的所有正整数相乘获得的整数值。本实例中,Pmax为2的8次幂,其实,Pmax并不限于2的正整数次幂,也可以大于其他大于4的任意整数。
以及,依据以上所述的基础矩阵和扩展因子设计方法,对于发送编码器设计中,对源信息比特序列进行LDPC编码运算,得到码字序列。根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,对源信息比特序列进行LDPC编码运算,得到码字序列,其中,Z是大于等于1的正整数。
以下所述的方式2和方式3中,都可以采用以上所述的编码方法、 译码方法、交织方法和解交织方法,以及相关的算法。总结上述的编码侧交织方法:首先,对编码前信息比特进行均匀分段,每段长度为pl比特;然后,对于每一段后面添加Pmax-pl比特,添加后每一段都有Pmax比特;接着,对每个段进行长度为Pmax的二进制比特翻转BRO交织。
总结上述的编码侧解交织方法:首先,对编码后码字比特进行均匀分段,每段长度为Pmax比特;接着,对每个段进行长度为Pmax的二进制比特翻转BRO解交织。
其中,如果按方式2进行计算获得其他扩展因子的基础矩阵,依然包括2个步骤:
步骤1.所述方式2计算公式的部分计算式,如下
Figure PCTCN2017070488-appb-000034
其中,
Figure PCTCN2017070488-appb-000035
是最大扩展因子zvmax=1280(Vmax=6)对应的基础矩阵Hb6中的第i行和第j列元素;α=Pmax/pl,所以α有2个数:1对应Pset的第1个元素256,对应扩展因子为{256,768,1280};8对应Pset的第2个元素32,对应扩展因子为{32,96,160};v=1,2,3,4,5。
可以发现所述方式2中的步骤1的方法和以上所述方式1中的步骤1的方法是相同的。所以按以上所述方式2的步骤1所述的方法计算出其他扩展因子(小于1280)的基础矩阵包括如下:
对应于α等于8的3个扩展因子的基础矩阵:Hb'1,Hb'2,Hb'3(扩展因子分别为{32,96,160})如下:
Figure PCTCN2017070488-appb-000036
对应于α等于1的另外2个扩展因子的基础矩阵:Hb'4,Hb'5(扩展 因子分别为{256,768})如下:
Figure PCTCN2017070488-appb-000037
由于α等于1,所以基础矩阵Hb'4和Hb'5都等于最大扩展因子的基础矩阵。
步骤2.按所述方式2的计算公式的其余计算式,如下
Figure PCTCN2017070488-appb-000038
其中,v=1,2,3,4,5;h'ij v是扩展因子zv对应的基础矩阵Hb'v中的第i行和第j列元素,zv的取值为{32,96,160,256,768},zvmax=1280。所以,依据所述步骤2计算方法,可以计算出其余5种基础矩阵(分别对应的扩展因子为{32,96,160,256,768}),如下:
对应于扩展因子32的基础矩阵Hb1
Figure PCTCN2017070488-appb-000039
对应于扩展因子96的基础矩阵Hb2
Figure PCTCN2017070488-appb-000040
对应于扩展因子160的基础矩阵Hb3
Figure PCTCN2017070488-appb-000041
对应于扩展因子256的基础矩阵Hb4
Figure PCTCN2017070488-appb-000042
对应于扩展因子768的基础矩阵Hb5
Figure PCTCN2017070488-appb-000043
所述方式2的方法的有益效果在于:可以使得多种码长可以采用同一套译码器,只需要增加很少的控制电路即可实现,也就说所述方案使得LDPC码可以支持非常灵活码长设计,解决了现有LDPC码的缺乏灵活码长的问题;以及,可以保证LDPC码的矩阵特性在由大扩展因子变为小扩展因子过程中的变化不大,从而保证了LDPC码在较大码长范围内保持比较高的译码性能。
同理,如果按方式3进行计算获得其他扩展因子的基础矩阵,依然包括2个步骤:
步骤1.所述方式3计算公式的部分计算式,如下
Figure PCTCN2017070488-appb-000044
其中,
Figure PCTCN2017070488-appb-000045
是最大扩展因子zVmax=1280(Vmax=6)对应的基础矩阵Hb6中的第i行和第j列元素;α=Pmax/pl,所以α有2个数:1对应Pset的第1个元素256,对应扩展因子为{256,768,1280};8对应Pset的第2个元素32,对应扩展因子为{32,96,160};v=1,2,3,4,5。
可以发现所述方式3中的步骤1的方法和以上所述方式1中的步骤1的方法是相同的。所以按以上所述方式3的步骤1所述的方法计算出其他扩展因子(小于1280的)的基础矩阵Hb'1,Hb'2,Hb'3,Hb'4和Hb'5与以上所述方式1和方式2中的步骤1计算获得是相等的,这里不再赘述。
步骤2.按所述方式1的计算公式的其余计算式,如下
Figure PCTCN2017070488-appb-000046
其中,v=1,2,3,4,5;h'ij v是扩展因子zv对应的基础矩阵Hb'v中的第i行和第j列元素,zv的取值为{32,96,160,256,768},zvmax=1280。所以,依据所述步骤2计算方法,可以计算出其余5种基础矩阵(分别对应的扩展 因子为{32,96,160,256,768}),如下:
对应于扩展因子32的基础矩阵Hb1
Figure PCTCN2017070488-appb-000047
对应于扩展因子96的基础矩阵Hb2
Figure PCTCN2017070488-appb-000048
对应于扩展因子160的基础矩阵Hb3
Figure PCTCN2017070488-appb-000049
对应于扩展因子256的基础矩阵Hb4
Figure PCTCN2017070488-appb-000050
对应于扩展因子768的基础矩阵Hb5
Figure PCTCN2017070488-appb-000051
所述方式3的方法的有益效果在于:可以使得多种码长可以采用同一套译码器,只需要增加很少的控制电路即可实现,也就说所述方案使得LDPC码可以支持非常灵活码长设计,解决了现有LDPC码的缺乏灵活码长的问题;以及,可以保证LDPC码的矩阵特性在由大扩展因子变为小扩展因子过程中的变化不大,从而保证了LDPC码在较大码长范围内保持比较高的译码性能。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
实施例九
所述的LDPC码支持V种码长,每种码长都对应一个具有相同大小Mb*Nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同。所述的扩展因子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,即
Figure PCTCN2017070488-appb-000052
其中,α=Pmax/Pl,v=1,2,....,Vmax,z1,z2,z3,…,zVmax是按照从小到大排列的,zVmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
Figure PCTCN2017070488-appb-000053
是最大码长的第i行和第j列的非负-1元素,hij v第v个码长的的第i行和第j列的非负-1元素。mod为取模操作,[]为下取整操作,Round为四舍五入操作。所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n。其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
这里有一个更加具体的例子。
所述的Pset为{10,20,40,80,120,240},即Pmax=240,以及n取值为2,可以知道有6个扩展因子,扩展因子Z支持一组确定的集合大小为6,即Vmax=6,一组扩展因子集合为{20,40,80,160,240,480},对应的码长集合为{100,200,400,800,1200,2400},对应的最大扩展因子zvmax=480,其最大扩展因子zvmax=480对应的基础矩阵Hb6为:
Figure PCTCN2017070488-appb-000054
其中,基础矩阵Hb6的维数为5行10列,可以知道,基础矩阵的行数(或者校验列数)为Mb=5,基础矩阵的总列数Nb=10,基础矩阵的系统 列数Kb=Nb-Mb=10-5=5,即基础矩阵的前Kb=5列所构成的子矩阵是对应于系统比特的Mb×Kb的块A,基础矩阵的后Mb=5列所构成的子矩阵是对应于校验比特的Mb×Mb的块B,基础矩阵Hb6可以描述为[A,B];其他码长{20,40,80,160,240}下的各个基础矩阵也都分别与以上所述相同的矩阵参数(Kb,Nb,Mb),这里不再赘述。
各种码长{100,200,400,800,1200,2400}的扩展因子是所述扩展因子集合{20,40,80,160,240,480}中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长2400的对应非零方阵元素计算得到的,即
Figure PCTCN2017070488-appb-000055
其中,α=Pmax/Pl,pl是子集合Pset={10,20,40,80,120,240}的一个元素,即与扩展因子集合{20,40,80,160,240,480}是一一对应的,扩展因子集合中第i0个元素等于子集合Pset中第i0个元素乘以n=2,i0=1,2,…,6;所以对应于扩展因子集合{20,40,80,160,240,480}中任意扩展因子对应的α值如下{24,12,6,3,2,1};进而,依据以上所述公式可以知道对应码长为{100,200,400,800,1200}(对应扩展因子集合为{20,40,80,160,240})的基础矩阵分别如下:
对应于扩展因子20的基础矩阵Hb1
Figure PCTCN2017070488-appb-000056
对应于扩展因子40的基础矩阵Hb2
Figure PCTCN2017070488-appb-000057
对应于扩展因子80的基础矩阵Hb3
Figure PCTCN2017070488-appb-000058
对应于扩展因子160的基础矩阵Hb4
Figure PCTCN2017070488-appb-000059
对应于扩展因子240的基础矩阵Hb5
Figure PCTCN2017070488-appb-000060
或者,所述以上所述的所有基础矩阵之间至多有3个对应非零方阵元素不同,以下为例,可以发现6个基础矩阵{Hb1,Hb2,Hb3,Hb4,Hb5,Hb6}的两两之间至多有3个对应非零方阵元素不同,有益效果在于,既可以保证基础矩阵保留统一的基础矩阵特性(如度分布等特性),并且可以增加新的矩阵特性,以保证基础矩阵在各个码长下可以获得比较优异的性能。
对应于扩展因子20的基础矩阵Hb1
Figure PCTCN2017070488-appb-000061
对应于扩展因子40的基础矩阵Hb2
Figure PCTCN2017070488-appb-000062
对应于扩展因子80的基础矩阵Hb3
Figure PCTCN2017070488-appb-000063
对应于扩展因子160的基础矩阵Hb4
Figure PCTCN2017070488-appb-000064
对应于扩展因子240的基础矩阵Hb5
Figure PCTCN2017070488-appb-000065
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
工业实用性
本发明实施例提供的方案,可以用于LDPC编码和译码过程中,通过设计合适的基础矩阵,根据所述基础矩阵和其对应的扩展因子,完成编码或译码,实现了超高速度的LDPC编码和译码,实现了接近turbo码的编译码性能,解决了现有LDPC编译码器无法支持递增冗余HARQ和灵活性不足的问题。

Claims (53)

  1. 一种结构化低密度奇偶校验码LDPC的编码方法,包括:
    确定编码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数,i=1、…、Mb,j=1,…、Nb;
    所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
    根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,对源信息比特序列进行LDPC编码运算,得到码字序列,其中,Z是大于或者等于1的正整数。
  2. 根据权利要求1所述的方法,其中,所述源信息比特序列为(Nb-Mb)×Z比特的序列;所述比特码字序列为Nb×Z比特。
  3. 根据权利要求1所述的方法,其中,
    所述左上角子矩阵Hb1由所述矩阵Hb的前L0行和前Kb+4列的交集构成,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角矩阵;和/或
    所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子 矩阵Hb2的最后kb-4行和最后kb-4列的交集构成的子矩阵是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4行、第Kb+1到Kb+3列的交集构成的子矩阵的所有元素都是对应零Z*Z方阵的元素;
    若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列仅有一个对应非零Z*Z方阵的元素,若左上角子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的所有元素都是对应零Z*Z方阵的元素;
    所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于Kb-2;
    其中,Nb大于等于2*Kb,L0等于4或3。
  4. 根据权利要求1至3中任一项所述的方法,其中,所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
    当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4,对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
    当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
    当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth 都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;
    当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
    当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
    其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。
  5. 根据权利要求3所述的方法,其中,所述基础矩阵Hb还包括:
    左上角子矩阵Hb3,其中:
    该左上角子矩阵Hb3由所述基础矩阵Hb的前2*kb行和前3*Kb列的交集构成了左上角子矩阵Hb3,Hb3的最后Kb行和最后Kb列的交集构成子矩阵是一个大小为kb*kb的单位阵或者单位阵的循环移位矩阵;
    Hb3的前Kb行和最后Kb列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素;
    Hb3的第Kb+1列到2*Kb列构成一个子矩阵,在该子矩阵的L1列中每一列所有的对应非零方阵的元素只有1个,在这个子矩阵的剩余Kb-L1列的所有元素都是对应Z*Z零方阵的元素,其中,L1是大于等于0且小于Kb的整数;
    其中,Nb大于等于3*Kb。
  6. 根据权利要求1至3中任一项所述的方法,其中,
    Nb是取值区间[2*Kb,12*Kb]中的一个正整数。
  7. 根据权利要求1至3中任一项所述的结构化LDPC码的编码方法,其中,Kb取值为2到16之间的一个整数。
  8. 根据权利要求7所述的结构化LDPC码的编码方法,其中,增强移动宽带eMMB场景,和,超高可靠和低延迟URLLC场景使用不同的Kb取值。
  9. 根据权利要求1所述的结构化LDPC码的编码方法,其中,在增强移动宽带eMMB场景中编码器将使用所述的Hb矩阵来实现LDPC码的编码,在超高可靠和低延迟场景中编码器将使用另外一个基础矩阵来实现LDPC码的编码,其中,所述另一个基础矩阵的所有对应非零方阵的元素的行列位置索引对(i,j)构成的集合是所述基础矩矩阵的所有对应非零方阵的元素的行列位置索引(i,j)对构成的集合的子集。
  10. 根据权利要求1至3中任一项所述的方法,其中,
    所述基础矩阵Hb的第g行的对应非零Z*Z方阵的元素个数小于等于g+1行对应非零Z*Z方阵的元素个数。其中,g=1,2,…,Nb-1。
  11. 根据权利要求1至3中任一项所述的方法,其中,所述基础矩阵Hb的第j列所有对应非零方阵的元素有Lj个,从上向下第一个元素是0,Lj是大于等于1的正整数,j=1、…、Nb。
  12. 根据权利要求1所述的方法,其中,
    所述的LDPC码支持V种码长,每种码长都对应一个具有相同大 小Mb*Nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同,所述扩展因子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,即
    Figure PCTCN2017070488-appb-100001
    其中,α=Pmax/pl,v=1,2,....,Vmax;z1,z2,z3,…,zVmax是按照从小到大排列的,zVmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
    Figure PCTCN2017070488-appb-100002
    是最大码长的第i行和第j列的非0元素,hij v第v个码长的第i行和第j列的对应非零方阵元素。mod为取模操作,[]为下取整操作,Round为四舍五入操作,所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
  13. 根据权利要求1所述的方法,其中,
    所述的LDPC码支持V种码长,每种码长都有一个具有相同大小mb*Nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同,所述的扩展因子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,至少包括以下方式之一:
    方式一:取模mod方法:
    Figure PCTCN2017070488-appb-100003
    方式2:取整(scale+floor)方法:
    Figure PCTCN2017070488-appb-100004
    方式3:舍入(scale+round)方法:
    Figure PCTCN2017070488-appb-100005
    其中,α=Pmax/pl,v=1,2,....,Vmax,z1,z2,z3,…,zVmax是按照从小到大排列的,zVmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
    Figure PCTCN2017070488-appb-100006
    是最大码长的第i行和第j列的非-1元素,hij v第v个码长的第i行和第j列的对应非零方阵元素,mod为取模操作,[]为下取整操作,Round为四舍五入操作,所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
  14. 根据权利要求12或者13所述的方法,其中,所述n的值是自然数集合nset中的一个元素,其中,所有n的值构成所述自然数集合nset。
  15. 根据权利要求12或者13所述的方法,其中,所述Pmax等于2的X次幂,其中,X是大于或者等于2的整数。
  16. 根据权利要求1所述的方法,其中,所述LDPC码支持V种码长,每种码长都对应一个具有相同大小Mb*Nb的基础矩阵Hb;所述扩展因子Z支持一组确定的扩展因子集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,所述扩展因子zv是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数;
    在所述对源信息比特序列进行LDPC编码运算之前,包括:对所 述源信息比特序列进行交织,由以下至少一个参数确定所述交织方法:所述Pmax、所述pl和所述n。
  17. 根据权利要求16所述的方法,其中,所述对源信息比特序列进行LDPC编码运算之后,所述方法还包括:对得到码字序列进行解交织,由以下至少一个参数确定所述解交织方法:所述Pmax、所述pl和所述n。
  18. 根据权利要求16所述的方法,其中,对所述源信息比特序列进行交织包括:对编码前信息比特进行均匀分段,每段长度为pl比特;对于每一段后面添加Pmax-pl比特,添加后每一段都有Pmax比特;对每个段进行长度为Pmax的二进制比特翻转BRO交织;其中,所述Pmax等于2的X次幂,其中,X是大于或者等于2的整数。
  19. 根据权利要求17所述的方法,其中,对得到码字序列进行解交织:对编码后码字比特进行均匀分段,每段长度为Pmax比特;对每个段进行长度为Pmax的二进制比特翻转BRO解交织。
  20. 一种结构化低密度奇偶校验码LDPC的译码方法,包括:
    确定译码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数i=1、…、Mb,j=1,…、Nb;
    所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
    根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,预设比特数的码字进行译码运算,得到源信息比特序列,其中,Z是大于或者等于1的正整数。
  21. 根据权利要求20所述的方法,其中,所述源信息比特序列为(Nb-Mb)×Z比特的序列;所述预设比特数为Nb×Z比特。
  22. 根据权利要求20所述的方法,其中,
    所述左上角子矩阵Hb1由所述矩阵Hb的前L0行和前Kb+4列的交集构成,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角角矩阵;和/或
    所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子矩阵Hb2的最后kb-4行、最后kb-4列的交集是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4行、第Kb+1到Kb+3列的交集构成子矩阵的所有元素都是对应零Z*Z方阵的元素;
    若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的部分仅有一个对应非零Z*Z方阵的元素,若左上角子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的部分的所有元素都是对应零Z*Z方阵的元素;
    所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于Kb-2;
    其中,Nb大于等于2*Kb,L0等于4或3。
  23. 根据权利要求20至22中任一项所述的方法,其中,所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
    当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4,对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
    当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
    当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;
    当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
    当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
    其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。
  24. 根据权利要求20所述的方法,其中,
    所述的LDPC码支持V种码长,每种码长都对应一个具有相同大小Mb*Nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同,所述扩展因子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,即
    Figure PCTCN2017070488-appb-100007
    其中,α=Pmax/Pl,v=1,2,....,Vmax;z1,z2,z3,…,zVmax是按照从小到大排列的,zVmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
    Figure PCTCN2017070488-appb-100008
    是最大码长的第i行和第j列的非0元素,hij v第v个码长的第i行和第j列的非零方阵元素。mod为取模操作,[]为下取整操作,Round为四舍五入操作,所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
  25. 根据权利要求20所述的方法,其中,
    所述的LDPC码支持V种码长,每种码长都有一个具有相同大小Mb*Nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同,所述的扩展因子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,至少包括以下方式之一:
    方式一:取模mod方法:
    Figure PCTCN2017070488-appb-100009
    方式2:取整(scale+floor)方法:
    Figure PCTCN2017070488-appb-100010
    方式3:舍入(scale+round)方法:
    Figure PCTCN2017070488-appb-100011
    其中,α=Pmax/Pl,v=1,2,....,Vmax,z1,z2,z3,…,zVmax是按照从小到大排列的,zVmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
    Figure PCTCN2017070488-appb-100012
    是最大码长的第i行和第j列的非零方阵元素,hij v第v个码长的第i行和第j列的非零方阵元素,mod为取模操作,[]为下取整操作,Round为四舍五入操作,所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
  26. 根据权利要求24或者25所述的方法,其中,所述n的值是自然数集合nset中的一个元素,其中,所有n的值构成所述自然数集合nset。
  27. 根据权利要求24或者25所述的方法,其中,所述Pmax等于2的X次幂,其中,X是大于或者等于2的整数。
  28. 根据权利要求20所述的方法,其中,所述的LDPC码支持V种码长,每种码长都对应一个具有相同大小Mb*Nb的基础矩阵Hb;所述扩展因子Z支持一组确定的扩展因子集合{z1,z2,z3,…,zVmax},每 种码长的扩展因子是所述扩展因子集合中一个元素,所述扩展因子zv是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数;
    在预设比特数的码字进行译码运算,得到源信息比特序列之前,包括:对预设比特数的码字进行交织,由以下至少一个参数确定所述交织方法:所述Pmax、所述pl和所述n。
  29. 根据权利要求28所述的方法,其中,对预设比特数的码字进行译码运算,得到源信息比特序列之后,所述方法还包括:对所述源信息比特序列进行解交织,由以下至少一个参数确定所述解交织方法:所述Pmax、所述pl和所述n。
  30. 一种结构化低密度奇偶校验码LDPC的编码装置,包括:
    确定模块,设置为确定编码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数,i=1、…、Mb,j=1,…、Nb;
    所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
    编码模块,设置为根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,对源信息比特序列进行LDPC编码运算,得到码字序列,其中,Z是大于等于1的正整数。
  31. 根据权利要求30所述的装置,其中,所述源信息比特序列 为(Nb-Mb)×Z比特的序列;所述比特码字序列为Nb×Z比特。
  32. 根据权利要求30所述的装置,其中,
    所述左上角子矩阵Hb1由所述矩阵Hb的前L0行和前Kb+4列的交集构成,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角矩阵;和/或
    所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子矩阵Hb2的最后kb-4行和最后kb-4列的交集构成的子矩阵是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4行、第Kb+1到Kb+3列的交集构成的子矩阵的所有元素都是对应零Z*Z方阵的元素;
    若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列仅有一个对应非零Z*Z方阵的元素,若左上角子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的所有元素都是对应零Z*Z方阵的元素;
    所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于Kb-2;
    其中,Nb大于等于2*Kb,L0等于4或3。
  33. 根据权利要求30至32中任一项所述的装置,其中,所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
    当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4,对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
    当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
    当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;
    当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
    当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
    其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。
  34. 根据权利要求30所述的装置,其中,
    所述的LDPC码支持V种码长,每种码长都对应一个具有相同大小Mb*Nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同,所述扩展因 子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,即
    Figure PCTCN2017070488-appb-100013
    其中,α=Pmax/Pl,v=1,2,....,Vmax;z1,z2,z3,…,zVmax是按照从小到大排列的,zVmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
    Figure PCTCN2017070488-appb-100014
    是最大码长的第i行和第j列的非0元素,hij v第v个码长的第i行和第j列的非零方阵元素。mod为取模操作,[]为下取整操作,Round为四舍五入操作,所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
  35. 根据权利要求30所述的装置,其中,
    所述的LDPC码支持V种码长,每种码长都有一个具有相同大小Mb*Nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同,所述的扩展因子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,至少包括以下方式之一:
    方式一:取模mod方法:
    Figure PCTCN2017070488-appb-100015
    方式2:取整(scale+floor)方法:
    Figure PCTCN2017070488-appb-100016
    方式3:舍入(scale+round)方法:
    Figure PCTCN2017070488-appb-100017
    其中,α=Pmax/Pl,v=1,2,....,Vmax,z1,z2,z3,…,zVmax是按照从小到大排列的,zVmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
    Figure PCTCN2017070488-appb-100018
    是最大码长的第i行和第j列的非零方阵元素,hij v第v个码长的第i行和第j列的非零方阵元素,mod为取模操作,[]为下取整操作,Round为四舍五入操作,所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
  36. 根据权利要求34或者35所述的装置,其中,所述n的值是自然数集合nset中的一个元素,其中,所有n的值构成所述自然数集合nset。
  37. 根据权利要求34或者35所述的装置,其中,所述Pmax等于2的X次幂,其中,X是大于或者等于2的整数。
  38. 根据权利要求30所述的装置,其中,所述LDPC码支持V种码长,每种码长都对应一个具有相同大小Mb*Nb的基础矩阵Hb;所述扩展因子Z支持一组确定的扩展因子集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,所述扩展因子zv是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数;
    所述装置还包括:交织模块,设置为对所述源信息比特序列进行 交织,由以下至少一个参数确定所述交织方法:所述Pmax、所述pl和所述n。
  39. 根据权利要求38所述的装置,其中,所述对源信息比特序列进行LDPC编码运算之后,所述方法还包括:对得到码字序列进行解交织,由以下至少一个参数确定所述解交织方法:所述Pmax、所述pl和所述n。
  40. 根据权利要求38所述的装置,其中,所述交织模块还设置为对编码前信息比特进行均匀分段,每段长度为pl比特;对于每一段后面添加Pmax-pl比特,添加后每一段都有Pmax比特;以及对每个段进行长度为Pmax的二进制比特翻转BRO交织;其中,所述Pmax等于2的X次幂,其中,X是大于或者等于2的整数。
  41. 根据权利要求39所述的装置,其中,所述解交织模块,设置为对编码后码字比特进行均匀分段,每段长度为Pmax比特;以及对每个段进行长度为Pmax的二进制比特翻转BRO解交织。
  42. 一种结构化低密度奇偶校验码LDPC的译码装置,包括:
    确定模块,设置为确定译码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Nb是整数,Kb是大于等于4的整数,i=1、…、Mb,j=1,…、Nb;
    所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
    译码模块,设置为根据所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,预设比特数的码字进行译码运算,得到源信息比特序列,其中,Z是大于等于1的正整数。
  43. 根据权利要求42所述的装置,其中,所述源信息比特序列为(Nb-Mb)×Z比特的序列;所述预设比特数为Nb×Z比特。
  44. 根据权利要求38所述的装置,其中,
    所述左上角子矩阵Hb1由所述矩阵Hb的前L0行和前Kb+4列的交集构成,所述左上角子矩阵Hb1的每一行的对应非零Z*Z方阵的元素个数都小于等于Kb+2且大于等于Kb-2,所述左上角子矩阵Hb1的最后四列的方阵是一个左下三角矩阵或者准左下三角矩阵;和/或
    所述左上角子矩阵Hb2由所述矩阵Hb的前Kb行和前2*Kb列的交集构成,所述左上角子矩阵Hb2的前4行、最后Kb-4列的交集构成的子矩阵的所有元素都是对应Z*Z零方阵的元素,所述左上角子矩阵Hb2的最后kb-4行和最后kb-4列的交集构成的子矩阵是一个大小为(kb-4)*(kb-4)的左下三角矩阵或者准左下三角矩阵,所述左上角子矩阵Hb2的最后kb-4行、第Kb+1到Kb+3列的交集构成的子矩阵的所有元素都是对应零Z*Z方阵的元素;
    若左上角子矩阵Hb1的最后四列的方阵是一个下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列仅有一个对应非零Z*Z方阵的元素,若左上角子矩阵Hb1的最后四列的方阵是一个准下三角矩阵,所述左上角子矩阵Hb2的第Kb+1列的所有元素都是对应零Z*Z方阵的元素;
    所述左上角子矩阵Hb2的最后kb-4行和前kb列的交集构成一个子矩阵,在这个子矩阵中每一行的对应非零Z*Z方阵的元素个数都小于等于Kb-2;
    其中,Nb大于等于2*Kb,L0等于4或3。
  45. 根据权利要求42至44中任一项所述的装置,其中,所述扩展因子Z支持一组确定值集合{z1,z2,z3…,zV},其中,z1,z2,…,zV是按照从小到大顺序排列的,zr、zs、zt、zu是所述集合中四个确定值的扩展因子且满足z1≤zr≤zs≤zt≤zu≤zV,其中,V、r、s、t、u是下标,1≤r≤s≤t≤u≤V,V是大于等于2的整数;
    当z1≤Z=zi<zr时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特中至少一个比特的girth等于4,对于对应扩展因子Z=zi和删除最重R列的基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6,其中,R小于等于Kb/2;
    当zr≤Z=zi<zs时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于6;
    当zs≤Z=zi<zt时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的所有系统比特的girth都等于6,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于8;
    当zt≤Z=zi<zu时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的码字比特的girth都等于8;
    当zu≤Z=zi<zV时候,对于对应扩展因子Z=zi和基础矩阵Hb的LDPC码,在每个LDPC码字中所有重量大于2的系统比特的girth都等于8,在每个LDPC码字中至少一个重量大于2的校验比特的girth大于等于10;
    其中,一个LDPC码字的每一码字比特对应所述奇偶校验矩阵的每一列,每个码字比特的重量是指对应列中非零元素的个数,且i=1,2,…,V。
  46. 根据权利要求42所述的装置,其中,
    所述的LDPC码支持V种码长,每种码长都对应一个具有相同大小Mb*Nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同,所述扩展因子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,即
    Figure PCTCN2017070488-appb-100019
    其中,α=Pmax/Pl,v=1,2,....,Vmax;z1,z2,z3,…,zVmax是按照从小到大排列的,zVmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
    Figure PCTCN2017070488-appb-100020
    是最大码长的第i行和第j列的非0元素,hij v第v个码长的第i行和第j列的非零方阵元素。mod为取模操作,[]为下取整操作,Round为四舍五入操作,所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
  47. 根据权利要求42所述的装置,其中,
    所述的LDPC码支持V种码长,每种码长都有一个具有相同大小Mb*Nb的基础矩阵Hb,并且每种码长的基础矩阵的对应非零方阵元素在矩阵中出现的位置都是相同的或者至多3个不同,所述的扩展因子Z支持一组确定的集合{z1,z2,z3,…,zVmax},每种码长的扩展因子是所述扩展因子集合中一个元素,每种码长的对应非零方阵元素的取值都是通过最大码长的对应非零方阵元素计算得到的,至少包括以下方式之一:
    方式一:取模mod方法:
    Figure PCTCN2017070488-appb-100021
    方式2:取整(scale+floor)方法:
    Figure PCTCN2017070488-appb-100022
    方式3:舍入(scale+round)方法:
    Figure PCTCN2017070488-appb-100023
    其中,α=Pmax/Pl,v=1,2,....,Vmax,z1,z2,z3,…,zVmax是按照从小到大排列的,zVmax是最大码长的扩展因子,zv是第v个码长的扩展因子,
    Figure PCTCN2017070488-appb-100024
    是最大码长的第i行和第j列的非零方阵元素,hij v第v个码长的第i行和第j列的非零方阵元素,mod为取模操作,[]为下取整操作,Round为四舍五入操作,所述扩展因子zv都是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数,Pmax是大于等于4的整数。
  48. 根据权利要求46或者47所述的装置,其中,所述n的值是自然数集合nset中的一个元素,其中,所有n的值构成所述自然数集合nset。
  49. 根据权利要求46或者47所述的装置,其中,所述Pmax等于2的X次幂,其中,X是大于或者等于2的整数。
  50. 根据权利要求42所述的装置,其中,所述的LDPC码支持V种码长,每种码长都对应一个具有相同大小Mb*Nb的基础矩阵Hb;所述扩展因子Z支持一组确定的扩展因子集合{z1,z2,z3,…,zVmax},每 种码长的扩展因子是所述扩展因子集合中一个元素,所述扩展因子zv是一个正整数值pl的n倍,即z=pl*n,其中,所述正整数值pl是子集合Pset的一个元素,其中,所述子集合Pset是Pmax的所有正整数因子所构成集合中的一个子集,n是一个自然数;
    所述装置还包括:交织模块,设置为预设比特数的码字进行译码运算,得到源信息比特序列之前,对所述预设比特数的码字进行交织,由以下至少一个参数确定所述交织方法:所述Pmax、所述pl和所述n。
  51. 根据权利要求42所述的装置,其中,所述装置还包括:解交织模块,设置为预设比特数的码字进行译码运算,得到源信息比特序列之后,对所述源信息比特序列进行解交织,由以下至少一个参数确定所述解交织方法:所述Pmax、所述pl和所述n。
  52. 一种编码器,包括:存储器和处理器,
    所述存储器,设置为确定编码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Kb是大于等于4的整数,Nb是整数,i=1、…、Mb,j=1,…、Nb;
    所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
    处理器,设置为确定所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,对源信息比特序列进行LDPC编码运算,得到码字序列,其中,Z是大于等于1的正整数。
  53. 一种译码器,其中,包括:
    存储模块,设置为存储译码使用的基础矩阵Hb,其中,所述基础矩阵Hb包括对应于系统比特的Mb×Kb的块A和对应于校验比特的Mb×Mb的块B,即Hb=[A,B],其中,hbij表示所述基础矩阵Hb的第i行和j列的元素,i是所述基础矩阵的行索引,j是所述基础矩阵的列索引,Kb=Nb-Mb,Nb是整数,Kb是大于等于4的整数,i=1、…、Mb,j=1,…、Nb;
    所述基础矩阵Hb包括一个或多个子矩阵,所述子矩阵包括:左上角子矩阵Hb1和左上角子矩阵Hb2,其中,所述左上角子矩阵Hb1和左上角子矩阵Hb2的行数和列数均小于所述基础矩阵Hb的行数和列数,且所述左上角子矩阵Hb1是左上角子矩阵Hb2的左上角子矩阵;
    处理器,设置为确定所述基础矩阵和与所述基础矩阵Hb对应的扩展因子Z,并对预设比特数的码字进行译码运算,得到源信息比特序列,其中,Z是大于等于1的正整数。
PCT/CN2017/070488 2016-05-13 2017-01-06 结构化ldpc的编码、译码方法及装置 WO2017193614A1 (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
US16/301,290 US10892778B2 (en) 2016-05-13 2017-01-06 Encoding method and device and decoding method and device for structured LDPC
EP23185378.9A EP4231532A3 (en) 2016-05-13 2017-01-06 Encoding method and device and decoding method and device for structured ldpc
JP2018560038A JP7025349B2 (ja) 2016-05-13 2017-01-06 構造的ldpcの符号化、復号化方法および装置
KR1020187036299A KR102229233B1 (ko) 2016-05-13 2017-01-06 구조화된 ldpc의 부호화 및 복호화 방법 및 장치
EP17795241.3A EP3457575B1 (en) 2016-05-13 2017-01-06 Encoding method and device and decoding method and device for structured ldpc
KR1020217007505A KR102347823B1 (ko) 2016-05-13 2017-01-06 구조화된 ldpc의 부호화 및 복호화 방법 및 장치
US17/110,832 US11323134B2 (en) 2016-05-13 2020-12-03 Encoding method and device and decoding method and device for structured LDPC
JP2022019134A JP7372369B2 (ja) 2016-05-13 2022-02-09 構造的ldpcの符号化、復号化方法および装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201610319410.1 2016-05-13
CN201610319410 2016-05-13
CN201610884876.6 2016-10-10
CN201610884876.6A CN107370490B (zh) 2016-05-13 2016-10-10 结构化ldpc的编码、译码方法及装置

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/301,290 A-371-Of-International US10892778B2 (en) 2016-05-13 2017-01-06 Encoding method and device and decoding method and device for structured LDPC
US17/110,832 Continuation US11323134B2 (en) 2016-05-13 2020-12-03 Encoding method and device and decoding method and device for structured LDPC

Publications (1)

Publication Number Publication Date
WO2017193614A1 true WO2017193614A1 (zh) 2017-11-16

Family

ID=60266957

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/070488 WO2017193614A1 (zh) 2016-05-13 2017-01-06 结构化ldpc的编码、译码方法及装置

Country Status (1)

Country Link
WO (1) WO2017193614A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111934692A (zh) * 2020-08-20 2020-11-13 西安电子科技大学 基于bibd可变码率的量子ldpc码构造方法
CN113541698A (zh) * 2020-04-22 2021-10-22 华为技术有限公司 编码、译码方法、装置及设备
CN118473426A (zh) * 2024-07-10 2024-08-09 汉江国家实验室 删减矩阵译码方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217337A (zh) * 2007-01-01 2008-07-09 中兴通讯股份有限公司 一种支持递增冗余混合自动重传的低密度奇偶校验码编码装置和方法
CN101325474A (zh) * 2007-06-12 2008-12-17 中兴通讯股份有限公司 Ldpc码的混合自动请求重传的信道编码及调制映射方法
CN102412842A (zh) * 2010-09-25 2012-04-11 中兴通讯股份有限公司 一种低密度奇偶校验码的编码方法及装置
CN103236860A (zh) * 2013-05-02 2013-08-07 广州海格通信集团股份有限公司 用于生成ldpc码校验矩阵的方法、及该ldpc码编码方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217337A (zh) * 2007-01-01 2008-07-09 中兴通讯股份有限公司 一种支持递增冗余混合自动重传的低密度奇偶校验码编码装置和方法
CN101325474A (zh) * 2007-06-12 2008-12-17 中兴通讯股份有限公司 Ldpc码的混合自动请求重传的信道编码及调制映射方法
CN102412842A (zh) * 2010-09-25 2012-04-11 中兴通讯股份有限公司 一种低密度奇偶校验码的编码方法及装置
CN103236860A (zh) * 2013-05-02 2013-08-07 广州海格通信集团股份有限公司 用于生成ldpc码校验矩阵的方法、及该ldpc码编码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3457575A4 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113541698A (zh) * 2020-04-22 2021-10-22 华为技术有限公司 编码、译码方法、装置及设备
CN113541698B (zh) * 2020-04-22 2022-07-12 华为技术有限公司 编码、译码方法、装置及设备
CN111934692A (zh) * 2020-08-20 2020-11-13 西安电子科技大学 基于bibd可变码率的量子ldpc码构造方法
CN111934692B (zh) * 2020-08-20 2023-03-10 西安电子科技大学 基于bibd可变码率的量子ldpc码构造方法
CN118473426A (zh) * 2024-07-10 2024-08-09 汉江国家实验室 删减矩阵译码方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
US11323134B2 (en) Encoding method and device and decoding method and device for structured LDPC
CN104868925B (zh) 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
US8185797B2 (en) Basic matrix, coder/encoder and generation method of the low density parity check codes
CN100486150C (zh) 基于非正则低密度奇偶校验码的编译码器及其生成方法
US9075738B2 (en) Efficient LDPC codes
US8301975B2 (en) Structured low-density parity-check (LDPC) code
CN100589357C (zh) 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法
JP2008501287A (ja) ブロック低密度パリティ検査符号を符号化/復号化する装置及び方法
CN112204888B (zh) 具有高效编码和良好误码平层特性的一类qc-ldpc码
WO2015135298A1 (zh) 一种支持低码率编码的方法及装置、计算机存储介质
WO2017193614A1 (zh) 结构化ldpc的编码、译码方法及装置
JP5789014B2 (ja) 符号化方法、符号化器、復号器
WO2011144161A1 (zh) 前向纠错方法、装置及系统
Ma et al. Recursive encoding of spatially coupled LDPC codes with arbitrary rates
Xu et al. Low-Density Parity Check (LDPC) Codes
JP2012019561A (ja) 符号化方法および符号化装置
Cai et al. Encoding of certain LDPC codes with decoding resources

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018560038

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17795241

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20187036299

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2017795241

Country of ref document: EP

Effective date: 20181213