WO2006076834A1 - Matrice de base fondee sur un ldcp irregulier et procedes de generation de cette matrice - Google Patents

Matrice de base fondee sur un ldcp irregulier et procedes de generation de cette matrice Download PDF

Info

Publication number
WO2006076834A1
WO2006076834A1 PCT/CN2005/000671 CN2005000671W WO2006076834A1 WO 2006076834 A1 WO2006076834 A1 WO 2006076834A1 CN 2005000671 W CN2005000671 W CN 2005000671W WO 2006076834 A1 WO2006076834 A1 WO 2006076834A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
basic matrix
code
basic
parity check
Prior art date
Application number
PCT/CN2005/000671
Other languages
English (en)
French (fr)
Inventor
Jun Xu
Liuqing Yuan
Liujun Hu
Original Assignee
Zte Corporation
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
Application filed by Zte Corporation filed Critical Zte Corporation
Priority to US11/795,826 priority Critical patent/US8607125B2/en
Priority to EP05749661A priority patent/EP1850484A4/en
Publication of WO2006076834A1 publication Critical patent/WO2006076834A1/zh

Links

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/033Theoretical methods to calculate these checking codes
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure

Definitions

  • the invention relates to a codec for a data transmission error correction of a digital communication system, in particular to a codec based on a low density parity check code in an error correction technology in the field of digital communication, a method for generating the same, and a method for generating a parity
  • a codec for a data transmission error correction of a digital communication system in particular to a codec based on a low density parity check code in an error correction technology in the field of digital communication, a method for generating the same, and a method for generating a parity
  • Background technique is used for the matrix.
  • All digital communication systems such as communications, radar, telemetry telemetry, digital computer storage systems and internal computing, and data transfer between computers can be attributed to the model shown in Figure 1.
  • the source encoder is used to improve the transmission efficiency.
  • the channel encoder is used to combat various noises and interferences during transmission. By artificially adding redundant information, the system has the ability to automatically correct errors. Guarantee the reliability of digital transmission. With the development of wireless digital communications and the emergence of various high-rate, bursty services, people have increasingly demanded error-correcting coding techniques.
  • LDPC codes are 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. 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. Most New research shows that LDPC codes have the following characteristics: Low decoding complexity, linear time coding, performance close to Shannon limit, parallel decoding, and better Turbo codes under long code length conditions.
  • the LDPC code is a linear block code based on the sparse check matrix. It is the sparseness of its check matrix that can realize the low complexity of the code, thus making the LDPC code practical.
  • the Gallager code mentioned above is a regular LDPC code (regular ldpcc), and 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, the check matrix is a sparse matrix, and each row has the same number of 1, and each column also has the same number of 1.
  • MGLuby believes that if the number of non-zero elements in the row or column of the 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. Improve so that it can reach 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 times
  • the realization is simple, and the characteristics of the number distribution and the distribution of girth (the shortest circle length) can be guaranteed during the expansion process, which has become the research focus of the current academic circles.
  • the current structure based on the unit matrix and its cyclically shifted LDPC code does not fully consider the influence of girth and the relationship between code length and girth. How to construct the LDPC code with the smallest girth and the shortest number of shortest circles is still very good. Incomplete.
  • bit error rate (BER) curve is slowed down when the signal-to-noise ratio is high, and the error floor phenomenon often occurs, resulting in performance degradation.
  • How to eliminate the error flat bottom phenomenon of the LDPC code, accelerate the BER curve falling speed, and improve the performance of the LDPC code at a high signal to noise ratio has become an urgent problem to be solved.
  • the research object of the present invention mainly refers to a non-regular code.
  • Irregular codes are parity 00671
  • the row weight and column weight of the parity check matrix are completely different low density parity check codes, and the column weight of the information bit portion of the parity check matrix is also different.
  • Regular codes refer to low-density parity codes whose row weights and column weights of the parity check matrix are identical, or information bits in the parity check matrix when the check digits correspond to the fixed structure.
  • some people also refer to the low-density parity code of the second case in the regular code as semi-regular codes.
  • the order distribution of the base matrix and the order distribution of the parity check matrix are identical.
  • the technical problem to be solved by the present invention is to provide a basic matrix of a non-regular low-density parity check code and a method for generating the same, which can effectively eliminate the error flat-bottom phenomenon and accelerate the falling speed of the BER curve.
  • the present invention provides a basic matrix of a non-regular low density parity check code, which is composed of a block A corresponding to Mx(NM) of information bits and MxM corresponding to parity bits.
  • the block B composition is characterized in that the following condition is also satisfied: in the basic matrix Hb, for all short circles of length 4, any element i, j, k, 1, of the short circle is formed in a counterclockwise or clockwise direction.
  • mod(i-j+kl, z) ⁇ 0, where mod is the modulo operation and z is the expansion factor.
  • the above basic matrix may further have the following feature: the corresponding to the parity block
  • the above basic matrix may also have the following characteristics: the following conditions are also met: The number of columns with the largest weight in the base matrix Hb is r, and each new base matrix formed by any r-1 column is deleted. For all short circles of length 4, the short circle is formed counterclockwise or clockwise. Any element i, j, k, 1, always has the inequality mod(i-j+kl, z) ⁇ 0 holds; and for all short circles of length 6, the short circle is formed counterclockwise or clockwise Any element i, j, k, 1, m, n, there is always an inequality mod(i-j+k-l+mn, z) ⁇ 0 holds.
  • the basic matrix may further have the following characteristics: the following condition is also satisfied: the number of columns with the largest weight in the basic matrix Hb is i, and any r-1 columns are deleted and all columns with a weight of 3 are deleted.
  • any element of the short circle i, j, k, 1, is counterclockwise or clockwise, and there is always an inequality mod(i-j+ Kl, z) ⁇ 0 holds; and for all short circles of length 6, any element i, j, k, 1, m, n of the short circle is formed counterclockwise or clockwise, there is always an inequality mod(i -j+k-l+mn, z) ⁇ 0 is established.
  • the basic matrix may further have the following characteristics: the basic matrix Hb is a unique basic matrix of low-density parity check codes of a plurality of code lengths of a specific code rate, and the element values of the basic matrix Hb are performed for each code length. After the correction, each of the obtained basic matrices can make all the inequalities satisfied by the pre-correction base matrix Hb.
  • the present invention further provides a method for generating a basic matrix of a non-regular low density parity check code, comprising the following steps:
  • step (c) Filling the values from the set ⁇ 0, 1, 2, ..., z-1 ⁇ into the original base matrix Hb, in the position of " ⁇ , to obtain the base matrix Hb, and for all lengths of Hb 4 Short circle, which constitutes any element of the short circle i, j, k, 1, counterclockwise or clockwise, there is always an inequality Mod(i-j+kl, z) ⁇ 0 holds, mod is a modulo operation, z is an expansion factor; further, the method for generating the basic matrix described above may further have the following features: the step (c) is further divided into the following step-
  • the requirement that the matrix corresponds to the parity check matrix girth ⁇ 10 is: after selecting a value at a certain position, for each short circle of length 4 passing through the position, the short circle is formed in a counterclockwise or clockwise direction. Any element i, j, k, 1, there is always an inequality mod(i-j+kl, z/2) ⁇ 0; for each short circle of length 6 passing through the position, it is constructed counterclockwise or clockwise Any element of the short circle i, j, k, 1, m, n, there is always an inequality mod(i-j+k-l+mn, z)
  • the requirement that the matrix corresponds to the parity check matrix girth > 8 is: after selecting a value at a certain position, for each short circle of length 4 passing through the position, the short circle is formed in a counterclockwise or clockwise direction. Any element i, j, k, 1, always has the inequality mod(i-j+kl, z) ⁇ 0; and for each short circle of length 6 that passes through the position, it is constructed counterclockwise or clockwise. Any element of the short circle i, j, k, 1, m, n, there is always an inequality mod(i-j+k-l+mn, z)
  • step (cl) the position of each of the most re-listed "1" is selected and filled.
  • the r-1 most important columns are added to form another one. a new basic matrix, determining whether the parity check matrix corresponding to the matrix satisfies the requirement of girth ⁇ 6, and if so, refilling The next position, otherwise the value is re-selected and judged;
  • the requirement that the matrix corresponds to the parity check matrix girth > 6 is: After selecting a value at a certain position, for each short circle of length 4 passing through the position, the short circle is formed in a counterclockwise or clockwise direction. Any element i, j, k, 1, there is always an inequality mod(i-j+kl, z) ⁇ 0o (c3) After filling a most re-column, fill the next most re-column according to step (c2) Until the r most re-listed columns are filled, the desired base matrix Hb is obtained.
  • the method for generating the basic matrix may further have the following features:
  • the step (c2) when all the optional values are not satisfactory, the step (c2) is executed, and then all the columns with the weight of 3 are deleted. , to form a new basic matrix, and then according to the same method in step (cl), the position of the nth most important column of the matrix is "1", and each time a value that meets the requirements is selected, The r-1 most re-columns are added to form another new basic matrix, and it is judged whether the parity check matrix corresponding to the matrix satisfies the requirement of girth ⁇ 6. If it is satisfied, the next position is filled, otherwise the value is re-selected.
  • the method for generating the basic matrix may further have the following features:
  • the base matrix is also corrected to the base matrix corresponding to all other code lengths at the code rate, and the corrected For each basic matrix, judge whether to make its corresponding parity check matrix girth ⁇ 8, if yes, perform step (c2), otherwise re-select the value, in the steps (c2), (c2) '
  • step (c2) After the selected value satisfies the corresponding inequality, the basic matrix at this time is corrected for each code length, and it is judged whether each of the obtained basic matrices can make the corresponding inequality hold, and if so, the selected value is successful, otherwise Also re-select the value.
  • the method for generating the basic matrix may further have the following features: a size of a base matrix having a code rate of 1/2 is set to 12 ⁇ 24, a maximum column weight of the base matrix is 12; and a base matrix having a code rate of 2/3 The size is set to 8 X24, the maximum column weight of the base matrix is 8; the size of the base matrix with a code rate of 3/4 is set to 6X24, and the maximum column weight of the base matrix is 6.
  • the method for generating the basic matrix may further have the following features: Adopt a quasi-lower triangular structure.
  • the method for generating the basic matrix may further have the following features: the original basic matrix is constructed by using a bit filling method, and the number of the shortest circles is counted in the process of construction, and the filling value of the shortest number of short circles is preferentially selected. .
  • the method for generating the basic matrix may further have the following feature: when the basic matrix is modified into a basic matrix of other code lengths, the modulo and the rounding are performed according to the original basic matrix and the code length of the basic matrix to be generated. Or the method of rounding is obtained by correcting the non-negative elements of the original base matrix.
  • Another technical problem to be solved by the present invention is to provide an encoder and a decoder based on a non-regular low-density odd parity code, which can effectively eliminate the error flat bottom phenomenon of the LDPC code and accelerate the falling speed of the BER curve. Still another aspect of the present invention provides a method of generating such an encoder/decoder.
  • the present invention provides an encoder based on a non-regular low-density parity check code, including an encoding operation module, further comprising a basic matrix storage module, wherein - the basic matrix storage module, a base matrix for storing a block A corresponding to Mx(NM) of information bits and a block B corresponding to MxM of parity bits, in the base matrix, for all short circles of length 4, counterclockwise Or any element i, j, lc, 1, which constitutes the short circle in a clockwise direction, there is always an inequality mod(i-j+kl, z) ⁇ 0, where mod is a modulo operation and z is an expansion factor.
  • the encoding operation module is configured to perform an encoding operation of obtaining an N-bit codeword from the source data of the N-M bit according to the basic matrix.
  • the above encoder may further have the following features: further comprising: an expansion module, configured to expand the base matrix according to a spreading factor and a basic permutation matrix to obtain a parity of the low density parity check code of ⁇ x ⁇ xz) a parity check matrix, wherein the encoding operation module performs an encoding operation based on the parity check matrix obtained by the base matrix expansion.
  • the above encoder may further have the following feature: the basic matrix storage module stores a plurality of basic matrices, each of which corresponds to a low-density parity check code required for a certain code rate of a specific code rate; or The stored basic matrix is a unique basic matrix of a low density parity check code having a plurality of code lengths of a specific code rate, and the encoder further includes a correction module for reading the code length according to the current data stream. The base matrix is corrected for non-negative values and then passed to subsequent processing modules.
  • the above-mentioned basic matrix of the present invention can be employed in the above encoder, and thus can have any of the features of the basic matrix.
  • the present invention further provides a decoder based on a non-regular low density parity check code, comprising a decoding operation module, further comprising a basic matrix storage module, wherein:
  • the basic matrix storage module is configured to store a basic matrix composed of a block A corresponding to Mx (NM) of information bits and a block B corresponding to parity bits of the check bits, wherein the base matrix has a length of 4 for all
  • the short circle which constitutes any element of the short circle i, j, k, 1, in a counterclockwise or clockwise direction, there is always an inequality mod(i-j+kl, z) ⁇ 0 holds, where mod is a modulo operation , z is the expansion factor.
  • the decoding operation module is configured to perform error correction on the input interfered codeword bits according to the basic matrix, and then output.
  • the decoder may also have the following features: further comprising expansion means for expanding the base matrix and in accordance with the basic spreading factor permutation matrix, to obtain a parity ⁇ ⁇ ⁇ ⁇ ⁇ ) low density parity check code a parity check matrix, wherein the decoding operation module performs an encoding operation based on the parity check matrix obtained by expanding the base matrix.
  • the decoder may further have the following feature: the basic matrix storage module stores a plurality of basic matrices, and each of the basic matrices corresponds to a low-density parity check code required for a certain code rate of a specific code rate; Or the stored basic matrix is a unique basic matrix of a low density parity check code having a plurality of code lengths of a specific code rate, and the encoder further includes a correction module. For reading the basic matrix according to the code length of the current data stream, and correcting the non-negative value therein, and then handing it to the subsequent processing module.
  • the above-mentioned basic matrix of the present invention can be employed in the above decoder, and thus can have any of the features of the basic matrix.
  • the present invention further provides a method for generating an encoder/decoder based on a non-regular low density parity check code, comprising the following steps:
  • step (d) storing the basic matrix obtained in steps (a) through (c), and constructing an encoding/decoding operation module for performing encoding/decoding operations to constitute an encoder/decoder.
  • steps (a) to (c) may employ the above-mentioned basic matrix generation method of the present invention, and thus may have any of the features of the generation method.
  • the method for generating the encoder/decoder may further have the following features: The method is to construct a corresponding basis according to the method of steps (a) to (c) according to each code length at a specific code rate. a matrix, and stored in the base matrix storage module.
  • the method for generating the encoder/decoder may further have the following features:
  • the basic matrix storage module stores low-density parity check with a plurality of code lengths of a specific code rate.
  • a unique base matrix of the code the base matrix is constructed according to a spreading factor corresponding to the maximum code length
  • a correction module is also configured for the encoder/decoder to The code length of the current data stream is corrected for the non-negative value in the base matrix and then passed to the subsequent processing module.
  • the method of the present invention focuses on the encoder and decoder of the LDPC code designed from the girth angle of the LDPC code. However, the number of possible combinations of the basic matrices is extremely large.
  • the base matrix There is no feasible method for constructing the parity check matrix girth as large as possible, and the shortest number of shortest loops is as small as possible, and the requirement is not met.
  • the base matrix obtains a basic matrix that satisfies such requirements by the proposed method of generating a basic matrix, that is, the LDPC parity check matrix generated by the basic matrix has a high Girth and the shortest shortest circle on the lighter node is as small as possible. This effectively eliminates the error flat bottom phenomenon of the LDPC code and accelerates the falling speed of the BER curve. Further, the basic matrix of the present invention has the above characteristics for variable code lengths under specific code rate conditions, thereby greatly reducing the storage space and having good universal applicability.
  • Figure 1 is a block diagram of a digital communication system
  • Figure 2 is a schematic diagram of a short circle of 4 in the bipartite graph
  • Figure 3 is a schematic diagram of a short circle of 6 in the bipartite graph
  • Figure 4 is a schematic diagram of a short circle of 4 in the check matrix
  • Figure 5 is a schematic diagram of the length of the check matrix of 6 short circles
  • FIG. 6 is a flowchart of a method for generating a codec according to an embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of a basic matrix defined by the present invention.
  • FIG. 8 is a structural block diagram of a codec according to an embodiment of the present invention.
  • 9 is a frame error rate performance of 19 code length low density parity check codes generated by a base matrix instance of 1/2 code rate according to the present invention.
  • FIG. 10 is a frame error rate performance of generating 19 code length low density parity check codes for a basic matrix instance of 3/4 code rate according to the present invention.
  • FIG. 11 is a block error rate performance of 19 code length low density parity check codes generated by an example of a completely non-regular code base matrix of 3/4 code rate according to the present invention.
  • the LDPC code is a special linear block code.
  • binary
  • the parity check matrix of the MxN dimension on the domain All operations are performed on the binary field GF(2), where addition and subtraction are "exclusive OR" operations, and multiplication is an AND operation.
  • the direct coding method of the system block code is: dividing a codeword X into NM information bits s and M check bits c, and correspondingly, dividing the parity check matrix H of the MxN into information bits and checksums respectively.
  • the two bits of the ⁇ ( ⁇ - ⁇ ) and ⁇ size, ie ⁇ [ ⁇
  • block B adopts a special matrix structure, such as strictly lower triangular structure (semi-random matrix), double lower triangular structure, etc.
  • B-1 has a very simple form, which can be directly calculated according to the above formula to obtain a check in the codeword.
  • the bit portion ⁇ and can ensure that the encoder has linear complexity.
  • the parity check matrix H has a quasi-lower triangular structure, and H has the following form:
  • the dimension of A is (mg)x(n-m)
  • B is (m-g)xg
  • T is (m-g)x(m-g)
  • C is gx(nm)
  • E is gx(m-g). All of these matrices are sparse matrices
  • T is the lower triangular matrix with the main diagonal elements all ones.
  • the encoder of the LDPC code designed by the present invention can be uniquely generated by the LDPC parity check matrix H.
  • the parity check matrix of the LDPC code not only determines the performance of the LDPC code decoder, but also determines the encoding of the LDPC code. And decoder complexity, storage space and processing latency. Finding the parity check matrix structure of the appropriate LDPC code is crucial.
  • the 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 plurality of z-bit adders described above, the plurality of z-bit cyclic shift registers and the plurality of z
  • the bit adder constructs a hardware circuit implemented LDPC encoder.
  • 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 N-bit codeword satisfies M parity sets.
  • a bipartite graph consists of 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 sides 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.
  • the girth of the bipartite graph is 6.
  • the girth of a node refers to the circle length of the shortest circle passing through the node.
  • the solid line of black emphasis in Figure 2 indicates that the information bits and the check bits c i form a circle of length 4, indicating that they are interconnected by a circle of length four.
  • the solid line of black emphasis in Figure 3 represents information bits, ⁇ 2 , ⁇ and check bits.
  • a loop of length 6 is constructed, indicating that x is interconnected by a loop of length 6.
  • Figure 4 and Figure 5 show the general form of the short circle with a circle length of 4 and 6 respectively appearing in the LDPC parity 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 parity check matrix H of the LDPC code is set to ( ⁇ x (Nx z) matrix, which is composed of Mx N block matrices, each block matrix is a different power of the basic permutation matrix of z, the basic permutation matrix When it is a unit matrix, they are the cyclic shift matrix of the unit matrix (the default is right shift in the text). By this power j, each block matrix can be uniquely identified, and the power of the unit matrix can be represented by 0. This is represented by - 1. Thus, if each block matrix of H is replaced by its power, a power matrix Hb is obtained.
  • Hb is defined as the base matrix of H, and H is called the extension of Hb. Matrix.
  • the code length / the number of columns of the base matrix ! ⁇ called the expansion factor.
  • the encoder of the LDPC code of the present invention is uniquely generated by the base matrix Hb, the spreading factor z, and the selected basic permutation matrix.
  • the basic matrix and the parity check matrix are essentially one thing.
  • the original basic matrix Hb' is constructed first.
  • the elements of the original basic matrix are composed only of 0 and 1.
  • the matrix reflects the important characteristics such as the number distribution and the code rate of the LDPC code that needs to be constructed.
  • LDPC parity check matrix girth > 6 In its basic matrix, for all short circles of length 4, counterclockwise or clockwise (the effect in clockwise or counterclockwise direction is equivalent) Any element i, j, k, 1, constituting the short circle always has mod(i-j+kl, z) ⁇ 0 (mod is modulo operation, z is expansion factor, and even number is selected).
  • LDPC parity check matrix girth > 8 In its basic matrix, for all short circles of length 4, any element of the short circle is formed counterclockwise or clockwise, j, k, 1, There are always mod(i-j+kl, z) ⁇ 0; and for all short circles of length 6, any element of the short circle i, j, k, 1, m, n is formed counterclockwise or clockwise. There is always mod(ij +k-l+mn , z) ⁇ 0.
  • the necessary and sufficient condition for the LDPC parity check matrix girth ⁇ 10 is: in its basic matrix, for all short circles of length 4, any element of the short circle i, j, k, 1 is formed counterclockwise or clockwise. , there is always mod(i-j+kl, z/2) ⁇ 0; for all short circles of length 6, any element of the short circle i, j, k, 1, m is formed counterclockwise or clockwise.
  • n there is always mod(i-j+k-l+mn, z) ⁇ 0 ; and for all short circles of length 8, press counterclockwise or clockwise
  • the direction constitutes any element of the short circle i, j, k, 1, m, n, s, t, and there is always mod(i-j+k-l+m-n+st, z) ⁇ 0.
  • the element values can be purposefully selected with the above inequality as a constraint, so that the parity check matrix obtained by the base matrix expansion has the desired girth value. It can also be used to check the generated base matrix to determine whether the extended parity check matrix has the expected girth value. If the same base matrix cannot be used for each different spreading factor, then for each different code length, the LDPC code codec needs to store a basic matrix. When the code length is long, a lot of bases are stored. Matrix, this will take up a lot of storage space or make the hardware implementation circuit very complicated.
  • the present embodiment uses the same basic matrix for multiple code lengths of the same code rate, which is usually generated corresponding to the maximum code length, and corrects the basic matrix at different code lengths. This makes the generated codec suitable for applications where the code length is variable.
  • the present invention is not limited to this, and is also applicable to a method of using one basic matrix for each code length.
  • 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 jth column of the i-th row of the basic matrix, P'i, j be the element after the correction, and have:
  • N is the number of base matrix columns and n is the code length of the low density parity 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 basic matrix of the variable length low density parity check code proposed in this embodiment and the method for generating the codec are as follows:
  • Step 110 Determine, according to the code rate and the code length, the number of rows M and the number of columns N of the basic matrix of the low density parity check code to be constructed;
  • Different check digits are specified under different code rates.
  • three code rates of 1/2, 2/3, and 3/4 are considered, and the check digits used are 12, 8, and 6, respectively.
  • the number of rows M of the matrix is also 12, 8, and 6.
  • code lengths bits
  • the interval between adjacent code lengths is 96 bits.
  • the basic matrix at the three code rates in this embodiment takes 24 columns (12 columns, 48 columns, etc.).
  • the expansion factor z for each code length can be calculated, which is 24, 28, respectively. 32, 36, 40, 96, with an interval of 4.
  • Step 120 Determine a distribution of times of the low-density parity check code to be constructed, and obtain a row weight vector and a column weight vector of the basic matrix by the number of times;
  • the present invention adopts an irregular LDPC code, and the frequency distribution can fully consider the signal-to-noise ratio threshold and the iterative convergence speed and the complexity of the algorithm, and finally select from the calculation result.
  • the size of the base matrix of 1/2 code is set to 12X24, then the maximum column weight of the base matrix is 12; the size of the base matrix of 2/3 code is set to 8X24, then the maximum column weight of the base matrix is 8; 3/ The size of the base matrix of 4 codes is set to 6X24, then the maximum column weight of the base matrix is 6.
  • the maximum column weight as large as possible can ensure the optimal performance of the designed low-density parity check code, and the large column weight does not significantly increase the average row weight, and the weight of the row is determined.
  • the complexity of the logarithmic domain decoding algorithm so large column weights only add little complexity.
  • Step 130 Construct, according to the obtained row and column weight vector, an unoriginal original base matrix Hb composed of a block A corresponding to the information bit Mx(NM) and a block B corresponding to the check bit MxM, the block B adopts a quasi-lower triangular structure, the first column has a column weight of 3, and the remaining portion is a double lower triangular structure, but the present invention is not limited thereto;
  • the original base matrix girth maximal in a possible matrix satisfying the row and column weight vectors.
  • it can be constructed by using the bit stuffing method, and the shortest circle is counted during the construction process.
  • the number makes the number of shortest shorts as small as possible, which is also beneficial for a check matrix that ultimately yields a high girth.
  • the matrix is not large, it is also possible to arrange and select from the possible combinations.
  • Block B uses a quasi-lower triangle structure in order to make the structure of the constructed parity check matrix conform to linear time coding and reduce the complexity of coding.
  • Step 140 Select an appropriate element from the set ⁇ 0, 1, 2, ..., zmax-1 ⁇ to fill the position of "1" in the original base matrix to obtain a non-regular base array Hb (the format is as shown in the figure 7)), the basic matrix should satisfy: Condition 1, for each code length, after correcting the basic matrix Hb, its corresponding parity check matrix girth ⁇ 6, and condition two, setting the weight of the base matrix Hb
  • the number of columns is r, and all new base matrices formed by any of the r-1 columns are deleted, and corresponding to the correction of each code length, the corresponding parity check matrix has girth ⁇ 8. Whether girth meets the requirements can be judged according to the inequality given above.
  • the short or clockwise direction constitutes the short Any element of the circle i, j, k, 1, always has mod(i-j+kl, z/2) ⁇ 0; for each short circle of length 6 passing through the position, counterclockwise or clockwise Any element i, j, k, 1, m, n constituting the short circle, there is always mod(i-j+k-l+mn, z) ⁇ 0; and for each length passing through the position is 8
  • the short circle which constitutes any element of the short circle in the counterclockwise or clockwise direction i, j, k, 1, m, n, s, t, always has mod(i-j+k-l+m-n +st, z) ⁇ 0.
  • the requirement that the matrix corresponds to the parity check matrix girth ⁇ 8 is: after the value is selected, for each short circle of length 4 passing through the position, the reverse fr or clockwise direction is formed. Any element of the short circle i, j, k, 1, always has mod(i-j+kl, z) ⁇ 0; and for each short circle of length 6 passing through the position, counterclockwise or clockwise Any element i, j, k, 1, m, n constituting the short circle, there is always mod(i-j+k-l+mn, z) ⁇ 0;
  • the matrix corresponding to the parity check matrix girth ⁇ 6 is required: after the value is selected, for each short circle of length 4 passing through the position, the short circle is formed in a counterclockwise or clockwise direction. Any element i, j, k, 1, always have mod(i-j+kl, z) ⁇ 0o
  • this embodiment also proposes the condition three (condition one must be satisfied): setting the column with the largest weight in the basic matrix Hb The number of the numbers is r, and any new base matrix formed by deleting any of the r-1 columns and deleting all the columns of weight 3 is modified, and the corresponding parity check matrix girth ⁇ 8 for each code length correction.
  • step 3 when filling, if step 3) is to fill the new n-th matrix with the nth most re-column and remove the remaining r-1 most re-column, all the optional values cannot satisfy the correction for each code length.
  • the corresponding parity check matrix girth > 8 is required, then all the columns with the weight of 3 are removed to form a new basic matrix.
  • the new basic matrix can be filled.
  • the value of the parity check matrix girth ⁇ 8 and then add other filled most re-listed for verification.
  • This condition is a little looser than Condition 2. That is, the basic matrix required to be constructed in this embodiment must satisfy the condition one, and the condition 2 is preferably satisfied on the basis of the condition 2, and the matrix satisfying the condition 3 is used when the condition 2 is not satisfied.
  • the basic matrix of 1/2 code rate is as follows, the size is 12x24, and the first behavior column label: 1 2 3 4 B 6 7 8 9 10 1 1 12 13 14 15 16 17 18 19 20 21 22 23 24
  • the right half of the one half is a double diagonal lower triangular structure.
  • the column weight of a column of elements refers to the number of non-negative elements in the column element.
  • the column weight distribution of the base matrix is (first behavior column label) -
  • the maximum column weight is 12, and the maximum total column has 3 columns, which are columns 4, 8, and 12, respectively.
  • the base matrix of the 1/2 code rate can be deleted by any two largest column weight columns and columns of weight 3, for example, the 8th of the largest column weight is deleted.
  • the result of column 12 with 12 columns and column 7 with a column weight of 3 is: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
  • the basic matrix of 2/3 code rate is as follows, the size is 8 > ⁇ 24
  • the basic matrix of 3/4 code rate is as follows, the size is 12x24:
  • the maximum column weight of the matrix is 4, and the maximum total column has 12 columns, so when you keep one of the most re-listed, you can Get 12 kinds of matrices, where the result of retaining the first column and deleting the other largest weight columns is -
  • the base matrix generates a parity check matrix of 19 code lengths, all of which have a Girth of 10.
  • the 11th maximum column weight column and the column weight 3 column of the 3/4 code rate base matrix may be deleted, such as retaining the first of the maximum column weights.
  • the result of deleting the other maximum weight column and deleting the 19th column with the column weight of 3 is:
  • the Girth of the parity check matrix of the low-density parity check code corresponding to each code length generated by the matrix as the base matrix is 10 or 8.
  • Step 150 Store the obtained basic matrix into the basic matrix storage module, and configure a correction module, an expansion module, and an encoding operation module to obtain an encoder to be generated.
  • the corresponding structural block diagram is as shown in FIG. 8, wherein:
  • the correction module is configured to correct the non-negative value in the read basic matrix Hb according to the code length of the current data stream, and the correction module should be consistent with the correction mode used in the filling, and the code length of the data stream is determined by the system.
  • the data flow detection module is provided.
  • An extension module is configured to extend the modified base matrix by a spreading factor and a basic permutation matrix to obtain a parity check matrix of ( Mx ⁇ ⁇ ⁇ low-density parity check code.
  • the basic permutation matrix generally uses a unit matrix, and the extension It is only necessary to use the 0 matrix instead of the base matrix, and replace the other non-negative coefficients j with a unit array after the j-bit right shift.
  • the coding operation module is configured to obtain an encoding operation of the N-bit codeword from the source data of the NM bit based on the parity check matrix of the low-density parity check code obtained by the extension, in fact, realizing the sparse matrix by software or hardware Multiplication and addition operations, specifically using the above direct Method or Richarson method or any other method.
  • the base matrix storage module stores a base matrix corresponding to each possible code length. At this time, the above correction module can be canceled.
  • the base matrix can be used directly to complete the encoding without extending the module. Since the basic matrix is only a compressed form of the parity check matrix, the encoding of the low-density parity check code is implemented by a parity check matrix in principle, but the form can be directly implemented by the basic matrix, for example, a zX The unit matrix of z is rotated right by a matrix and multiplied by a zX 1 column vector operation, which is equivalent to shifting the vector to the left by one bit (the number of bits in the base matrix is shifted), a parity check matrix The operation can always find the vector operation of the corresponding basic matrix equivalently. Therefore, the encoding process based on the parity check matrix can be directly implemented by the basic matrix, but the principle, method and flow are unchanged.
  • An encoder based on a unit array and its cyclic shift matrix with a specific code rate code length variable non-regular low density parity check code, wherein the code rate is 3/4, and the code length is from 576 to 2304 in steps of 96.
  • the expansion factor z is from 24 to 96.
  • the encoder includes a basic matrix storage module, a basic matrix correction module, and an encoding operation module, wherein:
  • the basic matrix storage module stores the following 6 X24 matrix Hb:
  • the basic matrix correction module corresponding to the code length N of the current code
  • the expansion factor corrects the non-negative 1 value element in the basic matrix Hb.
  • the corrected element value should be smaller than the expansion factor value under the code length.
  • the correction algorithm uses rounding, and set Pi, j as the basic matrix.
  • the non-negative elements of the column, P, i, j are the elements after the correction, are:
  • N is the code length of the low density parity check code of the parity check matrix to be generated, and is a rounding operation
  • the encoding operation module is configured to obtain, according to the modified basic matrix, an encoding operation of obtaining an N-bit codeword from source data of NM bits, where the encoding operation is obtained by using the basic matrix or by using the basic matrix
  • the parity check matrix is used to complete the encoding.
  • the second one is an encoder based on a non-regular low-density parity check code with a variable code length of a unit matrix and its cyclic shift matrix, wherein the code rate is 5/6, and the code length is in steps of 96. From 576 to 2304, the spreading factor z ranges from 24 to 96.
  • This encoder includes a basic matrix storage module, a basic matrix correction module, and an encoding operation module, where:
  • the basic matrix storage module stores the following 4 X 24 matrix Hb:
  • the basic matrix correction module based on the expansion factor corresponding to the code length N of the current encoding, the base matrix Hb
  • the non-negative 1 value element in the correction is corrected.
  • the corrected element value should be smaller than the expansion factor value under the code length.
  • the correction algorithm adopts rounding, and set Pi, j as the non-negative element of the i-th row and the j-th column of the basic matrix. P'i, j is the element after the correction, there are - 2304
  • the encoding operation module is configured to obtain, according to the modified basic matrix, an encoding operation of obtaining an N-bit codeword from source data of NM bits, where the encoding operation is obtained by using the basic matrix or by using the basic matrix
  • the parity check matrix is used to complete the encoding.
  • Step 160 further configuring a decoding operation module, together with the basic matrix storage module, the correction module and the expansion module (optional) to form a decoder to be generated, as shown in FIG. 8 , wherein the decoding operation module is used Parity checker for low density parity check code based on extension 5 000671 array, error-corrected codeword bits after input are corrected and output.
  • the decoding operation module is used Parity checker for low density parity check code based on extension 5 000671 array, error-corrected codeword bits after input are corrected and output.
  • Parity checker for low density parity check code based on extension 5 000671 array
  • error-corrected codeword bits after input are corrected and output.
  • an existing message passing algorithm can be employed as the decoding algorithm, but the present invention is not limited thereto.
  • the coding operation module is changed to The decoding operation module uses the basic matrix storage module and the correction module unchanged, and obtains two corresponding non-regular low-density parity check codes based on the unit code matrix and its cyclic shift matrix with a specific code rate code length variable. decoder.
  • FIG. 9 is a diagram showing an example of a basic matrix of 1/2 code rate according to the present invention for generating 19 code length low density parity check codes in BPSK modulation, additive white Gaussian noise channel, and standard signal transmission decoding under 50 iterations.
  • Frame error rate performance Fig. 10 shows the performance of a basic matrix instance of the present invention for generating 19 code length low density parity check codes under the same conditions.
  • FIG. 11 shows the frame error rate performance of 19 code length low density parity check codes generated by a 3/4 code rate of a completely non-regular code base matrix.
  • the present invention can ensure that the LDPC codes of all code lengths can overcome the error flat bottom, and the characteristics of continuous improvement with the increase of the code length are well ensured, that is, a certain code in the high SNR interval. Under the condition of different code length BER curves, there is basically no intersection ("cross"), and the speed of iterative convergence is accelerated, effectively eliminating the error floor.
  • the method of the present invention focuses on the encoder and decoder of the LDPC code designed from the girth angle of the LDPC code, and can generate a feature having a high Girth characteristic and having a variable code length under a specific code rate condition.
  • LDPC code parity check matrix It can effectively eliminate the error flat bottom phenomenon of LDPC code, reduce the number of iterative convergence, significantly improve the performance of LDPC code, and has good universal applicability.
  • the present invention can be applied to an error correction coding technique for data transmission in a digital communication system, and obtains an LDPC code which is excellent in performance at a high SNR.

Landscapes

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

Description

基于非正则 LDPC码的基础矩阵、 编译码器及其生成方法
技术领域
本发明涉及一种数字通信系统用于数据传输纠错的编译码器,特别是 涉及数字通信领域纠错技术中的基于低密度奇偶校验码的编译码器及其 生成方法, 以及生成奇偶校验矩阵所用的基础矩阵。 背景技术
所有的数字通信系统如通信、雷达、遥控遥测、数字计算机的存储系 统和内部运算以及计算机之间的数据传输等都可以归结为如图 1 所示的 模型。 其中的信源编码器是为了提高传输的有效性, 信道编码器是为了 抗击传输过程中各种各样的噪声和干扰, 通过人为地增加冗余信息, 使 得系统具有自动纠正差错的能力, 从而保证数字传输的可靠性。 随着无 线数字通信的发展及各种高速率、 突发性强的业务的出现, 人们对纠错 编码技术提出了愈来愈高的要求。
最初纠错码的研究主要集中在以代数理论为基础的线性分组码,随后 出现了汉明码、 循环码、 BCH码、 RS码等一系列好码。 五十年代出现的 卷积码在编码过程中引入了寄存器, 增加了码元之间的相关性, 从而在 相同的复杂度下获得比分组码更高的编码增益。 随着各种卷积码译码算 法 (Viterbi算法)的出现, 卷积码得到了深入研究和应用。 1993 年, 法国 的 Berrou等人提出了 Turbo码, 使人们朝着编码性能的极限又迈进了 一大步。在获得巨大成功的 Turbo码的启发下,另一类具有相似特征和性 能的编码重新得到人们的重视, 这就是低密度奇偶校验码 (Low Density Parity Check Codes, 记为 LDPC码)。 LDPC码是一类可以用非常稀疏的 奇偶校验矩阵或者二分图定义的线性分组码,最初由 Gallager发现,所以 称为 Gallager码。经过数十年的沉寂,随着计算机硬件和相关理论的发展, MacKay和. Neal重新发现了它, 并证明了它具有逼近香农限的性能。 最 新研究表明, LDPC码具有以下特点: 低译码复杂度, 可线性时间编码, 具有逼近香农限的性能, 可并行译码, 以及在长码长条件下优于 Turbo 码。
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码由于具有任意可变码长, 编码实现简单, 扩展过程中可以保证次数分布和 girth (指最短圈长)分 布不变的特点, 成为当前学术界的研究重点。 但是, 目前构造的基于单 位阵及其循环移位 LDPC码都没有充分考虑 girth的影响以及码长和 girth 的关系, 如何构造出 girth尽量小、 最短短圈数尽量少的 LDPC码的方法 还很不全面。从而使得误码率 (BER)曲线在信噪比较高的时候下降速度急 剧变慢, 常常出现差错平底 (error floor)现象, 从而导致性能下降。如何才 能消除 LDPC码的差错平底现象, 加速 BER曲线下降速度, 在高信噪比 时提高 LDPC码的性能, 成为当前亟待解决的问题。
本发明研究对象主要指非正则码。非正则码 (irregular codes)是指奇偶 00671 校验矩阵的行重量和列重量是完全不同的低密度奇偶校验码, 并且奇偶 校验矩阵的信息位部分的列重量也是不同的。 正则码 (regular codes)是指 是指奇偶校验矩阵的行重量和列重量是完全相同的低密度奇偶校验码, 或者在奇偶校验矩阵中当校验位部分对应保持固定结构时信息位部分行 重量和列重量完全相同的低密度奇偶校验码。 在相关文献中, 也有人将 正则码中第二种情况的低密奇偶校验码称为半正则码 ( semi-regular codes) 。 基础矩阵的次数分布和奇偶校验矩阵的次数分布是一致的。
对于非正则码, 由于奇偶校验矩阵中非零元素很多,所以很难保证奇 偶校验矩阵的 girth达到 8,但又很容易保证奇偶校验矩阵的 girth达到 6, 所以本发明希望在奇偶校验矩阵的 girth达到 6的基本条件下尽可能地消 除长度为 8 的短圈, 这样做会进一步消除差错平底; 对于特定码率多码 长的低密度奇偶校验码, 这样做还可以保证不同码长的 FER曲线在 FER 大于 10— 4时不会相交, 从而设计出好的非正则低密度奇偶校验码。
发明内容
本发明所要解决的技术问题在于提供一种非正则低密度奇偶校验码 的基础矩阵及其生成方法, 由使生成的奇偶校验矩阵能有效地消除差错 平底现象, 加速 BER曲线的下降速度。
为了解决上述技术问题,本发明提供了一种非正则低密度奇偶校验码 的基础矩阵, 该基础矩阵 Hb由对应于信息比特的 Mx(N-M)的块 A和对 应于校验比特的 MxM的块 B组成, 其特征在于, 还满足以下条件: 该 基础矩阵 Hb中, 对于所有长度为 4的短圈, 按逆时针或顺时针方向构成 该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立, 其中, mod为求模运算, z为扩展因子。
进一步地,上述基础矩阵还可具有以下特点:所述对应于校验比特块
B采用准下三角结构。
进一步地,上述基础矩阵还可具有以下特点:还满足以下条件:设该 基础矩阵 Hb中重量最大的列的数目为 r,删除其中任意 r-1列形成的每一 个新的基础矩阵中, 对于所有长度为 4 的短圈, 按逆时针或顺时针方向 构成该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立; 且对于所有长度为 6 的短圈, 按逆时针或顺时针方向构成该短圈的任意 元素 i, j, k, 1, m, n, 总有不等式 mod(i-j+k-l+m-n, z) ≠0成立。
进一步地, 上述基础矩阵还可具有以下特点:还满足以下条件:设该 基础矩阵 Hb中重量最大的列的数目为 i,,删除其中任意的 r-1列并删除所 有重量为 3的列后形成的每一个新的基础矩阵中, 对于所有长度为 4的 短圈, 按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, 总有不 等式 mod(i-j+k-l, z)≠0成立; 且对于所有长度为 6的短圈, 按逆时针或 顺时针方向构成该短圈的任意元素 i, j, k, 1, m, n, 总有不等式 mod(i-j+k-l+m-n, z) ≠0成立。
进一步地, 上述基础矩阵还可具有以下特点: 所述基础矩阵 Hb是特 定码率多个码长的低密度奇偶校验码的唯一基础矩阵, 按每一码长对基 础矩阵 Hb的元素值进行修正后,得到的每一基础矩阵均能使修正前基础 矩阵 Hb所满足的所有不等式成立。 为了解决上述技术问题,本发明又提供了一种非正则低密度奇偶校验 码的基础矩阵的生成方法, 包括以下步骤:
(a) 根据码率和码长的要求, 确定需构造的基础矩阵 Hb的行数 M 和列数 N,并根据次数分布要求确定基础矩阵 Hb的行重量向量和列重量
(b) 构建一个由对应于信息比特的 Mx(N-M)的块 A和对应于校验 比特的 MxM的块 B组成的非正则的原始基础矩阵 Hb';
(c)从集合 {0, 1, 2, ..., z-1}中选值填充到原始基础矩阵 Hb,中 "Γ 的位置上, 得到基础矩阵 Hb, 且对于 Hb中所有长度为 4的短圈, 按逆 时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立, mod为求模运算, z为扩展因子; 进一步地,上述基础矩阵的生成方法还可具有以下特点:所述步骤 (c) 进一步分为以下步骤-
(cl )假设原始基础矩阵中有 r个最重列, 先将原始基础矩阵 Hb'中 所有的 r个最重列去掉, 从集合 {0, 1, 2, ..., z-1}中选值填充该矩阵中 一个为 "1"的位置, 未填充的位置为空, 每填一个位置, 先按使该矩阵对 应奇偶校验矩阵 girth≥ 10的要求选值; 选不到值时, 再按使该矩阵对应 奇偶校验矩阵 girth≥ 8的要求来选;
使该矩阵对应奇偶校验矩阵 girth≥ 10的要求是: 在某位置选值填充 后, 对于经过该位置的每一个长度为 4 的短圈, 按逆时针或顺时针方向 构成了该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z/2)≠0; 对于经过该位置的每一个长度为 6 的短圈, 按逆时针或顺时针方向构成 了该短圈的任意元素 i, j, k, 1, m, n, 总有不等式 mod(i-j+k-l+m-n, z)
≠0; 且对于经过该位置的每一个长度为 8的短圈, 按逆时针或顺时针方 向构成了该短圈的任意元素 i, j , k, 1, m, n, s , t, 总有不等式 mod(i-j+k- l+m-n+s-t, z)≠ 0。
使该矩阵对应奇偶校验矩阵 girth > 8的要求是: 在某位置选值填充 后, 对于经过该位置的每一个长度为 4 的短圈, 按逆时针或顺时针方向 构成了该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0; 且 对于经过该位置的每一个长度为 6 的短圈, 按逆时针或顺时针方向构成 了该短圈的任意元素 i, j, k, 1, m, n, 总有不等式 mod(i-j+k-l+m-n, z)
≠0;
(c2)完成对去掉最重列的矩阵的填充后,加入第 n个最重列并去掉 剩余的 r-1个最重列, n=l,2,……, r, 构成一个新基础矩阵, 按步骤(cl ) 同样的方法对该最重列各个为 " 1 "的位置进行选值填充, 每选到一个符 合要求的值后, 再将上述 r-1个最重列加入构成又一个新基础矩阵, 判断 该矩阵对应的奇偶校验矩阵是否满足 girth≥ 6的要求,如果满足,再填充 下一个位置, 否则对该位置重新进行选值和判断;
使该矩阵对应奇偶校验矩阵 girth > 6的要求是: 在某位置选值填充 后, 对于经过该位置的每一个长度为 4 的短圈, 按逆时针或顺时针方向 构成了该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0o (c3)填充完一个最重列后, 再按步骤(c2)的方法填充下一个最重 列, 直到填完所有 r个最重列, 就得到了所要的基础矩阵 Hb。 进一步地, 上述基础矩阵的生成方法还可具有以下特点: 所述步骤 (c2) 中, 所有的可选值都不能满足要求时, 再执行步骤(c2) , : 再删 除所有重量为 3的列, 构成一个新的基础矩阵, 再按步骤(cl )同样的方 法对该矩阵第 n个最重列各个为 " 1 "的位置进行选值填充, 每选到一个 符合要求的值后,再将所述 r-1个最重列都加入,构成又一个新基础矩阵, 判断该矩阵对应的奇偶校验矩阵是否满足 girth≥ 6的要求,如果满足,再 填充下一个位置, 否则重新选值。
进一步地, 上述基础矩阵的生成方法还可具有以下特点: 所述步骤
(cl ) 在选到使其对应奇偶校验矩阵 girth≥ ^或 girth > 8的值后, 还将 该基础矩阵修正为对应于该码率下其它所有码长的基础矩阵, 对修正后 得到的每一个基础矩阵, 判断是否使其对应的奇偶校验矩阵 girth≥ 8, 如 果是, 再执行步骤(c2) , 否则需重新选值, 在所述步骤(c2)、 (c2) ' 中, 在所选值满足相应的不等式后, 还将此时的基础矩阵按每一码长进 行修正, 并判断得到的每一基础矩阵是否都能够使相应的不等式成立, 如果是, 则选值成功, 否则还要重新选值。
进一步地, 上述基础矩阵的生成方法还可具有以下特点: 对码率为 1/2的基础矩阵的大小定为 12X24, 基础矩阵的最大列重量取 12; 对码 率为 2/3的基础矩阵的大小定为 8 X24, 基础矩阵的最大列重量取 8; 对 码率为 3/4的基础矩阵的大小定为 6X24, 基础矩阵的最大列重量取 6。
进一步地, 上述基础矩阵的生成方法还可具有以下特点: 所述块 B 采用准下三角结构。
进一步地,上述基础矩阵的生成方法还可具有以下特点:所述原始基 础矩阵采用比特填充法构建, 并且在构建的过程中统计最短圈的数目, 优先选择使最短短圈的数量小的填充值。
进一步地,上述基础矩阵的生成方法还可具有以下特点:将所述基础 矩阵修正为其它码长的基础矩阵时, 是根据原基础矩阵和要生成基础矩 阵的码长, 采用取模、 取整或舍入的方法对原基础矩阵的非负元素修正 后得到的。 本发明所要解决的另一技术问题在于提供一种基于非正则低密度奇 偶校验码的编码器和译码器, 能有效地消除 LDPC码的差错平底现象, 加速 BER曲线的下降速度。本发明还要一种提供生成这种编码器 /译码器 的方法。
为了解决上述技术问题,本发明提供了一种基于非正则低密度奇偶校 验码的编码器, 包括编码运算模块, 其特征在于, 还包括基础矩阵存储 模块, 其中- 所述基础矩阵存储模块, 用于存储由对应于信息比特的 Mx(N-M)的 块 A和对应于校验比特的 MxM的块 B组成的基础矩阵, 所述基础矩阵 中, 对于所有长度为 4 的短圈, 按逆时针或顺时针方向构成该短圈的任 意元素 i, j, lc, 1, 总有不等式 mod(i-j+k-l, z)≠0成立, 其中, mod为求 模运算, z为扩展因子。
所述编码运算模块, 用于根据所述基础矩阵, 完成从 N-M比特的源 数据得到 N比特码字的编码运算。
进一步地,上述编码器还可具有以下特点:还包括扩展模块,用于根 据扩展因子和基本置换矩阵对所述基础矩阵进行扩展,得到^ ^^x^xz) 低密度奇偶校验码的奇偶校验矩阵, 所述编码运算模块是基于所述基础 矩阵扩展得到的该奇偶校验矩阵进行编码运算。 进一步地,上述编码器还可具有以下特点:所述基础矩阵存储模块中 存储了多个基础矩阵, 每一基础矩阵对应于特定码率某一码长所需要的 低密度奇偶校验码; 或者, 存储的所述基础矩阵是特定码率多个码长的 低密度奇偶校验码的唯一基础矩阵, 且该编码器还包括一个修正模块, 用于根据当前数据流的码长, 读取该基础矩阵并对其中的非负值进行修 正, 再交给后续处理模块。
进一步地,上述编码器中可采用上文提到的本发明的基础矩阵,因而 可具有该基础矩阵的任何特点。 为了解决上述技术问题,本发明还提供了一种基于非正则低密度奇偶 校验码的译码器, 包括译码运算模块, 其特征在于, 还包括基础矩阵存 储模块, 其中:
所述基础矩阵存储模块, 用于存储由对应于信息比特的 Mx(N-M)的 块 A和对应于校验比特的 ΜχΜ的块 B组成的基础矩阵, 所述基础矩阵 中, 对于所有长度为 4 的短圈, 按逆时针或顺时针方向构成该短圈的任 意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立, 其中, mod为求 模运算, z为扩展因子。
所述译码运算模块,用于根据所述基础矩阵对输入的受干扰后的码字 比特进行纠错后输出。
进一步地,上述译码器还可具有以下特点:还包括扩展模块,用于根 据扩展因子和基本置换矩阵对所述基础矩阵进行扩展,得到^ ^ χ^χζ) 低密度奇偶校验码的奇偶校验矩阵, 所述译码运算模块是基于所述基础 矩阵扩展得到的该奇偶校验矩阵进行编码运算。
进一步地,上述译码器还可具有以下特点:所述基础矩阵存储模块中 存储了多个基础矩阵, 每一基础矩阵对应于特定码率某一码长所需要的 低密度奇偶校验码; 或者, 存储的所述基础矩阵是特定码率多个码长的 低密度奇偶校验码的唯一基础矩阵, 且该编码器还包括一个修正模块, 用于根据当前数据流的码长, 读取该基础矩阵并对其中的非负值进行修 正, 再交给后续处理模块。
进一步地,上述译码器中可采用上文提到的本发明的基础矩阵,因而 可具有该基础矩阵的任何特点。 为了解决上述技术问题,本发明又提供了一种基于非正则低密度奇偶 校验码的编码器 /译码器的生成方法, 包括以下步骤:
(a)根据码率和码长的要求, 确定需构造的基础矩阵 Hb的行数 M 和列数 N,并根据次数分布要求确定基础矩阵 Hb的行重量向量和列重量 向量;
(b)构建一个由对应于信息比特的 Mx(N-M)的块 A和对应于校验 比特的 ΜχΜ的块 B组成的非正则的原始基础矩阵 Hb' ;
(c)从集合 {0, 1 , 2, ..., z-1 }中选值填充到原始基础矩阵 Hb'中 "Γ 的位置上, 得到基础矩阵 Hb, 且对于 Hb中所有长度为 4的短圈, 按逆 时针或顺时针方向构成该短圈的任意元素 i, j , k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立, mod为求模运算, z为扩展因子;
(d) 存储按步骤 (a) 到 (c )得到的所述基础矩阵, 并构建一个用 于完成编码 /译码运算的编码 /译码运算模块, 组成编码器 /译码器。
进一步地, 上述步骤(a)到(c)可以采用上文提到的本发明的基础 矩阵生成方法, 因而可具有该生成方法的任何特点。
进一步地, 上述编码器 /译码器的生成方法还可具有以下特点: 该方 法是根据特定码率下的每一码长, 分别按步骤(a)到(c)的方法构建一 个对应的基础矩阵, 并存储在所述基础矩阵存储模块中。
进一步地, 上述编码器 /译码器的生成方法还可具有以下特点: 所述 步骤(d) 中, 所述基础矩阵存储模块中存放的是特定码率多个码长的低 密度奇偶校验码的唯一基础矩阵, 该基础矩阵是按最大码长对应的扩展 因子而构建得到的, 且还为该编码器 /译码器配置一个修正模块, 以根据 当前数据流的码长对该基础矩阵中的非负值进行修正, 再交给后续处理 模块。 本发明方法着重从 LDPC码的 girth角度来设计好的 LDPC码的编码 器和译码器。 但是, 基础矩阵的可能组合方式的数量是极其巨大的, 现 有技术还没有一种使构建奇偶校验矩阵 girth尽量大, 最短短圈数尽量少 的可行方法, 也得不到满足这样要求的基础矩阵。 本发明则通过提出的 基础矩阵的生成方法, 得到了满足这样要求的基础矩阵, 即由该基础矩 阵生成的 LDPC奇偶校验矩阵具有高 Girth且在较轻的节点上的最短短圈 尽量少。 这就有效地消除了 LDPC码的差错平底现象, 加速了 BER曲线 的下降速度。 进一步地, 本发明的基础矩阵对于特定码率条件下的可变 码长均具有以上特性, 因而能大大缩小存储空间, 具有很好的普遍适用 性。 附图说明
图 1为数字通信系统的模块图;
图 2为二分图中长度为 4短圈的示意图;
图 3为二分图中长度为 6短圈的示意图;
图 4为校验矩阵中长度为 4短圈的示意图;
图 5为校验矩阵中长度为 6短圈的示意图;
图 6为本发明实施例编译码器生成方法的流程图;
图 7为本发明所定义的基础矩阵结构示意图;
图 8是本发明实施例编译码器的结构框图;
图 9为本发明 1/2码率一个基础矩阵实例生成 19种码长低密度奇偶 校验码的误帧率性能;
图 10为本发明 3/4码率一个基础矩阵实例生成 19种码长低密度奇偶 校验码的误帧率性能。 图 11为本发明 3/4码率一个完全非正则码基础矩阵实例生成 19种码 长低密度奇偶校验码的误帧率性能。 具体实施方式
LDPC码是一种特殊的线性分组码。通信中,每发送一个分组长度为 N比特的码字, 为了保证其具有一定的纠错能力,需要有 M个校验比特, 每个码字都要求满足^ = °T, 其中 Η为二元域上 MxN维的奇偶校验矩 阵。所有的运算都是在二元域 GF(2)上进行的,这里加和减是"异或"运算, 而乘是 "与"运算。
系统分组码的直接编码方法是: 把一个码字 X划分为 N-M个信息比 特 s和 M个校验比特 c,相应地,把 MxN的奇偶校验矩阵 H划分为分别 对应于信息比特和校验比特的 Μχ(Ν-Μ)和 ΜχΜ大小的两块, 即 Η= [Α|Β]。 根据
Figure imgf000013_0001
可得:
[Α \ Β] χ
于是可以得到 Axs+Bxc=0, 进一步推出 c=B-lAs。 当块 B采用特殊 的矩阵结构, 如严格下三角结构 (半随机矩阵)、 双下三角结构等, 则 B-1 具有非常简单的形式, 可以直接按照上面式子直接计算得到码字中校验 比特部分^ 并且可以保证编码器具有线性复杂度。
也可以采用 Richarson线性时间编码算法:奇偶校验矩阵 H具有准下 三角结构, 设 H具有如下形式:
K B T
H 、
C D Ε
设编码后码字是 X = (5,A,A),这里 S为编码码字的系统比特部分, Pi 和 A为码字的校验比特部分, 的长度为 g, 长度为 (m- g)。 上式中, A的维数是 (m-g)x(n- m), B是 (m- g)xg, T是 (m- g)x(m- g), C是 gx(n-m), D是 gxg, E是 gx(m- g)。 所有这些矩阵都是稀疏矩阵, 而 T是下三角矩 阵, 主对角线元素全为 1。 校验比特部分可以由下面式子求得- p[ = _9-1 (-ET-1A + C)sr = -T_1(Asr +Bpi ) 其中, 9 = -ET-'B + D
因此,本发明设计的 LDPC码的编码器可以由 LDPC奇偶校验矩阵 H 唯一生成, 实际上 LDPC码的奇偶校验矩阵不仅仅决定了 LDPC码译码 器的性能, 而且决定了 LDPC码的编码器和译码器的复杂度、 存储空间 和处理延时。 寻找合适的 LDPC码的奇偶校验矩阵结构是至关重要的。
在具体实现时, 可采上述直接方法或者 Richarson方法或者其它方法 运算,来完成从 N-M比特的源数据得到 N比特码字的编码功能。事实上, 该编码器就是用软件或硬件实现式中稀疏矩阵的乘法和加法运算, 对于 基于单位阵及其循环移位矩阵的 LDPC码, 稀疏矩阵的乘法运算可以由 多个 z位 (z为扩展因子) 的循环移位寄存器和多个 z位的加法器构成, 而稀疏矩阵的加法运算就是由上述的多个 z位的加法器完成, 该多个 z 位循环移位寄存器和多个 z位加法器就构造出一个硬件电路实现的 LDPC 编码器。 LDPC奇偶校验矩阵的图形表示形式是二分图。二分图和校验矩阵之 间具有一一对应的关系,一个 M*N的奇偶校验矩阵 H定义了每个具有 N 比特的码字满足 M个奇偶校验集的约束。一个二分图包括 N个变量节点 和 M个奇偶校验节点。当第 m个校验涉及到第 n个比特位, 即 H中第 m 行第 n列的元素 Hm, n=l时,将有一根连线连接校验节点 m和变量节点 n。 二分图中, 任何同一类的节点之间都不会有连接, 并且二分图中的总 边数和校验矩阵中非零元素的个数相等。
概念 girth用来定量描述二分图中的短圈。 在图论中, 二分图的 girth 是指一个图中最短圈的圈长, 例如: 某个二分图有长度为 6、 8、 10、 12 和长度更长的圈, 则该二分图的 girth为 6, 节点的 girth则指通过该节点 的最短圈的圈长。例如, 图 2中黑色加重的实线表示信息比特 和校 验比特 ci、 构成了一个长度为 4的圈, 说明 、 通过长度为 4的圈相 互联系。 图 3中黑色加重的实线表示信息比特 、 χ2 , ^和校验比特 、 构成了一个长度为 6的圈, 说明了 、 x 通过长度为 6的圈相 互联系。图 4、 图 5则分别给出了圈长为 4和为 6的短圈在 LDPC奇偶校 验矩阵中出现的一般形式。
LDPC码的信息传递译码算法假定变量节点是相互独立的,短圈的存 在必然破坏了独立性的假设, 使得译码性能明显下降。事实上, LDPC奇 偶校验矩阵对应二分图的最短圈长度越长, 即 girth值越大, 从变量节点 发出的信息被传递给自身的正反馈信息将越小, 则译码性能也越好。 因 此, 本发明构造 LDPC奇偶校验矩阵的原则如下: 首先, 选择的校验矩 阵的最短圈的长度 girth应该尽量大;其次,对于具有同样大小 girth的校 验矩阵, 选择的校验矩阵的最短圈的数目应该尽量少。
LDPC码的奇偶校验矩阵 H设为 (Μχ x (Nx z)矩阵, 它是由 Mx N个 分块矩阵构成, 每个分块矩阵都是 z 的基本置换矩阵的不同幂次, 基本 置换矩阵为单位阵时, 它们都是单位阵的循环移位矩阵 (文中默认为右 移) 。通过这样的幂次 j就可以唯一标识每一个分块矩阵, 单位矩阵的幂 次可用 0表示, 矩阵一般用 -1来表示。 这样, 如果将 H的每个分块矩阵 都用它的幂次代替, 就得到一个 的幂次矩阵 Hb。 这里, 定义 Hb是 H的基础矩阵, H称为 Hb的扩展矩阵。在实际编码时, 码长 /基础矩 阵的列数!^, 称为扩展因子。
例如, 矩阵
Figure imgf000015_0001
可以用下面的参数 ζ和一个 2x4的基础矩阵 Hb扩展得到:
1
z = 3 禾口
Figure imgf000015_0002
因此, 也可以说本发明的 LDPC码的编码器是由基础矩阵 Hb, 扩展 因子 z及所选择的基本置换矩阵唯一生成的。 根据上述基础矩阵的定义, 可以看出在给定扩展因子(一个大于 1的整数 z)的条件下, 基础矩阵和 奇偶校验矩阵本质上是一个东西。 构建基础矩阵 Hb时, 是先构建一个原始基础矩阵 Hb', 原始基础矩 阵的元素仅由 0和 1组成, 该矩阵反映出最终需要构造的 LDPC码的次 数分布、 码率等重要特征。 从集合 {0, 1, 2, ..., z-1}中选择合适的值填 充到原始基础矩阵中所有 T的位置上, 再将 "0"用" -1"代替, 就得到了 对应的基础矩阵, 其中 z为对应码长的扩展因子。
校验矩阵 H的 girth与基础矩阵 Hb之间存在关联, 通过数学推理和 计算机仿真的验证, 可以得到以下结论 (分析过程可以参照本申请人的 中国专利申请 200410009746.5的相关内容) :
LDPC奇偶校验矩阵 girth > 6的充分必要条件为: 它的基础矩阵中, 对于所有长度为 4 的短圈, 按逆时针或顺时针方向 (按顺时针或逆时针 方向的效果是等同的)构成该短圈的任意元素 i,j, k, 1,总有 mod(i-j+k-l, z)≠0 (mod为求模运算, z为扩展因子, 选偶数) 。
LDPC奇偶校验矩阵 girth > 8的充分必要条件为: 它的基础矩阵中, 对于所有长度为 4 的短圈, 按逆时针或顺时针方向构成该短圈的任意元 素 , j, k, 1, 总有 mod(i-j+k-l, z)≠0; 且对于所有长度为 6的短圈, 按 逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, m, n, 总有 mod(i-j +k-l+m-n , z) ≠0。
LDPC奇偶校验矩阵 girth≥ 10的充分必要条件为:它的基础矩阵中, 对于所有长度为 4 的短圈, 按逆时针或顺时针方向构成该短圈的任意元 素 i, j, k, 1, 总有 mod(i-j+k-l, z/2)≠0; 对于所有长度为 6的短圈, 按 逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, m, n, 总有 mod(i-j+k-l+m-n, z)≠0; 且对于所有长度为 8的短圈, 按逆时针或顺时针 方向构成该短圈的任意元素 i, j, k, 1, m, n, s, t,总有 mod(i-j+k-l+m-n+s-t, z)≠0。
当 girth≥10时, 提高 girth对译码器的性能改善很少, 所以本发明只 需要考虑消除长度为 4、 6和 8的短圈。
基于以上结论, 在构建 LDPC奇偶校验矩阵的基础矩阵时, 就可以 以上述不等式为约束条件有目的地选择元素值, 使得由该基础矩阵扩展 得到的奇偶校验矩阵具有所期望的 girth值。 也可以用于对已生成的基础 矩阵进行检查, 判断其扩展得到的奇偶校验矩阵是否具有所期望的 girth 值。 如果对于每个不同的扩展因子无法采用同一基础矩阵,那么,对于每 个不同的码长, 所述的 LDPC码编译码器都需要存储一个基础矩阵, 当 码长很多时, 就要存储很多基础矩阵, 这样会占用很大的存储空间或者 使得硬件实现电路很复杂。 因此, 从实用性考虑, 本实施例对同一码率 的多种码长, 使用同一个基础矩阵, 通常是对应于最大码长而生成的, 同时在不同码长时对该基础矩阵进行修正, 使得生成的编译码器可适用 于码长可变的场合。 但本发明不局限于此, 也可适用于对每一个码长采 用一个基础矩阵的方式。
修正是利用其它码长的扩展因子对基础矩阵 Hb中的非负值元素进行 修正, 修正后的元素值应小于该码长下的扩展因子值, 修正算法可以采 用取模 (mod)、取整 (scale+floor)或舍入 (scale+round)等。设 Pi, j为基础矩 阵第 i行第 j列的非负元素, P'i, j为修正以后的元素, 有:
对于取模 (mod)方法:
> 11 对于取整 (scale+floor)方法:
Figure imgf000017_0001
对于舍入 (scale+round)方法: υ u 2304^
其中, N为基础矩阵列数, n为要生成奇偶校验矩阵的低密度奇偶校 验码的码长。 mod为取模操作, [ ]为下取整操作, Round为四舍五入操作。 这里, 假定最大码长为 2304。
例如, 对于码长 1152比特低密度奇偶校验码, 设其基础矩阵某个非 负元素为 93, 则其修正结果为:
对于取模 (mod)方法:
1 1 <9
93mod^— = 93mod48 = 45
24
对于取整 (scale+floor)方法:
1152
[93 χ ϋ£] = [46.5] = 46
2304
对于舍入 (scale+round)方法:
1 152
Round(93 x ^-^) = Round(46.5) = 47
基于以上分析,如图 6所示,本实施例提出的码长可变低密度奇偶校 验码的基础矩阵及其编译码器的生成方法如下:
步骤 110, 根据码率和码长的要求, 确定需构造的低密度奇偶校验码 的基础矩阵的行数 M和列数 N;
不同码率下规定了不同的校验位数, 本实施例将考虑 1/2、 2/3和 3/4 三种码率, 采用的校验位数分别是 12、 8和 6, 相应基础矩阵的行数 M 也为 12、 8和 6。在确定列数时,需考虑码长和扩展因子为偶数这个要求, 假定共有 19种码长 (比特) , 分别是 576、 672、 768、 864、 960 、
2304, 相邻码长之间的间隔为 96比特。 为了同时兼顾译码性能和存储空 间的要求, 本实施例三种码率下的基础矩阵均取 24列 (也可以取 12列、 48列等) 。 这样, 可以计算得到每一码长的扩展因子 z, 分别为 24、 28、 32、36、40 、96,间隔为 4。zmin=24是最小码长的扩展因子; zmax=96, 是最大码长的扩展因子。
步骤 120, 确定需构造的低密度奇偶校验码的次数分布, 并由次数分 布得到所述基础矩阵的行重量向量和列重量向量;
从获得最佳性能考虑, 本发明采用非正则的 LDPC码, 次数分布可 以是充分考虑信噪比门限和迭代收敛速度以及算法的复杂度, 从计算结 果中最终选择出来的。
对于基于单位阵及其循环移位矩阵的非正则低密度奇偶校验码,它的 基础矩阵大小往往有严格限制, 这是因为过大的基础矩阵不利于存储、 表示和计算。 由于基础矩阵的大小有限(如: 在 IEEE802.16e中, 所有的 基础矩阵的列数都是 24) , 基础矩阵的大小将限制奇偶校验矩阵最大列 重量, 故在通常情况下, 在不违背设计原则的前提下, 奇偶校验矩阵的 最大列重量越大越好。例如: 1/2码的基础矩阵的大小定为 12X24, 那么 基础矩阵的最大列重量取 12; 2/3码的基础矩阵的大小定为 8X24, 那么 基础矩阵的最大列重量取 8; 3/4码的基础矩阵的大小定为 6X24, 那么 基础矩阵的最大列重量取 6。在满足设计要求的条件下, 尽可能大的最大 列重量可以保证设计出来的低密度奇偶校验码具有最优性能, 并且取大 的列重量并不会明显增加平均行重量, 而行重量决定对数域译码算法的 复杂度, 所以大的列重量只会增加很少的复杂度。 步骤 130, 根据得到的行、 列重量向量, 构建一个非正则的由对应于 信息比特的 Mx(N-M)的块 A和对应于校验比特的 MxM的块 B组成的原 始基础矩阵 Hb,, 块 B采用准下三角结构, 其第一列的列重为 3, 其余部 分是一个双下三角结构, 但本发明也并不局限于此;
为了使填充后的基础矩阵容易满足上述 girth相关不等式的要求, 最 好使该原始基础矩阵在满足行、 列重量向量的可能的矩阵中 girth最大。 为此, 可以采用比特填充法来构建得到, 在构建的过程中统计最短圈的 数目使最短短圈的数量尽量小, 这对最终得到高 girth的校验矩阵也是有 益的。 在矩阵不大时, 也可以排列出的可能的组合并从中选择。
块 B采用准下三角结构是为了能够使构建出的奇偶校验矩阵的结构 符合线性时间编码, 降低编码的复杂度。 步骤 140, 从集合 {0, 1, 2, ..., zmax-1}中选择合适的元素填充到 原始基础矩阵中" 1"的位置上, 得到非正则的基础 阵 Hb (其格式如图 7 所示) , 该基础矩阵应满足: 条件一, 对每一码长, 对该基础矩阵 Hb修 正后, 其对应奇偶校验矩阵 girth≥ 6, 以及条件二, 设基础矩阵 Hb中重 量最大的列的数目为 r,删除其中任意的 r-1列形成的所有新的基础矩阵, 对应于每一码长修正后,其对应奇偶校验矩阵的 girth≥ 8。 girth是否满足 要求可根据上文中给出的不等式进行判断。
本实施例采用以下具体的填充方法来实现上述限定:
1 )假设原始基础矩阵中有 r个最重列, 先将原始基础矩阵中所有的 r个最重列去掉, 从集合 {0, 1, 2, ..., zmax-1}中选值逐一填充该矩阵 中 "1"的位置, 未填充的位置为空。 本实施例是一列一列来填的, 在一个 位置填充一个元素时, 先按使该矩阵对应奇偶校验矩阵 girth≥ 10的要求 选值;选不到值时,再按使该矩阵对应奇偶校验矩阵 girth > 8的要求来选。 由于矩阵很稀疏, 比较容易满足 girth≥ 8的要求。另外, 如果一个位置有 多个值可以满足同一约束条件, 则从中随机选一个值填充。
在某位置填充时, 使该矩阵对应奇偶校验矩阵 girth > 10的要求是: 选值后, 对于经过该位置的每一个长度为 4 的短圈, 按逆时针或顺时针 方向构成了该短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z/2)≠0; 对 于经过该位置的每一个长度为 6 的短圈, 按逆时针或顺时针方向构成了 该短圈的任意元素 i, j, k, 1, m, n, 总有 mod(i-j+k-l+m-n, z) ≠0; 且 对于经过该位置的每一个长度为 8 的短圈, 按逆时针或顺时针方向构成 了该短圈的任意元素 i, j, k, 1, m, n, s, t, 总有 mod(i-j+k-l+m-n+s-t, z)≠0。
在某位置填充时,使该矩阵对应奇偶校验矩阵 girth≥ 8的要求是:选 值后, 对于经过该位置的每一个长度为 4 的短圈, 按逆时 fr或顺时针方 向构成了该短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0; 且对于 经过该位置的每一个长度为 6的短圈, 按逆时针或顺时针方向构成了该 短圈的任意元素 i, j, k, 1, m, n, 总有 mod(i-j+k-l+m-n, z) ≠0;
2)对该位置填充后的矩阵, 将其修正为对应于该码率下其它所有码 长的基础矩阵, 对修正 (只要有一种修正方法可以使修正后的基础矩阵 满足要求就可以, 但每次填充时只能采用同一种修正方法)后得到的每 一个基础矩阵, 判断是否使其对应的奇偶校验矩阵 girth≥ 8, 如果是, 执 行下一步, 否则需返回步骤 1 )重新选值。 这样来保证所有码长下, 基于 该基础矩阵直接扩展或修正后扩展得到的奇偶校验矩阵都满足 girth的要 求;
3 )完成对去掉最重列的矩阵的填充后, 加入第 n个最重列并去掉剩 余的 r-Ι个最重列, n=l,2,……, r, 构成一个新基础矩阵, 按步骤 1 ) 和 2) 同样的方法和要求对该最重列各个为 " 1 "位置进行选值填充, 每次 选到一个值后, 再将上述 r-1个最重列(可以只加入已填充的最重列)都 加入构成又一个新基础矩阵, 判断该矩阵对于每一个码长修正后, 其对 应奇偶校验矩阵是否满足 girth > 6的要求, 如果满足再填充下一个位置, 否则对该位置重新进行选值和判断;
在某位置填充时,使该矩阵对应奇偶校验矩阵 girth≥ 6要求是:选值 后, 对于经过该位置的每一个长度为 4 的短圈, 按逆时针或顺时针方向 构成了该短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0o
4)填充完一个最重列后, 再按上一步骤的方法填充下一个最重列, 直到填完所有的 r个最重列, 就得到了对于所有码长,其对应奇偶校验矩 阵 Girth最少为 6且满足上述条件二的基础矩阵。 设置上述条件二并通过上述步骤 3 )来实现该约束条件的意义在于, 在保证 girth值的情况下, 进一步地减少最短短圈的数目, 特别是能够减 少通过重量小的节点的最短短圈数, 因为重量小的节点后收敛, 因而可 以显著地提高编译码的性能。
有时基础矩阵比较小时,可能不能满足上述的条件二,在这种情况下 为了也能尽量提高性能, 本实施例还提出了条件三(条件一必须满足) : 设基础矩阵 Hb中重量最大的列的数目为 r,删除其中任意的 r-1列并删除 所有重量为 3 的列后形成的所有新的基础矩阵, 对于每一码长修正后, 其对应奇偶校验矩阵 girth≥ 8。
具体在填充时, 如果步骤 3 )对加入第 n个最重列并去掉剩余的 r-1 个最重列的新基础矩阵填充时, 所有的可选值都不能满足对每一码长修 正后使其对应奇偶校验矩阵 girth > 8的要求时, 则再去掉所有重量为 3 的列形成又一新的基础矩阵, 选择一个对每一码长修正后, 能使填充后 新的基础矩阵所对应奇偶校验矩阵 girth≥ 8的值,然后再加入其它填好的 最重列进行验证。 这个条件要比条件二宽松一些。 即本实施例要求构造 的基础矩阵必须满足条件一, 在此基础上较佳满足条件二, 条件二满足 不了时再采用满足条件三的矩阵。
如果只是构建对应于特定码长的基础矩阵,相当于上述实施例中只有 一种码长的特殊情况, 此时只需在选值时去掉对基础矩阵修正后再验证 的步骤即可, 这里不再赘述。
如果选值时上述要求都没法满足, 则需调整初值或基础矩阵的大小。 下面针对码率为 1/2、 2/3和 3/4的 LDPC码,提出了 3个满足上述要 求的基础矩阵 (mbxnb), 其中:
1/2码率的基础矩阵如下, 大小为 12x24, 其中第一行为列标号: 1 2 3 4 B 6 7 8 9 10 1 1 12 13 14 15 16 17 18 19 20 21 22 23 24
93一1一 1 30 -1 25 — 1 56一 1 77 -1 65 0 0 -1一 1一 1 — 1一 1一 1一 1 -1一 1一 1 一 1 87 — 1 88 5一 1 -1 31 — 1 — 1 70 32一 1 0 0 -1 -1一 1一 1一 1 -1一 1一 1一 1
-1一 1一 1 10一 1 9 — 1 20 86一 1一 1 37 -1一 1 0 0一 1一 1一 1一 1 -1 — 1一 1一 1
45一 1一 1 92 — 1 -1 90 13 -1一 1 9 1一 1 —1一 1 0 0 — 1 一 1 -1 — 1一 1一1一 1
-1 -1一 1 26 2一 1 -1 95 75 — 1 -1 86 — 1一 1一 1一 1 0 0 -1 -1一 1 — 1一 1一 1
-1 66 5 53一 1 — 1 -1 49 -1 — 1 -1 25 36一 1 -1 -1一 1 0 0 -1 -1 -1 _1一 1 一 1一 1一 1 25 -1 39 93 30 -1 — 1 -1 91 — 1一 1一 1一 1一 1一 1 0 0 -1一 1一 1一 1 一 1一 1 -1 52 60 -1 -1 4 15 82 -1 73 — 1 -1 — 1一 1 -1 -1一 1 0 0 — 1 _1一 1
21一 1 22 58一 1 -1一 1 42 — 1 -1 -1 38 -1一1一 1 -1一 1 — 1一 1 -1 0 0一 1 _1
-1 23 -1 19 -1一 1 82 94 — 1 86 -1 48 — 1一 1一 1一 1 -1一 1一 1 -1 -1 0 0 — 1 一 1 — 1 0 75 26 52一 1 2一 1 — 1一 1 28 — 1一 1 -1 -1一 1 -1一 1 -1 — 1一 1 0 0 一 1一 1一 1 69 -1 — 1一 1 39 62 -1 67 80 0一 1一 1 -1一 1一 1一 1 -1一 1 — 1一 1 0 可以看出, 其右半部分采用了双对角的下三角结构。其中的 表 示零矩阵, 一列元素的列重量指该列元素中非负元素的个数。 该基础矩 阵修正、 扩展后, 对于所有码长, 生成的奇偶校验矩阵的 girth至少为 6。
该基础矩阵的列重量分布是(第一行为列标号) -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
3 3 3 12 4 4 3 12 4 3 3 12 3 2 2 2 2 2 2 2 2 2 2 2 其最大列重量是 12, 最大总量列共有 3列, 分别是第 4、 8、 12列, 删除其中任意 2列可以得到三种矩阵,如删除掉其中 8、 12列而保留第 4 列的结果如下-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
93一 1一 1 30 -1 25 -1 — 1 77 -1 0 0一 1一 1 -1一 1一 1 — 1 -1一 1一 1 -1 一 1 87 — 1 88 5 — 1一 1一 1 -1 70一 1 0 0一 1 — 1 -1 -1 — 1一 1 -1一 1一 1 一 1一 1 -1 10 — 1 9 -1 86 — 1一 1一 1 -1 0 0 — 1一 1 — 1 — 1一 1一 1一 1一 1
45一 1 -1 92一 1一 1 90 -1一 1 9 — 1一 1一 1 0 0一 1 -1 -1 -1一 1 —1 — 1 一 1一 1 — 1 26 2一 1一 1 75一 1 — 1一 1一 1一 1一 1 0 0 — 1一 1 — 1一 1一 1一 1 一 1 66 5 53 -1一 1一 1 -1 -1 — 1 36一 1一 1一 1 -1 0 0 — 1 — 1 — 1 -1 — 1
-1一 1 -1 25 — 1 39 93 -1 — 1 — 1一 1一 1一 1一 1 — 1一 1 0 0 -1一 1 -1 — 1
-1一 1一 1 52 60 -1一 1 15 82一 1一 1 -1 —1一 1一 1一 1 -1 0 0 -1 -1 -1
21一 1 22 58 -1 -1 -1 -1 — 1 — 1一 1一 1一 1一 1 -1一 1 -1 -1 0 0 —1 — 1
-1 23 — 1 19 -1 -1 82 — 1 86 — 1一 1一 1一 1一 1 -1 -1 -1一 1一 1 0 0 -1
— 1一 1 0 75 26 52 -1 -1一 1一 1一 1一1一 1一 1一 1一 1 — 1一 1 -1 -1 0 0 一 1一 1 -1 69一 1一 1 -1 62 -1 67 0一 1一 1一 1 -1 — 1一 1 -1一 1 -1 -1 0 依此类推可以得到其它两种矩阵,可以验证这三个矩阵作为基础矩阵 生成各个码长的奇偶校验矩阵的 Girth为 10或者 8。
假设条件二得不到满足,要验证条件三时, 可将该 1/2码率的基础矩 阵任意 2个最大列重量列和重量为 3的列删除,如删掉最大列重中的第 8、 12列而保留第 4列和删除列重量为 3的第 13列的结果是: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
93 — 1一 1 30一 1 25 -1一 1 77 — 1 0 — 1一 1 — 1一 1一 1 -1一 1 — 1一 1一 1
-1 87 — 1 88 5一 1一 1一 1 -1 70 0 0一 1一 1 -1 -1一 1一 1 -1一 1一 1 一 1 -1 — 1 10 -1 9一 1 86一 1一 1一 1 0 0 — 1一 1 — 1一 1 -1 — 1一 1 — 1
45 — 1 -1 92 — 1一 1 90 -1 — 1 9一 1一 1 0 0 -1一 1 — 1 -1 ~1一 1一 1
一 1一 1一 1 26 2 -1一 1 75一 1 -1一 1一 1一 1 0 0一 1 -1一 1 -1一 1一1
-1 66 5 53一 1一 1 -1一 1一 1 -1一 1 — 1一 1一 1 0 0 — 1 -1 — 1一 1一 1
一 1一 1一 1 25 — 1 39 93一 1一 1一 1 —1 -1 — 1一 1一 1 0 0 — 1 -1一 1一 1 一 1一 1 -1 52 60 -1一 1 15 82一 1一 1 -1 -1 — 1一 1 -1 0 0 -1一 1一 1
21一 1 22 58 — 1一 1一 1一 1 -1 -1一1一 1 -1一 1 — 1一 1 -1 0 0一 1一 1
— 1 23 -1 19 -1一 1 82一 1 86 — 1一 1一 1 -1 — 1 — 1一 1 — 1一 1 0 0一 1
-1 -1 0 75 26 52一 1一 1一 1一 1一 1一 1 — 1 — 1 -1一 1 — 1 -1 -1 0 0 一 1一 1 — 1 69一 1一 1一 1 62 -1 67一 1 -1 — 1一 1 -1一 1 — 1 — 1 — 1一 1 0 再对该矩阵生成的所有码长的奇偶校验矩阵的 Girth进行验证, 同样
2/3码率的基础矩阵如下, 大小为 8><24
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
94一 1 — 1 6 -1 69 2 81 — 1 — 1 86 — 1 — 1 -1 10 67 0 0一 1 -1一 1一 1 — 1 -1
-1 8 — 1一 1 53 — 1 11 1 34一 1一 1 7 67 — 1 23 32一 1 0 0 -1一 1 — 1 -1一 1
20一 1一 1一 1一 1 25 19 12 — 1 79 54 -1一 1 27 52 74一 1 -1 0 0一 1 — 1一 1一 1 一 1 — 1 39 17 32 — 1 83 81 — 1一 1一 1 -1 19 — 1 73 59 5一 1一1 0 0 -1一 1 -1
33 24 -1一 1 -1 35 42 67一 1 29 17一 1 — 1一 1 82 77一 1 — 1 1一 1 0 0 — 1一 1
-1一 1一1 90 -1一 1 91 49 35 — 1 -1 51 59 54 57 89一 1 -1一 1 -1一 1 0 0 -1
44 -1 2一1 36 — 1 64 7 5 25一 1 -1 — 1 -1 81 10一 1 — 1一1一 1 -1 -1 0 0 一 1 67一 1 -1 -1 88 32 49 — 1一 1 40 3 -1 36 54 95 0 — 1 -1 — 1一 1 — 1 -1 0
3/4码率的基础矩阵如下, 大小为 12x24:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
20一 1 78一 1 46 49 40一 1 40 56 -1 23 16 16 44 — 1 -1 80 0 0 —1 —1 — 1 -1
50 64一 1 56 91 41 — 1 5 -1 69 72 — 1 25 71 — 1 19 15一 1一1 0 0 -1 — 1 -1 一 1 49 56 71 - 1 83 25 -1 65 50 35 42一 1 — 1 3 26一 1 46一 1一 1 0 0一 1 -1
4一 1一 1 26 7 — 1 20 40 — 1一 1 7 53 85 61 66 — 1 37 84 93一 1 -1 0 0 -1
61 11 81一 1 -1 2 55 23 20一 1 27一 1 48 — 1 82 3 23 -1 — 1一 1 -1 -1 0 0 一 1 17 65 34 21一 1一 1 92 61 81一 1 26 — 1 8一 1 78 57 60 0 - 1 -1 - 1 -1 0 其列重量分布是(第一行为列标号) :
1 2 3 4 Π 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2 2 2 2 2 该矩阵的最大列重量为 4, 最大总量列共有 12列, 所以保留一个最 重列时, 可以得到 12种矩阵, 其中保留第 1列而删除其他最大重量列的 结果是-
1 2 3 4 5 6 7
20 0 0 —1 1 -1 — 1
50 -1 0 0 1 -1一 1
— 1一 1一 1 0 0 -1 — 1
4 93 —1 — 1 0 0 -1
61 -1 -1 -1 .1 0 0
- 1 0 -1 - 1 1一 1 0
依此类推可以得到其它 11种矩阵, 可以验证, 用这 12种矩阵作为 基础矩阵生成 19种码长的奇偶校验矩阵, 它们的 Girth都为 10。
如果条件二得不到满足, 要验证条件三时, 可将该 3/4码率的基础矩 阵任意 11个最大列重量列和列重量为 3的列删除, 如保留最大列重中的 第 1列而删掉其它最大重量列和删除列重量为 3的第 19列的结果是:
1 2 3 4 5 6
20 0 - 1一 1 一 1一 1
50 0 0 - 1 一 1 -1
一 1一 1 0 0一 1一 1
4 —1 —1 0 0 - 1
61 一 1 -1 -1 0 0
- 1 - 1 - 1 -1 - 1 0 该矩阵作为基础矩阵生成的对应各个码长的低密度奇偶校验码的奇 偶校验矩阵的 Girth是 10或者 8。 ·
需要注意的是上述删除若干列后得到的新的基础矩阵并不作为编译 码器所要使用的基础矩阵, 而只是在验证所得基础矩阵是否符合设定条 件时才使用。 步骤 150, 将所得到的基础矩阵存储到基础矩阵存储模块, 并配置一 个修正模块、 一个扩展模块和一个编码运算模块就得到要生成的编码器, 相应的结构框图如图 8所示, 其中:
修正模块, 用于根据当前数据流的码长, 对读取的基础矩阵 Hb中的 非负值进行修正, 实现修正模块应与填充时采用的修正模式应该一致, 数据流的码长由系统中的数据流检测模块提供。
扩展模块,用于对经修正处理后的基础矩阵按扩展因子和基本置换矩 阵进行扩展,得到 (Mx χ^χ 低密度奇偶校验码的奇偶校验矩阵。基本 置换矩阵一般选用单位阵, 扩展时只需要并用 0矩阵代替基础矩阵中的 , 并用一个循环右移 j位后的 单位阵代替其他非负系数 j就可 以了。
编码运算模块,用于基于扩展得到的低密度奇偶校验码的奇偶校验矩 阵, 完成从 N-M比特的源数据得到 N比特码字的编码运算, 事实上就是 用软件或硬件实现稀疏矩阵的乘法和加法运算, 具体可采用上述直接方 法或者 Richarson方法或者任何其它方法。
如果为每一码长配置一个基础矩阵,则基础矩阵存储模块中存储有对 应于每一个可能码长的基础矩阵, 此时, 上述修正模块可以取消。
另外, 可以直接用基础矩阵来完成编码, 而不用扩展模块。因为基础 矩阵仅仅是奇偶校验矩阵的压缩形式, 所以低密度奇偶校验码的编码从 原理上是用奇偶校验矩阵来实现的, 但是形式上可以直接用基础矩阵来 实现编码,例如一个 zX z的单位阵循环右移一位矩阵乘以一个 zX 1列向 量运算, 等价于将这个向量循环左移一位 (基础矩阵中元素就是移位的 位数) , 某个奇偶校验矩阵的运算总是可以等价地找到相应地基础矩阵 的向量运算, 故基于奇偶校验矩阵的的编码过程可以直接用基础矩阵来 实现, 但原理, 方法和流程不变。
下面再给出两个基于单位阵及其循环移位矩阵特定码率码长可变的 非正则低密度奇偶校验码的编码器的实例。
第一个:
一种基于单位阵及其循环移位矩阵特定码率码长可变的非正则低密 度奇偶校验码的编码器,其中码率为 3/4,码长以 96为步长从 576到 2304, 扩展因子 z从 24到 96, 这个编码器包括基础矩阵存储模块, 基础矩阵修 正模块、 编码运算模块, 其中:
所述基础矩阵存储模块, 存储了如下的 6 X24的矩阵 Hb:
-1 81 - 1 28 - 1 - 1 14 25 17 - 1 - 1 85 29 52 78 95 22 92 20 0 - 1 - 1 - 1 - 1
42 -1 14 68 32 - 1 - 1 - 1 - 1 70 43 11 36 40 33 57 38 24 - 1 0 0 - 1 -1 - 1
-1 -1 20 - 1 -1 63 39 - 1 70 67 - 1 38 4 72 47 29 60 5 0 -1 0 0 -1 - 1
64 2 - 1 - 1 63 - 1 - 1 3 51 - 1 81 15 94 9 85 36 14 19 - 1 - 1 - 1 0 0 - 1
- 1 53 60 80 -1 26 75 - 1 -1 - 1 - 1 86 77 1 3 72 60 25 - 1 -1 -1 -1 0 0
77 - 1 - 1 - 1 15 28 - 1 35 -1 72 30 68 85 84 26 64 1 1 89 20 - 1 - 1 - 1 - 1 0 所述基础矩阵修正模块, 根据当前编码的码长 N对应的扩展因子对 基础矩阵 Hb中的非负 1值元素进行修正,修正后的元素值应小于该码长 下的扩展因子值, 修正算法采用取整, 设 Pi, j为基础矩阵第 i行第 j列 的非负元素, P,i, j为修正以后的元素, 有:
Figure imgf000027_0001
其中, N为要生成奇偶校验矩阵的低密度奇偶校验码的码长, 」为 下取整操作;
所述编码运算模块, 用于根据所述修正后的基础矩阵, 完成从 N-M 比特的源数据得到 N比特码字的编码运算, 编码运算采用所述基础矩阵 或者用所述基础矩阵扩展得到的奇偶校验矩阵来完成编码。
第二个:一种基于单位阵及其循环移位矩阵特定码率码长可变的非正 则低密度奇偶校验码的编码器,其中码率为 5/6,码长以 96为步长从 576 到 2304,扩展因子 z从 24到 96,这个编码器包括基础矩阵存储模块,基 础矩阵修正模块、 编码运算模块, 其中:
所述基础矩阵存储模块, 存储了如下的 4 X 24的矩阵 Hb:
1 25 55 - 1 47 4 - 1 91 84 8 86 52 82 33 5 0 36 20 4 77 80 0 - 1 - 1
- 1 6 -1 36 40 47 12 79 47 -1 41 21 12 71 14 72 0 44 49 0 0 0 0 - 1
51 81 83 4 67 - 1 21 - 1 31 24 91 61 81 9 86 78 60 88 67 15 -1 -1 0 0
68 - 1 50 15 - 1 36 13 10 11 20 53 90 29 92 57 30 84 92 11 66 80 - 1 - 1 0 所述基础矩阵修正模块, 根据当前编码的码长 N对应的扩展因子对 基础矩阵 Hb中的非负 1值元素进行修正,修正后的元素值应小于该码长 下的扩展因子值, 修正算法采用取整, 设 Pi, j为基础矩阵第 i行第 j列 的非负元素, P'i, j为修正以后的元素, 有-
Figure imgf000027_0002
2304
其中, Ν为要生成奇偶校验矩阵的低密度奇偶校验码的码长, L」为 下取整操作;
所述编码运算模块, 用于根据所述修正后的基础矩阵, 完成从 N-M 比特的源数据得到 N比特码字的编码运算, 编码运算采用所述基础矩阵 或者用所述基础矩阵扩展得到的奇偶校验矩阵来完成编码。
步骤 160, 再配置一个译码运算模块, 与基础矩阵存储模块、修正模 块和扩展模块(可选) 一起组成了要生成的译码器, 也如图 8所示, 其 中译码运算模块, 用于基于扩展得到的低密度奇偶校验码的奇偶校验矩 5 000671 阵, 对输入的受干扰后的码字比特进行纠错后输出。 具体可采用现有的 信息传递 (message passing)算法作为译码算法, 但本发明不局限于此。
相应地,在上面给出的两个基于单位阵及其循环移位矩阵特定码率码 长可变的非正则低密度奇偶校验码的编码器的基础上, 将其中的编码运 算模块改为译码运算模块, 采用的基础矩阵存储模块和修正模块不变, 就得到了对应的两个基于单位阵及其循环移位矩阵特定码率码长可变的 非正则低密度奇偶校验码的译码器。
图 9给出了依照本发明 1/2码率的一个基础矩阵实例生成 19种码长 低密度奇偶校验码在 BPSK调制、 加性高斯白噪声信道、 标准信传译码 50次迭代下的误帧率性能。 图 10给出了本发明 3/4码率一个基础矩阵实 例生成 19种码长低密度奇偶校验码在同等条件下的性能。 图 11为本发 明 3/4码率一个完全非正则码基础矩阵实例生成 19种码长低密度奇偶校 验码的误帧率性能。从图中可以看出, 本发明可以保证所有码长的 LDPC 码都可以克服差错平底, 并且很好保证了随着码长增加性能连续变好的 特征, 即在高信噪比区间某特定码率条件下不同码长 BER曲线基本没有 交点("cross") ,并且加速迭代收敛的速度,有效消除差错平底 (error floor)。
综上所述,本发明方法着重从 LDPC码的 girth角度来设计好的 LDPC 码的编码器和译码器, 可以生成具有高 Girth特性, 并具有特定码率条件 下可变码长的特性的 LDPC码奇偶校验矩阵。 能够有效地消除 LDPC码 的差错平底现象, 减少迭代收敛次数, 明显提高 LDPC码的性能, 并且 具有很好的普遍适用性。
本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况 下, 熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形, 但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
工业实用性
本发明可以应用于数字通信系统中数据传输的纠错编码技术,得到一 种在高信噪比时性能表现非常理想的 LDPC码。

Claims

1、 一种非正则低密度奇偶校验码的基础矩阵, 该基础矩阵 ¾由对应 于信息比特的 Μχ(Ν-Μ)的块 A和对应于校验比特的 MxM的块 B组成, 其特征在于, 还满足以下条件: 该基础矩阵 Hb中, 对于所有长度为 4的 短圈, 按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, 总有不 等式 mod(i-j+k-l, z)≠0成权立, 其中, mod为求模运算, z为扩展因子。
2、 如权利要求 1所述的基础矩阵,
其特征在于, 所述对应于校验比特块 B采用准下三角结构。
3、 如权利要求 1所述的基础矩阵,
其特征在于, 还满足以下条件: 设该基础矩阵 Hb中重量最大的列的数目 为 r, 删除其中任意 r-1列形成的每一个新的基础矩阵中, 对于所有长度 书
为 4的短圈, 按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)0成立; 且对于所有长度为 6的短圈, 按逆 时针或顺时针方向构成该短圈的任意元素 i, }, k, 1, m, n, 总有不等式 mod(i-j+k-l+m-n , ζ) ≠0成立。
4、 如权利要求 1所述的基础矩阵,
其特征在于, 还满足以下条件: 设该基础矩阵 Hb中重量最大的列的数目 为 r, 删除其中任意的 r-1列并删除所有重量为 3的列后形成的每一个新 的基础矩阵中, 对于所有长度为 4的短圈,按逆时针或顺时针方向构成该 短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立; 且对于 所有长度为 6的短圈,按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, m, n, 总有不等式 mod(i-j+k-l+m-n, z) ≠0成立。
5、 如权利要求 3、 4所述的基础矩阵,
其特征在于, 所述基础矩阵 Hb是特定码率多个码长的低密度奇偶校验码 的唯一基础矩阵, 按每一码长对基础矩阵 Hb的元素值进行修正后, 得到 的每一基础矩阵均能使修正前基础矩阵 ¾所满足的所有不等式成立。
6、 一种基于非正则低密度奇偶校验码的编码器, 包括编码运算模 块,
其特征在于, 还包括基础矩阵存储模块, 其中- 所述基础矩阵存储模块, 用于存储由对应于信息比特的 Μχ(Ν-Μ)的 块 A和对应于校验比特的 MxM的块 B组成的基础矩阵, 所述基础矩阵 中, 对于所有长度为 4的短圈, 按逆时针或顺时针方向构成该短圈的任意 元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立, 其中, mod为求模 运算, z为扩展因子。
所述编码运算模块, 用于根据所述基础矩阵, 完成从 N-M比特的源 数据得到 N比特码字的编码运算。
7、 如权利要求 6所述的编码器,
其特征在于,还包括扩展模块,用于根据扩展因子和基本置换矩阵对所述 基础矩阵进行扩展, 得到 (M x Z) x (N x z)低密度奇偶校验码的奇偶校验矩 阵,所述编码运算模块是基于所述基础矩阵扩展得到的该奇偶校验矩阵进 行编码运算。
8、 如权利要求 6所述的编码器, '
其特征在于, 所述基础矩阵还满足以下条件: 所述对应于校验比特块 B 采用准下三角结构。
9、 如权利要求 6所述的编码器,
其特征在于,所述基础矩阵还满足以下条件: 设所述基础矩阵中重量最大 的列的数目为 r, 删除其中任意 r-1列形成的每一个新的基础矩阵中, 对 于所有长度为 4的短圈,按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)0成立; 且对于所有长度为 6的短 圈, 按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, m, n, 总 有不等式 mod(i-j+k-l+m-n, z) ≠0成立。
10、 如权利要求 6所述的编码器,
其特征在于,还满足以下条件: 设所述基础矩阵中重量最大的列的数目为 r,删除其中任意的 r-1列并删除所有重量为 3的列后形成的每一个新的基 础矩阵中,对于所有长度为 4的短圈,按逆时针或顺时针方向构成该短圈 的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立; 且对于所有 长度为 6的短圈, 按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, m, n, 总有不等式 mod(i-j+k-l+m-n, z) ≠0成立。
11、 如权利要求 9或 10所述的编码器,
其特征在于, 所述基础矩阵存储模块中存储了多个基础矩阵, 每一基础矩 阵对应于特定码率某一码长所需要的低密度奇偶校验码。
12、 如权利要求 9或 10所述的编码器,
其特征在于,所述基础矩阵是特定码率多个码长的低密度奇偶校验码的唯 一基础矩阵, 在每一码长对该基础矩阵的元素值进行修正后,得到的新的 基础矩阵均能使修正前该基础矩阵所能满足的所有的不等式成立;且该编 码器还包括一个修正模块,用于根据当前数据流的码长, 读取该基础矩阵 并对其中的非负值进行修正, 再交给后续处理模块。
13、 如权利要求 6所述的编码器,
其特征在于,该编码器基于单位阵及其循环移位矩阵特定码率码长可变的 非正则低密度奇偶校验码, 其中码率为 3/4, 码长以 96为步长从 576到 2304, 扩展因子 z从 24到 96, 该编码器包括基础矩阵存储模块、 基础矩 阵修正模块和编码运算模块, 其中:
所述基础矩阵存储模块, 存储了如下的 6X24的矩阵 Hb:
- 1 81 - 1 28 - 1 - 1 14 25 17 - 1 -1 85 29 52 78 95 22 92 20 0 -1 -1 - 1 -1
42 -1 14 68 32 -1 -1 -1 - 1 7043 11 3640 33 57 38 24 -1 0 0 - 1 - 1 - 1
-1 -1 20 -1 -1 63 39 -1 70 67 -1 38 4 72 47 29 60 5 0 -1 0 0 - 1 - 1
64 2 -1 -1 63 -1 -1 3 51 -1 81 15 94 9 85 36 14 19 -1 -1 -1 0 0 -1
-1 53 60 80 -1 26 75 -1 -1 - 1 -1 86 77 1 3 72 60 25 -1 -1 -卜 1 0 0
77 -1 -1 -1 15 28 -1 35 -1 72 30 68 85 84 26 64 11 89 20 -1 -1 -1 -1 0 所述基础矩阵修正模块, 根据当前编码的码长 N对应的扩展因子对 基础矩阵 Hb中的非负 1值元素进行修正, 修正后的元素值应小于该码长 下的扩展因子值, 修正算法采用取整, 设 Ρ, 为基础矩阵第 行第 J'列的 为修正以后的元素, 有-
Figure imgf000031_0001
其中, N为要生成奇偶校验矩阵的低密度奇偶校验码的码长, L」为 下取整操作;
所述编码运算模块, 用于根据所述修正后的基础矩阵, 完成从 N-M 比特的源数据得到 N 比特码字的编码运算, 编码运算采用所述基础矩阵 或者用所述基础矩阵扩展得到的奇偶校验矩阵来完成编码。
14、 如权利要求 6所述的编码器,
其特征在于,该编码器基于单位阵及其循环移位矩阵特定码率码长可变的 非正则低密度奇偶校验码, 其中码率为 5/6, 码长以 96为步长从 576到 2304, 扩展因子 z从 24到 96, 该编码器包括基础矩阵存储模块、 基础矩 阵修正模块和编码运算模块, 其中:
所述基础矩阵存储模块, 存储了如下的 4X24的矩阵 Hb:
1 25 55 - 1 47 4 - 1 91 84 8 86 52 82 33 5 0 36 20 4 77 80 0 -1 - 1
-1 6 -1 36 40 47 12 79 47一 1 41 21 12 71 14 72 0 44 49 0 0 0 0—1
51 81 83 4 67 - 1 21 - 1 31 24 91 61 81 9 86 78 60 88 67 15 -1 -1 0 0
68 - 1 50 15 - 1 36 13 10 11 20 53 90 29 92 57 30 84 92 11 66 80 - 1 1 0 所述基础矩阵修正模块, 根据当前编码的码长 N对应的扩展因子对 基础矩阵 Hb中的非负 1值元素进行修正, 修正后的元素值应小于该码长 下的扩展因子值, 修正算法采用取整, 设 为基础矩阵第 行第 列的 非负元素, Ρ'^为修正以后的元素, 有:
其中, N为要生成奇偶校验矩阵的低密度奇偶校验码的码长, |_」为 下取整操作;
所述编码运算模块, 用于根据所述修正后的基础矩阵, 完成从 Ν-Μ 比特的源数据得到 Ν 比特码字的编码运算, 编码运算采用所述基础矩阵 或者用所述基础矩阵扩展得到的奇偶校验矩阵来完成编码。
15、 一种基于非正则低密度奇偶校验码的译码器, 包括译码运算模 块,
其特征在于, 还包括基础矩阵存储模块, 其中 -- 所述基础矩阵存储模块, 用于存储由对应于信息比特的 Mx(N-M)的 块 Α和对应于校验比特的 ΜχΜ的块 B组成的基础矩阵, 所述基础矩阵 中,对于所有长度为 4的短圈, 按逆时针或顺时针方向构成该短圈的任意 元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立, 其中, mod为求模 运算, z为扩展因子;
所述译码运算模块,用于根据所述基础矩阵对输入的受干扰后的码字 比特进行纠错后输出。
16、 如权利要求 15所述的译码器,
其特征在于, 还包括扩展模块,用于根据扩展因子和基本置换矩阵对所述 基础矩阵进行扩展, 得到 (M x z) x (N x 低密度奇偶校验码的奇偶校验矩 阵,所述译码运算模块是基于所述基础矩阵扩展得到的该奇偶校验矩阵进 行编码运算。
17、 如权利要求 15所述的译码器,
其特征在于, 所述基础矩阵还满足以下条件: 所述对应于校验比特块 B 采用准下三角结构。
18、 如权利要求 15所述的译码器,
其特征在于,所述基础矩阵还满足以下条件: 设所述基础矩阵中重量最大 的列的数目为 r, 删除其中任意 r- 1列形成的每一个新的基础矩阵中, 对 于所有长度为 4的短圈,按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立; 且对于所有长度为 6的短 圈, 按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, m, n, 总 有不等式 mod(i-j+k-l+m-n, z) ≠0成立。
19、 如权利要求 15所述的译码器,
其特征在于, 还满足以下条件: 设所述基础矩阵中重量最大的列的数目为 r,删除其中任意的 r-1列并删除所有重量为 3的列后形成的每一个新的基 础矩阵中,对于所有长度为 4的短圈,按逆时针或顺时针方向构成该短圈 的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0成立; 且对于所有 长度为 6的短圈, 按逆时针或顺时针方向构成该短圈的任意元素 i, j, k, 1, m, n, 总有不等式 mod(i- j+k-l+m-n, z) ≠0成立。
20、 如权利要求 18或 19所述的译码器, 其特征在于, 所述基础矩阵存储模块中存储了多个基础矩阵,每一基础矩 阵对应于特定码率某一码长所需要的低密度奇偶校验码。
21、 如权利要求 18或 19所述的译码器,
其特征在于,所述基础矩阵是特定码率多个码长的低密度奇偶校验码的唯 一基础矩阵, 在每一码长对该基础矩阵的元素值进行修正后,得到的新的 基础矩阵均能使修正前该基础矩阵所能满足的所有的不等式成立;且该编 码器还包括一个修正模块, 用于根据当前数据流的码长,读取该基础矩阵 并对其中的非负值进行修正, 再交给后续处理模块。
22、 如权利要求 15所述的译码器,
其特征在于,该译码器基于单位阵及其循环移位矩阵特定码率码长可变的 非正则低密度奇偶校验码, 其中码率为 3/4, 码长以 96为步长从 576到 2304, 扩展因子 z从 24到 96, 该译码器包括基础矩阵存储模块, 基础矩 阵修正模块和编码运算模块, 其中:
所述基础矩阵存储模块, 存储了如下的 6 X24的矩阵 ¾-
-1 81 - 1 28 - 1 - 1 14 25 17 -1 -1 85 29 52 78 95 22 92 20 0 - 1 -1 -1 -1
42 -1 14 68 32 - 1 - 1 - 1 -1 70 43 11 36 40 33 57 38 24 -1 0 0 -1 - 1 -1
-1 -1 20 -1 - 1 63 39 -1 70 67 -1 38 4 72 47 29 60 5 0 - 1 0 0 -1 -1
64 2 -1 -1 63 -1 -1 3 51 -1 81 15 94 9 85 36 14 19 -1 -1 - 1 0 0 -1
- 1 53 60 80 -1 26 75 - 1 - 1 - 1 -1 86 77 1 3 72 60 25 -1 -1 -1 -1 0 0 77 - 1 - 1 - 1 15 28 -1 35 -1 72 30 68 85 84 26 64 1 1 89 20 -1 - 1 -1 - 1 0 所述基础矩阵修正模块, 根据当前编码的码长 N对应的扩展因子对 基础矩阵 Hb中的非负 1值元素进行修正, 修正后的元素值应小于该码长 下的扩展因子值, 修正算法采用取整, 设^, .为基础矩阵第 Z '行第 列的 非负元素, 为修正以后的元素, 有:
Figure imgf000034_0001
其中, N为要生成奇偶校验矩阵的低密度奇偶校验码的码长, L」为 下取整操作;
所述译码运算模块, 用于根据所述修正后的基础矩阵, 完成从 N 比 特接收码字到 N- M比特的信息比特译码运算, 译码运算釆用所述基础矩 阵或者用所述基础矩阵扩展得到的奇偶校验矩阵来完成译码。
23、 如权利要求 15所述的译码器,
其特征在于,该译码器基于单位阵及其循环移位矩阵特定码率码长可变的 非正则低密度奇偶校验码, 其中码率为 5/6, 码长以 96为步长从 576到 2304, 扩展因子 z从 24到 96, 该译码器包括基础矩阵存储模块、 基础矩 阵修正模块和编码运算模块, 其中:
所述基础矩阵存储模块, 存储了如下的 4 X24的矩阵 Hb:
1 25 55 - 1 47 4 - 1 91 84 8 86 52 82 33 5 0 36 20 4 77 80 0 - 1 - 1
- 1 6 -1 36 40 47 12 79 47 -1 41 21 12 71 14 72 0 44 49 0 0 0 0 -1
51 81 83 4 67 -1 21 - 1 31 24 91 61 81 9 86 78 60 88 67 15 - 1 _1 0 0
68 -1 50 15 - 1 36 13 10 11 20 53 90 29 92 57 30 84 92 11 66 80 -1 - 1 0 所述基础矩阵修正模块, 根据当前编码的码长 N对应的扩展因子对 基础矩阵 Hb中的非负 1值元素进行修正, 修正后的元素值应小于该码长 下的扩展因子值,修正算法采用取整,设 Pi, j为基础矩阵第 i行第 j列的 非负元素, P'i, j为修正以后的元素, 有-
Figure imgf000035_0001
其中, N为要生成奇偶校验矩阵的低密度奇偶校验码的码长, L」为 下取整操作;
所述译码运算模块, 用于根据所述修正后的基础矩阵, 完成从 Ν 比 特接收码字到 Ν-Μ比特的信息比特译码运算, 译码运算采用所述基础矩 阵或者用所述基础矩阵扩展得到的奇偶校验矩阵来完成译码。
24、 一种基于非正则低密度奇偶校验码的编码器 /译码器的生成方 法, 包括以下步骤:
(a)根据码率和码长的要求,确定需构造的基础矩阵 Hb的行数 M和 列数 N, 并根据次数分布要求确定基础矩阵 ¾的行重量向量和列重量向
(b)构建一个由对应于信息比特的 Mx(N-M)的块 A和对应于校验比 特的 ΜχΜ的块 Β组成的非正则的原始基础矩阵
(c)从集合 {0, 1, 2, ..., ζ-1}中选值填充到原始基础矩阵 ¾'中 "Γ 的位置上, 得到基础矩阵 Hb, 且对于 Hb中所有长度为 4的短圈, 按逆时 针或顺时针方向构成该短圈的任意元素 i,j, k, 1,总有不等式 mod(i-j+k-l, z)≠0成立, mod为求模运算, z为扩展因子;
( d) 存储按步骤 (a) 到 (c)得到的所述基础矩阵, 并构建一个用 于完成编码 /译码运算的编码 /译码运算模块, 组成编码器 /译码器。
25、 如权利要求 24所述的编码器 /译码器的生成方法,
其特征在于, 所述步骤 (c)进一步分为以下步骤:
(cl )假设原始基础矩阵中有 r个最重列, 先将原始基础矩阵 ¾'中 所有的 r个最重列去掉, 从集合 {0, 1 , 2 Z-1 }中选值填充该矩阵中 一个为 "1"的位置, 未填充的位置为空, 每填一个位置, 先按使该矩阵对 应奇偶校验矩阵 girth≥ 10的要求选值; 选不到值时, 再按使该矩阵对应 奇偶校验矩阵 girth≥ 8的要求来选;
使该矩阵对应奇偶校验矩阵 girth > 10的要求是: 在某位置选值填充 后, 对于经过该位置的每一个长度为. 4的短圈, 按逆时针或顺时针方向 构成了该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z/2)≠0; 对于经过该位置的每一个长度为 6的短圈, 按逆时针或顺时针方向构成 了该短圈的任意元素 i, j, k, m, n, 总有不等式 mod(i-j+k-l+m-n, z) ≠0; 且对于经过该位置的每一个长度为 8的短圈, 按逆时针或顺时针 方向构成了该短圈的任意元素 i , j, k, 1, m, n, s , t, 总有不等式 mod(i-j+k-l+m-n+s-t, z)≠ 0。
使该矩阵对应奇偶校验矩阵 girth > 8的要求是:在某位置选值填充后, 对于经过该位置的每一个长度为 4的短圈, 按逆时针或顺时针方向构成 了该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0; 且对于 经过该位置的每一个长度为 6的短圈, 按逆时针或顺时针方向构成了该 短圈的任意元素^ j, k, 1, m, n, 总有不等式 mod(i-j+k-l+m-n, z) ≠0; ( c2)完成对去掉最重列的矩阵的填充后, 加入第 n个最重列并去掉 剩余的 r-1个最重列, n=l,2,……, r, 构成一个新基础矩阵, 按步骤(cl ) 同样的方法对该最重列各个为 " 1 "的位置进行选值填充, 每选到一个符 合要求的值后, 再将上述 r-1个最重列加入构成又一个新基础矩阵, 判断 该矩阵对应的奇偶校验矩阵是否满足 girth≥ 6的要求, 如果满足, 再填充 下一个位置, 否则对该位置重新进行选值和判断;
使该矩阵对应奇偶校验矩阵 girth > 6的要求是:在某位置选值填充后, 对于经过该位置的每一个长度为 4的短圈, 按逆时针或顺时针方向构成 了该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0o
(c3 )填充完一个最重列后, 再按步骤(c2) 的方法填充下一个最重 列, 直到填完所有 r个最重列, 就得到了所要的基础矩阵 Hb
26、 如权利要求 25所述的编码器 /译码器的生成方法,
其特征在于, 所述步骤(c2) 中, 所有的可选值都不能满足要求时, 再执 行步骤(c2) , : 再删除所有重量为 3的列, 构成一个新的基础矩阵, 再 按步骤 (cl ) 同样的方法对该矩阵第 n个最重列各个为 " 的位置进行 选值填充, 每选到一个符合要求的值后, 再将所述 r-1个最重列都加入, 构成又一个新基础矩阵,判断该矩阵对应的奇偶校验矩阵是否满足 girth≥ 6的要求, 如果满足, 再填充下一个位置, 否则重新选值。
27、 如权利要求 25或 26所述的编码器 /译码器的生成方法, 其特征在于, 所述步骤 (cl )在选到使其对应奇偶校验矩阵 girth≥ 10或 girth≥8的值后, 还将该基础矩阵修正为对应于该码率下其它所有码长的 基础矩阵,对修正后得到的每一个基础矩阵, 判断是否使其对应的奇偶校 验矩阵 girth≥ 8, 如果是, 再执行步骤(c2) , 否则需重新选值, 在所述 步骤(c2) 、 (c2) ' 中, 在所选值满足相应的不等式后, 还将此时的基 础矩阵按每一码长进行修正,并判断得到的每一基础矩阵是否都能够使相 应的不等式成立, 如果是, 则选值成功, 否则还要重新选值。
28、 如权利要求 25或 26所述的编码器 /译码器的生成方法, 其特征在于, 是根据特定码率下的每一码长, 分别按步骤(a)到(c) 的 方法构建一个对应的基础矩阵, 并存储在所述基础矩阵存储模块中。
29、 如权利要求 27所述的编码器 /译码器的生成方法,
其特征在于, 所述步骤 (d) 中, 所述基础矩阵存储模块中存放的是特定 码率多个码长的低密度奇偶校验码的唯一基础矩阵,该基础矩阵是按最大 码长对应的扩展因子而构建得到的, 且还为该编码器 /译码器配置一个修 正模块,根据当前数据流的码长对该基础矩阵中的非负值进行修正,再交 给后续处理模块。
30、 如权利要求 24所述的编码器 /译码器的生成方法,
其特征在于,对码率为 1/2的基础矩阵的大小定为 12 X 24,基础矩阵的最 大列重量取 12; 对码率为 2/3的基础矩阵的大小定为 8 X 24, 基础矩阵的 最大列重量取 8; 对码率为 3/4的基础矩阵的大小定为 6X 24, 基础矩阵 的最大列重量取 6。
31、 如权利要求 24所述的编码器 /译码器的生成方法,
其特征在于, 所述块 B采用准下三角结构。
32、 如权利要求 24所述的编码器 /译码器的生成方法,
其特征在于,所述原始基础矩阵采用比特填充法构建, 并且在构建的过程 中统计最短圈的数目, 优先选择使最短短圈的数量小的填充值。
33、 一种非正则低密度奇偶校验码的基础矩阵的生成方法,包括以下 步骤:
(a)根据码率和码长的要求,确定需构造的基础矩阵 ¾的行数 M和 列数 N, 并根据次数分布要求确定基础矩阵 Hb的行重量向量和列重量向
(b)构建一个由对应于信息比特的 Mx(N-M)的块 A和对应于校验比 特的 MxM的块 B组成的非正则的原始基础矩阵 Hb' ;
(c)从集合 {0, 1, 2, . . ., Z-1}中选值填充到原始基础矩阵 ¾'中 "1" 的位置上, 得到基础矩阵 Hb, 且对于 Hb中所有长度为 4的短圈, 按逆时 针或顺时针方向构成该短圈的任意元素 i,j, k, 1,总有不等式 mod(i-j+k-l, z)≠0成立, mod为求模运算, z为扩展因子。
34、 如权利要求 33所述的基础矩阵的生成方法,
其特征在于, 所述步骤 (c)进一步分为以下步骤:
(cl )假设原始基础矩阵中有 r个最重列, 先将原始基础矩阵 Hb'中 所有的 r个最重列去掉, 从集合 {0, 1 , 2, z-1}中选值填充该矩阵中 一个为 "1"的位置, 未填充的位置为空, 每填一个位置, 先按使该矩阵对 应奇偶校验矩阵 girth≥ 10的要求选值; 选不到值时, 再按使该矩阵对应 奇偶校验矩阵 girth≥ 8的要求来选;
使该矩阵对应奇偶校验矩阵 girth≥ 10的要求是: 在某位置选值填充 后, 对于经过该位置的每一个长度为 4的短圈, 按逆时针或顺时针方向 构成了该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z/2)0; 对于经过该位置的每一个长度为 6的短圈, 按逆时针或顺时针方向构成 了该短圈的任意元素 i, j, k, 1, m, n, 总有不等式 mod(i-j+k-l+m-n, z) ≠0; 且对于经过该位置的每一个长度为 8的短圈, 按逆时针或顺时针 方向构成了该短圈的任意元素 i, j, k, I, m, n, s , t, 总有不等式 mod(i-j+k-l+m-n+s-t, z)≠ 0 ;
使该矩阵对应奇偶校验矩阵 girth > 8的要求是:在某位置选值填充后, 对于经过该位置的每一个长度为 4的短圈, 按逆时针或顺时针方向构成 了该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0; 且对于 经过该位置的每一个长度为 6的短圈, 按逆时针或顺时针方向构成了该 短圈的任意元素1, ), k, 1, m, n, 总有不等式 mod(i-j+k-l+m-iv z) ≠0;
(c2)完成对去掉最重列的矩阵的填充后, 加入第 n个最重列并去掉 剩余的 r-1个最重列, n=l,2,……, r, 构成一个新基础矩阵, 按步骤(cl ) 同样的方法对该最重列各个为 " 1 "的位置进行选值填充, 每选到一个符 合要求的值后, 再将上述 r-1个最重列加入构成又一个新基础矩阵, 判断 该矩阵对应的奇偶校验矩阵是否满足 girth≥ 6的要求, 如果满足, 再填充 下一个位置, 否则对该位置重新进行选值和判断;
使该矩阵对应奇偶校验矩阵 girth > 6的要求是:在某位置选值填充后, 对于经过该位置的每一个长度为 4的短圈, 按逆时针或顺时针方向构成 了该短圈的任意元素 i, j, k, 1, 总有不等式 mod(i-j+k-l, z)≠0;
(c3 )填充完一个最重列后, 再按步骤(c2) 的方法填充下一个最重 列, 直到填完所有 r个最重列, 就得到了所要的基础矩阵 ¾。
35、 如权利要求 34所述的基础矩阵的生成方法, 其特征在于, 所述步骤(c2) 中, 所有的可选值都不能满足要求时, 再执 行步骤(c2) , : 再删除所有重量为 3的列, 构成一个新的基础矩阵, 再 按步骤 (cl ) 同样的方法对该矩阵第 n个最重列各个为 " 1 "的位置进行 选值填充, 每选到一个符合要求的值后, 再将所述 r-1个最重列都加入, 构成又一个新基础矩阵,判断该矩阵对应的奇偶校验矩阵是否满足 girth≥ 6的要求, 如果满足, 再填充下一个位置, 否则重新选值。
36、 如权利要求 34或 35所述的基础矩阵的生成方法,
其特征在于, 所述步骤 (cl )在选到使其对应奇偶校验矩阵 girth≥ 10或 girth≥8的值后, 还将该基础矩阵修正为对应于该码率下其它所有码长的 基础矩阵,对修正后得到的每一个基础矩阵,判断是否使其对应的奇偶校 验矩阵 girth≥ 8, 如果是, 再执行步骤(c2) , 否则需重新选值, 在所述 步骤(c2) 、 (c2) , 中, 在所选值满足相应的不等式后, 还将此时的基 础矩阵按每一码长进行修正,并判断得到的每一基础矩阵是否都能够使相 应的不等式成立, 如果是, 则选值成功, 否则还要重新选值。
37、 如权利要求 33所述的基础矩阵的生成方法,
其特征在于,对码率为 1/2的基础矩阵的大小定为 12 X 24,基础矩阵的最 大列重量取 12; 对码率为 2/3的基础矩阵的大小定为 8 X24, 基础矩阵的 最大列重量取 8; 对码率为 3/4的基础矩阵的大小定为 6 X24, 基础矩阵 的最大列重量取 6。
38、 如权利要求 33所述的基础矩阵的生成方法,
其特征在于, 所述块 B采用准下三角结构。
39、 如权利要求 33所述的基础矩阵的生成方法,
其特征在于, 所述原始基础矩阵采用比特填充法构建, 并且在构建的过程 中统计最短圈的数目, 优先选择使最短短圈的数量小的填充值。
40、 如权利要求 36所述的基础矩阵的生成方法,
其特征在于, 将所述基础矩阵修正为其它码长的基础矩阵时, 是根据原基 础矩阵和要生成基础矩阵的码长,采用取模、取整或舍入的方法对原基础 矩阵的非负元素修正后得到的。
PCT/CN2005/000671 2005-01-23 2005-05-13 Matrice de base fondee sur un ldcp irregulier et procedes de generation de cette matrice WO2006076834A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/795,826 US8607125B2 (en) 2005-01-23 2005-05-13 Basic matrix based on irregular LDPC, codec and generation method thereof
EP05749661A EP1850484A4 (en) 2005-01-23 2005-05-13 EASY MATRIX BASED ON IRREGULAR LDCP, CODEC AND PRODUCTION METHOD THEREFOR

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200510007156.3 2005-01-23
CNB2005100071563A CN100486150C (zh) 2005-01-23 2005-01-23 基于非正则低密度奇偶校验码的编译码器及其生成方法

