WO2006047919A1 - Matrice de base, coder/encodeur et methode de generation de codes de controle de parite faible densite - Google Patents

Matrice de base, coder/encodeur et methode de generation de codes de controle de parite faible densite Download PDF

Info

Publication number
WO2006047919A1
WO2006047919A1 PCT/CN2005/000571 CN2005000571W WO2006047919A1 WO 2006047919 A1 WO2006047919 A1 WO 2006047919A1 CN 2005000571 W CN2005000571 W CN 2005000571W WO 2006047919 A1 WO2006047919 A1 WO 2006047919A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
length
code
mod
parity check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2005/000571
Other languages
English (en)
French (fr)
Inventor
Jun Xu
Yougang Zhang
Liuqing Yuan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
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 Corp filed Critical ZTE Corp
Priority to US11/718,701 priority Critical patent/US8185797B2/en
Publication of WO2006047919A1 publication Critical patent/WO2006047919A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Definitions

  • the invention relates to an encoder and a decoder for data transmission error correction of a digital communication system, in particular to a low density parity check code based on a unit array and a cyclic shift matrix thereof in an error correction technique in the field of digital communication
  • the basic matrix, the encoder and the decoder and the method for generating the same are particularly suitable for the case where the specific code rate is variable. Background technique
  • the source encoder in Figure 1 is to improve the effectiveness of the transmission.
  • the channel encoder is designed to combat a variety of noise and interference during transmission. By artificially adding redundant information, the system has the ability to automatically correct errors. To ensure 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. Recent research shows that LDPC codes have the following characteristics: low decoding complexity, linear time coding, performance close to Shannon limit, parallel decoding, And better than Turbo code 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 compiled code, thus making the LDPC code practical.
  • the aforementioned Gallager code 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).
  • 0 Gallager originally proposed the code with rules.
  • a code structure whose check matrix is a sparse matrix, and each row has the same number of 1, and each column also has the same number of ones.
  • the MGLuby believes that if the number of non-zero elements in the row or column of the check matrix is allowed to change and the sparsity of the matrix is guaranteed, the coding decoding algorithm is still applicable, and the performance of the coding can be greatly improved. Make it possible to achieve or exceed the performance of the Turbo code. This is because in this coding structure, if the left and right nodes of the corresponding bipartite graph have a proper degree distribution, there will be a wave effect at the time of decoding, which will greatly Improve decoding performance.
  • the non-regular code is the low-density code that allows the same kind of nodes to have different times, and the code originally proposed by Gallager is called the regular code.
  • the construction methods in this aspect now mainly include combined construction method, finite geometry construction method, group theory construction method and graph theory construction method, but these methods are mainly oriented to regular codes, which have great limitations, and are too theoretical and practical. Poor sex. J.Campello et al. proposed an extended bit-filling algorithm, which can design girth (referring to the shortest circle length of the LDPC code bipartite graph), high-rate LDPC code or code rate, high girth code. , is a general approach, and appropriate improvements can be used to design non-regular LDPC codes with guaranteed girth. Therefore, how to find short LDPC codes with short cycles becomes very important.
  • the LDPC code based on the unit matrix and its cyclic shift matrix has the characteristics of simple variable code length, simple coding, and the same time distribution and girth distribution can be ensured during the expansion process.
  • the currently constructed LDPC codes based on the unit matrix and its cyclic shift matrix do not fully consider the influence of girth and the relationship between code length and girth, so that the bit error rate (BER) curve drops sharply when the signal-to-noise ratio is high. Slower, often an error floor occurs, resulting in performance degradation. How to eliminate the error flat bottom phenomenon of LDPC code, accelerate the falling speed of BER curve, and improve the performance of LDPC code at high SNR, which has become an urgent problem to be solved.
  • BER bit error rate
  • the technical problem to be solved by the present invention is to provide a basic matrix of a low-density parity check code and a constructing method thereof, so that the girth of the constructed basic matrix is as large as possible, and the number of the shortest circles of the same girth is as small as possible, thereby making it unique
  • the determined encoder and decoder can effectively eliminate the error flat bottom phenomenon of the LDPC code, accelerate the BER curve falling speed, and improve the performance of the LDPC code.
  • the present invention provides a method for constructing a basic matrix of a low density parity check code, comprising the following steps:
  • Step 1 determining a code rate, a code length, and a check digit number of the basic matrix of the low density parity check code to be constructed
  • Step two determining a row weight vector and a column weight vector of the basic matrix
  • Step 3 according to the row weight and the column weight vector, construct an original basic matrix with a girth as large as possible and a minimum number of shortest turns under the same girth, wherein girth is the shortest circle length;
  • Step 4 Based on the constructed original base matrix, select values from the set ⁇ 0, 1, 2, L, z -l ⁇ one by one to all "1" positions in the matrix, and construct a girth as high as possible.
  • the base matrix, z is the expansion factor.
  • the third step is to construct an original basic matrix with a girth as large as possible and a minimum number of shortest circles by using a bit filling method.
  • the above construction method may further have the following features:
  • the step 4 constructs the basic matrix
  • the portion corresponding to the check bit adopts a quasi-lower triangular structure.
  • step four is divided into the following steps:
  • the basic matrix girth ⁇ 10 When selecting a value for this element, first select the value that makes the base matrix girth ⁇ 10, and choose not to select the value of the base matrix girth > 8, and if not, select the value of the base matrix girth > 6.
  • the basic matrix girth ⁇ 10 should be satisfied: the counterclockwise constitutes any element i, j of the short circle of length 4 in the short circle k, 1, there is always mod(i-j+kl, z/2) ⁇ 0; any element i, j, k, 1, m which is a short circle of length 6 in the short circle is formed counterclockwise.
  • n there is always mod(i-j+k-l+mn, z) ⁇ 0; and any element i, j, k, 1, m which is a short circle of length 8 in the short circle is formed counterclockwise , n, s, t, there is always mod(i-j+k-l+m-n+st, z) ⁇ 0 ;
  • any element i, j which constitutes a short circle of length 4 in the short circle is constituted in a counterclockwise direction.
  • any element i, j, k, 1, m which is a short circle of length 6 in the short circle is formed in a counterclockwise direction n, there is always mod(i-j+k-l+mn, z) ⁇ 0;
  • the basic matrix girth > 6 should be satisfied: any element i, j which forms a short circle of length 4 in the short circle in a counterclockwise direction k, 1, there is always mod(i-j+kl, z) ⁇ 0;
  • the parity check matrix is obtained by a unique base matrix expansion under different code lengths, and the set ⁇ b, the set ⁇ 0, l, 2, ... , z max -l ⁇ selected value, Z max is the expansion factor of the longest code length low density parity check code, and step (b) and
  • step (c) further includes a step (M): after selecting an appropriate value, the base matrix is corrected to a base matrix corresponding to all other code lengths, and the element and each of the base matrix obtained by the correction are Together, they form the value of the element of the short circle, and then determine whether it satisfies the girth requirement for the basic matrix. If yes, select the next position, otherwise return to step (b) to re-select the value.
  • M after selecting an appropriate value, the base matrix is corrected to a base matrix corresponding to all other code lengths, and the element and each of the base matrix obtained by the correction are Together, they form the value of the element of the short circle, and then determine whether it satisfies the girth requirement for the basic matrix. If yes, select the next position, otherwise return to step (b) to re-select the value.
  • the above construction method may further have the following features: the correction of the base matrix is based on the number of base matrix columns and the code length of the low density parity check code of the parity check matrix to be generated. Calculate by modulo, rounding or rounding.
  • the above construction method may further have the following features:
  • the girth requirement of the basic matrix is girth>8 or girth>6.
  • the present invention further provides a basic matrix of a low density parity check code having a specific code rate specific code length, wherein an element in the basic matrix satisfies at least one of the following conditions: Condition 1 For any element i, j, k, 1, which constitutes a short circle of length 4 in a counterclockwise direction, there is always mod(i-j+kl, z) ⁇ 0;
  • z is a spreading factor of the low density parity check code of the specific code rate specific code length.
  • the present invention further provides a plurality of basic matrices of low-density parity check codes having a plurality of code lengths of a specific code rate, wherein the elements in the basic matrices satisfy at least the following conditions.
  • z is any spreading factor appearing in the set [z rain ,..., z max ], each corresponding to a basic matrix at a corresponding code length
  • Zmin is an extension of the low-density parity check code of the shortest code length Factor
  • z max is the spreading factor of the low-density parity check code of the longest code length
  • the positions of the non-negative 1 elements of the plurality of basic matrices of the low-density parity check code of the specific code rate of multiple code lengths are always the same , but the value is different in the position of the non-negative 1 element.
  • the present invention further provides a unique basic matrix of low-density parity check codes having a plurality of code lengths at a specific code rate, and the elements of the unique basic matrix are modified at different code lengths, and the feature is
  • the element in the unique base matrix satisfies at least one of the following conditions: For W e [z min , L, z ma J, after the element is corrected by the code length, all the counterclockwise (clockwise effect equivalent) directions are formed. Any element i,j, k, 1, of a short circle of length 4 always has mod(i-j+kl, z) ⁇ 0;
  • z is the spreading factor that appears in the set [z min ,..., z min is the shortest
  • the spreading factor of the code length low density parity check code, Zmax is the spreading factor of the low density parity check code of the longest code length.
  • the technical problem to be solved by the present invention is to provide an encoder and a decoder based on a low density parity check code and a generating method thereof, so that the encoder and the decoder can effectively eliminate the error flat bottom phenomenon of the LDPC code and accelerate The BER curve decreases in speed and improves the performance of the LDPC code.
  • the present invention provides a method for generating an encoder/decoder based on a low density parity check code, the encoder/decoder comprising a parity check matrix of a low density parity check code Uniquely determined, characterized in that the parity check matrix is constructed by the following steps:
  • Step 1 determining a code rate, a code length, and a check digit number of the basic matrix of the low density parity check code to be constructed
  • Step two determining a row weight vector and a column weight vector of the basic matrix
  • Step 3 according to the row weight vector and the column weight vector, construct an original basic matrix with the girth as large as possible and the minimum number of laps under the same girth as the minimum, wherein girth is the shortest circle length;
  • Step 4 Based on the constructed original basic matrix, select values from the set ⁇ 0, 1, 2, L, ⁇ -l ⁇ one by one to all the "1" positions in the matrix, and construct the girth as high as possible.
  • the base matrix, z is the expansion factor;
  • Step 5 Extend the basic matrix to obtain a parity check matrix of the required low density parity check code.
  • the method of constructing the basic matrix disclosed above can be applied to steps 1 through 4 of the above-described construction of the encoder/decoder method.
  • the parity check matrix is obtained by a unique base matrix extension under different code lengths, and when the value is selected in the fourth step, the base matrix of all code lengths is required to be corrected or modified.
  • the basic matrix satisfies the requirements of high girth, and in the fifth step, the unique base matrix is corrected according to the actual code length, and then expanded to the required parity check matrix according to the corresponding expansion factor.
  • the parity check matrix is obtained by different basic matrices under different code lengths, and in the fifth step, the basic matrix corresponding to the actual code length is obtained. Expanded to the required parity check matrix by its spreading factor.
  • the fifth step is to use the unit matrix and its cyclic shift matrix as a basic permutation matrix, and expand the basic matrix into a parity check matrix.
  • the present invention further provides an encoder based on a low density parity check code, comprising: a storage module and an encoding operation module, wherein - the storage module is configured to store a parity check matrix Basic matrix
  • the encoding operation module is configured to complete an encoding operation of obtaining a codeword from source data.
  • the storage module stores basic matrices corresponding to respective code lengths, and these basic matrices may have the characteristics of the basic matrix disclosed in the above.
  • the foregoing encoder may have the following features: further comprising an expansion module, configured to expand a base matrix of a current code length by a spreading factor and a basic permutation matrix to obtain a parity check matrix of the low density parity check code, and The coding operation module performs the coding operation according to the parity check matrix obtained by the extension.
  • the encoder may have the following features: the storage module stores a unique basic matrix corresponding to each code length, and the encoder further includes a correction module for storing from the code length of the current data stream. The module reads the basic matrix and corrects the non-negative values in the matrix, and then passes it to the subsequent module for processing. The correction mode used in constructing the basic matrix is used in the correction.
  • the unique base matrix can have the features of the unique base matrix disclosed herein above.
  • the present invention further provides a decoder based on a low density parity check code, comprising: a storage module and a decoding operation module, wherein: the storage module is configured to store parity The basic matrix of the matrix;
  • the decoding operation module is configured to perform error correction on the input interfered codeword bits and output the same.
  • the above encoder may have the following features: the storage module stores basic matrices corresponding to respective code lengths, and the basic matrices may have the basic matrix disclosed in the above. Features.
  • the foregoing encoder may have the following features: further comprising an expansion module, configured to expand a base matrix of a current code length by a spreading factor and a basic permutation matrix to obtain a parity check matrix of the low density parity check code, and
  • the decoding operation module performs a decoding operation according to the parity check matrix obtained by the extension.
  • the encoder may have the following features: the storage module stores a unique basic matrix corresponding to each code length, and the encoder further includes a correction module for storing from the code length of the current data stream. The module reads the basic matrix and corrects the non-negative values in the matrix, and then passes it to the subsequent module for processing. The correction mode used in constructing the basic matrix is used in the correction.
  • the unique base matrix can have the features of the unique base matrix disclosed herein above.
  • the present invention provides an LDPC code whose code length can be continuously changed with a specific code rate specific girth (such as 6, 8, 10); and further proposes that the base matrix can be kept unique as the code length changes.
  • the method solves the problem of how to eliminate the short circle problem of the LDPC code with a continuous variable code length of a specific code rate without increasing the storage capacity and computational complexity of the codec.
  • the invention improves the performance of the high SNR of the LDPC code, accelerates the BER curve falling speed, eliminates the error flat bottom of such LDPC codes, and has universal applicability, and constructs the LDPC code based on the unit array and its cyclic shift matrix.
  • the effect of girth on code performance and the effect of code length on girth are fully considered, which makes LDPC code achieve the best performance and performance is very good at high SNR.
  • the present invention also has wide applicability and can be well compatible with construction methods that take into account other factors of the LDPC code (mainly time distribution and linear time coding).
  • 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 view of a short circle of 6 in a bipartite graph; 4 is a schematic diagram of a short length 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 schematic diagram of a cyclic shift matrix of four unit matrices forming a short circle of length 4 in H;
  • Figure 7 is a schematic diagram of a cyclic shift matrix of six unit matrices forming a short loop of length 6 in H;
  • Figure 8 is a schematic diagram of a cyclic shift matrix of eight unit matrices forming a short loop of length 8 in H;
  • FIG. 10 is a schematic diagram of a bipartite graph developed from the corresponding side of the y0th column element of the ⁇ th row;
  • FIG. 11 is a schematic diagram of any path starting from the corresponding side of the y0th column element of the ⁇ row in the bipartite graph of FIG. 10;
  • Figure 12 is a schematic view showing the short circuit of the path shown in Figure 11 having a length of 4;
  • Figure 13 is a schematic view showing the short circuit of the path shown in Figure 11 having a length of 6;
  • Figure 14 is a schematic view showing the short circuit of the path shown in Figure 11 having a length of 8;
  • Figure 19 is a block diagram showing the structure of a decoder in accordance with an embodiment of the present invention.
  • Figure 2 is a schematic illustration of a short circle of 4 in the bipartite graph. According to this figure, the solid line represents the black emphasis ⁇ ,, ⁇ 2 information bits and parity bits Cl, c 2 constitutes a coil 4 of length.
  • Figure 3 is a schematic diagram of a short circle of 6 in the bipartite graph. According to this figure, the solid line represents the black emphasis information bits ⁇ , ⁇ 2, ⁇ 3 check bits, and Cl, c 2, c 4 constitutes a length of 6 turns.
  • the concept girth is used to quantitatively describe the short circle in the bipartite graph.
  • the girth of the bipartite graph refers to the circle length of the shortest circle in a graph. For example: If a bipartite graph has a circle with a length of 6, 8, 10, 12 and a longer length, the girth of the bipartite graph is 6.
  • the girth of a node 3 ⁇ 4 (the girth at node refers to the circle length of the shortest circle passing through the node M , for example: after the node ⁇ / has a length of 8, 10, 12 and a longer length, then The girth of the node u is 8.
  • the girth (the girth at edge e) of an edge e refers to the circle length of the shortest circle passing through the edge e, for example: after the edge e has a length of 8, 10, 12 For a longer circle, the girth of this edge is 8.
  • the girth of a variable node is the length of the shortest path, which is equivalent to the minimum number of iterations of information coming out of this node back to the node itself.
  • the information associated with this node can be optimally passed to the remainder of the bipartite graph before the actual number of iterations reaches this minimum number of iterations. If the girth of a variable node is larger, the smaller the positive feedback information that the information sent by the variable node is passed to itself, the better the decoding performance. Therefore, it is advantageous to make the girth of the variable node as large as possible to improve the performance of the code.
  • the short circle in the bipartite graph destroys the performance of the LDPC code.
  • the graphical representation of the LDPC code check matrix is a bipartite graph, and the bipartite graph and the check matrix have a one-to-one correspondence relationship.
  • An M*N parity check matrix H defines that each codeword having N bits satisfies M. The constraints of the parity set.
  • a bipartite graph includes N variable nodes, each node corresponding to one bit in H; and also includes M parity nodes, each node corresponding to a parity in H.
  • Check node m and bit node n The origin of the bipartite graph name is because it includes two types of nodes, variable nodes and check nodes. 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.
  • Figure 2 illustrates that 1 ⁇ 2 is interconnected by a circle of length 4
  • Figure 3 illustrates that ⁇ , ⁇ 2 , and ⁇ 3 are interconnected by a loop of length 6, and the information transfer decoding algorithm of the LDPC code assumes a variable.
  • the nodes are independent of each other, and the existence of short circles inevitably destroys the assumption of independence, resulting in a significant degradation in decoding performance.
  • the existence of short circles of length 4 and 6 makes the variable nodes iteratively decoded.
  • the process frequently passes positive feedback information to itself, which is undesirable for iterative decoding.
  • the turbo code is also iteratively decoded. It is the use of an interleaver to reduce this positive feedback effect.
  • the information transfer algorithm leads to optimal decoding, and the existence of a short circle makes the information transfer algorithm a sub-optimal iterative decoding algorithm, in fact the shortest circle length. The longer the information transfer algorithm, the closer it is to the optimal algorithm.
  • Figure 4 is a schematic diagram of a short circle of 4 in the check matrix. The figure shows the general form of a short circle with a circle length of 4 appearing in the LDPC code check matrix.
  • Figure 5 is a schematic diagram of the length of the check matrix of 6 short circles. The figure shows the general form of a short circle with a loop length of 6 appearing in the LDPC code check matrix.
  • the principle of constructing a short circle with as few LDPC codes is as follows: First, the length of the shortest circle of the selected code should be as large as possible; secondly, for the code of the same size girth, the shortest circle of the selected code The number should be as small as possible.
  • Figure 6 is a schematic diagram of a cyclic shift matrix of four unit matrices forming a short circle of length 4 in H.
  • the parity check matrix H of the LDPC code is set to the (MX z ) X (N ⁇ ⁇ ) matrix, which is composed of MXN block matrices, each of which is a different power of the basic permutation matrix of ⁇ ⁇ ⁇ They are all circular matrices of the unit matrix. Each such block matrix can be uniquely identified by such a power. For ⁇ , if each block matrix is replaced by its power, a power matrix of Mx N is obtained.
  • the definition is the base matrix of H; since H can be obtained by extension, the parity check matrix H is also referred to as an extension matrix of H b .
  • the underlying matrix and the parity check matrix are essentially one thing.
  • the basic matrix is only a compressed form of the parity check matrix, which is convenient for subsequent research.
  • the present invention defines the girth of the base matrix given the expansion factor as the girth of its extension matrix, and the girth of the base matrix is an omission.
  • a power j in the base matrix uniquely identifies a matrix obtained by shifting the j-bit rightward by a unit matrix, where j is a positive integer greater than or equal to zero.
  • the cyclic shift defaults to the right shift.
  • parity check matrix of such an LDPC code can be defined as follows:
  • P is the N X N basic cyclic permutation matrix:
  • the base matrix of an MXN can uniquely extend an extension matrix 11.
  • the analysis shows that adjusting the dimension z of the basic permutation matrix can change the size of the extended matrix. Therefore, based on the basic matrix, an LDPC code set with a continuous variable code length under the same code rate and the same number of distributions can be constructed.
  • the parity check matrix H of the above LDPC code can be divided into 8 block matrices, and each block matrix can be regarded as a cyclic shift matrix of 3 X 3 unit matrix.
  • the check matrix can be determined only by knowing two parameters. The first parameter is the dimension of the unit matrix, and the second parameter is the number of cyclic shift bits corresponding to each block matrix.
  • I dims the dimension of the unit check matrix can be defined as I dims .
  • a matrix be a matrix obtained after the cyclic shift bit of the unit array, which can be represented by ⁇ ⁇ ; for the unit matrix, it can be regarded as a matrix obtained by cyclically shifting the unit array by 0 bits, so it is represented by 0; For 0 moments Array, generally expressed in -1. Therefore, the above check matrix can be represented by the following I dims parameter and a 2 X 4 matrix:
  • the topology of the check matrix and the bipartite graph is analyzed.
  • the length of the extended matrix H may be 4 or larger short circle.
  • Figure 7 is a schematic diagram of a cyclic shift matrix of six unit matrices forming a short loop of length 6 in H. As shown in the figure, the topology of the check matrix and the bipartite graph is analyzed. When a short circle of length 6 appears in the base matrix, the extended matrix H of length 6 may have a short circle of length 6 or more, as follows:
  • Figure 8 is a schematic diagram of a cyclic shift matrix of eight unit matrices forming a short loop of length 8 in H. As shown in the figure, the topology of the check matrix and the bipartite graph is analyzed. When a short circle of length 8 appears in the base matrix ⁇ , the extended matrix of "" may have a short circle of length 8 or more, as follows :
  • the extension matrix is derived from the basic matrix expansion.
  • the dimension of the cyclic permutation matrix is generally even, and the content of the subsequent order is defaulted to be even.
  • LDPC parity check matrix girth ⁇ 6 In its basic matrix, for any counterclockwise (clockwise equivalent) direction, any element i, j, k, 1 of a short circle of length 4 is formed. There is always mod(i-j+kl, z) ⁇ 0.
  • the necessary and sufficient conditions for the LDPC parity check matrix girth ⁇ 8 are: In its basic matrix, for all elements i, j, k, 1, which form a short circle of length 4 in the counterclockwise direction, there is always mod(i -j+kL z) ⁇ 0 ; and for all elements i, j, k, 1, m, n that form a short circle of length 6 in a counterclockwise direction, there is always mod(i-j+k-l +mn, z) ⁇ 0.
  • the necessary and sufficient conditions for the LDPC parity check matrix girth ⁇ 10 are: In its basic matrix, for all elements i, j, k, l which are formed by a counterclockwise short circle of length 4, there is always mod(i- j+kl, z/2) ⁇ 0; For all elements i, j, k, 1, m, n which form a short circle of length 6 in a counterclockwise direction, there is always mod(i-j+k-l+mn, z ) ⁇ 0 ; and for all elements i, j, k, 1, m, n, s, t that form a short circle of length 8 in a counterclockwise direction, there is always mod(i-j+k-l+m -n+st, z) ⁇ 0.
  • the encoder of the LDPC code designed by the present invention and the parity check matrix of the decoder satisfy the above inequality as much as possible.
  • Different code lengths have different base matrices.
  • the present invention provides a specific implementation method for constructing a parity check matrix of a high girth LDPC code, including the following steps:
  • the first step determining the code rate, code length, and number of check bits of the LDPC code base matrix to be constructed; and second, determining the row importance and column weight of the LDPC code base matrix to be constructed;
  • the row weight and the column weight can be directly determined; if an irregular code is used, the density distribution is required to determine the frequency distribution, and the SNR threshold and the iterative convergence speed need to be comprehensively considered and the algorithm is complicated. Factors such as degree, finally choose a suitable number of times distribution, and get the row weight vector and column weight vector of the matrix from the number distribution.
  • the third step according to the row weight vector and the column weight vector, the bit-fill method can be used to construct the original base matrix OriginalBaseMatrixH with the largest girth and the shortest number of circles;
  • the original base matrix Since the original base matrix is generally small, the original base matrix has a girth of 4. The key is to minimize the number of short circles of length 4.
  • the original base matrix consists of only 0,1, which reflects the important characteristics such as the number distribution and rate of the LDPC code that needs to be constructed.
  • Bit filling method can be found in, Xu Jun, "LDPC Code and Its Application in 4th Generation Mobile Communication System” [Master Thesis], Nanjing University of Posts and Telecommunications, 2003; or: i.Campello et al., Extented Bit-Filling and LDPC Codes Design, Proc. IEEE Globecom Conf. San Antonio, TX, Nov.
  • the present invention is also possible with other methods that can efficiently construct an original base matrix with as large a girth as possible and a minimum number of shortest circles.
  • the fourth step based on the constructed original base matrix, select the appropriate elements from the set ⁇ 0, l, 2, L, z-1 ⁇ to the position of "1" in the matrix until all "1" After the position is put out, the basic matrix is finally obtained.
  • the part of the basic matrix corresponding to the check bit generally has a quasi-lower triangular structure;
  • the base matrix is extended according to the known spreading factor z to obtain a parity check matrix of the required LDPC code.
  • the bit filling method in the above third step is specifically: First, it is necessary to determine the row weight vector and the column weight vector of the original base matrix, and then put "1" one by one into the check matrix, but it is required to satisfy the constraint of the short circle ( The number of short circles of length 4 is as small as possible and the number of times is distributed (not exceeding the agreed line weight and column weight).
  • "1" is placed column by column from the first column to the last column; in the process of filling a column with a "1", there are multiple locations at this time that can be filled.
  • Set the total number of sides of the bipartite graph to 1, then when E "1" is successfully placed on the school In the matrix, the matrix is generated successfully.
  • a method of constructing a basic matrix of a low-density parity check code with as large a girth as possible is similar to the process of bit stuffing, and the base matrix is obtained from ⁇ 0, 1, 2, ..., 2-1 ⁇ The value is chosen to be filled to the "1" position of the original base matrix.
  • the key to the problem now is how to select a suitable element from the set ⁇ 0,1,2,L, ⁇ -1 ⁇ to the position of "1" in the original base matrix.
  • Fig. 10 is a schematic diagram showing a bipartite graph developed after starting from the corresponding side of the y0th column element of the ⁇ th row.
  • the bipartite graph of the basic matrix ⁇ starting from the edge corresponding to the yOth column element of the ⁇ -th row, traversing all the possible paths, the bipartite graph starting from the corresponding side of the y0th column element of the ⁇ -th row can be obtained, and the circle represents the variable in the figure. Node, the square represents the check node.
  • VI denotes a set of adjacent variable nodes with a distance of 2 from yO
  • ci denotes a set of adjacent check nodes with a distance of y 0 of 3
  • V2 denotes a set of adjacent variable nodes with a distance of yO of 4
  • C2 denotes a distance from yO 5 sets of adjacent check nodes
  • V3 denotes a set of adjacent variable nodes with a distance of yO of 6
  • C3 denotes a set of adjacent check nodes with a distance of yO of 7
  • V4 denotes a set of adjacent variable nodes with a distance of yO of 8
  • C4 denotes a distance of 9 from yO.
  • V5 represents a set of adjacent variable nodes with a distance of 10 from yO.
  • a short circle of length 4 appears; when yO appears in V3, a short circle of length 6 appears; when yO appears in V4, a short circle of length 8 appears.
  • yO appears in V5 a short circle of length 10 appears. Therefore, any short circle containing the corresponding side of the yOth column element of the ⁇ line will be represented on this local bipartite graph. This figure can also be used to determine the girth of the bipartite graph of the check matrix.
  • the black thick line appearing is any one of the paths starting from the corresponding side of the yOth column element of the ⁇ line.
  • list the y0 from the ⁇ line find a non-zero element along the horizontal direction, set its position to the yth column of the ⁇ line; then find a non-zero element along the vertical direction.
  • Fig. 11 is a view showing any one of the paths from the corresponding side of the yth column element of the ⁇ th ⁇ line in the bipartite graph of Fig. 10.
  • you start from the corresponding side of the xth row of the yO column element, you
  • Fig. 12 is a schematic view showing a short circle in which the path shown in Fig. 11 has a length of four.
  • the path shown in Fig. 11 has a length of four.
  • each edge of the bipartite graph and the non-zero element in the matrix uniquely correspond, and it can be seen that -H(x0,yl) corresponds to the check node ⁇ to the side of the variable node yl, H( Xl, yl) corresponds to the edge of the check node xl to the variable node yl, H(xl, y0) corresponds to the edge of the check node xl to the variable node yO, H(x0, y0) and the check node ⁇ ⁇ to the variable node The side of yO corresponds.
  • H(x0, y0), H(x0, yl), H(xl,yl), H(xl,yl) belongs to the set ⁇ 0,1,2,. ⁇ ., ⁇ -1 ⁇ , H(x0,yl), H(xl ,yl); H(xl,yl ) is known, and H(x0, y0) is unknown and needs to be selected for padding. According to the previous conclusions, if:
  • FIG. 13 is a schematic view showing the short circuit of the path shown in Fig. 11 having a length of 6.
  • FIG. 14 is a schematic view showing the short circuit of the path shown in Fig. 11 having a length of 8.
  • (1 1 ) is based on a partially constructed base matrix i3 ⁇ 4Tc, and from the ⁇ line in the bipartite graph
  • the y0 column element starts from the corresponding edge, traverses all possible paths, and finds all the short circles; in actual construction, the check bit portion with the quasi-lower triangle structure can be constructed first;
  • the code length is closely related to girth.
  • the code length is longer, the larger the value range of ⁇ 0, 1, 2, ..., ⁇ -l ⁇ , the easier it is to find a suitable padding value.
  • the base matrix is not unique, and the code rate is required to be 1/2, and the code length is 576 according to 96.
  • the LDPC code is continuously changed to 2304 for the interval.
  • a 12 X 24 original basis matrix is designed, which reflects the code rate and the number of times distribution of the matrix to be constructed, which is a semi-regular check matrix, corresponding to the verification of information bits.
  • the matrix portion has a regular structure, and the row weight is 4, and the column weight is also 4; the check matrix portion corresponding to the parity bit has a double lower triangular structure for the purpose of realizing direct linear time coding.
  • the invention needs to be from ⁇ 0,1,2,..., ⁇ -l ⁇ Select value to fill to the original base
  • all 0 elements of the matrix are filled with -1.
  • all "1"s of the right half of the matrix are required to be replaced by "0", and the matrix of the left is filled according to the method provided by the present invention.
  • N b is the code length of the base matrix 8T45 11111111, here 24. Therefore, the present invention considers that the value of the element in the basic matrix should be variable with the code length. When the code length increases, the value of z increases, and the value of the value filled to the original base matrix will be larger, which will be easier to construct.
  • the lgC code of the girth is high, so that the constructed LDPC code can effectively overcome the influence of the short circle on the code performance.
  • the code rate is 1/2
  • the base matrix is a 12 ⁇ 24 matrix
  • the spreading factor z can be continuously fetched from 24 to 96.
  • the code length can be continuously changed from 576 to 96 intervals. 2304 LDPC code.
  • the basic matrix of this embodiment is no longer unique, and each code length norlj has a different basic matrix, but the original basic matrix is the same. Therefore, for a low-density odd-numbered parity code with a specific code rate variable code length, the values of the basic matrix need to be appropriately adjusted at different code lengths, that is, the positions of the non-negative 1 elements of the basic matrix of different code lengths are the same. , but the values in these locations are not necessarily the same.
  • FIG. 15 is a construction of Example 1 of the present invention
  • An encoder and decoder for an LDPC code based on a unit matrix and its cyclic shift matrix designed by the present invention will now be described in an embodiment, the encoder and decoder being always unique by a parity check matrix H determine.
  • an encoder for an LDPC code is provided.
  • a storage module having a base matrix corresponding to each code length is stored, and an expansion module and an encoding operation module are configured, wherein:
  • the expansion module is configured to expand the base matrix of the current code length by a spreading factor and a basic permutation matrix to obtain a parity check matrix of (M x z) x (N xz ) low density parity check code.
  • the basic permutation matrix generally uses a unit matrix. When expanding, it only needs to use the 0 matrix instead of the basic matrix, and replace the other non-negative coefficients j with a z X s unit array after the right shift of the J' bit.
  • the coding operation module is configured to perform a coding operation of the N-bit codeword from the source data of the N-M bit based on the parity check matrix of the low-density parity check code obtained by the extension.
  • the basic matrix can be used to complete the coding, and the extension module can be omitted.
  • the basic matrix and the parity check matrix are essentially one thing.
  • the base matrix is only the compressed form of the parity check matrix, so the encoding of the low density parity check code is implemented in principle by the parity check matrix, but in form. Encoding can be implemented directly with the base matrix.
  • a z X z unit array is rotated right by a matrix and multiplied by a z X 1 column vector operation, which is equivalent to shifting the vector to the left by one bit (the elements in the base matrix are The number of bits shifted), so the operation of a parity check matrix can always find the vector operation of the corresponding base matrix equivalently, so the encoding process based on the parity check matrix can be directly implemented by the basic matrix, but The principles, methods and processes are unchanged.
  • the base code can be used to implement the codec.
  • the code can be implemented without extending this step or module.
  • the method of coding using the base matrix is inferred from the parity check matrix coding and decoding method.
  • the essence principle is to use the coding and decoding principle of the parity check matrix.
  • the encoding operation can use a direct method or a Richarson method or any other method.
  • the LDPC code is a special linear block code.
  • a direct encoding method of the existing system block code is given below: dividing the parity check matrix H of the MXN into two blocks of MX (NM) and MXM, that is, H two [A
  • M column vectors The largest linearly independent group of M matrix column vectors
  • the check matrix is also divided into A and corresponding system bits and check bits.
  • B adopts a special matrix structure, such as a strict lower triangular structure (semi-random matrix), a double lower triangular structure, etc., it has a very simple form, and the check bit portion c in the code word can be directly obtained according to the above formula, and The encoder can be guaranteed to have linear complexity.
  • CD where the dimension of A is (m-g)x(n-m), B is (m-g)xg, T is (m-g)x(m-g), C is gx(nm), D Is gxg, E is gx(m-g). All of these matrices are sparse matrices, and T is the lower triangular matrix with the main diagonal elements all ones.
  • the codeword after encoding be ⁇ , ⁇ , ⁇ ), where S is the systematic bit portion of the codeword, ⁇ and ⁇ are the check bits of the codeword, the length is g, and the length of p 2 is (mg) , can be obtained by the following formula:
  • the function of the encoder of the LDPC code designed by the present invention is to implement multiplication and addition of the sparse matrix.
  • the multiplication operation of the sparse matrix may be composed of a plurality of z-bit cyclic shift registers and a plurality of z-bit adders, and the addition of the sparse matrix is performed by the above Multiple z-bit adders are completed.
  • an LDPC encoder hardware circuit can be easily constructed using a plurality of z-bit cyclic shift registers and a plurality of z-bit adders according to the direct method described above or the Richarson method.
  • the encoder of the LDPC code designed by the present invention can be determined by its parity check matrix. Uniquely determined
  • a decoder for the LDPC code is shown, as shown in FIG. 19, which also includes a storage module and an extension module in which the base matrix corresponding to each code length is stored (based on the same reason as the encoder extension module, the extension module is The decoder is also optional), and further comprises a decoding operation module for correcting the input interfered codeword bits based on the parity check matrix of the extended low density parity check code. After the output.
  • a message passing algorithm can be employed as the decoding algorithm, but the present invention is not limited thereto.
  • the message passing algorithm is a decoding technique in which information is passed between nodes in a bipartite graph.
  • the node can operate as a separate processor, collecting input information and generating output information.
  • the bit and check nodes obey a universal local rale, which produces an output once all input information has been received.
  • the information transfer algorithm can converge to a posterior log likelihood ratio after a limited number of information passes.
  • most good codes have circles in their bipartite graphs. When the code of the circle is used, the information transfer algorithm is no longer accurate, but only approximate. Fortunately, even when the graph has a circle, the information transfer algorithm works very well, and its complexity is very low.
  • a two-dimensional memory network is first needed, which is used to store the extrinsic information on each side of the bipartite graph, and also to ensure the validity of the information transfer route;
  • An M independent Check Node Processing Unit (CNPU) corresponding to M check nodes, which is used for calculation of all check nodes and information transfer between adjacent nodes;
  • VNPUs variable node processing units
  • the parallel implementation of hardware ensures high-speed iterative decoding of LDPC codes.
  • an LDPC decoder can be designed. When implemented in hardware (such as field-programmable gate array FPGAs), the decoder can be highly parallel and simple in structure.
  • the parity check matrix can uniquely determine the encoder and decoder of an LDPC code.
  • the parity check matrix of the LDPC code not only determines the performance of the LDPC code decoder, but also determines the LDPC code. Encoder and decoder complexity, memory space and processing delay. Therefore, it is crucial to find a parity check matrix structure of a suitable LDPC code.
  • the method and the decoder of the LDPC code designed from the girth angle of the LDPC code can be found under a specific code length condition. Girth is as large as possible, and the parity matrix of the shortest number of circles under the same girth is as small as possible.
  • the LDPC code codec needs to store a base matrix, when the code length is long It is necessary to store a lot of basic matrices, and puts high demands on the storage space of the LDPC code codec.
  • the present invention proposes yet another embodiment which provides a basic matrix for different code lengths and which can guarantee girth requirements at different code lengths.
  • the low density is odd
  • the code length of the even parity can be changed, and the parity check matrix at different code lengths is unique.
  • the M b XN b basic matrix and the variable spreading factor Z are obtained by extension, and the spreading codes of any code length within the design range are all high girth codes (the shortest circle length is as large as possible), and the position is eliminated as much as possible.
  • a short circle of low density parity check code is obtained by extension, and the spreading codes of any code length within the design range are all high girth codes (the shortest circle length is as large as possible), and the position is eliminated as much as possible.
  • z be any spreading factor that appears in the set [z min ,..., z max ], where z min denotes the spreading factor of the shortest code length low density parity check code of the design, and ax denotes the longest code of the design
  • the spreading factor of the long low-density parity check code, [ Zmin ,...,z m ax] represents a set of spreading factors corresponding to all code length low-density parity check codes of the design, and all code lengths are N b X [z min ,..., Zmax ].
  • the parity check matrix has different structures at different girth values, and the relationship is as follows:
  • parity check matrix girth of all code lengths is 6 is: in the base matrix based on, for 11 , ], after the element is corrected by code length (the specific correction method will be introduced below), all Any element i, j, k, 1, which is a short circle of length 4 in the counterclockwise (clockwise equivalent) direction always has mod(i-j+kl, z) ⁇ 0.
  • parity check matrix girth of all code lengths is 8 is: in the basis matrix based on, for W e [ n , L , Zmax ], after the element is corrected by the code length, all counterclockwise
  • the direction constitutes any element i, j, k, 1, of a short circle of length 4, always having mod(i-j+kl, z) ⁇ 0; and for all counterclockwise directions, a short circle of length 6 is formed Any element i, j, k, 1, m, n, always has mod(i-j+k-l+mn, z) ⁇ 0.
  • the necessary and sufficient conditions for making the parity check matrix girth of all code lengths to be 10 are: In the basis matrix based on, for V ze [z min , L , ax ], after the element is corrected by the code length, all the inverses are The hour hand constitutes any element i, j, k, 1, of the short circle of length 4, and there is always mod(i-j+kl, z/2) ⁇ 0; for all counterclockwise, a short circle of length 6 is formed.
  • the present invention further provides a specific embodiment for constructing a basic matrix satisfying the above relationship.
  • the method is used for the first three steps of the LDPC code parity check matrix for constructing a high girth, and the girth is constructed to be as large and shortest as possible.
  • the fourth step when selecting the value of the element at a certain position, follow the steps below:
  • the basic matrix girth ⁇ 10 should be satisfied: constituting any element i, j, k of the short circle of length 4 in the short circle , 1, there is always mod(i-j+kl, z/2) ⁇ 0; any element i, j, k, 1, m, n of the short circle of length 6 in the short circle is formed counterclockwise , there is always mod(i-j+k-l+mn, z) ⁇ 0; and any element i, j, k, 1, m which is a short circle of length 8 in the short circle is formed counterclockwise. n, s, t, there is always mod(i-j+k-l+m-n+st, z) ⁇ 0 ;
  • any element i, j which constitutes a short circle of length 4 in the short circle in a counterclockwise direction is satisfied.
  • any element i, j, k, 1, m which is a short circle of length 6 in the short circle is formed in a counterclockwise direction n, there is always mod(i-j+k-l+mn, z) ⁇ 0;
  • any element i, j which constitutes a short circle of length 4 in the short circle is constituted in a counterclockwise direction, k, 1, there is always mod(i-j+kl, z) ⁇ 0;
  • the base matrix is modified to a base matrix corresponding to all other code lengths, and the element in each of the base matrices obtained after the correction and the element forming the short circle together Value, and then judge whether it satisfies the requirement that the basic matrix girth ⁇ 8 or girth ⁇ 6 (girth ⁇ 6 when girth ⁇ 8 is not selected), if it is satisfied, select the next position, otherwise return to the step (22) re-selection;
  • the above steps (21), (22), (24) and the steps (11), (12), (13) for constructing the high girth check matrix are the same, but the step (23) is added in the embodiment. , that is, correct the initial base matrix, and then judge whether the modified base matrix satisfies girth Request, if not satisfied, re-select the value.
  • the correction algorithm may employ mod, scale+floor, or scale+round. Let P j be the non-negative element of the i-th row and the j-th column of the base matrix, and P w be the element after the correction.
  • ⁇ ⁇ Round(i ⁇ . ⁇ — ⁇ ) where ⁇ is the number of base matrix columns, “the code length of the low-density parity check code to be generated for the parity check matrix. Mod is the modulo operation, [ ] is the next rounding operation, and Round is the rounding operation.
  • the steps to extend the base matrix according to the known spreading factor z are the same, except that the spreading factor is different.
  • an 8 ⁇ 24 original base matrix is designed, which is a semi-regular check matrix, and the check matrix portion corresponding to the information bits has a regular structure, and the row weight and the column weight are 4
  • the check matrix portion corresponding to the check bit is a double lower triangular structure to achieve direct linear time coding.
  • BaseMatrixH4 -i a ⁇ -1 67 TO 89 -1 8T -1 84 -1 6 90 -1 —1 43 0 -1 a 1 -1 0 0 —1 - 1
  • the LDPC code with larger girth designed by the present invention is also superior to the prior art.
  • the invention can be used not only for regular codes but also for non-regular codes.
  • the present invention does not rely on a specific number of times distribution, and can be applied to any form of LDPC code based on a unit array and its cyclic shift, which has universal applicability and can eliminate the error flat bottom of such LDPC codes.
  • This embodiment provides an LDPC code having a specific code rate, a specific girth (e.g., 6, 8, 10) and a code length that can be continuously changed; and the base matrix can be kept unique as the code length changes, as in the conventional method.
  • the condition of how to eliminate the storage capacity and computational complexity of the codec solves the short-circle problem of how to eliminate the LDPC code with a specific code rate and continuous variable code length.
  • the largest element of the underlying matrix is large enough, the range of values of the underlying matrix is large enough.
  • the required design girth is not very high, a unique underlying matrix can be found, so that when z takes any possible value , can meet the above-mentioned specific girth inequality.
  • the present invention proposes yet another embodiment which provides an encoder and decoder based on a low density parity check code.
  • the parity check matrix adopted by the encoder and the decoder at different code lengths is obtained by a unique base matrix extension.
  • the encoder of this embodiment includes a storage module that stores the unique base matrix, and is configured with a correction module, an expansion module, and an encoding operation module, where:
  • the correction module is configured to read the basic matrix from the storage module according to the code length of the current data stream and correct the non-negative value in the matrix, and use the correction mode used in constructing the basic matrix.
  • the expansion module is configured to expand the modified base matrix by a spreading factor and a basic permutation matrix to obtain a parity check matrix of (M X 0 X (N X z) low density parity check code.
  • the coding operation module is configured to perform 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, and may also adopt the above direct method or the Richarson method or any Other methods.
  • the decoder of this embodiment includes a decoding operation module, a storage module of a base matrix, a correction module, and an expansion module, wherein the storage module, the correction module, and the extension module and the encoder are the same.
  • the decoding operation module is configured to perform error correction on the input interfered codeword bits based on the parity check matrix of the extended low density parity check code, and may also adopt a message passing algorithm. As the decoding algorithm, the present invention is not limited to this.
  • the present invention further provides an embodiment, which provides a digital communication system including an encoder and a decoder based on a low density parity check code of a unit matrix and a cyclic shift matrix thereof, wherein
  • the encoder and the decoder are uniquely determined by a parity check matrix of a low density parity check code, and the parity check matrix can be obtained in two ways, one being different on different code lengths.
  • the matrix is extended, and the other is obtained by extending the unique base matrix at different code lengths.
  • the basic matrix in both cases can be obtained by the method described above, so that the expanded parity check matrix has a high girth value. I won't go into details here.
  • the present invention proposes an encoder and a decoder for an LDPC code based on a unit matrix and a cyclic shift matrix thereof, which can correct the error flat base, and the encoder and decoder of the LDPC code are checked by parity.
  • the general structure of the high-girth parity check matrix is proposed, which improves the performance of the decoder. It is proposed for the first time to change the basic matrix according to the code length, to ensure that the designed parity check matrix has the largest girth method, and to construct a systematic algorithm based on the LDPC code of the unit matrix and its cyclic shift matrix.
  • the parity check matrix of girth can be constructed with a long code length, thereby improving the performance of the LDPC code, accelerating the falling speed of the BER curve, effectively eliminating the error flat bottom phenomenon of the LDPC code, and enabling the LDPC code to reach
  • the best performance can reduce the complexity and storage space of the encoder and decoder, improve the encoding and decoding performance, and achieve higher error correction technology.
  • 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

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Description

低密度奇偶校验码的基础矩阵、 编译码器及其生成方法 技术领域
本发明涉及一种数字通信系统用于数据传输纠错的编码器和译码器, 特 别是涉及数字通信领域纠错技术中的基于单位阵及其循环移位矩阵的低密 度奇偶校验码的基础矩阵、 编码器和译码器及其生成方法, 尤其适用于特定 码率变码长的情况。 背景技术
所有的数字通信系统如通信、 雷达、 遥控遥测、 数字计算机的存储系统 和内部运算以及计算机之间的数据传输等都可以归结为如图 1所示的模型。
图 1中的信源编码器是为了提高传输的有效性, 信道编码器是为了抗击 传输过程中各种各样的噪声和干扰, 通过人为地增加冗余信息, 使得系统具 有自动纠正差错的能力, 从而保证数字传输的可靠性。 随着无线数字通信的 发展及各种高速率、突发性强的业务的出现, 人们对纠错编码技术提出了愈 来愈高的要求。
最初纠错码的研究主要集中在以代数理论为基础的线性分组码, 随后出 现了汉明码、 循环码、 BCH码、 RS码等一系列好码。 五十年代出现的卷积 码在编码过程中引入了寄存器, 增加了码元之间的相关性, 从而在相同的复 杂度下获得比分组码更高的编码增益。 随着各种卷积码译码算法 (Viterbi算 法)的出现, 卷积码得到了深入研究和应用。 1993年, 法国的 CBerrou等人 提出了 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) 0 Gallager最初提出的编码具有规则的码结构,其校验矩阵是稀疏矩阵, 且每一行具有相同个数的 1, 每一列也具有相同个数的 1。 M.G.Luby认为, 如果允许校验矩阵的行或者列中非零元的个数发生变化, 同时保证矩阵的稀 疏性,那么编码的译码算法仍然适用,而编码的性能却能够得到极大的提高, 使之能够达到甚至超过 Turbo码的性能。 这是因为在这种编码结构中, 如果 对应二分图的左节点和右节点有合适的次数分布 (degree distribution),那么在 译码时将会存在一种波状效应 (waveform effect),将极大地提高译码性能。非 正则码就是这种允许同种节点有不同次数的低密度的编码, 而 Gallager最初 提出的编码相应的称为正则码。
对于中短长度的 LDPC码, 二分图中短长度圈将使码性能严重下降, 如 何构造无短长度圈的研究因此变得非常重要。这方面的构造方法现在主要有 组合构造法、 有限几何构造法、 群论构造法以及图论构造法等, 但是这些方 法主要是面向正则码, 有很大局限性, 而且理论性太强, 实用性较差。 J.Campello等提出了扩展的比特填充 (Bit-Filling)算法, 可以设计出 girth (指 LDPC码二分图的最短圈圈长)一定, 高码率的 LDPC码或者码率一定, 高 girth的码, 是具有一般性的方法, 适当改进将可以用来设计具有保证 girth 的非正则的 LDPC码。 所以, 如何寻找短圈 (short cycles)尽量少的 LDPC码 变得很重要。
目前, 大量文献提出用单位矩阵以及它的循环移位矩阵来构造任意可变 码长的 LDPC码,这种具有分组循环奇偶校验矩阵的 LDPC码成为当前的研 究热点。 目前, 如何构造出具有短圈尽量少的此类 LDPC码的码构造方法还 很不全面。
基于单位阵及其循环移位矩阵的 LDPC码由于具有任意可变码长, 编码 实现简单,扩展过程中可以保证次数分布和 girth分布不变的特点,成为当前 学术界的研究重点。 目前构造的基于单位阵及其循环移位矩阵的 LDPC码都 没有充分考虑 girth的影响以及码长和 girth的关系, 从而使得误码率 (BER) 曲线在信噪比较高的时候下降速度急剧变慢, 常常出现差错平底 (error floor) 现象, 从而导致性能下降。 如何才能消除 LDPC码的差错平底现象, 加速 BER曲线下降速度,在高信噪比时提高 LDPC码的性能, 成为当前亟待解决 的问题。
发明内容
本发明要解决的技术问题是提供一种低密度奇偶校验码的基础矩阵及 其构造方法, 使得构造出的基础矩阵的 girth尽量大, girth相同的最短圈数 目尽量少,进而使由其唯一确定的编码器和译码器能够有效地消除 LDPC码 的差错平底现象, 加速 BER曲线下降速度, 提高 LDPC码的性能。
为了实现上述目的, 本发明提供了一种低密度奇偶校验码的基础矩阵的 构造方法, 包括以下步骤:
步骤一, 确定要构造的低密度奇偶校验码基础矩阵的码率、 码长及校验 位个数;
步骤二, 确定所述基础矩阵的行重量向量和列重量向量;
步骤三,根据所述行重量和列重量向量,构造出 girth尽量大、同样 girth 下最短圈数尽量少的原始基础矩阵, 其中, girth为最短圈圈长;
步骤四, 基于构造出的所述原始基础矩阵, 从集合 {0,1,2,L ,z-l}中选值 逐一放到该矩阵中所有 " 1 "的位置上, 构造出 girth尽量高的基础矩阵, z 为扩展因子。
进一步地, 上述构造方法还可具有以下特点: 所述步骤三是采用比特填 充法构造出 girth尽量大、 最短圈数目尽量少的原始基础矩阵。
进一步地, 上述构造方法还可具有以下特点: 所述步骤四构造基础矩阵 时, 对应于校验比特的部分采用准下三角结构。
进一步地,上述构造方法还可具有以下特点:所述步骤四分为以下步骤:
( a) 以部分已经构造的基础矩阵为对象, 在二分图中从要填充元素的 对应边出发, 遍历所有可能路径, 找到所有的短圈;
(b) 为该元素选值时, 先选择使基础矩阵 girth≥ 10的值, 选不到再选 择使基础矩阵 girth > 8的值, 还选不到时再选择使基础矩阵 girth > 6的值; 对于该元素和与其共同构成所述短圈的元素的值,使基础矩阵 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;
对于该元素和与其共同构成所述短圈的元素的值, 使基础矩阵 girth > 6 时应满足:按逆时针方向构成了所述短圈中长度为 4的短圈的任意元素 i, j , k, 1, 总有 mod(i-j+k-l, z)≠0;
(c)重复上述步骤(a)和(b), 直到完成所有非零元素的选值后, 可 以得到 girth尽量高的基础矩阵。
进一步地, 上述构造方法还可具有以下特点: 所述奇偶校验矩阵在不同 的码长下由唯一基础矩阵扩展得到,所述步骤(b)中在集合 {0,l,2,...,zmax-l } 中选值, Zmax为最长码长低密度奇偶校验码的扩展因子表示, 且步骤(b)和
(c) 之间还包括步骤 (M ) : 选到一个合适的值后, 将该基础矩阵修正为 对应于其它所有码长的基础矩阵, 对修正后得到的每一个基础矩阵中该元素 和与其共同构成所述短圈的元素的值, 再判断其是否满足对该基础矩阵的 girth要求, 如果满足, 再选下一个位置, 否则返回步骤 (b) 重新选值。
进一步地, 上述构造方法还可具有以下特点: 所述对基础矩阵的修正是 根据基础矩阵列数和要生成奇偶校验矩阵的低密度奇偶校验码的码长, 采用 取模、 取整或舍入的方法来计算。
进一步地, 上述构造方法还可具有以下特点: 对所述基础矩阵 girth要 求是 girth> 8或 girth > 6。
为了解决上述技术问题, 本发明又提供了一种特定码率特定码长的低密 度奇偶校验码的基础矩阵, 其特征在于, 该基础矩阵中的元素至少满足以下 条件中的一个: 条件一,对于所有按逆时针方向构成了长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0;
条件二,对于所有按逆时针方向构成了长度为 4的短圈的任意元素 i, ] , 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;
条件三, 对于所有按逆时针构成了长度为 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。
其中, z为所述特定码率特定码长的低密度奇偶校验码的扩展因子。
为了解决上述技术问题, 本发明又提供了一种特定码率多个码长的低密 度奇偶校验码的多个基础矩阵, 其特征在于, 这些基础矩阵中的元素都至少 满足以下条件中的一个:
对于 Vz e [ n,L ,zmax] (即 z为集合中的任一值时) , 与 z对应的各个基 础矩阵中, 所有按逆时针(顺时针效果等同)方向构成了长度为 4的短圈的 任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0;
对于 W e ^L ,^] , 与 z对应的各个基础矩阵中, 所有按逆时针方向 构成了长度为 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山,^], 与 z对应的各个基础矩阵中, 所有按逆时针构成 了长度为 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。
其中, z为出现在集合 [zrain,..., zmax]中的任何一个扩展因子, 各自对应一 个相应码长下的基础矩阵, Zmin为最短码长的低密度奇偶校验码的扩展因子, zmax为最长码长的低密度奇偶校验码的扩展因子, 特定码率多个码长的低密 度奇偶校验码的多个基础矩阵的非负 1元素的位置总是相同的, 但在非负 1 元素的位置上取值是不同的。
为了解决上述技术问题, 本发明又提供了一种特定码率多个码长的低密 度奇偶校验码的唯一基础矩阵, 不同码长时需对这个唯一基础矩阵的元素进 行修正,其特征在于,该唯一基础矩阵中的元素至少满足以下条件中的一个: 对于 W e [zmin,L,zmaJ, 按码长对元素修正后, 所有按逆时针 (顺时针效 果等同)方向构成了长度为 4的短圈的任意元素 i,j, k, 1,总有 mod(i-j+k-l, z)≠0;
对于 Vz e [ n,L ,Zmax], 按码长对元素修正后, 所有按逆时针方向构成了 长度为 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;
对于 W e |zmin,L ,zmax], 按码长对元素修正后, 所有按逆时针构成了长度 为 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。
其中, z为出现在集合 [zmin,..., 中的任何一个扩展因子, zmin为最短 码长的低密度奇偶校验码的扩展因子, Zmax为最长码长的低密度奇偶校验码 的扩展因子。
本发明所要解决的技术问题在于提供一种基于低密度奇偶校验码的编 码器和译码器及其生成方法, 使得该编码器和译码器能够有效地消除 LDPC 码的差错平底现象, 加速 BER曲线下降速度, 提高 LDPC码的性能。
为了解决上述技术问题, 本发明提供了一种基于低密度奇偶校验码的编 码器 /译码器的生成方法, 该编码器 /译码器由一低密度奇偶校验码的奇偶校 验矩阵唯一确定, 其特征在于, 所述奇偶校验矩阵由如下步骤构造:
步骤一, 确定要构造的低密度奇偶校验码基础矩阵的码率、 码长及校验 位个数;
步骤二, 确定所述基础矩阵的行重量向量和列重量向量;
步骤三,根据所述行重量向量和列重量向量, 构造出 girth尽量大、 同样 girth下最短圈数尽量少的原始基础矩阵, 其中, girth为最短圈圈长;
步骤四, 基于构造出的所述原始基础矩阵, 从集合 {0,1, 2,L ,ζ-l}中选值 逐一放到该矩阵中所有 " 1 "的位置上, 构造出 girth尽量高的基础矩阵, z 为扩展因子;
步骤五, 对所述基础矩阵进行扩展, 得到需要的低密度奇偶校验码的奇 偶校验矩阵。
进一步地, 上文中公开的构造基础矩阵的方法都可以应用到上述构造编 码器 /译码器方法的步骤一到步骤四中。
进一步地, 上述方法还可具有以下特点: 所述奇偶校验矩阵在不同的码 长下由唯一基础矩阵扩展得到, 所述步骤四中选值时, 同时要求所有码长下 的基础矩阵或修正得到的基础矩阵都满足高 girth 的要求,且所述步骤五中, 将该唯一的基础矩阵按实际码长修正后, 再按对应的扩展因子扩展为所需的 奇偶校验矩阵。
进一步地, 上述方法还可具有以下特点: 所述奇偶校验矩阵在不同的码 长下由不同的基础矩阵得到, 所述步骤五中, 是将实际码长对应的基础矩阵 按其扩展因子扩展为所需的奇偶校验矩阵。
进一步地, 上述方法还可具有以下特点: 所述步骤五是采用单位阵及其 循环移位矩阵作为基本置换矩阵, 将所述基础矩阵扩展为奇偶校验矩阵。
为了解决上述技术问题, 本发明又提供了一种基于低密度奇偶校验码的 编码器, 其特征在于, 包括存储模块和编码运算模块, 其中- 所述存储模块用于存放奇偶校验矩阵的基础矩阵;
所述编码运算模块用于完成从源数据得到码字的编码运算。
进一步地, 上述编码器可具有以下特点: 所述存储模块中存储有各个码 长对应的基础矩阵, 这些基础矩阵可具有本发明在上文中公开的基础矩阵的 特征。
进一步地, 上述编码器可具有以下特点: 还包括一个扩展模块, 用于将 当前码长的基础矩阵按扩展因子和基本置换矩阵进行扩展, 得到低密度奇偶 校验码的奇偶校验矩阵, 而所述编码运算模块是根据该扩展得到的奇偶校验 矩阵完成编码运算。
进一步地, 上述编码器可具有以下特点: 所述存储模块中存储有对应于 各个码长的唯一基础矩阵, 且该编码器还包括一个修正模块, 用于根据当前 数据流的码长, 从存储模块读出基础矩阵并对该矩阵中的非负值进行修正, 再交给后续模块处理, 修正时采用构建该基础矩阵时所用的修正模式。 该唯 一基础矩阵可具有本发明在上文中公开的唯一基础矩阵的特征。
为了解决上述技术问题, 本发明又提供了一种基于低密度奇偶校验码的 译码器, 其特征在于, 包括存储模块和译码运算模块, 其中: 所述存储模块用于存放奇偶校验矩阵的基础矩阵; 、
所述译码运算模块用于对输入的受干扰后的码字比特进行纠错后输出。 进一步地, 上述编码器可具有以下特点: 所述存储模块中存储有各个码 长对应的基础矩阵, 这些基础矩阵可具有本发明在上文中公开的基础矩阵的 特征。
进一步地, 上述编码器可具有以下特点: 还包括一个扩展模块, 用于将 当前码长的基础矩阵按扩展因子和基本置换矩阵进行扩展, 得到低密度奇偶 校验码的奇偶校验矩阵, 而所述译码运算模块是根据该扩展得到的奇偶校验 矩阵完成译码运算。
进一步地, 上述编码器可具有以下特点: 所述存储模块中存储有对应于 各个码长的唯一基础矩阵, 且该编码器还包括一个修正模块, 用于根据当前 数据流的码长, 从存储模块读出基础矩阵并对该矩阵中的非负值进行修正, 再交给后续模块处理, 修正时采用构建该基础矩阵时所用的修正模式。 该唯 一基础矩阵可具有本发明在上文中公开的唯一基础矩阵的特征。
综上所述, 本发明给出了具有特定码率特定 girth (如 6、 8、 10)的码长可 连续变化的 LDPC码; 并且进一步提出随着码长的变化可以保持基础矩阵唯 一不变的方法, 同传统方法相比较, 在没有增加编译码器的存储容量和计算 复杂度的条件, 解决了如何消除特定码率连续可变码长的 LDPC码的短圈问 题。 本发明提高此类 LDPC码高信噪比时的性能, 加速 BER曲线下降速度, 消除此类 LDPC码的差错平底, 并且具有普遍适用性, 构造的基于单位阵及 其循环移位矩阵的 LDPC码充分考虑了 girth对码性能的影响, 以及码长对 girth的影响, 使得 LDPC码达到了最佳性能, 在高信噪比时性能表现非常理 想。本发明还具有广泛适用性,可以与考虑 LDPC码其它因素 (主要有次数分 布和线性时间编码)的构造方法很好的相互兼容。
以下结合附图和具体实施例对本发明进行详细描述, 但不作为对本发明 的限定。 附图说明
图 1为数字通信系统的模块图;
图 2为二分图中长度为 4短圈的示意图;
图 3为二分图中长度为 6短圈的示意图; 图 4为校验矩阵中长度为 4短圈的示意图;
图 5为校验矩阵中长度为 6短圈的示意图;
图 6为四个单位矩阵的循环移位矩阵在 H中构成长度为 4的短圈的示意 图;
图 7为六个单位矩阵的循环移位矩阵在 H中构成长度为 6的短圈的示意 图;
图 8为八个单位矩阵的循环移位矩阵在 H中构成长度为 8的短圈的示意 图;
图 9为 z=4, 2X 2基础矩阵的长度为 4短圈的扩展矩阵 (extend matrix) 和长度为 8短圈的扩展矩阵的示意图;
图 10为从第 χθ行第 yO列元素对应边出发后展开的二分图的示意图; 图 11为在图 10的二分图中从第 χθ行第 yO列元素对应边出发的任意一 条路径的示意图;
图 12为图 11所示的路径构成长度为 4的短圈的示意图;
图 13为图 11所示的路径构成长度为 6的短圈的示意图;
图 14为图 11所示的路径构成长度为 8的短圈的示意图;
图 15为本发明实施例 1构造出的 girth=8或 10的 R=l/2 LDPC码同
802.16e contribution构造出的 girth=6的 LDPC码的 BER比较图;
图 16为本发明实施例 1构造出的 girth=8或 10的 R=l/2 LDPC码同
802.16e contribution构造出的 girth=6的 LDPC码的 FER比较图; 及
图 17为本发明实施例 2构造出的 girth=6的 R=2/3 LDPC码同 802.16e contribution构造出的 girth=4的 R=2/3 LDPC码的 FER比较图。
图 18为本发明实施例编码器的结构框图;
图 19是本发明实施例译码器的结构框图。
具体实施方式
下面结合附图对技术方案的实施例作进一步的详细描述:
图 2为二分图中长度为 4短圈的示意图。 根据该图所示, 黑色加重的实 线表示信息比特 χ,、 χ2和校验比特 Cl、 c2构成了一个长度为 4的圈。 图 3为二分图中长度为 6短圈的示意图。 根据该图所示, 黑色加重的实 线表示信息比特 ^、 χ2、 χ3和校验比特 Cl、 c2、 c4构成了一个长度为 6的圈。
概念 girth用来定量描述二分图中的短圈。 在图论中, 二分图的 girth是 指一个图中最短圈的圈长, 例如: 某个二分图有长度为 6、 8、 10、 12和长 度更长的圈,则该二分图的 girth为 6。二分图中,某个节点¾的 girth(the girth at node 是指经过节点 M的最短圈的圈长, 例如: 经过节点^/有长度为 8、 10、 12和长度更长的圈,则该节点 u的 girth为 8。二分图中,某条边 e的 girth(the girth at edge e)是指经过此边 e的最短圈的圈长, 例如: 经过边 e有长度为 8、 10、 12和长度更长的圈, 则此边 e的 girth为 8。
一个变量节点的 girth是指最短路径的长度,它等同于从这个节点出来的 信息传递回该节点本身的最小迭代次数。在实际迭代次数达到这个最小迭代 次数之前, 与这个节点联系的信息可以最优地传递给二分图的剩余部分。 如 果某个变量节点的 girth越大,那么该变量节点发出的信息被传递给自身的正 反馈信息将越小, 则译码性能也越好。所以,使变量节点的 girth尽量大对码 性能的提高是有利的。
二分图中短圈破坏了 LDPC码的性能。 LDPC码校验矩阵的图形表示形 式是二分图, 二分图和校验矩阵之间具有一一对应的关系, 一个 M*N的奇 偶校验矩阵 H定义了每个具有 N 比特的码字满足 M个奇偶校验集的约束。 一个二分图包括 N个变量节点, 每个节点对应 H中一个比特位; 还包括 M 个奇偶校验节点,每个节点对应一个 H中的奇偶校验。校验节点将连到将要 进行校验的变量节点上; 具体的说, 当第 m个校验涉及到第 n个比特位, 即 Hm,n=l的时候, 将有一根连线连接校验节点 m和比特节点 n。 二分图名称的 由来就是因为它包括两类节点, 即变量节点和校验节点。 其中, 任何同一类 的节点之间都不会有连接。 并且二分图中的总边数和校验矩阵中非零元素的 个数相等。
图 2所示说明了; ½通过长度为 4的圈相互联系, 图 3所示说明了 ^、 χ2、 χ3通过长度为 6的圈相互联系, 而 LDPC码的信息传递译码算法假定变 量节点是相互独立的, 短圈的存在必然破坏了独立性的假设, 使得译码性能 明显下降。 事实上, 长度为 4、 6的短圈的存在使得变量节点在迭代译码的 过程中频繁给自身传递正反馈信息, 这对于迭代译码而言是不希望出现的。 大家知道, turbo码也是迭代译码的,它正是使用交织器来减少这种正反馈效 应的。 对于没有圈 (cycle free)的 Tanner图, 信息传递算法会导致最优解码, 而短圈的存在使得信息传递算法是一种次优 (sub-optimality)的迭代译码算 法, 事实上最短圈长度越长, 信息传递算法越接近最优算法。
图 4为校验矩阵中长度为 4短圈的示意图。 该图所示给出了圈长为 4的 短圈在 LDPC码校验矩阵中出现的一般形式。
图 5为校验矩阵中长度为 6短圈的示意图。该图所示出了圈长为 6的短 圈在 LDPC码校验矩阵中出现的一般形式。
可见, LDPC码二分图中的短圈将恶化 LDPC码的码性能, 所以无论对 于正则码, 还是对于非正则码, 找到消除短圈的算法是至关重要的。
综上所述, 构造短圈尽量少的 LDPC码原则如下: 首先, 被选择的码的 最短圈的长度 girth应该尽量大; 其次, 对于具有同样大小 girth的码, 被选 择的码的最短圈的数目应该尽量少。
图 6为四个单位矩阵的循环移位矩阵在 H中构成长度为 4的短圈的示意 图。
LDPC码的奇偶校验矩阵 H设为 (M X z) X (N χ ζ)矩阵,它是由 M X N个分块 矩阵构成, 每个分块矩阵都是 ζ χ Ζ的基本置换矩阵的不同幂次, 它们都是单 位阵的循环矩阵。通过这样的幂次就可以唯一标识每一个分块矩阵。对于 Η, 如果每个分块矩阵都用它的幂次代替, 就得到一个 Mx N的幂次矩阵 。 这 里, 定义 是 H的基础矩阵 (base matrix); 由于 H可以通过 扩展而得到, 所以奇偶校验矩阵 H又被称为 Hb的扩展矩阵 (extend matrix)。 根据基础矩阵 定义, 给定扩展因子 (一个大于 1整数 z) , 基础矩阵和奇偶校验矩阵本质 上是一个东西, 基础矩阵仅仅是奇偶校验矩阵的压縮形式, 为了后续研究中 表述方便,本发明在给定扩展因子的条件下定义基础矩阵的 girth就是它的扩 展矩阵的 girth, 基础矩阵的 girth是一个省略的说法。
需要明确的是, 基础矩阵中一个幂次 j唯一标识一个对一个单位阵循环 右移 j位后得到的 矩阵,这里 j是任意大于等于 0的正整数。在后面的内 容, 循环移位默认为右移。
此类 LDPC码的奇偶校验矩阵可以定义如下:
Figure imgf000015_0001
P是 N X N基本循环置换矩阵:
P
Figure imgf000015_0002
如果已知 z,一个 MXN的基础矩阵 可以唯一扩展出一个扩展矩阵11。 分析可知, 调整基本置换矩阵的维数 z就可以改变扩展矩阵的大小, 因此基 于基础矩阵可以构造出在相同码率和相同次数分布条件下一个连续可变码 长的 LDPC码码集。
下面给出一个 6 X 12的码率为 1/2的基于单位矩阵以及其循环移位矩阵 的 LDPC码实例:
Figure imgf000015_0003
分析上式可知,上面的 LDPC码的奇偶校验矩阵 H可以分块为 8个分块 矩阵, 每个分块矩阵都可以看成 3 X 3单位矩阵的循环移位矩阵。 只需要知 道两个参数就可以确定此校验矩阵, 第一个参数是单位矩阵的维数, 第二个 参数是每个分块矩阵对应的循环移位的位数。
如果 I表示单位阵, 则单位校验矩阵的维数可以定义为 Idims。 设某矩阵 是单位阵的循环移位位后得到的矩阵, 可以用 ζ·来表示它; 对于单位矩阵, 可以看成将单位阵循环移位 0位得到的矩阵, 所以用 0来表示; 而对于 0矩 阵,一般用 -1来表示。所以上述校验矩阵可以用下面的 Idims参数和一个 2 X 4 矩阵 来表示: ·
τ ^π 一 「ο 1 ο -Γ
Idims= 3 和 = ^ i 2 i - 如图 6所示, 分析校验矩阵和二分图的拓扑结构, 当基础矩阵 中出 现长度为 4的短圈时, 的扩展矩阵 H才可能出现长度为 4或者更大的短 圈。
经过计算机仿真和数学推理的验证, 结论归纳如下:
z为偶数, 由四个 zXz的分块矩阵 、 Pj、 Pk、 ^对应的幂次元素1、 j、 k、 1在 中构成了长度为 4的短圈, 若 mod(i-j+k- 1,ζ) = 0, 则 Pi、 Pj、 Pk、 在11中构成了长度为 4的短圈; 若 mod(i-j+k-l,z/2)=0, 则 P;、 Pj、 Pk、 在 H中构成了长度为 8的短圈。 其它情况下, 、 Pj、 Pk、 在1 中构成了 长度为 12的短圈或者不构成短圈。
图 7为六个单位矩阵的循环移位矩阵在 H中构成长度为 6的短圈的示意 图。 如该图所示, 分析校验矩阵和二分图的拓扑结构, 当基础矩阵 中出 现长度为 6的短圈的时候, 的扩展矩阵 H才可能出现长度为 6或者更大 的短圈, 如下:
z为偶数, 有六个 zXz的分块矩阵 、 Pj、 Pk、 Pm、 Pn对应的幂次 元素 i、j、k、l、m、n在 ^中构成了长度为 6的短圈,若 mod(i-j+k-l+m-n,z)=0, 则 Pi、 Pj、 Pk、 Pm、 ?„在 H 中构成了长度为 6 的短圈; 若 mod(i-j+k-l+m-n,z/2)=0, 则 、 Pj、 Pk、 Pm、 Pn在 H中构成了长度为 10 的短圈。 其它情况下, Pi、 Pj、 Pk、 Pi> Pm、 ?11在 H中构成了长度大于等于 12的短圈或者不构成短圈。
图 8为八个单位矩阵的循环移位矩阵在 H中构成长度为 8的短圈的示意 图。 如该图所示, 分析校验矩阵和二分图的拓扑结构, 当基础矩阵 ^中出 现长度为 8的短圈的时候, 」 的扩展矩阵 才可能出现长度为 8或者更大 的短圈, 如下:
z为偶数, 有八个 zXz的分块矩阵 Pi、 Pj、 Pk、 Pi, Pm、 Pn、 Ps、 Pt对应 的幂次元素 i、 j、 k、 1、 m、 n、 s、 t在 Hb中构成了长度为 8 的短圈; 若 mod(i-j+k-l+m-n+s-t,z)=0 , 则 、 Pj、 Pk、 、 Pm、 Pn、 Ps、 Pt在 H中构成了 长度为 8的短圈; 其它情况下, 、 Pj、 Pk、 Pj, Pm、 Pn、 Ps、 Pt在 H中构成 了长度为 12的短圈或者不构成短圈。
图 9为 z=4, 2 X 2基础矩阵的长度为 4短圈的扩展矩阵 (extend matrix) 和长度为 8短圈的扩展矩阵的示意图。 在该图中:
, mod(0-2+3-l,4) = 0, 由上述结论可知有长度为 4的
, mod(0-0+2-0,4) = 2, 由上述结论可知有长度为 8的
Figure imgf000017_0001
短圈。
在实际应用中, 扩展矩阵是由基本矩阵扩展得到的, 循环置换矩阵的维 数 z—般都是偶数,后序的内容都默认 z是偶数。分析校验矩阵的拓扑可知, 扩展矩阵中 zXz的分块矩阵和基础矩阵的元素是唯一对应的,如果基础矩阵 中某些元素不构成短圈, 那么这些元素对应的分块矩阵在扩展矩阵中也将不 构成短圈。 所以, 为了研究扩展矩阵的短圈, 仅需要考虑当基础矩阵中出现 短圈的情况。
根据上述结构, 可以得到不同 girth条件下 LDPC校验矩阵 H应具有的 矩阵结构, 设扩展因子 z为偶数, 有如下结论:
LDPC奇偶校验矩阵 girth≥ 6的充分必要条件为: 它的基础矩阵中, 对 于所有按逆时针(顺时针效果等同)方向构成了长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0。
LDPC奇偶校验矩阵 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。
LDPC奇偶校验矩阵 girth≥ 10的充分必要条件为: 它的基础矩阵中,对 于所有按逆时针构成了长度为 4的短圈的任意元素 i,j,k,l,总有 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 =6的 LDPC码编译器;码长中等的时候,则可以设计出 girth =8 的 LDPC码编译器;码长较长的时候,则可以设计出 girth =10的 LDPC码编 译器。 不同的码长具有不同的基础矩阵。
基于以上关系, 本发明给出了一个具体的实施方法, 该方法用于构造高 girth的 LDPC码的奇偶校验矩阵, 包括以下步骤:
第一步,确定将要构造的 LDPC码基础矩阵的码率、码长、校验位个数; 第二步, 确定要构造的 LDPC码基础矩阵的行重要和列重量;
如果要构造的 LDPC码采用正则码, 可以直接确定其行重量和列重量; 如果采用非正则码, 则需要通过密度演进来确定次数分布, 需要综合考虑信 噪比门限和迭代收敛速度以及算法复杂度等因素, 最终选择出一个合适的次 数分布, 并由次数分布得到矩阵的行重量向量和列重量向量。
第三步, 根据行重量向量和列重量向量, 采用比特填充法可以构造出 girth尽量大, 最短圈数目尽量少的原始基础矩阵 OriginalBaseMatrixH;
由于原始基础矩阵一般都很小, 所以原始基础矩阵的 girth为 4, 关键是 尽量减小长度为 4的短圈的数目。 原始基础矩阵仅由 0,1组成, 它反映出最 终需要构造的 LDPC码的次数分布、 码率等重要特征。 比特填充法可参见, 徐俊, 《LDPC码及其在第四代移动通信系统中应用》 [硕士论文], 南京邮 电学院, 2003 ; 或者: i.Campello et al.,Extented Bit-Filling and LDPC Codes Design,Proc.IEEE Globecom Conf.San Antonio,TX,Nov.2001 o 当然, 本发明采 用其它的可以有效地构建出 girth尽量大,最短圈数目尽量少的原始基础矩阵 的方法也是可以的。 第四步, 基于构造出的原始基础矩阵, 从集合 {0,l,2,L ,z- 1}中选择合适 的元素放到矩阵中 "1"的位置上, 直至将所有 "1"的位置放完, 最终得到 基础矩阵 ,为了构造出符合线性时间编码的校验矩阵的结构时,基础矩阵 对应于校验比特的部分一般都具有准下三角结构;
第五步,根据已知的扩展因子 z对基础矩阵进行扩展,得到需要的 LDPC 码的奇偶校验矩阵。
可以验证得到的 LDPC码奇偶校验矩阵的次数分布、 girth以及其它码的 参数和特性是否符合要求, 并通过仿真检验 LDPC码的性能。
上述第三步中比特填充法具体是: 首先需要确定原始基础矩阵的行重量 向量和列重量向量, 然后将 "1"一个一个放到校验矩阵中, 但是要求必须 满足短圈的约束条件 (长度为 4的短圈的数目尽量少)和次数分布 (不要超过事 先约定好的行重量和列重量)的约束条件。对于比特填充算法,从第一列到最 后一列逐列向校验矩阵中放 "1"; 在向某列填充某个 " 1"的过程中, 此时 存在多个可以填充这个 " 位置,从中选择构成长度为 4短圈数目最少的位 置为这个" 1"的填充位置,并要求次数分布的约束。设二分图的总边数为 1, 那么当 E个 "1"被成功地放到校验矩阵中, 则生成矩阵成功。
第四步中构造具有尽量大 girth的低密度奇偶校验码的基础矩阵的方法, 类似于比特填充的过程, 基础矩阵是通过从{0,1,2,...,2-1}中选择值填充到原 始基础矩阵的 "1"位置而得到的。现在问题的关键是如何从集合 {0,1,2,L ,ζ-1} 中选择一个合适的元素放到原始基础矩阵中 "1"的位置上。
假设已经在原始基础矩阵的某些 "1"的位置上填充了 {0,1,2,L 1}中的 元素, 得到已经构造出来的部分基础矩阵 Hc, 并且 He对应的扩展矩阵的 girth^lO, 现在需要选择一个合适的值添加到 He的第 χθ行第 yO列。
图 10为从第 χθ行第 yO列元素对应边出发后展开的二分图的示意图。 对于基础矩阵 ^的二分图, 从第 χθ行第 yO列元素对应的边出发, 遍历所 有可能的路径, 就可以得到从第 χθ行第 yO列元素对应边出发的二分图, 图 中圆圈表示变量节点, 方块表示校验节点。 VI表示与 yO距离为 2的相邻变 量节点集合, ci表示与 y0距离为 3的相邻校验节点集合, V2表示与 yO距 离为 4的相邻变量节点集合, C2表示与 yO距离为 5的相邻校验节点集合, V3表示与 yO距离为 6的相邻变量节点集合, C3表示与 yO距离为 7的相邻 校验节点集合, V4表示与 yO距离为 8的相邻变量节点集合, C4表示与 yO 距离为 9的相邻校验节点集合, V5表示与 yO距离为 10的相邻变量节点集 合。当 yO出现在 V2中, 则出现了长度为 4的短圈; 当 yO出现在 V3中, 则 出现了长度为 6的短圈; 当 yO出现在 V4中, 则出现了长度为 8的短圈; 当 yO出现在 V5中, 则出现了长度为 10的短圈。 所以, 包含第 χθ行第 yO列 元素对应边的任何短圈都会在此局部二分图上表现出来, 此图同样可以用来 确定校验矩阵的二分图的 girth。
在图 10,设出现的黑色粗线为从第 χθ行第 yO列元素对应边出发的任意 一条路径。 在校验矩阵中, 从第 χθ行第 yO列出发, 沿着水平方向找到某个 非零元素, 设它的位置为第 χθ行第 yl列; 再沿着垂直方向找到某个非零元 素, 设它的位置为第 xl行第 yl列; 再沿着水平方向找到某个非零元素, 设 它的位置为第 xl行第 y2列; 再沿着垂直方向找到某个非零元素, 设它的位 置为第 x2行第 y2列; 以此类推,得到从第 χθ行第 yO列元素对应边出发的 二分图的该条路径, 此路径在上图是以黑色粗线标识出来。
图 11为在图 10的二分图中从第 χθ行第 yO列元素对应边出发的任意一 条路径的示意图。 分析该图, 根据 LDPC码的译码信息传递算法, 必然有 yl≠y0o当 y2 = y0,可知 y0、 x0、 yl、 xl构成了一条长度 4的短圈;当 y2≠y0 且 y3 =y0,可知 y0、x0、yl、xl、y2、x2构成了一条长度 6的短圈;当 y2,y3≠y0 且 y4 =y0, 可知 y0、 x0、 yl、 xl、 y2、 x2、 y3、 x3构成了一条长度 8的短 圈; 以此类推。 总之, 从第 x0行第 yO列元素对应边出发, 可以找出所有可 能包含它的短圈。
图 12为图 11所示的路径构成长度为 4的短圈的示意图。在部分构造的 基础矩阵^中, 从第 χθ行第 yO列元素对应边出发, 存在如图 11的路径, 若满足 y0=y2,可知构成了图 12所示的长度为 4的短圈。根据校验矩阵和二 分图的对应关系, 二分图的每条边和矩阵中一个非零元素唯一对应, 可知- H(x0,yl)与校验节点 χθ到变量节点 yl的边对应, H(xl,yl)与校验节点 xl到 变量节点 yl 的边对应, H(xl,y0)与校验节点 xl到变量节点 yO的边对应, H(x0,y0)与校验节点 χθ到变量节点 yO的边对应。 其中, H(x0,y0),H(x0,yl), H(xl,yl), H(xl,yl)属于集合 {0,1,2,. · .,ζ-1 }, H(x0,yl), H(xl ,yl); H(xl,yl)是已 知, 而 H(x0,y0)是未知, 需要选择填充的。 根据前面的结论可知, 若:
mod(H(xO,yO)-H(xO,yl)+H(xl,yl)-H(xl,yO),z)≠0 (1)
则基础矩阵中长度为 4的短圈不会导致扩展矩阵的长度为 4短圈出现; 若- mod(H(xO,yO)-H(xO,yl)+H(xl,yl)- H(xl,y0),z/2)≠0 (2)
则基础矩阵中长度为 4的短圈不会导致扩展矩阵的长度为 8短圈出现。 图 13为图 1 1所示的路径构成长度为 6的短圈的示意图。在部分构造的 基础矩阵 中, 从第 χθ行第 yO列元素对应边出发, 存在如图 1 1的路径, 若满足 y0=y3,可知构成了图 13所示的长度为 6的短圈。根据前面的结论可 知, 若:
mod(H(x05yO)-H(xO,yl)+H(xl,yl)-H(xl,y2)+H(x2,y2)+H(x2,yO),z)≠0 (3) 则基础矩阵中长度为 6的短圈不会导致扩展矩阵的长度为 6短圈出现; 若:
mod(H(xO,yO)-H(xO,y 1 )+H(x 1 ,y 1 )-H(x 15y2)+H(x2,y2)+H(x2,y0),z/2)≠ 0 (4) 则基础矩阵中长度为 6的短圈不会导致扩展矩阵的长度为 10短圈出现。 图 14为图 1 1所示的路径构成长度为 8的短圈的示意图。在部分构造的 基础矩阵 He中,从第 χθ行第 yO列元素对应边出发,存在如上图 1 1的路径, 若满足 y0=y4, 可知构成了图 14所示的长度为 8的短圈。
根据前面的结论可知, 若- mod(H(x0,y0)-H(x05yl)+H(xl,yl)-H(xl,y2)+H(x25y2)-H(x2,y3)+H(x3,y3)- H(x3,y4),z)≠0 (5) 则基础矩阵中长度为 8的短圈不会导致扩展矩阵的长度小于等于 10的 短圈出现。
经过上述分析, 从 {0,1,2,....,ζ-l }中选择一个合适的值添加到部分已经构 造出来的基础矩阵的第 χθ行第 yO列的解决方法如下:
( 1 1 )以部分已经构造的基础矩阵 i¾Tc为对象,在二分图中从第 χθ行第 y0列元素对应边出发, 遍历所有可能路径, 找到所有的短圈; 实际构造时, 可以先构造出具有准下三角结构的校验比特部分;
( 12)若 对应二分图的长度为 4的短圈出现, 选值的时候保证 (1)式 成立, 这样可以保证扩展矩阵的 girth>4; 若 对应二分图的长度为 6的短 圈出现, 选值的时候保证 (3)式成立, 则可以保证扩展矩阵的 girth>6; 若 ffc 对应二分图的长度为 4的短圈出现, 选值的时候保证 (2)式成立, 并且若 对应二分图的长度为 8的短圈出现,选值的时候同时保证 (5)式成立, 则可以 保证扩展矩阵的 girth>8。 这样, 就可以构造出 girth = 10的扩展矩阵, 如果 最后一步找不到值, 则可以构造出 girth=8 的扩展矩阵。 总之, 应使经过该 元素位置的最短短圈的长度尽量大。
( 13 )重复上述步骤(11 )和(12), 直到完成所有非零元素的选值后, 得到可以满足所有码长下 girth要求的基础矩阵。
在实际仿真过程中, 发现码长和 girth 密切相关, 当码长越长, 则 {0,1,2,...,ζ-l}的取值范围越大, 越容易找到合适的填充值, 越容易构造出高 girth的码; 否则相反。
下面给出本发明设计的 LDPC码的编码器和译码器的校验矩阵的实例 1 , 这种情况下, 基础矩阵不唯一, 要求设计出码率为 1/2,码长从 576按照 96为间隔连续变化到 2304的 LDPC码。 根据本发明所述的方法, 设计了一 个 12 X 24的原始基础矩阵, 此矩阵反映了将要构造的矩阵的码率及次数分 布, 它是一个半正则的校验矩阵, 对应信息比特的校验矩阵部分具有正则的 结构, 并且行重量为 4, 列重量也为 4; 对应校验比特的校验矩阵部分具有 双下三角结构, 目的是实现直接的线性时间编码。
1 0 0 1 0 0 0 I 0 1 0 0 i 1 0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 1 0 0 1 0 0 0 0 i 1 0 0 0 0 0 0 0 0 0
0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 i 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0 0 i 0 1 0 0 0 0 1 1 0 0 0 0 0 0
Orig- jiaJ as afrixF = 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0
0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 i 1 0 0 0 0
0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0
0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
1 0 0 0 0 0 1 0 i 1 0 0 0 0 0 0 0 0 0 0 0 i 1 0
1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 i 1
0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 根据码设计的需要, 本发明需要从 {0,1,2,...,ζ-l}中选择值填充到原始基 础校验矩阵中, 此外矩阵所有 0元素用 -1来填充。根据半正则矩阵的设计要 求, 此矩阵右边一半的所有 " 1 "要求用 "0"来代替, 而左边的矩阵则按照 本发明提供的方法来填充。
在这里, Z的取值是变化的, z的取值取决于需要设计的码长 N,z = N/Nb
3 -一一一 3一一31
Nb是基础矩阵的码长8T45 11111111, 这里为 24。 所以, 本发明认为基础矩阵中元素取值 应该可以随着码长而变化, 当码长增加, z的取值增大, 向原始基础矩阵填 充的值的选择范围将更大, 将更加容易构造出高 girth的 LDPC码, 从而保 证构造的 LDPC 码可以有效地克服短圈对码性能的影响。 例如: 在 IEEE802.16e标准中, 码率取 1/2, 基础矩阵是 12X 24的矩阵, 扩展因子 z 可以从 24连续取值到 96,则可以产生码长从 576按照 96为间隔连续变化到 2304的 LDPC码。
本实施例的基础矩阵不再唯一, 每个码长都 norlj有一个不同的基础矩阵, 但 是原始基础矩阵都是相同的。 所以, 对于特定码率变码长的低密度奇 f禹校验 码在不同码长时需要适当地调整基础矩阵的取值, 即不同码长的基础矩阵的 非负 1元素的的位置是相同的, 但在这些位置上的取值不一定相同。
若需要构造码长 Ν=576的 LDPC码, 此时 z=N/Nb=576/24=24, 则构造 基础矩阵如下, 此时可以保证构造出来的矩阵的 girth=8:
3 — 1 -1 11 -1 -1 -1 19 -1 16 -1 -1 0 0 -1 -1 -1 -1 -1 -1 -1一 1 -1 -1
4 -1 -1 — 1 15 17一 1 -1 14 -1 -1 — 1 -1 0 0 -1 — 1 -1 — 1一 1 -1 — 1 -1 -i
-1 11 - 1一 1 17 - 1 -1一 1 5 -1 13 -1 -1 -1 0 0 -1 -1 - 1 — 1 -1 — 1 -1一 1
-1 -1 16 -1 3 - 1 — 1 12 -1 — 1 17一 1 -1 -1 -1 0 0 -1 -1 -1 — 1 -1 -1 -1
-1 -1 -1 5 -1 T -1 -1一1 21 -1 11 -1 -1 -1 -I 0 0 - 1 -1 - 1一 1 -1一 1
-1 — 1 6一 1 — 1 -1 21 -1一1 9 -1 9 — 1 -1 -1 — 1 -1 0 0 -1 — 1一 1 -1 -1
-1 6 -1 -1 -1 15 8 16 -1 -1 -1 -1 0 -1 -1 -1一 1 - 1 0 0 -1一 1 -1一 1
-1 -1 18 -1 -1 0 -1一 1一1 -1 T 16 -1 -1 -1 -1 -1 -1 -1 0 0一 1一 1 -1
-1 14 20 23一 1 -1 -1 - 1 -1 -1 -1 -1 -1一 1 -1 -1一 1 - 1 — 1 0 0一 1 -1
4 -1 — 1 -1一 1 -1 3一 1 1 20 -1 - 1一 1 -1 -1一 1 -1 -1 -1 -1一 1 0 0 -i
6 19 -1 -1 -1 -1 -1 -1一 1 - 1 19 3一 1 -1 -1 - 1 -1一 1 -1 -1 -1 -1 0 0
-1一 1 -1 18 3 -1 16 10一 1 -1 -1 — 1 0 -1 -1一 1 -1 -1 -1 -1 -1一 1一 1 0 若需要构造码长 N=1152的 LDPC码, 此时 z=N/Nb=l 152/24=48, 则构 造基础矩阵如下, 此时可以保证构造出来的矩阵的 girth=8:
-1, 39
-1, -
-1, - τ,-
-1, 2
15, -:
ase atrixSS = -1, -:
12, -:
41, 32
-1, -1
-1, -1
-1, 30
Figure imgf000023_0001
若需要构造码长 N=2304的 LDPC码, 此时 z=N/Nb=2304/24=96, 则构 造基础矩阵如下, 此时可以保证构造出来的矩阵的 girth=10:
59 — 1 -1 39 — 1 — 1 -1 T2 -1 85 -1 -1 0 0 - 1 -1 -1 -1 -1 — 1 — 1一 1一 1 -1
25 -1 -1 -1 8 1T -1 -1 31 -1 — 1 -1一 1 0 0 -1 -1 -1 — 1 — 1一 1一 1一 1 -1
-1 51 -1 -1 11 -1 -1 -1 3 -1 48 — 1一 1一 1 0 0 — 1 -1 - 1一 1 -1一 1 -1一 1
-1 -1 53 -1 1T -1 -1 79 -I -1 29 -1 — 1一 1 -1 0 0 -1一 1一 1 — 1 -1 -1 -1
— 1 -1 -1 92 -1 TT -1 -1 — 1 21 -1 43 — 1一 1 -1 — 1 0 0 -1 - 1 -1一 1一 1 -1
— 1 -1 11 -1一 1 — 1 32 -1一 1 77一 1 55一 1一 1 -1 — 1 -1 0 0 -1 -1一 1 -1 -1 ase afjrjxE = -1 46 -1 - 1 -1 6 79 16 — 1 — 1 — 1 -1 0 -1 -1一 1 -1一 1 0 0 -1 -1 -1 -1
-1 -1 8T -1 - 1 73 — 1 -1 -1 -1 13 42 -1 -1 -1 -1 - 1 -1一 1 0 0 -1一 1 -1
- 1 87 6 38 - 1 -1一 1 -1 47 -1 — 1一 1一 1一 1 -1 — 1 -1 -1一 1 -1 0 0 - 1 -1
8 -1 — 1 -1 -1 — 1 T5 - 1 86 49 -1 -1一 1一 1 — 1 -1 -1 -1 -1 -1 -1 0 0 -1
93 13 -1 -1 -1 — 1 - 1 -1 -1 — 1 8 38 -1 -1 -1 — 1 -1一 1一 1 -1一 1一 1 0 0
-1 — 1 -1 45 32 -1 78 52 -1 -1 -1一 1 0 -1 -1 — 1 -1 -1 -1一 1 — 1 -1一 1 0 图 15为本发明实例 1构造出的 girth=8或 10的 R=l/2 LDPC码同 16e contribution构造出的 girth=6的 LDPC码的 BER比较图。
图 16为本发明实施例 1构造出的 girth=8或 10的 R=l/2 LDPC码同 16e contribution构造出的 girth=6的 LDPC码的 FER比较图。
根据图 15、 16所示, 在码长相同 (分别取 576、 1152、 2304)、 次数分布 相同、 奇偶校验矩阵对应校验矩阵部分相同的条件下, 仿真表明 BaseMatrxHl、BaseMatrixH2、BaseMatrixH3扩展得到 girth=8或者 10的 LDPC 码性能明显优于 802.16e contribution(Motorola IEEEC802.16e-04/373rl"LDPC coding OFDMA PHY" )所给出的由基础矩阵扩展得到的 girth=6的 LDPC码 的性能, 本发明构造的 LDPC码克服了 LDPC码的差错平底现象。
此处, 不同码长采用了不同的基础矩阵, 保证了不同码长条件下产生具 有 girth尽量大的 LDPC码。 但是, 由于码长有 19种, 所以编译码器需要存 储 19个基础矩阵, 这对编译码器存储容量提出了较高的要求, 在一定程度 上阻碍了消除短圈技术的应用。
下面将在一实施例中介绍本发明设计的基于单位阵及其循环移位矩阵 的 LDPC码的编码器和译码器, 该编码器和译码器总是由某个奇偶校验矩阵 H唯一确定。
首先给出一个 LDPC码的编码器, 如图 18所示, 包括存有各个码长对 应基础矩阵的存储模块,并配置了一个扩展模块和一个编码运算模块,其中: 扩展模块, 用于将当前码长的基础矩阵按扩展因子和基本置换矩阵进行 扩展, 得到 (M x z) x (Nx z)低密度奇偶校验码的奇偶校验矩阵。 基本置换矩阵 一般选用单位阵, 扩展时只需要并用 0矩阵代替基础矩阵中的 , 并用 一个循环右移 J'位后的 z X s单位阵代替其他非负系数 j就可以了。
编码运算模块, 用于基于扩展得到的低密度奇偶校验码的奇偶校验矩 阵, 完成从 N-M比特的源数据得到 N比特码字的编码运算。
需说明的是, 编码的时候, 可以直接用基础矩阵来完成编码, 可以不用 扩展模块。 基础矩阵和奇偶校验矩阵本质上是一个东西, 基础矩阵仅仅是奇 偶校验矩阵的压缩形式, 所以低密度奇偶校验码的编码从原理上是用奇偶校 验矩阵来实现的, 但是形式上可以直接用基础矩阵来实现编码, 例如一个 z X z的单位阵循环右移一位矩阵乘以一个 z X 1列向量运算,等价于将这个向 量循环左移一位(基础矩阵中元素就是移位的位数) , 所以某个奇偶校验矩 阵的运算总是可以等价地找到相应地基础矩阵的向量运算, 故基于奇偶校验 矩阵的的编码过程可以直接用基础矩阵来实现, 但原理, 方法和流程不变。
所以从实现上来将, 可以用基础矩阵就可以实现编译码, 不需要扩展这 个步骤或模块就可以实现编译码, 但是利用基础矩阵实现编码的方法是从奇 偶校验矩阵编码译码方法推论出来的, 本质原理还是利用了奇偶校验矩阵的 编译码原理。
编码运算可采用直接的方法或者 Richarson方法或者任何其它方法。 LDPC码是一种特殊的线性分组码。 通信中, 每发送一个分组长度为 N比特 的码字, 为了保证其具有一定的纠错能力, 需要有 M个校验比特,每个码字 都要求满足 = ^, 其中 H为二元域上 mxn维的奇偶校验矩阵。所有的运 算都是在二元域 GF(2)上进行的, 这里加和减是 "异或"运算, 而乘是 "与" 运算。
当 H满秩时, 将存在 2^^个码字, 本发明用一个码字表示长度为 N- M 的源数据块 (source block)。编码的问题就是确定一种从 N-M比特的源数据到 N比特码字的映射。
下面给出一种现有的系统分组码的直接编码方法:把 MXN的奇偶校验 矩阵 H划分为 MX (N-M)和 MXM的两块, 即 H二 [A|B], 本发明需要找出 H矩阵列向量的最大线性无关组 (M个列向量), 把它们通过列重排放到 B的 位置上, 这时 B是非奇异, 即是可逆的。 以同样方式把一个码字 X划分为 N-M个信息比特 s和 M个校验比特 c, 根据 HXx=0, 可得:
[Α \ Β] χ = 0 于是可以得到 AX s+B X c=0。 于是可得(^8' 8。
与码字划分对应, 校验矩阵也分为 A和 分别对应系统比特和校验比 特。 当 B采用特殊的矩阵结构, 如严格下三角结构 (半随机矩阵)、 双下三角 结构等, 则 具有非常简单的形式, 可以直接按照上面式子直接得到码字 中校验比特部分 c, 并且可以保证编码器具有线性复杂度。
下面再给出一种 Richarson线性时间编码方法: 当奇偶校验矩阵 H具有 准下三角结构, 如图 Richarson提出了一种可以实现线性时编码的, 设 H具 有如下形式:
A B T'
H =
C D 这里 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。 设编码后码字是 Λ^ ^,Α,Α) , 这里 S为编 码码字的系统比特部分, Α和 ^为码字的校验比特部分, 的长度为 g, p2 长度为 (m-g), 可以由下面式子求得:
Figure imgf000026_0001
根据上述的方法, 本发明设计的 LDPC码的编码器的功能就是实现稀疏 矩阵的乘法和加法运算。 对于基于单位阵以及其循环移位矩阵的 LDPC码, 稀疏矩阵的乘法运算可以由多个 z位的循环移位寄存器和多个 z位的加法器 构成, 而稀疏矩阵的加法运算就是由上述的多个 z位的加法器完成。 一旦基 础矩阵和扩展因子确定, 根据上述的直接方法或者 Richarson方法, 很容易 地用多个 z位的循环移位寄存器和多个 z位的加法器构造出一个 LDPC编码 器硬件电路。 总之, 本发明设计的 LDPC码的编码器可以由其奇偶校验矩阵 唯一确定
现在再给出一个 LDPC码的译码器, 如图 19所示, 也包括存有各个码 长对应的基础矩阵的存储模块和扩展模块(基于与编码器扩展模块同样的原 因, 该扩展模块在译码器中也是可选的) , 它还包括一个译码运算模块, 用 于基于扩展得到的低密度奇偶校验码的奇偶校验矩阵, 对输入的受干扰后的 码字比特进行纠错后输出。具体可采用信息传递 (message passing)算法作为译 码算法, 但本发明不局限于此。
信息传递 (message passing)算法是一种在二分图中信息在节点间被传递 的译码技术, 节点可以作为独立的处理器来工作, 可以收集输入信息和产生 输出信息。 关于时间和信息的内容没有全局的控制存在; 相反, 比特和校验 节点 (check node)服从一个普遍的本地准则 (local rale), 即一旦所有的输入信 息都得到接收就可以产生一个输出。 当图是无圈的, 信息传递算法在经过有 限次信息传递后可以收敛到一个后验对数似然比。 但是, 大部分好码在它们 的二分图中都存在圈。 当存在圈的码得到使用, 信息传递算法不再是准确, 而只是近似。 幸运的是, 即使当图有圈的存在, 信息传递算法也是工作的非 常好, 并且它的复杂度非常低。
下面给出一个对数域上正则或者非正则的信息传递算法。 定义下标集合 Mn = {m : H„,,„ = 1}和 Nm = {n: Hm,„ = 1}。定义 ,,在第 1次迭代中从校验节点 m传 递到变量节点 (variable node)n的信息。 并且让 指经过 1次迭代过后第 n个 比特的对数似然比预测值。
算法如下:
初始化 · 对于所有的 me {l,...,M}和 ne N„,, 令 00
• 对于所有的 ne{ l,...,N}, 令 Ιϋ/σ2 )/
迭代 for迭代次数 1=1,2,.. ,
• 校验节点更新
for me { 1 · , ·Μ}并且 ne N,„ ,
Figure imgf000028_0001
• 变量节点更新
for ne {1...N},
) =(2 „+∑ ,
这个算法可以用二分图中的信息传递过程来解释。
对于硬件设计的 LDPC码译码器, 首先需要一个二维的存储器网络, 它 用于存储二分图的每条边上的边信息 (extrinsic information),还需要保证信息 传递路由的有效性; 然后需要一个对应于 M个校验节点的 M个独立的校验 节点处理单元 (CNPU, Check Node Processing Unit), 它用于所有的校验节点 的计算和相邻的节点之间的信息传递; 还包括计算 N个变量节点的 N个独 立的变量节点处理单元 (VNPU, Variable Node Processing Unit), 它用于所有 的校验节点的求和计算和相邻的节点之间的信息传递。硬件的并行实现保证 了 LDPC码高速迭代译码。 总之, 一旦确定了 LDPC码的奇偶校验矩阵, 就 可以设计出一个 LDPC 的译码器。 当采用硬件实现 (如现场可编程门阵列 FPGA), 译码器并行度可以很高, 并且结构简单。
综上所述,奇偶校验矩阵可以唯一确定一个 LDPC码的编码器和译码器, 实际上 LDPC码的奇偶校验矩阵不仅仅决定了 LDPC码译码器的性能,而且 决定了 LDPC码的编码器和译码器的复杂度、 存储空间和处理延时。 所以, 寻找合适的 LDPC 码的奇偶校验矩阵结构是至关重要的, 本发明方法从 LDPC码的 girth角度来设计好的 LDPC码的编码器和译码器,在特定码长条 件下可以找到 girth尽量大,同样 girth下最短圈数目尽量少的奇偶校验矩阵。
如果对于每个不同的扩展因子, 无法保证基础矩阵唯一, 那么, 对于每 个不同的码长(或者扩展因子) , 所述的 LDPC码编译码器都需要存储一个 基础矩阵, 当码长很多时, 就要存储很多基础矩阵, 就对 LDPC码编译码器 的存储空间提出了很高要求。
基于上述问题, 本发明提出了又一实施例, 该实施例给出了用于不同码 长的,且可保证不同码长下的 girth要求的基础矩阵。本实施例中,低密度奇 偶校验的码长是可以变化的, 不同码长下的奇偶校验矩阵都由唯一不变的
Mb X Nb基础矩阵和可变扩展因子 Z通过扩展得到,并使得在设计的范围内任 何码长的扩展码都是高 girth的码(最短圈圈长尽量大),尽可能地消除了所 述低密度奇偶校验码的短圈。
设 z为出现在集合 [zmin,..., zmax]中的任何一个扩展因子,其中 zmin表示设 计的最短码长低密度奇偶校验码的扩展因子, ax表示设计的最长码长低密 度奇偶校验码的扩展因子, [Zmin,...,zmax]表示设计的所有码长低密度奇偶校验 码对应的扩展因子构成的集合, 所有的码长为 Nb X [zmin,...,Zmax]。 在不同的 girth值时, 所述奇偶校验矩阵具有不同的结构, 其关系如下:
使得所有码长的奇偶校验矩阵 girth都为 6的充分必要条件为:在所基于 的基础矩阵中, 对于 11 , ], 按码长对元素修正后 (具体修正方法 将在下文介绍) , 所有按逆时针(顺时针效果等同)方向构成了长度为 4的 短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0。
使得所有码长的奇偶校验矩阵 girth都为 8的充分必要条件为:在所基于 的基础矩阵中, 对于 W e [ n,L ,Zmax], 按码长对元素修正后, 所有按逆时针 方向构成了长度为 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。
使得所有码长的奇偶校验矩阵 girth都为 10的充分必要条件为: 在所基 于的基础矩阵中, 对于 Vz e [zmin,L , ax], 按码长对元素修正后, 所有按逆时 针构成了长度为 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的 LDPC码奇偶校验矩阵的前三步相同, 在构造出 girth尽量大、最短圈数目尽量少的原始基础矩阵后,在第四步对某 位置的元素选值填充时, 按下述步骤进行:
(21 ) 以部分已经构造的基础矩阵 为对象, 在二分图中从要填充元 素的对应边出发, 遍历所有可能路径, 找到所有的短圈;
(22) 为该元素选值时, 先选择使基础矩阵 girth≥ 10的值, 选不到再 选择使基础矩阵 girth > 8的值,还选不到时再选择使基础矩阵 girth > 6的值; 选值的具体方法如下:
对于该元素和与其共同构成所述短圈的元素的值,使基础矩阵 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;
对于该元素和与其共同构成所述短圈的元素的值, 使基础矩阵 girth > 6 时应满足:按逆时针方向构成了所述短圈中长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0;
这个方法和上文中步骤(12) 是一样的, 只是表述的方式不同。
(23 )选到一个合适的值后, 将该基础矩阵修正为对应于其它所有码长 的基础矩阵, 对修正后得到的每一个基础矩阵中该元素和与其共同构成所述 短圈的元素的值,再判断其是否满足该基础矩阵 girth≥ 8或 girth≥ 6 (当 girth ≥ 8选不到值时按 girth≥ 6来选) 的要求, 如果满足, 再选下一个位置, 否 则需返回步骤 (22) 重新选值;
(24)重复上述步骤(21 )〜(23 ) , 直到完成所有非零元素的选值后, 得到可以满足所有码长下 girth要求的基础矩阵。
上述步骤 (21 ) 、 (22) 、 (24)和上文中构造高 girth校验矩阵的步 骤(11 ) 、 ( 12) 、 ( 13 ) 是一样的, 但本实施例中增加了步骤(23 ) , 即 对初始的基础矩阵进行修正, 然后再判断修正后的基础矩阵是否满足 girth 要求, 如果不满足还要重新选值。 所述修正算法可以采用取模 (mod)、 取整 (scale+floor)或舍入 (scale+round)等。设 P j为基础矩阵第 i行第 j列的非负元 素, P w为修正以后的元素。
对于取模 (mod)方法, 有: P 三
Figure imgf000031_0001
对于取整 (scale+floor)方法: = [R. χ -]
ν ν 2304
对于舍入 (scale+round)方法: Ρν = Round(i^. χ―^) 其中, Ν为基础矩阵列数, 《为要生成奇偶校验矩阵的低密度奇偶校验 码的码长。 mod为取模操作, [ ]为下取整操作, Round为四舍五入操作。
根据已知的扩展因子 z对基础矩阵进行扩展的步骤都是一样的, 只是扩 展因子不同。
下面给出本实施例的一个实例, 其基础矩阵是唯一, 要求设计出码率为 2/3,码长从 576按照 96为间隔连续变化到 2304的 LDPC码。根据本发明所 述的方法,设计了一个 8 X 24的原始基础矩阵,它是一个半正则的校验矩阵, 对应信息比特的校验矩阵部分具有正则的结构, 行重量和列重量均为 4; 对 应校验比特的校验矩阵部分为双下三角结构, 以实现直接的线性时间编码。
根据上述矩阵结构和方法, 我们得到唯一的基础矩阵 BaseMatrixH4, 当 码长从 576到 2304连续变化的时候, 其 girth总是为 6。
90 55 -1 -1 15 —1 13 42 — i -1 51 -1 48 18 -1 —1 0 0 -1 -1 —1 -1 - 1 -1
-I 4 66 74 -1 — i -1 25 63 88 -1 -1 Ξ3 -1 64 —1 —1 0 0 -1 —1 —1 -1 - 1
TO -I -1 79 60 -1 42 -1 6 -i 一 i 5 -1 29 一 i 92 —1 一 i 0 0 -1 - i -1 - 1
28 T£ Τ5 —1 —1 92 -1 -1 15 - i 91 Z 81 -1 一 1 -1 一 1 —1 -1 0 0 —1 —1 一 1
BaseMatrixH4= -i 一 ί -1 67 TO 89 -1 8T -1 84 -1 6 90 -1 —1 43 0 -1 一 1 -1 0 0 —1 - 1
10 —1 41 -1 -i 4T 2T 65 - i -1 —1 67 -1 —1 14 30 -1 —1 一1 -1 —1 0 0 - 1
-1 15 —1 47 -1 44 40 -1 —1 ££ 72 -1 -1 92 18 一 1 —1 一 1 -1 -1 -1 -i 0 0
-1 —1 44 一 i 93 -1 -1 -1 35 9 54 -1 -1 84 47 62 -i - 1 -1 - i -1 -1 0 图 17 为本发明实例 2 构造出的 girth=6 的 R=2/3 LDPC码同 16e contribution构造出的 girth=4的 R=2/3 LDPC码的 FER比较图。
根据图 17所示, 在码率相同 (都是 2/3)、 码长相同 (分别取 576、 1152、 2304)、次数分布相同、奇偶校验矩阵对应校验矩阵部分相同的条件下, 仿真 表明由 BaseMatrxH4扩展得到 girth=6 的 LDPC码性能明显优于 802.16e contribution(Motorola IEEEC802.16e-04/373rl "LDPC coding OFDMA PHY" ) 所给出的由基础矩阵扩展得到的 girth=4 的 LDPC码的性能, 本发明构造的 LDPC码克服了 LDPC码的差错平底现象。
实际上, 在其它码长情况下, 本发明设计出的具有更大 girth的 LDPC 码也优于现有技术。 本发明不仅可以用于正则码, 也可以用于非正则码。 本 发明不依赖于具体的次数分布, 可以应用于任何形式的基于单位阵以及其循 环移位的 LDPC码, 具有普遍可适用性, 可消除此类 LDPC码的差错平底。
本实施例给出了具有特定码率、特定 girth (如 6、 8、 10)和码长可连续变 化的 LDPC码; 并且随着码长的变化可以保持基础矩阵唯一不变, 同传统方 法相比较, 在没有增加编译码器的存储容量和计算复杂度的条件, 解决了如 何消除特定码率、 连续可变码长的 LDPC码的短圈问题。 事实上, 如果基础 矩阵的最大元素足够大, 则基础矩阵的取值范围就足够大, 当要求的设计 girth不很高, 就可以找到一个唯一的基础矩阵, 使得在 z取任何可能值的时 候, 都能够满足上述特定 girth的不等式。
本发明提出了又一实施例, 该实施例提供了一种基于低密度奇偶校验码 的编码器和译码器。 其中, 该编码器和译码器在不同码长下采用的奇偶校验 矩阵是由唯一的基础矩阵扩展得到的。本实施例的编码器包括存储所述唯一 基础矩阵的存储模块, 并配置了一个修正模块、 一个扩展模块和一个编码运 算模块, 其中:
修正模块, 用于根据当前数据流的码长, 从存储模块读出基础矩阵并对 该矩阵中的非负值进行修正, 修正时采用构建该基础矩阵时所用的修正模 式。
扩展模块, 用于对修正处理后的基础矩阵按扩展因子和基本置换矩阵进 行扩展, 得到 (M X 0 X (N X z)低密度奇偶校验码的奇偶校验矩阵。
编码运算模块, 用于基于扩展得到的低密度奇偶校验码的奇偶校验矩 阵, 完成从 N-M比特的源数据得到 N比特码字的编码运算, 也可采用上述 直接方法或者 Richarson方法或者任何其它方法。 本实施例的译码器包括译码运算模块、 基础矩阵的存储模块、 修正模块 和扩展模块, 其中的存储模块、 修正模块和扩展模块和编码器相同。 ·译码运 算模块则用于基于扩展得到的低密度奇偶校验码的奇偶校验矩阵, 对输入的 受干扰后的码字比特进行纠错后输出, 也可采用信息传递 (message passing) 算法作为译码算法, 但本发明不局限于此。
目前, 人们对通信、 雷达、 遥控遥测等数字通信系统要求愈来愈高的纠 错编码能力, 以保证数字传输的可靠性, 而现有的数字通信系统往往不具有 自动纠正差错的能力,纠错编码能力低,既不能有效保证数字传输的可靠性, 更不能完成高速率、 突发性强的任务。
基于上述问题, 本发明又提出了一实施例, 该实施例提供了一种数字通 信系统, 包括基于单位阵及其循环移位矩阵的低密度奇偶校验码的编码器和 译码器, 其中, 该编码器和译码器是由一低密度奇偶校验码的奇偶校验矩阵 唯一确定的, 所述奇偶校验矩阵可以用两种方式获得, 一种是在不同码长甩 不同的基础矩阵扩展得到, 另一种是在不同码长下用唯一基础矩阵扩展得 到。 两种情况下的基础矩阵都可以用上文中介绍的方法得到, 使得扩展得到 的奇偶校验矩阵具有高的 girth值。 这里不再赘述。
综上所述, 本发明提出了可以克服差错平底的基于单位阵及其循环移位 矩阵的 LDPC码的编码器和译码器,该 LDPC码的编码器和译码器以奇偶校 验校验矩阵为基础,提出高 girth的奇偶校验矩阵的通用结构,提高了译码器 的性能。 首次提出根据码长改变基础矩阵, 保证了设计出的奇偶校验矩阵具 有尽量大的 girth的方法,并且构造基于单位阵及其循环移位矩阵的 LDPC码 的系统算法。可以在保证码长较长的情况下,构造出 girth更大的奇偶校验矩 阵,从而提高 LDPC码的性能,加速 BER曲线的下降速度,有效了消除 LDPC 码的差错平底现象, 使得 LDPC码达到最佳性能, 能够减小编码器和译码器 的复杂度和存储空间, 提高编码和译码性能, 实现较高的纠错技术。
当然, 本发明还可有其他多种实施例, 在不背离本发明精神及其实质的 情况下, 熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变 形, 但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。 工业实用性
本发明可以应用于数字通信系统中数据传输的纠错编码技术, 得到一种 在高信噪比时性能表现非常理想的 LDPC码。

Claims

权 利 要 求 书
1、 一种低密度奇偶校验码的基础矩阵的构造方法, 包括以下步骤: 步骤一, 确定要构造的低密度奇偶校验码基础矩阵的码率、 码长及校验 位个数;
步骤二, 确定所述基础矩阵的行重量向量和列重量向量;
步骤三,根据所述行重量和列重量向量,构造出 girth尽量大、同样 girth 下最短圈数尽量少的原始基础矩阵, 其中, girth为最短圈圈长;
步骤四, 基于构造出的所述原始基础矩阵, 从集合 {0,1,2,L ,ζ - 1}中选值 逐一放到该矩阵中所有 " 1 "的位置上, 构造出 girth尽量高的基础矩阵, z 为扩展因子。
2、 如权利要求 1所述的基础矩阵的构造方法,
其特征在于,所述步骤三是采用比特填充法构造出 girth尽量大、最短圈数目 尽量少的原始基础矩阵。
3、 如权利要求 1所述的基础矩阵的构造方法,
其特征在于, 所述步骤四构造基础矩阵时, 对应于校验比特的部分采用准下 三角结构。
4、 如权利要求 1或 3所述的基础矩阵的构造方法,
其特征在于, 所述步骤四分为以下步骤:
( a) 以部分已经构造的基础矩阵为对象, 在二分图中从要填充元素的 对应边出发, 遍历所有可能路径, 找到所有的短圈;
(b) 为该元素选值时, 先选择使基础矩阵 girth≥ 10的值, 选不到再选 择使基础矩阵 girth > 8的值, 还选不到时再选择使基础矩阵 girth > 6的值; 对于该元素和与其共同构成所述短圈的元素的值,使基础矩阵 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;
对于该元素和与其共同构成所述短圈的元素的值, 使基础矩阵 girth > 6 时应满足:按逆时针方向构成了所述短圈中长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0;
(c)重复上述步骤(a)和(b), 直到完成所有非零元素的选值后, 可 以得到 girth尽量高的基础矩阵。
5、 如权利要求 4所述的基础矩阵的构造方法,
其特征在于, 所述奇偶校验矩阵由唯一基础矩阵扩展得到, 所述步骤 (b) 中在集合{0,1,2,...,¾^-1}中选值, zmax为最长码长低密度奇偶校验码的扩展 因子表示, 且步骤 (b)和 (c)之间还包括步骤 (bl ) : 选到一个合适的值 后, 将该基础矩阵修正为对应于其它所有码长的基础矩阵, 对修正后得到的 每一个基础矩阵中该元素和与其共同构成所述短圈的元素的值, 再判断其是 否满足对该基础矩阵的 girth要求, 如果满足, 再选下一个位置, 否则返回 步骤 (b) 重新选值。
6、 如权利要求 5所述的基础矩阵的构造方法,
其特征在于, 所述对基础矩阵的修正是根据基础矩阵列数和要生成奇偶校验 矩阵的低密度奇偶校验码的码长, 釆用取模、 取整或舍入的方法来计算。
7、 如权利要求 5所述的基础矩阵的构造方法,
其特征在于, 对所述基础矩阵 girth要求是 girth≥ 8或 girth > 6。
8、 一种特定码率特定码长的低密度奇偶校验码的基础矩阵, 其特征在于, 该基础矩阵中的元素至少满足以下条件中的一个:
条件一,对于所有按逆时针方向构成了长度为 4的短圈的任意元素 i, j , k, 1, 总有 mod(i-j+k-l, z)≠0; 条件二,对于所有按逆时针方向构成了长度为 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;
条件三, 对于所有按逆时针构成了长度为 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。
其中, z为所述特定码长的低密度奇偶校验码的扩展因子。
9、 一种特定码率多个码长的低密度奇偶校验码的多个基础矩阵, 其特征在于, 这些基础矩阵中的元素都至少满足以下条件中的一个:
对于 Vze[ n,L ,zmaJ, 与 z对应的各个基础矩阵中, 所有按逆时针方向 构成了长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)0; 对于 Vze[ n,L , ax], 与 Z对应的各个基础矩阵中, 所有按逆时针方向 构成了长度为 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;
对于 Vze[zmin,L ,^J, 与 z对应的各个基础矩阵中, 所有按逆时针构成 了长度为 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。
其中, z为出现在集合 [ η,..., αχ]中的任何一个扩展因子, 各自对应一 个相应码长下的基础矩阵, zmin为最短码长的低密度奇偶校验码的扩展因子, zmax为最长码长的低密度奇偶校验码的扩展因子, 特定码率多个码长的低密 度奇偶校验码的多个基础矩阵的非负 1元素的位置总是相同的, 但在非负 1 元素的位置上取值是不同的。
10、 一种特定码率多个码长的低密度奇偶校验码的唯一基础矩阵, 不 同码长时需对这个唯一基础矩阵的元素进行修正,
其特征在于, 该唯一基础矩阵中的元素至少满足以下条件中的一个:
对于\ 2 £[ ]) ^皿], 按码长对元素修正后, 所有按逆时针方向构成了 长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0;
对于 W e [ n,L ,ZmaJ, 按码长对元素修正后, 所有按逆时针方向构成了 长度为 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;
对于 Vz e [Zmin,L,zmaJ, 按码长对元素修正后, 所有按逆时针构成了长度 为 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。
其中, z为出现在集合 [ „,..., zmax]中的任何一个扩展因子, zmin为最短 码长的低密度奇偶校验码的扩展因子, Zmax为最长码长的低密度奇偶校验码 的扩展因子。
11、 一种基于低密度奇偶校验码的编码器 /译码器的生成方法, 该编码 器 /译码器由一低密度奇偶校验码的奇偶校验矩阵唯一确定,
其特征在于, 所述奇偶校验矩阵由如下步骤构造- 步骤一, 确定要构造的低密度奇偶校验码基础矩阵的码率、 码长及校验 位个数;
步骤二, 确定所述基础矩阵的行重量向量和列重量向量;
步骤三,根据所述行重量向量和列重量向量, 构造出 girth尽量大、 同样 girth下最短圈数尽量少的原始基础矩阵, 其中, girth为最短圈圈长;
步骤四, 基于构造出的所述原始基础矩阵, 从集合 {0,l,2,L ,z -l}中选值 逐一放到该矩阵中所有 " 1 "的位置上, 构造出 girth尽量高的基础矩阵, Z 为扩展因子;
步骤五, 对所述基础矩阵进行扩展, 得到需要的低密度奇偶校验码的奇 偶校验矩阵。
12、 如权利要求 11所述的编码器 /译码器的生成方法,
其特征在于,所述步骤三是采用比特填充法构造出 girth尽量大、最短圈数目 尽量少的原始基础矩阵。
13、 如权利要求 11所述的编码器 /译码器的生成方法,
其特征在于, 所述步骤四构造基础矩阵时, 对应于校验比特的部分采用准下 三角结构。
14、 如权利要求 11或 13所述的编码器 /译码器的生成方法,
其特征在于, 所述步骤四分为以下步骤:
( a) 以部分已经构造的基础矩阵为对象, 在二分图中从要填充元素的 对应边出发, 遍历所有可能路径, 找到所有的短圈;
(b)为该元素选值时, 先选择使基础矩阵 girth≥ 10的值, 选不到再选 择使基础矩阵 girth > 8的值, 还选不到时再选择使基础矩阵 girth > 6的值; 对于该元素和与其共同构成所述短圈的元素的值,使基础矩阵 girth≥ 10 时应满足: 按逆时针构成了所述短圈中长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z/2)≠0; 按逆时针构成了所述短圈中长度为 6的短圈的 任意元素 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;
对于该元素和与其共同构成所述短圈的元素的值, 使基础矩阵 girth > 6 时应满足:按逆时针方向构成了所述短圈中长度为 4的短圈的任意元素 i, j , k, 1, 总有 mod(i-j+k-l, z)≠0;
(c)重复上述步骤(a)和(b) , 直到完成所有非零元素的选值后, 可 以得到 girth尽量高的基础矩阵。
15、 如权利要求 14所述的编码器 /译码器的生成方法,
其特征在于, 所述奇偶校验矩阵在不同的码长下由唯一基础矩阵扩展得到, 所述步骤(b) 中在集合{0,1 2, . . . ,2 -1}中选值, 2皿为最长码长低密度奇偶 校验码的扩展因子, 且步骤(b)和 (c)之间还包括步骤 (bl ) : 选到一个 合适的值后, 将该基础矩阵修正为对应于其它所有码长的基础矩阵, 对修正 后得到的每一个基础矩阵中该元素和与其共同构成所述短圈的元素的值, 再 判断其是否满足对该基础矩阵 girth要求, 如果满足, 再选下一个位置, 否 则返回步骤 (b) 重新选值; 所述步骤五中, 将该唯一的基础矩阵按实际码 长修正后, 再按对应的扩展因子扩展为所需的奇偶校验矩阵。
16、 如权利要求 15所述的编码器 /译码器的生成方法,
其特征在于, 所述对基础矩阵的修正是根据基础矩阵列数和要生成奇偶校验 矩阵的低密度奇偶校验码的码长, 采用取模、 取整或舍入的方法来计算。
17、 如权利要求 11所述的编码器 /译码器的生成方法,
其特征在于, 所述奇偶校验矩阵在不同的码长下由唯一基础矩阵扩展得到, 所述步骤四中选值时, 同时要求所有码长下的基础矩阵或修正得到的基础矩 阵都满足高 girth 的要求, 且所述步骤五中, 将该唯一的基础矩阵按实际码 长修正后, 再按对应的扩展因子扩展为所需的奇偶校验矩阵。
18、 如权利要求 11所述的编码器 /译码器的生成方法,
其特征在于, 所述奇偶校验矩阵在不同的码长下由不同的基础矩阵得到, 所 述步骤五中, 是将实际码长对应的基础矩阵按其扩展因子扩展为所需的奇偶 校验矩阵。
19、 如权利要求 15或 17所述的编码器 /译码器的生成方法,
其特征在于, 对所述基础矩阵 girth要求是 girth≥ 8或 girth≥ 6
20、 如权利要求 11所述的编码器 /译码器的生成方法,
其特征在于, 所述步骤五是采用单位阵及其循环移位矩阵作为基本置换矩 阵, 将所述基础矩阵扩展为奇偶校验矩阵。
21、 一种基于低密度奇偶校验码的编码器, 其特征在于, 包括存储模块和编码运算模块, 其中:
所述存储模块用于存放奇偶校验矩阵的基础矩阵;
所述编码运算模块用于完成从源数据得到码字的编码运算。
22、 如权利要求 21所述的编码器,
其特征在于, 还包括一个扩展模块, 用于将当前码长的基础矩阵按扩展因子 和基本置换矩阵进行扩展, 得到低密度奇偶校验码的奇偶校验矩阵, 而所述 编码运算模块是根据该扩展得到的奇偶校验矩阵完成编码运算。
23、 如权利要求 21或 22所述的编码器,
其特征在于, 所述存储模块中存储有各个码长对应的多个基础矩阵, 这些基 础矩阵中的元素至少满足以下条件中的一个:
条件一,对于所有按逆时针方向构成了长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0;
条件二,对于所有按逆时针方向构成了长度为 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;
条件三, 对于所有按逆时针构成了长度为 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。
其中, Z为各个码长低密度奇偶校验码所对应的扩展因子。
24、 如权利要求 21或 22所述的编码器,
其特征在于, 所述存储模块中存储有对应于各个码长的唯一基础矩阵, 且该 编码器还包括一个修正模块, 用于根据当前数据流的码长, 从存储模块读出 基础矩阵并对该矩阵中的非负值进行修正, 再交给后续模块处理, 修正时采 用构建该基础矩阵时所用的修正模式。
25、 如权利要求 24所述的编码器, 其特征在于, 所述唯一基础矩阵中的元素至少满足以下条件中的一个: 对于 Vz e [Zmin,L , ax], 按码长对元素修正后, 所有按逆时针方向构成了 长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0;
对于 W e [ n,L ,z皿], 按码长对元素修正后, 所有按逆时针方向构成了 长度为 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;
对于 Vz e [Zmin,L , aJ, 按码长对元素修正后, 所有按逆时针构成了长度 为 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。
其中, z为出现在集合 [zmin,..., zmax]中的任何一个扩展因子, zmin为最短 码长的低密度奇偶校验码的扩展因子, Zmax为最长码长的低密度奇偶校验码 的扩展因子。
26、 一种基于低密度奇偶校验码的译码器,
其特征在于, 包括存储模块和译码运算模块, 其中- 所述存储模块用于存放奇偶校验矩阵的基础矩阵;
所述译码运算模块用于对输入的受干扰后的码字比特进行纠错后输出。
27、 如权利要求 26所述的译码器,
其特征在于, 还包括一个扩展模块, 用于将当前码长的基础矩阵按扩展因子 和基本置换矩阵进行扩展, 得到低密度奇偶校验码的奇偶校验矩阵, 而所述 编码运算模块是根据该扩展得到的奇偶校验矩阵完成译码运算。
28、 如权利要求 26或 27所述的译码器,
其特征在于, 所述存储模块中存储有各个码长对应的多个基础矩阵, 这些基 础矩阵中的元素至少满足以下条件中的一个:
条件一,对于所有按逆时针方向构成了长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k-l, z)≠0; ' 条件二,对于所有按逆时针方向构成了长度为 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;
条件三, 对于所有按逆时针构成了长度为 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。
其中, z为各个码长低密度奇偶校验码所对应的扩展因子。
29、 如权利要求 23所述的译码器,
其特征在于, 所述存储模块中存储有对应于各个码长的唯一基础矩阵, 且该 编码器还包括一个修正模块, 用于根据当前数据流的码长, 从存储模块读出 基础矩阵并对该矩阵中的非负值进行修正, 再交给后续模块处理, 修正时采 用构建该基础矩阵时所用的修正模式。
30、 如权利要求 25所述的译码器,
其特征在于, 所述唯一基础矩阵中的元素至少满足以下条件中的一个:
对÷ £ [ 11,1^ ] , 按码长对元素修正后, 所有按逆时针方向构成了 长度为 4的短圈的任意元素 i, j, k, 1, 总有 mod(i-j+k4, z)≠0;
对于 W e [ in,L ,zmaJ, 按码长对元素修正后, 所有按逆时针方向构成了 长度为 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;
对于^^^ ,!^^ , 按码长对元素修正后, 所有按逆时针构成了长度 为 4 ^短圈的任意元素1, 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。 其中, z为出现在集合 [zmin,..., zmax]中的任何一个扩展因子, zmin为最短 码长的低密度奇偶校验码的扩展因子, Zmax为最长码长的低密度奇偶校验码 的扩展因子。
PCT/CN2005/000571 2004-11-04 2005-04-25 Matrice de base, coder/encodeur et methode de generation de codes de controle de parite faible densite Ceased WO2006047919A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/718,701 US8185797B2 (en) 2004-11-04 2005-04-25 Basic matrix, coder/encoder and generation method of the low density parity check codes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200410009746.5 2004-11-04
CNB2004100097465A CN100550655C (zh) 2004-11-04 2004-11-04 一种低密度奇偶校验码的编码器/译码器及其生成方法

Publications (1)

Publication Number Publication Date
WO2006047919A1 true WO2006047919A1 (fr) 2006-05-11

Family

ID=36318873

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2005/000571 Ceased WO2006047919A1 (fr) 2004-11-04 2005-04-25 Matrice de base, coder/encodeur et methode de generation de codes de controle de parite faible densite

Country Status (3)

Country Link
US (1) US8185797B2 (zh)
CN (1) CN100550655C (zh)
WO (1) WO2006047919A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109462406A (zh) * 2018-11-26 2019-03-12 重庆邮电大学 一种基于等差数列可快速编码的qc-ldpc码构造方法
CN111064475A (zh) * 2018-10-16 2020-04-24 华为技术有限公司 基于低密度奇偶校验码的译码方法及装置
CN114268326A (zh) * 2021-12-06 2022-04-01 西安空间无线电技术研究所 一种自适应qc-ldpc码的确定性构造方法
CN118487609A (zh) * 2024-03-12 2024-08-13 河南工程学院 一种基于位置函数的准循环ldpc码构造方法及系统

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100837730B1 (ko) * 2006-09-29 2008-06-13 한국전자통신연구원 사전에 지정한 패리티를 검사한 결과를 이용해 ldpc코드를 부호화하는 방법
CN101162965B (zh) * 2006-10-09 2011-10-05 华为技术有限公司 一种ldpc码的纠删译码方法及系统
CN100596029C (zh) 2006-10-20 2010-03-24 北京泰美世纪科技有限公司 Ldpc码校验矩阵构造方法及利用该方法的编码解码装置
CN1996764A (zh) * 2007-01-10 2007-07-11 北京航空航天大学 基于奇偶校验矩阵的ldpc码的译码方法及译码器
US8799742B1 (en) * 2007-07-30 2014-08-05 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US8127209B1 (en) 2007-07-30 2012-02-28 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
CN101106437B (zh) * 2007-08-08 2010-06-09 清华大学 一种有限几何低密度奇偶校验码的译码方法
CN100589327C (zh) * 2007-09-25 2010-02-10 华为技术有限公司 编码、解码方法及编码器、解码器
JP4487212B2 (ja) * 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム
JP4487213B2 (ja) * 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、並びにプログラム
CN101141133B (zh) * 2007-10-23 2011-09-14 北京邮电大学 一种结构化低密度校验码的编码方法
CN101425872B (zh) * 2007-10-30 2011-05-04 华为技术有限公司 功率控制方法和功率控制装置
CN101242188B (zh) * 2008-03-10 2011-05-11 清华大学 基于哈密尔顿图的低密度奇偶校验码的纠错编码方法
EP2134018A1 (en) * 2008-05-23 2009-12-16 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost and/ or corrupted data
CN102077471B (zh) * 2008-07-04 2014-03-12 三菱电机株式会社 校验矩阵生成装置、校验矩阵生成方法、校验矩阵生成程序、发送装置、接收装置以及通信系统
CN101662290B (zh) * 2008-08-26 2013-08-28 华为技术有限公司 生成准循环ldpc码及编码的方法与装置
US8266497B1 (en) * 2008-10-17 2012-09-11 Link—A—Media Devices Corporation Manufacturing testing for LDPC codes
CN101741396B (zh) * 2008-11-19 2013-03-13 华为技术有限公司 可变码长ldpc码编码或译码的方法与装置及编码器和译码器
JP4898858B2 (ja) 2009-03-02 2012-03-21 パナソニック株式会社 符号化器、復号化器及び符号化方法
US8386904B2 (en) * 2009-04-29 2013-02-26 Adeptence, Llc High speed low density parity check codes encoding and decoding
US8352846B2 (en) * 2009-05-07 2013-01-08 Adeptence, Llc Method an apparatus for low density parity check codes encoding and decoding
CN102025441B (zh) * 2009-09-11 2013-07-31 北京泰美世纪科技有限公司 Ldpc码校验矩阵的构造方法、ldpc码的编码方法和编码装置
US8914709B1 (en) * 2010-03-04 2014-12-16 Sk Hynix Memory Solutions Inc. Manufacturing testing for LDPC codes
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US9215457B2 (en) * 2012-05-18 2015-12-15 Mitsubishi Electric Research Laboratories, Inc. Method and system for communicating multimedia using reconfigurable rateless codes and decoding in-process status feedback
CN102723956B (zh) * 2012-05-25 2015-03-11 华中科技大学 一种ldpc码的生成方法
CN103873068A (zh) * 2012-12-14 2014-06-18 咏传电子科技(上海)有限公司 低密度奇偶检查的解码方法与电子装置
KR101662747B1 (ko) * 2013-02-13 2016-10-06 퀄컴 인코포레이티드 높은 병렬성, 낮은 에러 플로어, 및 간단한 인코딩 원리를 갖는 리프팅된 ldpc 코드들에 대한 설계
US9577675B1 (en) * 2013-12-03 2017-02-21 Marvell International Ltd. System and method for encoding user data with low-density parity-check codes with flexible redundant parity check matrix structures
CN104868925B (zh) * 2014-02-21 2019-01-22 中兴通讯股份有限公司 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
WO2015127426A1 (en) * 2014-02-24 2015-08-27 Qatar Foundation For Education, Science And Community Development Apparatus and method for secure communication on a compound channel
CN105811996B (zh) 2014-12-30 2019-12-06 华为技术有限公司 一种基于准循环ldpc的数据处理方法及系统
US9990250B2 (en) * 2015-05-29 2018-06-05 National Instruments Corporation Single-IC LDPC encoding and decoding implementations
US10367525B2 (en) * 2015-05-29 2019-07-30 National Instruments Corporation Incremental loop modification for LDPC encoding
CN107750435B (zh) * 2015-07-01 2019-06-11 华为技术有限公司 非正交传输的装置和方法
US10623142B2 (en) * 2015-10-30 2020-04-14 Huawei Technologies Canada Co., Ltd. Method for determining an encoding scheme and symbol mapping
US20170288697A1 (en) * 2016-03-31 2017-10-05 Silicon Motion Inc. Ldpc shuffle decoder with initialization circuit comprising ordered set memory
US10291261B2 (en) 2016-04-25 2019-05-14 SK Hynix Inc. Early selection decoding and automatic tuning
CN107370490B (zh) 2016-05-13 2023-07-14 中兴通讯股份有限公司 结构化ldpc的编码、译码方法及装置
US10318389B2 (en) * 2016-07-15 2019-06-11 Quantum Corporation Joint de-duplication-erasure coded distributed storage
CN107888198B (zh) 2016-09-30 2023-05-26 中兴通讯股份有限公司 准循环ldpc编译码方法、装置及ldpc编译码器
US10484010B2 (en) * 2016-12-20 2019-11-19 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication or broadcasting system
CN113595559B (zh) 2016-12-20 2024-07-30 三星电子株式会社 用于通信系统中的信道编码/解码的装置和方法
CN108282245B (zh) * 2017-01-05 2020-06-16 华为技术有限公司 一种ldpc编码译码的方法和装置
CN108347299B (zh) * 2017-01-25 2021-02-05 华为技术有限公司 数据的传输方法和装置
CN107302565A (zh) * 2017-05-26 2017-10-27 苏州思创源博电子科技有限公司 一种计算机数据智能无线传输方法
RU2740154C1 (ru) 2017-06-15 2021-01-12 Хуавей Текнолоджиз Ко., Лтд. Способ обработки информации и устройство связи
CN107294543B (zh) * 2017-06-19 2020-01-03 电子科技大学 一种用于生成rc-ldpc码校验矩阵的方法
CN118473422A (zh) * 2017-06-27 2024-08-09 华为技术有限公司 信息处理的方法、装置和通信设备
AU2018293680B2 (en) 2017-06-27 2021-07-29 Telefonaktiebolaget Lm Ericsson (Publ) Design of shift values for quasi-cyclic LDPC codes
CN107370492A (zh) * 2017-07-17 2017-11-21 南京迈芒智能科技有限公司 一种可消除短环的ldpc码的构造方法
EP3735746A1 (en) * 2018-01-23 2020-11-11 Huawei Technologies Co., Ltd. Channel code construction for decoder reuse
CN108449090B (zh) * 2018-01-25 2020-06-16 西安电子科技大学 一种可配置多码长、多码率的ldpc译码器
CN109617554B (zh) * 2018-11-22 2023-02-03 周口师范学院 一种基于任意阵列的q元准循环ldpc码构造方法
US11418216B2 (en) * 2020-03-30 2022-08-16 Smart IOPS, Inc. Method and system for generating parity check matrix for low-density parity check codes
US11502715B2 (en) * 2020-04-29 2022-11-15 Eagle Technology, Llc Radio frequency (RF) system including programmable processing circuit performing block coding computations and related methods
CN113055026A (zh) * 2021-03-16 2021-06-29 重庆邮电大学 一种适用于深空通信的基于原模图的ldpc码校验矩阵的构造方法
CN113162631B (zh) * 2021-04-27 2024-02-09 南京大学 一种环构ldpc码构造方法
CN113794477B (zh) * 2021-08-17 2025-03-18 武汉星伴通信设备有限责任公司 基于深度优先搜索的qc-ldpc码环数检测方法、计算机装置和存储介质
CN117060932A (zh) * 2023-08-10 2023-11-14 上海思朗科技有限公司 基于基本图的并行ldpc译码方法、装置、设备及介质
CN118157685B (zh) * 2024-02-06 2025-07-25 北京安信创业信息科技发展有限公司 Ldpc码的编码方法、装置、电子设备及存储介质
US20250278332A1 (en) * 2024-02-29 2025-09-04 SK Hynix Inc. Integrated circuit and memory system including ecc circuit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099976A2 (en) * 2001-06-06 2002-12-12 Seagate Technology Llc A method and coding apparatus using low density parity check codes for data storage or data transmission
WO2003056705A1 (en) * 2001-12-27 2003-07-10 Mitsubishi Denki Kabushiki Kaisha Ldpc code inspection matrix generation method
US20040153959A1 (en) * 2002-10-26 2004-08-05 Samsung Electronics Co., Ltd. LDPC decoding apparatus and method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099976A2 (en) * 2001-06-06 2002-12-12 Seagate Technology Llc A method and coding apparatus using low density parity check codes for data storage or data transmission
WO2003056705A1 (en) * 2001-12-27 2003-07-10 Mitsubishi Denki Kabushiki Kaisha Ldpc code inspection matrix generation method
US20040153959A1 (en) * 2002-10-26 2004-08-05 Samsung Electronics Co., Ltd. LDPC decoding apparatus and method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111064475A (zh) * 2018-10-16 2020-04-24 华为技术有限公司 基于低密度奇偶校验码的译码方法及装置
CN109462406A (zh) * 2018-11-26 2019-03-12 重庆邮电大学 一种基于等差数列可快速编码的qc-ldpc码构造方法
CN114268326A (zh) * 2021-12-06 2022-04-01 西安空间无线电技术研究所 一种自适应qc-ldpc码的确定性构造方法
CN118487609A (zh) * 2024-03-12 2024-08-13 河南工程学院 一种基于位置函数的准循环ldpc码构造方法及系统

Also Published As

Publication number Publication date
CN100550655C (zh) 2009-10-14
US8185797B2 (en) 2012-05-22
US20090106625A1 (en) 2009-04-23
CN1770640A (zh) 2006-05-10

Similar Documents

Publication Publication Date Title
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
CN100486150C (zh) 基于非正则低密度奇偶校验码的编译码器及其生成方法
Zhang et al. VLSI implementation-oriented (3, k)-regular low-density parity-check codes
CN102164022B (zh) 处理分块低密度奇偶校验码的系统和方法
CN101141133B (zh) 一种结构化低密度校验码的编码方法
US7458009B2 (en) Method for encoding low-density parity check code
Zhang et al. Joint (3, k)-regular LDPC code and decoder/encoder design
CN102265520B (zh) 编码方法、编码器以及解码器
AU2005239662B2 (en) Method and apparatus for generating a low-density parity check code
US9075738B2 (en) Efficient LDPC codes
KR101529360B1 (ko) 부호화기, 복호화기 및 부호화 방법
WO2015123979A1 (zh) 结构化ldpc的编码方法、译码方法、编码装置和译码装置
JP4901871B2 (ja) 検査行列生成方法、符号化方法、通信装置、通信システムおよび符号化器
CN112204888B (zh) 具有高效编码和良好误码平层特性的一类qc-ldpc码
CN108134610A (zh) 基于杨辉三角的特殊结构原模图qc-ldpc码的构造方法
CN100589357C (zh) 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法
WO2017193614A1 (zh) 结构化ldpc的编码、译码方法及装置
Bates et al. A low-cost serial decoder architecture for low-density parity-check convolutional codes
Li et al. Quasi-cyclic Concatenated Spatially Coupled LDPC Codes Based Joint Source-Channel Coding
CN101911503A (zh) Ldpc码的编码方法和编码设备
Wu et al. New construction of LDPC convolutional codes
Mitchell Mathematical approach to channel codes with a diagonal matrix structure
Cai et al. Encoding of certain LDPC codes with decoding resources

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

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: 11718701

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: 831/MUMNP/2007

Country of ref document: IN

122 Ep: pct application non-entry in european phase

Ref document number: 05743225

Country of ref document: EP

Kind code of ref document: A1