[0043] In order to make the objectives, technical solutions and advantages of the present invention clearer, the specific steps, features and performances of the method of the present invention are further described in detail below with reference to the accompanying drawings and embodiments.
[0044] Referring to Fig. 3, the coding method of the structured low-density check code of the present invention is introduced, and the method comprises the following operation steps:
[0045] Step 1: Determine the basic matrix H that needs to be constructed according to the requirements of the code rate R and the code length N b the number of rows m b and the number of columns n b , and use the density evolution algorithm to determine the fundamental matrix H b The column weight distribution of The length M is a positive integer.
[0046] In the embodiment of the present invention, the selected code rate is 1/2, m b =16, n b = 32, and then use the density evolution algorithm to obtain the fundamental matrix H b The column weight distribution is: 0.25x 2 +0.25x 3 +0.125x 4 +0.0625x 8 +0.1875x 16; That is, the ratio of the number of columns with column weights of 2, 3, 4, 8, and 16 to the total number of columns is 0.25, 0.25, 0.125, 0.0625, and 0.1875, respectively.
[0047] Step 2, construct a base matrix H with b The corresponding original fundamental matrix H with the same structure b MASK : the original fundamental matrix H b MASK is also an m b line n b matrix of columns with column weights equal to the underlying matrix H b the same; the original fundamental matrix H b MASK is composed of m corresponding to the information bits b line k b The first submatrix A of the column and m corresponding to the parity bits b row m b The second submatrix B consists of columns, i.e. H b MASK = [ A | B ] .
[0048] In the embodiment of the present invention, the second sub-matrix B adopts a quasi-double-lower triangular structure, that is, the column weight of the first column of the sub-matrix is 3, and the rest is a double-lower triangle structure (see FIG. 5). Then, according to the structure of the second sub-matrix B and the original fundamental matrix H b MASK to construct the first sub-matrix A, and then combine the first sub-matrix A and the second sub-matrix B to form the original basic matrix H b MASK. At this time, the progressive edge addition algorithm or other effective means can be used to satisfy the original basis H b MASK The shortest loop period of is maximized, that is, the shortest loop period ≥ 4, and the number of short loops is minimized.
[0049] In addition, the second sub-matrix B can also be constructed in other structural forms. For example, the second submatrix B is constructed in the form of a strictly lower triangular structure or a lower triangular structure.
[0050] Should H b MASK =
[0051] 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
[0052] The original fundamental matrix H b MASK The elements in the value are all "0" or "1", in the original fundamental matrix H by b MASK Generate the fundamental matrix H b , "0" means no matrix operation, "1" means there is matrix operation.
[0053] (3) According to the original fundamental matrix H b MASK Generate the fundamental matrix H b : First fill "-1" to the original fundamental matrix H b MASK In the position of "0", then in the original fundamental matrix H b MASKThe offsets of different cyclic shift matrices are configured at the positions of "1", thereby obtaining the fundamental matrix H b.
[0054] The following describes how to configure and select the offset:
[0055] First, the fundamental matrix H b seen as consisting of m corresponding to the information bits b row (n b -m b ) column of the systematic bit submatrix H b system and m corresponding to the parity bits b row m b Check bit submatrix H for columns b parity consists of: H b = [ H b system | H b parity ] ;
[0056] Then, the first sub-matrix A and the second sub-matrix B are transformed respectively to obtain the system position sub-matrix H b system sum check bit submatrix H b parity; At this time, for the column element in the second sub-matrix B whose column weight is 3, the middle "1" position is filled with a positive integer, and the remaining "1" positions are filled with "0". In the first submatrix A, the offset value filled at the "1" position is calculated using the following quadratic term: h ij b = ( 1 × i 2 + 0 × j 2 + 11 × i × j + 13 × i + 50 × j + 50 ) mod ( z max ) where h ij b is the system seat matrix H b system The element in row i and column j in . The expansion factor z can take the maximum value z max =565, mod is the remainder operator. The H constructed by this method b The shortest loop period ≥ 6.
[0057] System seat matrix H b system =
[0058] 50 - 1 - 1 - 1 - 1 - 1 350 - 1 - 1 500 - 1 - 1 - 1 135 185 235 - 1 125 - 1 - 1 - 1 - 1 - 1 491 - 1 - 1 109 - 1 - 1 292 353 414 - 1 - 1 224 - 1 - 1 - 1 - 1 - 1 91 - 1 - 1 307 - 1 451 523 30 - 1 - 1 - 1 347 - 1 - 1 31 - 1 - 1 - 1 363 - 1 - 1 47 130 213 118 - 1 - 1 - 1 - 1 23 - 1 - 1 - 1 - 1 - 1 22 - 1 210 304 398 - 1 - 1 - 1 - 1 560 - 1 - 1 - 1 415 - 1 60 - 1 - 1 375 480 20 - 1 280 - 1 - 1 - 1 - 1 - 1 - 1 - 1 78 - 1 310 - 1 542 93 209 - 1 - 1 - 1 6 - 1 - 1 - 1 514 - 1 - 1 - 1 - 1 19 146 273 400 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 192 - 1 - 1 - 1 179 317 455 28 - 1 - 1 546 - 1 - 1 - 1 - 1 - 1 - 1 459 - 1 - 1 341 490 74 223 - 1 - 1 - 1 195 355 - 1 - 1 - 1 - 1 - 1 - 1 345 - 1 100 260 420 - 1 485 - 1 - 1 - 1 - 1 - 1 - 1 552 - 1 - 1 - 1 106 277 448 54 - 1 - 1 - 1 - 1 - 1 130 - 1 - 1 - 1 293 - 1 - 1 274 456 73 255 - 1 - 1 209 - 1 - 1 - 1 416 - 1 - 1 - 1 - 1 - 1 444 72 265 458 - 1 - 1 - 1 - 1 114 - 1 - 1 161 - 1 - 1 - 1 - 1 51 255 459 98 - 1 - 1 - 1 - 1 - 1 415 - 1 - 1 - 1 - 1 360 - 1 225 440 90 305
[0059] Check bit matrix H b parity =
[0060] 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 180 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0
[0061] (4) For the fundamental matrix H obtained in the above steps b carry out storage processing;
[0062] (5) For the fundamental matrix H b Perform correction processing to obtain the corrected and transformed fundamental matrix H b ′, so that the revised fundamental matrix H b The values of all elements in ' are less than the spreading factor z of the low-density check code; the modified and transformed fundamental matrix H b The element in row i and column j in ' (h ij b ) modified The calculation formula is: In the formula, is the operation symbol that is rounded down, and the expansion factor is an upward rounding operation symbol, K is the length of information bits, K b is the column weight in the first submatrix A corresponding to the information bits; for example, when K=5114,
[0063] The modified and transformed fundamental matrix H obtained at this time b ' is also composed of a systematic bit sub-matrix and a parity bit sub-matrix, where the systematic bit matrix is: H b ′ system =
[0064] 28 - 1 - 1 - 1 - 1 - 1 198 - 1 - 1 283 - 1 - 1 - 1 76 104 133 - 1 70 - 1 - 1 - 1 - 1 - 1 278 - 1 - 1 61 - 1 - 1 165 199 234 - 1 - 1 126 - 1 - 1 - 1 - 1 - 1 51 - 1 - 1 173 - 1 255 296 16 - 1 - 1 - 1 196 - 1 - 1 17 - 1 - 1 - 1 205 - 1 - 1 26 73 120 66 - 1 - 1 - 1 - 1 13 - 1 - 1 - 1 - 1 - 1 12 - 1 118 172 225 - 1 - 1 - 1 - 1 317 - 1 - 1 - 1 235 - 1 33 - 1 - 1 212 271 11 - 1 158 - 1 - 1 - 1 - 1 - 1 - 1 - 1 44 - 1 175 - 1 306 52 118 - 1 - 1 - 1 3 - 1 - 1 - 1 291 - 1 - 1 - 1 - 1 10 82 154 226 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 108 - 1 - 1 - 1 101 179 257 15 - 1 - 1 - 1 309 - 1 - 1 - 1 - 1 - 1 259 - 1 - 1 193 277 41 126 - 1 - 1 - 1 110 201 - 1 - 1 - 1 - 1 - 1 - 1 195 - 1 56 147 237 - 1 274 - 1 - 1 - 1 - 1 - 1 - 1 312 - 1 - 1 - 1 60 156 253 30 - 1 - 1 - 1 - 1 - 1 73 - 1 - 1 - 1 165 - 1 - 1 155 258 41 144 - 1 - 1 118 - 1 - 1 - 1 235 - 1 - 1 - 1 - 1 - 1 251 40 150 259 - 1 - 1 - 1 - 1 64 - 1 - 1 91 - 1 - 1 - 1 - 1 28 144 259 55 - 1 - 1 - 1 - 1 - 1 235 - 1 - 1 - 1 - 1 203 - 1 127 249 50 172
[0065] The check digit matrix is: H b ′ parity =
[0066] 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 101 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0
[0067] (6) For the corrected transformed m b line n b Columns of the fundamental matrix H b ' to expand to get the (m b ×z) line (n b ×z) column check matrix H;
[0068] (7) Using the check matrix H to encode the data to be encoded to obtain a structured low-density parity check code.
[0069] LDPC is a special linear block code. In the process of communication transmission, in order to ensure a certain error correction ability, each time a codeword with a packet length of N bits is sent, which needs to be entrained) to send M check bits, and each codeword is required to satisfy Hx T =0 T (x represents a codeword), where H is an M×N-dimensional parity check matrix on the binary field. All operations are performed on binary fields, where addition and subtraction are XOR operations, and multiplication is an AND operation.
[0070] The direct coding method of the system block code is to divide a codeword x into N-M information bits s and M check bits c, and correspondingly, divide the M×N check matrix H into M×N corresponding to the information bits. (N-M) matrix H 1 and the M×M matrix H corresponding to the parity bits 2 , that is, H=[H 1 |H 2 ]. According to H×x=0, we can get: [ H 1 | H 2 ] × [ s c ] = 0 .
[0071] So we can get H 1 ×s+H 2 ×c=0, further deduce c = H 2 - 1 H 1 s . When the matrix H 2 Using special matrix structures, such as strict lower triangular structure, double lower triangular structure, etc., then H 2 -1 It has a very simple form, the check bit part c in the codeword can be obtained directly according to the above calculation formula, and the encoder can be guaranteed to have linear complexity.
[0072] The operation steps for encoding using the extended check matrix H proposed by the method of the present invention are as follows:
[0073] Step 1: Perform elementary row transformation on the check matrix H, add all the rows in the check matrix H to the first row, and calculate the first block of the check code;
[0074] Step 2: Calculate other check digits by recursive method.
[0075] Referring to FIG. 6 , in order to identify the transmission performance of the low-density parity check code compiled by the method of the present invention, the AWGN channel model is used to simulate the transmission performance of the low-density parity check code constructed in the embodiment. The following simulation system parameter table lists the settings of various parameters of the embodiment used for testing and analyzing performance. The figure shows the difference between the frame error rate (FER) and the signal-to-noise ratio (Eb/No) of the low-density parity-check code with a code rate of 1/2 and the information bit length of 5114 and the turbo code. The performance comparison curve relationship between them.
[0076] parameter name
[0077] parameter name
[0078] The dotted line in Fig. 6 is the transmission performance curve of the Turbo code, and the solid line is the transmission performance curve of the low-density check code. It can be seen from FIG. 6 that the frame error rate performance of the low-density check code constructed by the present invention is good: when the information bit length is 5114, the frame error rate is 10 -2 When , the low-density check code has a gain of 0.3dB more than the Turbo code.