Publications (1)

Publication Number Publication Date
WO2006076834A1 true WO2006076834A1 (fr) 2006-07-27

Family

ID=36691968

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2005/000671 WO2006076834A1 (fr) 2005-01-23 2005-05-13 Matrice de base fondee sur un ldcp irregulier et procedes de generation de cette matrice

Country Status (4)

Country Link
US (1) US8607125B2 (zh)
EP (1) EP1850484A4 (zh)
CN (1) CN100486150C (zh)
WO (1) WO2006076834A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100425000C (zh) * 2006-09-30 2008-10-08 东南大学 双涡轮结构低密度奇偶校验码解码器及解码方法
CN101217337B (zh) * 2007-01-01 2013-01-23 中兴通讯股份有限公司 一种支持递增冗余混合自动重传的低密度奇偶校验码编码装置和方法
CN1996764A (zh) * 2007-01-10 2007-07-11 北京航空航天大学 基于奇偶校验矩阵的ldpc码的译码方法及译码器
US7783459B2 (en) * 2007-02-21 2010-08-24 William Marsh Rice University Analog system for computing sparse codes
KR100996030B1 (ko) * 2007-03-06 2010-11-22 삼성전자주식회사 통신 시스템에서 신호 송수신 장치 및 방법
WO2008125300A2 (en) * 2007-04-13 2008-10-23 University College Dublin, National University Of Ireland, Dublin An encoding scheme, and a decoding scheme using a series of ldpc codes based on finite inversive spaces
JP4858335B2 (ja) 2007-07-10 2012-01-18 ソニー株式会社 符号化方法および符号化装置
CN101414833B (zh) * 2007-10-19 2010-08-04 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
CN101141133B (zh) * 2007-10-23 2011-09-14 北京邮电大学 一种结构化低密度校验码的编码方法
US8219876B2 (en) 2007-10-24 2012-07-10 Core Wireless Licensing, S.a.r.l. Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix
CN101459430B (zh) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
CN101227193B (zh) * 2008-02-02 2010-06-02 中国科学院计算技术研究所 一种低密度校验码的编解码装置和方法
US8196012B2 (en) * 2009-10-05 2012-06-05 The Hong Kong Polytechnic University Method and system for encoding and decoding low-density-parity-check (LDPC) codes
CN104868925B (zh) * 2014-02-21 2019-01-22 中兴通讯股份有限公司 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
CN103944587B (zh) * 2014-05-07 2017-01-04 四川大学 一种有序排列非零元素的多进制ldpc码校验矩阵构造方法
CN104333390B (zh) * 2014-11-26 2019-08-06 西安烽火电子科技有限责任公司 一种ldpc码的校验矩阵的构造方法与编码方法
CN106160937B (zh) 2015-04-15 2019-01-04 中兴通讯股份有限公司 一种实现码块分割的方法及装置
CN105356890B (zh) * 2015-11-30 2019-03-12 华侨大学 一种基于重要性采样技术的ldpc码打孔方法
US11955988B2 (en) * 2015-12-28 2024-04-09 Vivek Sathyanarayana Nittoor System and method for generation of error-correcting codes in communication systems
CN107294649A (zh) * 2016-04-11 2017-10-24 中兴通讯股份有限公司 编码方法及装置,译码方法及装置
CN107370490B (zh) * 2016-05-13 2023-07-14 中兴通讯股份有限公司 结构化ldpc的编码、译码方法及装置
CN107666367B (zh) * 2016-07-29 2023-01-03 中兴通讯股份有限公司 一种编码方法及装置
CN107733440B (zh) * 2016-08-12 2022-12-02 中兴通讯股份有限公司 多边类型结构化ldpc处理方法及装置
CN107733442B (zh) * 2016-08-12 2022-12-02 中兴通讯股份有限公司 结构化ldpc码的处理方法及装置
CN107888198B (zh) 2016-09-30 2023-05-26 中兴通讯股份有限公司 准循环ldpc编译码方法、装置及ldpc编译码器
SG11202009379VA (en) 2017-03-24 2020-10-29 Zte Corp Processing method and device for quasi-cyclic low density parity check coding
CN115065368A (zh) * 2017-03-24 2022-09-16 中兴通讯股份有限公司 一种准循环低密度奇偶校验编码处理方法及装置
CN108988869B (zh) * 2017-05-31 2021-07-30 大唐移动通信设备有限公司 一种确定校验矩阵的方法及装置、计算机存储介质
KR102378706B1 (ko) * 2017-06-23 2022-03-28 삼성전자 주식회사 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
WO2018236173A1 (en) * 2017-06-23 2018-12-27 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR CHANNEL ENCODING AND DECODING IN A COMMUNICATION OR BROADCASTING SYSTEM
CN115801191A (zh) 2017-06-26 2023-03-14 中兴通讯股份有限公司 准循环低密度奇偶校验编码设计方法及装置
CN108449090B (zh) * 2018-01-25 2020-06-16 西安电子科技大学 一种可配置多码长、多码率的ldpc译码器
CN109547033B (zh) * 2018-11-23 2022-12-09 中国电子科技集团公司第五十四研究所 一种支持任意码长的ldpc码实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405981A (zh) * 2002-11-15 2003-03-26 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
WO2004028074A1 (ja) * 2002-09-18 2004-04-01 Mitsubishi Denki Kabushiki Kaisha 量子鍵配送方法および通信装置
CN1558556A (zh) * 2004-02-09 2004-12-29 清华大学 非规则低密度奇偶校验码的系统码设计方法及其通信系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718508B2 (en) * 2000-05-26 2004-04-06 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre High-performance error-correcting codes with skew mapping
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6789227B2 (en) * 2001-07-05 2004-09-07 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
US6785863B2 (en) * 2002-09-18 2004-08-31 Motorola, Inc. Method and apparatus for generating parity-check bits from a symbol set
KR100996029B1 (ko) * 2003-04-29 2010-11-22 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 장치 및 방법
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
US7260763B2 (en) * 2004-03-11 2007-08-21 Nortel Networks Limited Algebraic low-density parity check code design for variable block sizes and code rates
US7143333B2 (en) * 2004-08-09 2006-11-28 Motorola, Inc. Method and apparatus for encoding and decoding data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004028074A1 (ja) * 2002-09-18 2004-04-01 Mitsubishi Denki Kabushiki Kaisha 量子鍵配送方法および通信装置
CN1405981A (zh) * 2002-11-15 2003-03-26 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
CN1558556A (zh) * 2004-02-09 2004-12-29 清华大学 非规则低密度奇偶校验码的系统码设计方法及其通信系统

