Method for reducing density of qc-ldpc code generation matrix
By optimizing the density of the QC-LDPC generator matrix, the problem of high generator matrix density in the prior art is solved, thereby reducing the complexity of the encoding circuit and saving resources.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- XIDIAN UNIV
- Filing Date
- 2023-01-19
- Publication Date
- 2026-06-23
AI Technical Summary
The existing QC-LDPC generator matrix has a high density, leaving room for optimization, which leads to high encoder implementation complexity.
The density of the QC-LDPC code generation matrix is reduced by solving the generation matrix in both full-rank and non-full-rank cases, using cyclic shifting and a system of equations over a finite field, thereby optimizing the density of the generation matrix.
While keeping the number of shift registers constant, the implementation complexity of the encoding circuit is significantly reduced, the number of AND gates and XOR gates used is reduced, and the resource consumption of the encoding circuit is reduced.
Smart Images

Figure CN116192157B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of channel coding technology, specifically relating to a method for reducing the density of the QC-LDPC code generation matrix. Background Technology
[0002] Low-density parity-check (LDPC) codes are a class of linear block codes with performance approaching the channel capacity limit. The research and implementation of LDPC codes represents another significant advancement in error-correcting coding following turbo codes. Given their excellent error-correcting performance, LDPC codes have attracted considerable attention from academic and IT industries worldwide, becoming one of the most prominent research topics in channel coding today, and showing promising application prospects in information storage and transmission.
[0003] Quasi-cyclic low-density parity-check codes (QC-LDPC), a subclass of LDPC codes, have become a popular research area due to their low-complexity encoding and decoding implementation. The parity-check matrix of a QC-LDPC code consists of multiple all-zero matrices and a cyclic square matrix. The cyclic square matrix exhibits row-to-row shifting, significantly reducing the resources required for storing the matrix and thus lowering the implementation complexity of the encoder / decoder. Therefore, QC-LDPC codes have been widely used as a channel coding scheme in various domestic and international communication standards. However, in encoder design based on QC-LDPC code generator matrices, the density of some existing QC-LDPC code generator matrices is not the lowest, indicating room for optimization. Summary of the Invention
[0004] The purpose of this invention is to provide a method for reducing the density of QC-LDPC code generation matrices, which solves the problem that some existing QC-LDPC generation matrices have high density and have room for optimization.
[0005] The technical solution adopted in this invention is a method for reducing the density of the QC-LDPC code generator matrix, which is implemented according to the following steps:
[0006] a) Solving for the generation matrix when the QC_LDPC code check matrix is full rank;
[0007] b) Solving the generator matrix and optimizing its density when the QC-LDPC code check matrix is not full rank;
[0008] c) The encoding process of QC_LDPC code.
[0009] The invention is further characterized in that,
[0010] The specific steps for generating the QC_LDPC code parity check matrix in the case of full rank are as follows:
[0011] Given a parity-check matrix H of a QC-LDPC code qc As follows, H qc Full rank and H qc The right side exists with H qc Square matrices of the same rank.
[0012]
[0013] Where A ij Let be a b×b cyclic matrix or a zero matrix, where 1≤i≤c, 1≤j≤t.
[0014] When the verification matrix is in the quasi-cyclic form shown above, the verification relation is as follows:
[0015] G qc ·H qc T =0 (2)
[0016] The quasi-cyclic form of the generating matrix G can be... qc This can be represented in the following system form:
[0017]
[0018] Where I is a b×b identity matrix, 0 is a b×b all-zero matrix, and G i,j Let be a b×b cyclic matrix, 1≤i≤tc, 1≤j≤c. t represents the total number of column blocks in the generated matrix, and c represents the total number of column blocks for the parity bits of the generated matrix.
[0019] Verification matrix H qc Full rank, i.e., H qc The rank is c×b, from H qc Matrix D is formed by selecting c columns of circular matrices from the right end:
[0020]
[0021] Where A i,j Let be a b×b cyclic matrix or a zero matrix, 1≤i≤c, t-c+1≤j≤t.
[0022] make
[0023]
[0024] Where M j Representation matrix H qc The j-th column, 1≤j≤tc.
[0025] Then H qc It can be represented as:
[0026] H qc=[M1 M2 … M t-c |D] (6)
[0027] Let g i For G qc The i-th row submatrix G i Let e = (100...0) represent a vector of length b with the first position set to 1 and the rest to 0. Define:
[0028] z i =(g i,1 g i,2 …g i,j …g i,c (7)
[0029] Where z i For G qc The i-th row submatrix G i The first line of the check digit section, g i,j Representation submatrix G i,j The first line of the expression, 1≤j≤c, then
[0030] g i =(0…0 e 0…0 z) i (8)
[0031] Where e = (100…0) is g i The i-th position;
[0032] From the verification relationship H qc ·G qc T =0 yields:
[0033]
[0034] roll out:
[0035] M i e T +Dz i T =0 (10)
[0036] And since D is full rank (invertible), then z i It can be represented as:
[0037] z i T =D -1 M i e T (11)
[0038] For z i Each subvector (g) in i,1 g i,2 …g i,j…g i,c ) are respectively circularly shifted b times to obtain (G i,1 G i,2 …G i,j …G i,c ), so as to obtain the i-th row block of G qc . After repeatedly operating t - c times, all row blocks of G qc are obtained, and thus the generating matrix G qc is obtained.
[0039] The solution of the generating matrix and density optimization in the case where the parity-check matrix of the QC-LDPC code is not full rank are specifically implemented according to the following steps:
[0040] Given a parity-check matrix H qc of a QC-LDPC code, which is composed of c × t circulant matrices of size b × b (c < t), as shown in Equation 1.
[0041] Assume that this H qc is not full rank or there is no square matrix with the same rank as H qc . In this case, the corresponding generating matrix G qc of H qc can be written in the following form: * qc
[0042]
[0043] G is a matrix of size ((t - l)b × tb) and has the following form:
[0044]
[0045] where I is the b × b identity matrix, 0 is the b × b all-zero matrix, and G i,j is a b × b circulant matrix, 1 ≤ i ≤ t - l, 1 ≤ j ≤ l;
[0046] Q is a matrix of size (lb - r) × tb and has the following form:
[0047]
[0048] where O i,k is the zero matrix, 1 ≤ i ≤ l, 1 ≤ k ≤ t - l, and Q i,j is a partially circulant matrix (each row is obtained by circularly shifting the previous row, but it is not a circulant matrix, that is, the number of rows of the sub-matrix Q i,j in different row positions may not be the same), 1 ≤ i, j ≤ l.
[0049] The number of rows of the i-th row block in Q is determined by D * (D * The number of linearly independent columns in the i-th column block is determined by the solution process described in detail below. Specifically, let D... * The number of linearly independent columns in the i-th column block is bd i If 1 ≤ i ≤ l, then the row number of the i-th row block in Q is d. i ,1≤i≤l.
[0050] Solving for the generator matrix and optimizing its density in the case of a non-full-rank QC-LDPC code parity check matrix, specifically in the generation matrix G. * qc The solution process for part G is as follows:
[0051] Step a: Set the verification matrix H qc Reorganization;
[0052] For H qc Find H qc Given a matrix D consisting of l columns, where c ≤ l ≤ t, form the matrix D from these columns. * This makes D * rank and H qc If the rank is the same, then these column blocks are from H qc Extract and place in H qc The rightmost part forms the recombined verification matrix H. * qc H * qc The rightmost column l forms matrix D * .
[0053]
[0054] Where A i,j Let be a b×b cyclic matrix or a zero matrix, 1≤i≤c,t-l+1≤j≤t.
[0055] H * qc It can be represented in the following form:
[0056] H qc * =[M1 M2 … M t-l |D * (16)
[0057] Step b: Multiply the transpose of the first row of the i-th row block of G with the parity matrix;
[0058] Let g i Let G be the i-th row block G. i The first line defines:
[0059] z i =(g i,1 gi,2 …g i,j …g i,l ) (17)
[0060] where z i represents the right part of g i and g i,j is the first row of G i,j , then
[0061] g i =(0 … 0 e 0 … 0 z i ) (18)
[0062] where e=(100…0) is at the i-th position of g i .
[0063] From the parity-check relationship H * qc ·G qc T = 0, we get:
[0064] [M1 M2 … M t-l |D * ·g i T = 0 (19)
[0065] It is deduced that:
[0066] M i e T +D * z i T = 0 (20)
[0067] Step c, solve the non-homogeneous system of equations over the finite field:
[0068] D * z i T = M i e T (21)
[0069] Since D * is not full rank, the rank of D * is R(D * ) = R([D * M i e T ) < lb, that is, z i T has multiple solutions.
[0070] For the augmented matrix [D * M i e T] Perform elementary row operations to obtain the simplest row form [D ** (M i e T ) * ], determine the free unknowns and set the value of all free unknowns to 0, and obtain the particular solution n of the system of equations.
[0071] (M) i e T ) * Setting it to 0 yields the homogeneous system of equations D. ** z i T =0, determine the free unknowns, set one of the free unknowns to 1 and the rest to 0, and obtain a solution vector η in the fundamental solution set of the homogeneous system of equations. i .
[0072] By repeatedly taking values for the free unknowns m times (with one free unknown set to 1 and the rest to 0, and each free variable set to 1 only once), the fundamental solution set η1,η2,…,η of the system of equations is obtained. m , where m = bl - r (i.e., the number of free unknowns).
[0073] Then z i T The solution set is z i T =k1η1+k2η2+…+k m η m +n, where k1,k2,...,k m ∈{0,1}, iterate through k1,k2,...,k m All the values are represented by the set Z. i In Z i The solution with the minimum Hamming weight is selected as z. i The result is that the optimal (minimum weight) z is obtained. i T .
[0074] For z i Each subvector (g) in i,1 g i,2 …g i,j …g i,l ) Perform cyclic shifts b times respectively to obtain (G i,1 G i,2 …G i,j …G i,l ), thus obtaining the i-th row block of G, and repeating the operation tl times to obtain the part of the generator matrix G.
[0075] Solving for the generator matrix and density optimization in the case of a non-full-rank QC-LDPC code parity check matrix. *qc The solution process of the Q part is as follows:
[0076] Q is a matrix of size (lb - r)×tb, as shown in Equation 14.
[0077] Step 1): Determine the number of rows in each row block of Q
[0078] By performing row Gaussian elimination on D * to obtain D * the number of linearly independent columns in the i-th column block of D is b - d i , 0 < i ≤ l, then the number of rows in the i-th row block of Q is d i , 0 < i ≤ l.
[0079] Step 2): Multiply the transpose of the first row of the i-th row block of Q with the parity-check matrix;
[0080] Let q i =(0, 0,..., 0, q i,1 , q i,2 ,..., q i,l ) be the first row of the i-th row block of Q (O i,1 ,..., O i,t-l , Q i,1 , Q i,2 ,..., Q i,l ), where w i =(q i,1 , q i,2 ,..., q i,l ) is the right part of q i .
[0081] From we get:
[0082]
[0083] Step 3): Solve the homogeneous system of equations over the finite field
[0084] Since D * is not full rank, the rank R(D * ) < lb, that is * there are multiple solutions.
[0085] Perform elementary row operations on D * to obtain the row reduced echelon form D ** , determine the free unknowns, let one of the free unknowns be 1 and the rest be 0, to obtain a solution vector η i in the fundamental solution system of this homogeneous system of equations.
[0086] By repeatedly taking values for the free unknowns m times (with one free unknown set to 1 and the rest to 0, and each free unknown set to 1 only once), the fundamental solution set η1,η2,…,η of the system of equations is obtained. m , where m = bl - r (i.e., the number of free unknowns).
[0087] but The solution set is Where k1, k2, ..., k m ∈{0,1}, iterate through k1,k2,...,k m All the values are taken to form a set W. i In W i The solution with the minimum Hamming weight is selected as the solution. Thus, the optimal (minimum weight) is obtained.
[0088] By w i =(q i,1 ,q i,2 ,…,q i,l ) to get q i =(0,0,…,0,q) i,1 ,q i,2 ,…,q i,l ), for q i Each subvector of length b is cyclically shifted by d. i The i-th row block of Q is obtained next (O) i,1 ,…,O i,t-l Q i,1 Q i,2 ,…,Q i,l Similarly, performing the above operation l times yields Q, thus obtaining the generation matrix G for the optimal weight in the non-full rank case. * qc .
[0089] The encoding process of QC_LDPC code is carried out in the following steps:
[0090] Step 1: Input the subsequence of length b in information sequence a into the shift register of the multiplication circuit of b*b cyclic matrix.
[0091] Step 2: Integrate the obtained check bit encoding result p with the information sequence to obtain the codeword v = (a, p).
[0092] The beneficial effect of this invention is that, when the QC-LDPC code parity check matrix is not full rank, it can reduce the density of the generator matrix, thereby reducing the implementation complexity of the encoding circuit. Using this scheme, the generator matrix density of the (155,64) code is reduced by approximately 35.185%; while keeping the number of shift registers constant, the number of AND gates used in the encoding circuit implementation is reduced by 100% (i.e., all AND gates are eliminated), and the number of XOR gates used is reduced by approximately 63.374%. Using this scheme, the generator matrix density of the (8176,7154) code in the CCSDS standard is reduced by approximately 3.408%; while keeping the number of shift registers constant, the number of AND gates used in the encoding circuit implementation is reduced by 100% (i.e., all AND gates are eliminated), and the number of XOR gates used is reduced by approximately 52.761%. Using this scheme, the generator matrix density of the (18480, 16801) code is reduced by approximately 1.040%. While maintaining the same number of shift registers, the number of AND gates used in the encoding circuit is reduced by 100% (i.e., all AND gates are eliminated), and the number of XOR gates is reduced by approximately 54.657%. In the corresponding effective encoding scheme, the number of resources used for encoding is related to the density of the QC-LDPC code's generator matrix. Therefore, reducing the generator matrix density reduces the implementation complexity of the encoding circuit. Attached Figure Description
[0093] Figure 1 This is a circuit diagram of the multiplication of a single b*b cyclic matrix in the method for reducing the density of the QC-LDPC code generation matrix in this invention.
[0094] Figure 2 This is a circuit diagram of the cyclic array encoding concatenation circuit in the method for reducing the density of the QC-LDPC code generation matrix in this invention;
[0095] Figure 3 This is a general framework diagram of the method for reducing the density of the QC-LDPC code generation matrix in this invention. Detailed Implementation
[0096] The present invention will now be described in detail with reference to the accompanying drawings and specific embodiments.
[0097] This invention provides a method for reducing the density of the QC-LDPC code generator matrix, combined with... Figure 3 The specific steps are as follows:
[0098] a) Solving for the generation matrix when the QC_LDPC code check matrix is full rank;
[0099] The specific steps for generating the QC_LDPC code parity check matrix in the case of full rank are as follows:
[0100] Given a parity-check matrix H of a QC-LDPC codeqc Consisting of c×t circulant matrices of size b×b (c < t), where H qc is full-rank and H qc has a matrix on its right side with the same rank as H qc See formula 1. qc See formula 1.
[0101] When the check matrix is in the quasi-cyclic form shown above, from the check relationship:
[0102] G qc ·H qc T = 0 (2)
[0103] the quasi-cyclic form of the generator matrix G qc can be expressed in systematic form, see formula 3.
[0104] The check matrix H qc is full-rank, that is, the rank of H qc is c×b. Select c column circulant matrices from the right end of H qc to form the matrix D:
[0105]
[0106] where A i,j is a b×b circulant matrix or an all-zero matrix, 1 ≤ i ≤ c, t - c + 1 ≤ j ≤ t.
[0107] Let
[0108]
[0109] where M j represents the j-th column of the matrix H qc , 1 ≤ j ≤ t - c.
[0110] Then H qc can be expressed as:
[0111] H qc = [M1 M2 … M t-c |D] (6)
[0112] Let g i be the first row of the i-th row submatrix G qc of G i . Let e = (1 0 0 … 0) represent the first-one vector of length b (the first position is 1 and the rest are 0), and define:
[0113] z i = (g i,1 g i,2 … g i,j … g i,c ) (7)
[0114] Where z i For G qc The i-th row submatrix G i The first line of the check digit section, g i,j Representation submatrix G i,j The first line of the expression, 1≤j≤c, then
[0115] g i =(0…0 e 0…0 z) i (8)
[0116] Where e = (100…0) is g i At position i, g i That is, the generating matrix G qc The first line of the i-th block;
[0117] From the verification relationship H qc ·G qc T =0 yields:
[0118] [M1 M2 … M t-c |D]·g i T =0 (9)
[0119] roll out:
[0120] M i e T +Dz i T =0 (10)
[0121] And since D is full rank (invertible), then z i It can be represented as:
[0122] z i T =D -1 M i e T (11)
[0123] For z i Each subvector (g) in i,1 g i,2 …g i,j …g i,c ) Perform cyclic shifts b times respectively to obtain (G i,1 G i,2 …G i,j …G i,c ), thus obtaining G qc The i-th row block is processed tc times to obtain G. qc The generation matrix G is obtained by taking all the rows and blocks. qc .
[0124] The solution of the generator matrix and density optimization in the case of a non-full-rank QC-LDPC code parity-check matrix is implemented according to the following steps:
[0125] Given a parity-check matrix H of a QC-LDPC code qc , which consists of c × t cyclic square matrices of size b × b (c < t), as shown in Equation 1.
[0126] Assume that this H qc is non-full-rank or there is no square matrix with the same rank as H qc . In this case, the corresponding generator matrix G of H qc can be written in the following form: * qc
[0127]
[0128] G is a matrix of size ((t - l)b × tb) and has the following form:
[0129]
[0130] where I is the b × b identity matrix, 0 is the b × b all-zero matrix, and G i,j is a b × b cyclic matrix, 1 ≤ i ≤ t - l, 1 ≤ j ≤ l;
[0131] Q is a matrix of size (lb - r) × tb and has the following form:
[0132]
[0133] where O i,k is the zero matrix, 1 ≤ i ≤ l, 1 ≤ k ≤ t - l, and Q i,j is a partially cyclic matrix (each row is obtained by cyclic shifting the previous row, but it is not a cyclic square matrix, that is, the number of rows of the sub-matrices Q i,j in different row positions may not be the same), 1 ≤ i, j ≤ l.
[0134] The number of rows of the i-th row block in Q is determined by the number of linearly independent columns in the i-th column block of D * (D * is introduced in detail in the following solution process). Specifically, let the number of linearly independent columns in the i-th column block of D * be b - d i , 1 ≤ i ≤ l, then the number of rows of the i-th row block in the corresponding Q is d i , 1 ≤ i ≤ l.
[0135] In the solution of the generator matrix G and density optimization in the case of a non-full-rank QC-LDPC code parity-check matrix* qc The solution process for part G is as follows:
[0136] Step a: Set the verification matrix H qc Reorganization
[0137] For H qc Find H qc Given a matrix D consisting of l columns, where c ≤ l ≤ t. * This makes D * rank and H qc If the rank is the same, then these column blocks are from H qc Extract and place in H qc The rightmost part forms the recombined verification matrix H. * qc H * qc The rightmost column l forms matrix D * .
[0138]
[0139] Where A i,j Let be a b×b cyclic matrix or a zero matrix, 1≤i≤c, t-l+1≤j≤t.
[0140] H * qc It can be represented in the following form:
[0141] H qc * =[M1 M2 … M t-l |D * (16)
[0142] Step b: Multiply the transpose of the first row of the i-th row block of G with the parity matrix;
[0143] Let g i Let G be the i-th row block G. i The first line defines:
[0144] z i =(g i,1 g i,2 …g i,j …g i,l (17)
[0145] Where z i G represents i The right side of g i,j For G i,j The first line, then
[0146] g i=(0 … 0 e 0 … 0 z i ) (18)
[0147] where \(e=(100…0)\) is at the \(i\)-th position of \(g\). i
[0148] From the parity-check relationship \(H\ * qc ·G qc T = 0, we get:
[0149] [M1 M2 … M t-l |D * ·g i T = 0 (19)
[0150] It is deduced that:
[0151] M i e T +D * z i T = 0 (20)
[0152] Step c: Solve the non-homogeneous system of equations over the finite field:
[0153] D * z i T = M i e T (21)
[0154] Since \(D\ * is not full rank, then the rank \(R(D\ * ) = R([D\ * M * e i )\lt lb, that is, \(z\ T has multiple solutions. i T Perform elementary row operations on the augmented matrix \([D\
[0155] M * e i to obtain the row echelon form \([D\ T (M ** e i ) T , determine the free unknowns and set the values of all free unknowns to 0 to obtain a particular solution \(n\) of the system of equations. *
[0156] After setting \((M\ i e T ) * to 0, the homogeneous system of equations \(D\) is obtained** z i T =0, determine the free unknowns, set one of the free unknowns to 1 and the rest to 0, and obtain a solution vector η in the fundamental solution set of the homogeneous system of equations. i .
[0157] By repeatedly taking values for the free unknowns m times (with one free unknown set to 1 and the rest to 0, and each free variable set to 1 only once), the fundamental solution set η1,η2,…,η of the system of equations is obtained. m , where m = bl - r (i.e., the number of free unknowns).
[0158] Then z i T The solution set is z i T =k1η1+k2η2+…+k m η m +n, where k1,k2,…,k m ∈{0,1}, traverse k1,k2,…,k m All the values are represented by the set Z. i In Z i The solution with the minimum Hamming weight is selected as z. i The result is that the optimal (minimum weight) z is obtained. i T .
[0159] For z i Each subvector (g) in i,1 g i,2 …g i,j …g i,c ) Perform cyclic shifts b times respectively to obtain (G i,1 G i,2 …G i,j …G i,c ), thus obtaining the i-th row block of G, and repeating the operation tl times to obtain the part of the generator matrix G.
[0160] Solving for the generator matrix and density optimization in the case of a non-full-rank QC-LDPC code parity check matrix. * qc The solution process for the Q part is as follows:
[0161] Q is a matrix of size (lb-r)×tb, see Formula 14.
[0162] Step 1) Determine the number of rows in each row block of Q.
[0163] Through D * Gaussian elimination yields D *The number of linearly independent columns in the $i$-th column block in [context not clear, assumed to be some matrix or structure] is $b - d$ i , where $0 \lt i \leq l$, the number of rows in the $i$-th row block of $Q$ is $d$ i , $0 \lt i \leq l$.
[0164] Step 2): Multiply the transpose of the first row of the $i$-th row block of $Q$ with the parity-check matrix;
[0165] Let $q$ i $=(0, 0, \ldots, 0, q$ i,1 , $q$ i,2 , $\ldots$, $q$ i,l ) be the first row of the $i$-th row block of $Q$ ($O$ i,1 , $\ldots$, $O$ i,t-l , $Q$ i,1 , $Q$ i,2 , $\ldots$, $Q$ i,l ), where $w$ i $=(q$ i,1 , $q$ i,2 , $\ldots$, $q$ i,l ) is the right part of $q$ i .
[0166] From we get:
[0167]
[0168] Step 3): Solve the homogeneous system of equations over the finite field
[0169] Since $D$ * is not full rank, the rank of $D$ * , $R(D$ * ) $\lt lb$, that is there are multiple solutions.
[0170] Perform elementary row operations on $D$ * to get its row echelon form $D$ ** , determine the free unknowns, let one of the free unknowns be 1 and the rest be 0, to obtain a solution vector $\eta$ i in the fundamental solution system of this homogeneous system of equations. i .
[0171] Repeatedly assign values to the free unknowns $m$ times (one of the free unknowns is 1 and the rest are 0, and each free unknown can only take 1 once) to obtain the fundamental solution system $\eta_1, \eta_2, \ldots, \eta$ m , where $m = bl - r$ (i.e., the number of free unknowns).
[0172] Then the solution set of is m where $k_1, k_2, \ldots, k$ m∈{0,1}, traverse k1,k2,…,k m All the values are taken to form a set W. i In W i The solution with the minimum Hamming weight is selected as the solution. Thus, the optimal (minimum weight) is obtained.
[0173] By w i =(q i,1 ,q i,2 ,…,q i,l ) to get q i =(0,0,…,0,q) i,1 ,q i,2 ,…,q i,l ), for q i Each subvector of length b is cyclically shifted by d. i The i-th row block of Q is obtained next (O) i,1 ,…,O i,t-l Q i,1 Q i,2 ,…,Q i,l Similarly, performing the above operation l times yields Q, thus obtaining the generation matrix G for the optimal weight in the non-full rank case. * qc .
[0174] The encoding process of QC_LDPC code is carried out in accordance with the following steps:
[0175] Step 1: Input the subsequence of length b in information sequence a into the shift register of the multiplication circuit of b*b cyclic matrix.
[0176] Step 2: Integrate the obtained check bit encoding result p with the information sequence to obtain the codeword v = (a, p).
[0177] The encoding circuit based on the implementation method of reducing the density of the QC-LDPC code generator matrix consists of multiple Figure 2 The cascaded cyclic array encoding circuit shown is composed of multiple cascaded circuits. Figure 1 The b*b cyclic matrix multiplication circuits are cascaded together, and the output codeword v = (a, p1, p2, ..., p j ,…p c ), where 1≤j≤c, a=(a1,a2,…,a i ,…,a t-c ) represents the information sequence, where 1≤i≤tc.
[0178] The specific structure of the b*b cyclic matrix multiplication circuit is as follows: it consists of a b-bit shift register and multiple XOR gates, where the b-bit shift register stores ai The information sequence 'a' is represented as a = (a1, a2, ..., a...). i ,…,a t-c ), where 1≤i≤tc. The position in the circuit connected to the XOR gate is the i-th row block in the generation matrix (i.e., connected to a). i The position where the first column of the submatrix in the corresponding row block is 1.
[0179] In a cascaded cyclic matrix encoding circuit, the number of cascaded b*b cyclic matrix multiplication circuits is the same as the number of row blocks in the generated matrix.
[0180] The implementation complexity of the QC-LDPC code encoding circuit in this invention is related to the density of the QC-LDPC code generator matrix. By reducing the density of the QC-LDPC code generator matrix, the implementation complexity of the encoding circuit can be reduced.
[0181] In reference [1], the encoding circuit connects the first column of each block of the generator matrix to a two-input AND gate, and then connects the output of each AND gate to an XOR gate to complete the encoding. However, the encoding circuit of this patent connects the position of 1 in the first column of each block of the generator matrix to a two-input XOR gate (the position of 0 in the first column is not processed), thereby saving all the AND gate overhead while keeping the number of shift registers unchanged, and making the resource usage of the XOR gate related to the density of the parity bit part of the generator matrix.
[0182] Compared with the encoding circuit in reference [1], the resource utilization of this encoding circuit is as follows:
[0183] 1) AND gate: No AND gate resource is required;
[0184] 2) XOR gate: The resource saving ratio of XOR gate is related to the density of the parity bit part of the generator matrix (if the density of the parity bit part of the generator matrix is 70%, then the XOR gate resource saving is 30%).
[0185] 3) Shift registers: Shift registers consume the same number of bits.
[0186] The resource usage of different encoding circuits is as follows:
[0187] Table 1 Resource Requirement for Different Encoding Circuits
[0188]
[0189] Where λ i,j G represents a submatrix G of the generating matrix G. i.j The Hamming weight of the first column (where i is the row block position and j is the column block position).
[0190] [1]Zongwang Li,Lei Chen,Lingqi Zeng,S.Lin and W.H.Fong,"Efficientencoding of quasi-cyclic low-density parity-check codes,"in IEEE Transactionson Communications,vol.54,no.1,pp.71-81,Jan.2006,doi:10.1109 / TCOMM.2005.861667。
Claims
1. A method for reducing the density of the QC-LDPC code generator matrix, characterized in that, The specific steps are as follows: a) Solving for the generation matrix when the QC_LDPC code check matrix is full rank; b) Solving for and density optimization of the generator matrix when the QC-LDPC code check matrix is not full rank; The specific steps are as follows: Given a QC-LDPC code parity check matrix ,Depend on The size is Composed of cyclic square matrices, Assuming this Unsatisfactory rank or There is no square matrix with the same rank as it; in this case... corresponding generator matrix Write it in the following form: (12) In the solution and density optimization of the generator matrix when the QC-LDPC code parity check matrix is not full rank, the generator matrix is... of Part of the solution process is as follows: Step a: Prepare the verification matrix Reorganization for ,turn up middle Column blocks, of which These columns are arranged into a matrix. , making rank and If the order is the same, then these column blocks are from... Extract and place in The rightmost part forms the recombined verification matrix. ,in The rightmost one Columns form a matrix ; (15) in for Circular matrices or matrices containing all zeros ; Will It can be represented in the following form: (16) Step b, use The Multiply the transpose of the first row of the row block with the parity check matrix; make for The line block The first line defines: (17) in express The right side, for The first line, then (18) in exist The In each position; Based on the verification relationship get: (19) roll out: (20) Step c: Solve the system of non-homogeneous equations over the finite field: (21) because If the rank is not full, then rank ,Right now There are multiple solutions; For augmented matrices Perform elementary row operations to obtain the simplest row form. By identifying the free unknowns and setting all free unknowns to 0, a particular solution to the system of equations can be obtained. ; Will Set as The homogeneous system of equations was then obtained. By identifying the free unknowns, setting one of the free unknowns to 1 and the rest to 0, we obtain a solution vector in the fundamental solution set of the homogeneous system of equations. ; Repeatedly perform free unknowns The fundamental solution set of the system of equations is obtained by taking the next value. The number of free unknowns ; but The solution set is ,in traversal All values are collected into a set. ,exist The solution with the minimum Hamming weight is selected as the solution. The result is that the optimal weight is minimized. ; right Each subvector in Perform cyclic shifts separately This time received Thus obtain The Line blocks, repeated calculations The generating matrix is obtained this time. part; In the solution and density optimization of the generator matrix when the QC-LDPC code parity check matrix is not full rank... of Part of the solution process is as follows: It is the size of The matrix is shown in Formula 14; Step 1) Confirm Number of rows in each row block Through the Gaussian elimination yields The Middle Number of linearly independent columns in each column block ,but The Middle The number of rows in each block is ; Step 2) Using The Multiply the transpose of the first row of the row block with the parity check matrix; set up for The line block The first line, of which for The right side; Depend on get: (22) Step 3) Solve the homogeneous system of equations over the finite field. because If the rank is not full, then rank ,Right now There are multiple solutions; right Perform elementary row operations to obtain the simplest row form. By identifying the free unknowns, setting one of the free unknowns to 1 and the rest to 0, we obtain a solution vector in the fundamental solution set of the homogeneous system of equations. ; Repeatedly perform free unknowns The fundamental solution set of the system of equations is obtained by taking the next value. The number of free unknowns ; but The solution set is ,in traversal All values are collected into a set. ,exist The solution with the minimum Hamming weight is selected as the solution. Thus, the optimal weight with the smallest possible weight is obtained. ; Depend on get ,right Each of the lengths is The subvectors are cyclically shifted respectively. This time received The line block Similarly, The above operations yielded Thus, the generation matrix of the optimal weight in the non-full rank case is obtained. ; c) The encoding process of QC_LDPC code.
2. The method for reducing the density of the QC-LDPC code generation matrix according to claim 1, characterized in that, The solution for the full-rank QC_LDPC code parity check matrix generation matrix is implemented according to the following steps: Given a QC-LDPC code parity check matrix Depend on The size is The circular square matrix is formed. ,in Full rank and The right side exists with Square matrices of the same rank; When the test matrix is as described above The size is When the cyclic matrix forms a quasi-cyclic form, the check relation is: (2) Generate the quasi-cyclic form of the generator matrix Represented in system form; Verification matrix Full rank, that is The rank is ,from Select on the right Column circular matrix forms a matrix : (4) in for Circular matrices or matrices containing all zeros ; make (5) in Representation matrix The List, ; but Represented as: (6) make for The row submatrix The first line, Indicates length is The first position of the vector is 1, and the rest are 0. Defined as: (7) in for The row submatrix The first line of the check digit section, To represent a submatrix The first line, ,but (8) in for The Location; Based on the verification relationship get: (9) roll out: (10) and If full rank is reversible, then Represented as: (11) right Each subvector in Perform cyclic shifts separately This time received Thus obtain The Line blocks, repeated calculations This time received The generator matrix is obtained by taking all the rows and blocks. .
3. The method for reducing the density of the QC-LDPC code generation matrix according to claim 2, characterized in that, The solution and density optimization of the generator matrix in the case of the non-full rank QC-LDPC code parity check matrix are implemented according to the following steps: It is the size of The matrix has the following form: (13) in for unit array, for A matrix of all zeros for Circular matrix, ; It is the size of The matrix has the following form: (14) in It is a matrix of all zeros. , , It is a partially circular matrix. ; The Middle The number of rows in each block is determined by The Middle The number of linearly independent columns in a column block determines the total number of columns. Specifically, let's assume... The Middle The number of linearly independent columns in each column block is Then the corresponding The Middle The number of rows in the line block is .
4. The method for reducing the density of the QC-LDPC code generation matrix according to claim 3, characterized in that, The encoding process of the QC_LDPC code is implemented according to the following steps: Step 1: Sequence of information medium length is The subsequences are respectively input into In the shift register of the multiplication circuit of the cyclic matrix; Step 2: Obtain the check bit encoding result Codewords are obtained by integrating with the information sequence. .