Non-Patent Citations (1)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
US8806307B2 (en) 2008-06-23 2014-08-12 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding

Also Published As

Publication number Publication date
EP1850484A1 (en) 2007-10-31
CN1808955A (zh) 2006-07-26
CN100486150C (zh) 2009-05-06
US8607125B2 (en) 2013-12-10
US20080168324A1 (en) 2008-07-10
EP1850484A4 (en) 2009-02-25

Similar Documents

Publication Publication Date Title
WO2006076834A1 (fr) Matrice de base fondee sur un ldcp irregulier et procedes de generation de cette matrice
WO2006047919A1 (fr) Matrice de base, coder/encodeur et methode de generation de codes de controle de parite faible densite
US11323134B2 (en) Encoding method and device and decoding method and device for structured LDPC
US7458009B2 (en) Method for encoding low-density parity check code
Johnson Introducing low-density parity-check codes
CN101924565B (zh) Ldpc编码器、解码器、系统及方法
WO2015123979A1 (zh) 结构化ldpc的编码方法、译码方法、编码装置和译码装置
JP4602418B2 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器
JPWO2007072721A1 (ja) 検査行列生成方法、符号化方法、通信装置、通信システム、符号化器
WO2004006444A1 (ja) 検査行列生成方法および検査行列生成装置
WO2008043282A1 (fr) Procédé et système de décodage de correction d&#39;effacement ldpc
JP5490867B2 (ja) 送信装置及び受信装置
WO2017193614A1 (zh) 结构化ldpc的编码、译码方法及装置
CN101997552A (zh) 低编码复杂度多元非规则ldpc码的设计
Bates et al. A low-cost serial decoder architecture for low-density parity-check convolutional codes
WO2011144161A1 (zh) 前向纠错方法、装置及系统
Rosnes et al. An algorithm to find all small-size stopping sets of low-density parity-check matrices
Lulu Construction Of Ldpc Codes Using Randomly Permutated Copies Of Parity Check Matrix
Abu-Hudrouss LDPC code construction using randomly permutated copies of parity check matrix
Hosoya et al. Spatially-coupled LDPC codes for two dimensional erasure channel
Pal et al. Error-Control Coding Algorithms and Architecture for Modern Applications Powered by LDPC Codes and Belief Propagation
Fong et al. Multiple phased-burst correcting superposition product LDPC codes
Baldi et al. Iterative soft-decision decoding of binary cyclic codes based on spread parity-check matrices
Johnson Finite-Length Repeat-Accumulate Codes on the Binary Erasure Channel
Yu-jia et al. A cycle elimination algorithm for construction of LT codes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 11795826

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2005749661

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005749661

Country of ref document: EP