A method and system for constructing quasi-cyclic LDPC codes based on position function
The quasi-cyclic LDPC code is constructed based on the position function method, which simplifies the construction process, reduces the complexity, improves the performance, and achieves better iterative decoding effect.
Patent Information
- Application Number
- CN202410276201.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-12
- Publication Date
- 2025-09-26
- Estimated Expiration
- 2044-03-12
AI Technical Summary
In the prior art, the construction of quasi-cyclic LDPC codes is highly complex and difficult to simplify, which affects their hardware implementation and performance optimization.
A quasi-cyclic LDPC code is constructed using a position function-based method. By determining the expansion factor L and the position function f(i, j), a cyclic shift value matrix P is constructed, and the target cyclic shift value matrix P2 that meets the shortest cycle length and the smallest number is screened out to generate the check matrix H.
The construction complexity of the quasi-cyclic LDPC code is reduced, and the performance of the constructed quasi-cyclic LDPC code is better than that of the random LDPC code, with better iterative decoding performance and coding gain.
Smart Images

Figure CN118487609B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of wireless communication technology, and more particularly to a method and system for constructing a quasi-cyclic LDPC code based on a position function. Background Art
[0002] Today's advancements are helping to achieve the reliability required for high-speed digital communications and high-density storage systems, and the use of error control coding has become an integral part of these system designs. Shannon demonstrated that errors caused by information encoding and noisy channels (or memory) can be reduced to any desired level without sacrificing information transmission (or storage). Therefore, designing effective coding and decoding methods that achieve near-channel capacity for error control in noisy environments has been a hot topic in the field of channel coding.
[0003] Low-Density Parity-Check (LDPC) codes are a class of linear block codes invented by Gallager that can achieve near-capacity (or near-Shannon limit) performance in various communication and data storage channels. Many LDPC codes have been adopted as standard codes for various communication systems, such as wireless (4G, 5G, etc.), optical, satellite, space, Digital Video Broadcast (DVB), and network communications. The application of LDPC codes in high-density data storage systems can also be found in data storage products such as flash memory and hard disk drives. The main advantage of LDPC codes is that they can achieve near-capacity performance through iterative decoding algorithms based on belief propagation. In order to adapt to more application scenarios and systems, it is very important to construct LDPC codes with excellent performance.
[0004] Currently, the main methods for constructing LDPC codes include random construction and algebraic construction. Random construction methods primarily rely on computer-generated implementations based on certain patterns, such as the Successive Edge Growth (PEG) algorithm. Algebraic construction methods, on the other hand, primarily employ methods for constructing structured LDPC codes based on finite fields, finite geometry, and combinatorial design. The parity check matrix of randomly constructed LDPC codes follows no specific pattern, making them difficult to implement in hardware. However, algebraically constructed LDPC codes offer many advantages, such as a parity check matrix structure (cyclic or quasi-cyclic) that is easily implemented in hardware, superior structural properties, and improved iterative decoding performance.
[0005] Quasi-cyclic LDPC codes are an important class of structured LDPC codes. Both their parity check matrix and generator matrix can be implemented in hardware using linear shift registers, and they also feature relatively low-complexity encoding and decoding algorithms. Furthermore, quasi-cyclic LDPC codes exhibit excellent performance in both the waterfall and error floor regions. Therefore, the construction and optimization of quasi-cyclic LDPC codes have long been a research focus. Currently, quasi-cyclic LDPC codes are primarily constructed based on algebra, which requires extensive knowledge of mathematical tools such as finite geometry, finite fields, and combinatorial design theory. Furthermore, knowledge of matrix masking, hashing, and superposition techniques is also required. This increases the complexity of constructing quasi-cyclic LDPC codes and poses challenges to their application.
[0006] Therefore, how to simplify the complexity of constructing quasi-cyclic LDPC codes is a problem that those skilled in the art need to solve urgently. Summary of the Invention
[0007] In view of this, the present invention provides a method and system for constructing a quasi-cyclic LDPC code based on a position function.
[0008] In order to achieve the above object, the present invention adopts the following technical solutions:
[0009] On one hand, the present invention discloses a method for constructing a quasi-cyclic LDPC code based on a position function, comprising the following steps:
[0010] Step 1. Determine, based on code parameters of the pre-constructed quasi-cyclic LDPC code, preset row and column values of a cyclic shift value matrix of the pre-constructed quasi-cyclic LDPC code and an expansion factor L of the pre-constructed quasi-cyclic LDPC code;
[0011] Step 2. Define a position function f(i, j) based on the expansion factor L, where the range of the position function is {y|-1≤y≤L-1,y∈Z}; i, j are positive integers greater than or equal to 1 and less than or equal to the expansion factor L;
[0012] Step 3. Construct a first cyclic shift value matrix P with a size of L×L according to the expansion factor L and the position function f(i, j) = [p i,j ], where p i,j =f(i,j),1≤i≤L,1≤j≤L;
[0013] Step 4. Based on the preset column value ρ of the cyclic shift value matrix in step 1, select ρ columns from the first cyclic shift value matrix P to obtain a second cyclic shift value matrix P1 of size L×ρ, where the obtained second cyclic shift value matrix P1 satisfies the requirement that the length of the shortest cycle is maximized and the number of shortest cycles is minimized.
[0014] Step 5. Based on the preset row value γ of the cyclic shift value matrix in step 1, select γ rows from the second cyclic shift value matrix P1 to obtain a target cyclic shift value matrix P2 of size γ×ρ. The obtained target cyclic shift value matrix P2 satisfies the requirement that the length of the shortest cycle is maximized and the number of shortest cycles is minimized.
[0015] Step 6. Replace the -1 element in the target cyclic shift value matrix P2 with an all-zero matrix of size L×L, and replace the other elements except -1 with the corresponding first cyclic shift matrix P=[p i,j ], a check matrix H of size γL×ρL is obtained, and the quasi-cyclic LDPC code defined according to the check matrix H is the pre-constructed quasi-cyclic LDPC code.
[0016] Furthermore, in step 1, according to the code parameters of the pre-constructed quasi-cyclic LDPC code, the preset row and column values of the cyclic shift value matrix of the pre-constructed quasi-cyclic LDPC code are determined, which specifically includes the following steps:
[0017] Obtain the code parameters of the pre-constructed quasi-cyclic LDPC code, including the code length N and code rate R;
[0018] According to the conversion formula of code rate R Get the ratio relationship value of the preset row value γ and the preset column value ρ of the cyclic shift value matrix
[0019] When the preset row value γ is determined to be 3, the preset column value ρ of the cyclic shift value matrix is obtained.
[0020] Furthermore, in step 1, determining the expansion factor L of the pre-constructed quasi-cyclic LDPC code according to the code parameters of the pre-constructed quasi-cyclic LDPC code specifically includes the following steps:
[0021] Obtaining a code length of a pre-constructed quasi-cyclic LDPC code and a preset number of columns of a cyclic shift value matrix of the pre-constructed quasi-cyclic LDPC code;
[0022] The expansion factor of the pre-constructed quasi-cyclic LDPC code is obtained according to the relationship expression between the code length and the preset number of columns of the cyclic shift value matrix.
[0023] Furthermore, the relationship expression between the code length and the preset number of columns of the cyclic shift value matrix includes the following formula:
[0024] L = N / ρ;
[0025] Wherein, N represents the code length of the pre-constructed quasi-cyclic LDPC code, and ρ represents the preset number of columns of the cyclic shift value matrix.
[0026] Furthermore, in step 2, the position function f(i, j) defined according to the expansion factor L is an arbitrary function expression related to the position variables i, j and modulo the expansion factor L.
[0027] Furthermore, any function expression related to the position variables i, j and modulo the expansion factor L specifically includes the following expression:
[0028] f(i,j)=i+j(modL);
[0029] f(i,j)=3i+2j(modL);
[0030] f(i,j)=i 2 +2j(modL);
[0031] f(i,j)=i×j(modL);
[0032] f(i,j)=i 5 ×j 3 (modL);
[0033] f(i,j)=i 4 ×j+i×j 6 (modL);
[0034] Where mod represents the modulo operation.
[0035] Another aspect of the present invention discloses a quasi-cyclic LDPC code construction system based on a position function, comprising:
[0036] A module for obtaining preset row and column values of a cyclic shift value matrix and an expansion factor is used to determine preset row and column values of a cyclic shift value matrix of a pre-constructed quasi-cyclic LDPC code and an expansion factor L of the pre-constructed quasi-cyclic LDPC code according to code parameters of the pre-constructed quasi-cyclic LDPC code;
[0037] Position function definition module: used to define the position function f(i, j) according to the expansion factor L, wherein the value range of the position function is {y-1≤y≤L-1,y∈Z}; i, j are positive integers greater than or equal to 1 and less than or equal to the expansion factor L;
[0038] The first cyclic shift value matrix construction module is used to construct a first cyclic shift value matrix P with a size of L×L according to the expansion factor L and the position function f(i, j)=[p i,j ], where p i,j =f(i,j),1≤i≤L,1≤j≤L;
[0039] A second cyclic shift value matrix construction module is configured to select a column ρ from the first cyclic shift value matrix P according to a preset column value ρ of the cyclic shift value matrix to obtain a second cyclic shift value matrix P1 of size L×ρ, wherein the obtained second cyclic shift value matrix P1 satisfies the conditions that the length of the shortest cycle is maximized and the number of the shortest cycles is minimized;
[0040] A target cyclic shift value matrix construction module is configured to select γ rows from the second cyclic shift value matrix P1 according to a preset row value γ of the cyclic shift value matrix, and obtain a target cyclic shift value matrix P2 of size γ×ρ, wherein the obtained target cyclic shift value matrix P2 satisfies the requirement that the length of the shortest cycle is maximized and the number of the shortest cycles is minimized;
[0041] Check matrix generation module: used to replace the -1 element in the target cyclic shift value matrix P2 with an all-zero matrix of size L×L, and replace the other elements except -1 with the corresponding first cyclic shift matrix P=[p i,j ], generate a check matrix H of size γL×ρL.
[0042] Preferably, the module for obtaining preset row and column values of the cyclic shift value matrix and the expansion factor determines the preset row and column values of the cyclic shift value matrix of the pre-constructed quasi-cyclic LDPC code according to the code parameters of the pre-constructed quasi-cyclic LDPC code, specifically comprising the following steps:
[0043] Obtain the code parameters of the pre-constructed quasi-cyclic LDPC code, including the code length N and code rate R;
[0044] According to the conversion formula of code rate R Get the ratio relationship value of the preset row value γ and the preset column value ρ of the cyclic shift value matrix When the preset row value γ is determined to be 3, the preset column value ρ of the cyclic shift value matrix is obtained.
[0045] Preferably, the cyclic shift value matrix preset row and column values and the expansion factor acquisition module determine the expansion factor L of the pre-constructed quasi-cyclic LDPC code according to the code parameters of the pre-constructed quasi-cyclic LDPC code, specifically comprising the following steps:
[0046] Obtaining a code length of a pre-constructed quasi-cyclic LDPC code and a preset number of columns of a cyclic shift value matrix of the pre-constructed quasi-cyclic LDPC code;
[0047] The expansion factor of the pre-constructed quasi-cyclic LDPC code is obtained according to the relationship expression between the code length and the preset number of columns of the cyclic shift value matrix.
[0048] Preferably, in the position function definition module, the position function f(i, j) defined according to the expansion factor L is an arbitrary function expression related to the position variables i, j and modulo the expansion factor L.
[0049] Preferably, the arbitrary function expression related to the position variables i, j and modulo the expansion factor L specifically includes the following expression:
[0050] f(i,j)=i+j(modL);
[0051] f(i,j)=3i+2j(modL);
[0052] f(i,j)=i 2 +2j(modL);
[0053] f(i,j)=i×j(modL);
[0054] f(i,j)=i 5 ×j 3 (modL);
[0055] f(i,j)=i 4 ×j+i×j 6 (modL);
[0056] Where mod represents the modulo operation.
[0057] It can be seen from the above technical solution that, compared with the prior art, the present invention discloses a method and system for constructing a quasi-cyclic LDPC code based on a position function, which has the following beneficial effects:
[0058] The present invention can conveniently construct the required quasi-cyclic LDPC code based on the defined position function, greatly reducing the construction complexity of the quasi-cyclic LDPC code, and the constructed quasi-cyclic LDPC code has better performance than the existing random LDPC code. BRIEF DESCRIPTION OF THE DRAWINGS
[0059] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are merely embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.
[0060] Figure 1 This is a schematic diagram of the overall flow of the method for constructing quasi-cyclic LDPC codes based on position functions provided by the present invention.
[0061] Figure 2 A performance comparison chart of the (138,71) quasi-cyclic LDPC code constructed using the method provided in the embodiment of the present invention and the (138,69) LDPC code constructed based on the PEG algorithm.
[0062] Figure 3 A schematic diagram of the iterative decoding convergence speed performance of the (138,71) quasi-cyclic LDPC code constructed using the method provided in an embodiment of the present invention. DETAILED DESCRIPTION
[0063] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0064] For the convenience of description, relevant knowledge about quasi-cyclic LDPC codes is given below.
[0065] 1) A quasi-cyclic LDPC code is defined by the null space of a parity check matrix H of size M×N. The parity check matrix H is a γ×ρ array (M=γL, N=ρL) composed of a cyclic shift matrix (CPM) or an all-zero matrix of size L×L. That is,
[0066]
[0067] Among them, for 1≤i≤γ,1≤j≤ρ,p i,j ∈{y|-1≤y≤L-1,y∈Z}. When the element p in the H matrix i,j When it is equal to -1, I(p i,j )=I(-1) represents an all-zero matrix of size L×L; when p i,j ∈{y|0≤y≤L-1,y∈Z}, the cyclic shift matrix I(p i,j ) is achieved by cyclically shifting each row of the L×L identity matrix to the left (or right) by p i,j The matrix obtained is i,j When it is equal to 0, the cyclic shift matrix I(p i,j )=I(0) represents an L×L unit matrix. Here, p i,j It is called the cyclic shift matrix I(p i,j ) is the cyclic shift value, and L is the expansion factor.
[0068] 2) The check matrix H can be simplified to a matrix of size γ×ρ as follows:
[0069]
[0070] This matrix P is called the cyclic shift value matrix of the quasi-cyclic LDPC code. Conversely, by replacing the elements in matrix P with a P×P cyclic shift matrix or an all-zero matrix, we can obtain the parity check matrix H. Therefore, based on the expansion factor L, it can be seen that the parity check matrix H and the cyclic shift value matrix P are in a one-to-one correspondence.
[0071] The present invention constructs a quasi-cyclic LDPC code based on a position function. A cyclic shift value matrix of size γ×ρ is defined as follows:
[0072]
[0073] Among them, for 1≤i≤γ,1≤j≤ρ,p i,j is an integer greater than or equal to -1 and less than or equal to L-1. i,j ≥0, in the process of constructing quasi-cyclic LDPC code, the element p i,j is replaced by a cyclic shift matrix I(p i,j ); and when p i,j = -1, in the process of constructing quasi-cyclic LDPC code, the element p i,j is replaced by an L×L matrix of all zeros.
[0074] The method for constructing a quasi-cyclic LDPC code based on a position function of the present invention comprises the following steps:
[0075] (1) According to the code parameters of the quasi-cyclic LDPC code to be constructed, the expansion factor L and the cyclic shift value matrix size γ×ρ of the quasi-cyclic LDPC code are determined.
[0076] In step (1), the size of the cyclic shift value matrix and the expansion factor L are set according to the code parameters of the required quasi-cyclic LDPC code.
[0077] (2) Define a position function f(i, j) based on the expansion factor L. The range of the function f(i, j) is {y|-1≤y≤L-1,y∈Z}, where i and j are positive integers greater than or equal to 1 and less than or equal to L.
[0078] The position function f(i, j) defined in step (2) according to the expansion factor L is a function expression related to the position variables i, j and modulo the expansion factor L, which can be set arbitrarily. Including but not limited to the following expression:
[0079] f(i,j)=i+j(modL);
[0080] f(i,j)=3i+2j(modL);
[0081] f(i,j)=i 2 +2j(modL);
[0082] f(i,j)=i×j(modL);
[0083] f(i,j)=i 5 ×j 3 (modL);
[0084] f(i,j)=i 4 ×j+i×j 6 (modL);
[0085] Where mod represents the modulo operation.
[0086] (3) According to the expansion factor L in step (1) and the position function f(i, j) in step (2), a first cyclic shift value matrix P of size L×L is constructed = [p i,j ], where p i,j =f(i,j),1≤i≤L,1≤j≤L.
[0087] Circular shift value matrix P = [p i,j ] element p i,j It is defined based on the position function f(i,j).
[0088] (4) According to the ρ value in step (1) and the first cyclic shift value matrix P in step (3) = [p i,j ], filter ρ columns from the first cyclic shift value matrix P to obtain a second cyclic shift value matrix P1 of size L×ρ, so that the shortest loop length of the second cyclic shift value matrix P1 is maximized and the number is minimized.
[0089] (5) According to the γ value in step (1) and the second cyclic shift value matrix P1 in step (4), γ rows are selected from the second cyclic shift value matrix P1 to obtain a target cyclic shift value matrix P2, so that the shortest loop length of the target cyclic shift value matrix P2 with a size of γ×ρ is maximized and the number of loops is minimized.
[0090] (6) According to the target cyclic shift value matrix P2 in step (5), the -1 element in the target cyclic shift value matrix P2 is replaced by an all-zero matrix of size L×L, and the other elements are replaced by the corresponding first cyclic shift matrix P=[p i,j ](i.e. the cyclic shift matrix I(p i,j )), thus obtaining a check matrix H of size γL×ρL. The quasi-cyclic LDPC code defined by this check matrix is the desired quasi-cyclic LDPC code.
[0091] The present invention constructs a quasi-cyclic LDPC code and provides the following embodiment:
[0092] In Example 1, a (138, 71) quasi-cyclic LDPC code with a code length N of 138 and a code rate R of 71 / 138 is constructed.
[0093] Reference Figure 1 , the implementation steps of the present invention are as follows:
[0094] Step 1: Based on the code length N of the quasi-cyclic LDPC code to be constructed being 138 and the code rate R being 71 / 138, the size of the cyclic shift value matrix is set to 3×6, that is, γ = 3 and ρ = 6. Since the code length N is 138, the expansion factor L is equal to N / 6 = 23.
[0095] Step 2: The position function is defined as f(i,j)=i 5 ×j 3 (mod23), the range y of the function f(i,j) is {y|0≤y≤22,y∈Z}.
[0096] Step 3: Based on the expansion factor L=23 in step 1 and the position function f(i, j) in step 2, a cyclic shift value matrix P=[p i,j ], where p i,j =i 5 ×j 3 (mod23),1≤i≤23,1≤j≤23.
[0097] Step 4, according to ρ=6 in step 1 and the matrix P=[p i,j ], filter the 1st, 2nd, 5th, 9th, 10th, 18th and other 6 columns from the matrix P to obtain a cyclic shift value matrix P1 of size 23×6.
[0098] Step 5: Based on γ=3 in step 1 and the matrix P1 in step 4, the first, second, and third rows are selected from the matrix P1 to obtain a 3×6 cyclic shift value matrix P2, that is,
[0099]
[0100] In step 6, the elements of the matrix P2 obtained in step 5 are replaced with a 23×23 cyclic shift matrix to obtain a 69×138 check matrix H. The quasi-cyclic LDPC code defined by this check matrix is the desired (138,71) quasi-cyclic LDPC code.
[0101] The above embodiments are merely intended to better illustrate the method for constructing quasi-cyclic LDPC codes based on a position matrix. The method is not intended to be limiting. In practice, quasi-cyclic LDPC codes with varying code lengths and rates can be obtained based on the selected position function and the size of the cyclic shift value matrix. The present invention can conveniently construct a range of quasi-cyclic LDPC codes with varying code lengths and rates.
[0102] The effect of the present invention can be further illustrated by the following simulation:
[0103] 1. Simulation conditions
[0104] The modulation method is Binary Phase Shift Keying (BPSK), the channel is Additive White Gaussian Noise (AWGN) channel, and the decoding algorithm of LDPC code is Sum Product Algorithm (SPA).
[0105] 2. Simulation content
[0106] Simulation 1: The error rate performance of the (138,71) quasi-cyclic LDPC code constructed by the present invention and the (138,69) LDPC code with similar code length and code rate constructed based on the PEG algorithm are simulated and compared. The results are as follows: Figure 2 The maximum number of iterations of the sum-product decoding algorithm is 50.
[0107] Depend on Figure 2 It can be seen that when the bit error probability is equal to 10 -6 When , the (138,71) quasi-cyclic LDPC code constructed by the present invention has a coding gain of 0.35dB compared with the (138,69) LDPC code constructed based on the PEG algorithm.
[0108] Simulation 2: Comparison of the iterative decoding convergence speed of the (138,71) quasi-cyclic LDPC code constructed by the present invention. The results are as follows: Figure 3 As shown in Figure 2, the maximum number of iterations of the sum-product decoding algorithm are 1, 3, 5, 10, 20, and 50 respectively.
[0109] Depend on Figure 3 It can be seen that when the bit error probability is equal to 10 -7 When the number of iterations is 20 and 50, the coding gain of the (138,71) quasi-cyclic LDPC code constructed by the present invention only differs by 0.2 dB.
[0110] Example 2
[0111] The method for constructing a quasi-cyclic LDPC code based on a position function in the present invention can be implemented by a computer system, wherein the computer system comprises:
[0112] A module for obtaining preset row and column values of a cyclic shift value matrix and an expansion factor is used to determine preset row and column values of a cyclic shift value matrix of a pre-constructed quasi-cyclic LDPC code and an expansion factor L of the pre-constructed quasi-cyclic LDPC code according to code parameters of the pre-constructed quasi-cyclic LDPC code;
[0113] Position function definition module: used to define the position function f(i, j) according to the expansion factor L, wherein the value range of the position function is {y|-1≤y≤L-1,y∈Z}; i, j are positive integers greater than or equal to 1 and less than or equal to the expansion factor L;
[0114] The first cyclic shift value matrix construction module is used to construct a first cyclic shift value matrix P with a size of L×L according to the expansion factor L and the position function f(i, j)=[p i,j ], where p i,j =f(i,j),1≤i≤L,1≤j≤L;
[0115] A second cyclic shift value matrix construction module is configured to select a column ρ from the first cyclic shift value matrix P according to a preset column value ρ of the cyclic shift value matrix to obtain a second cyclic shift value matrix P1 of size L×ρ, wherein the obtained second cyclic shift value matrix P1 satisfies the conditions that the length of the shortest cycle is maximized and the number of the shortest cycles is minimized;
[0116] A target cyclic shift value matrix construction module is configured to select γ rows from the second cyclic shift value matrix P1 according to a preset row value γ of the cyclic shift value matrix, and obtain a target cyclic shift value matrix P2 of size γ×ρ, wherein the obtained target cyclic shift value matrix P2 satisfies the requirement that the length of the shortest cycle is maximized and the number of the shortest cycles is minimized;
[0117] Check matrix generation module: used to replace the -1 element in the target cyclic shift value matrix P2 with an all-zero matrix of size L×L, and replace the other elements except -1 with the corresponding first cyclic shift matrix P=[p i,j ], generate a check matrix H of size γL×ρL.
[0118] For more detailed data processing procedures of each functional module in the system, please refer to the description in the method.
[0119] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. Reference can be made to the common and similar parts between the various embodiments. For the devices disclosed in the embodiments, since they correspond to the methods disclosed in the embodiments, the description is relatively simple, and the relevant parts can be referred to the method description.
[0120] The above description of the disclosed embodiments is intended to enable one skilled in the art to implement or use the present invention. Various modifications to these embodiments will be readily apparent to one skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention is not limited to the embodiments shown herein but is intended to conform to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A method for constructing quasi-cyclic LDPC codes based on position function, characterized in that: The following steps are involved: Step 1. Determine, based on code parameters of the pre-constructed quasi-cyclic LDPC code, preset row and column values of the cyclic shift value matrix of the pre-constructed quasi-cyclic LDPC code and an expansion factor L of the pre-constructed quasi-cyclic LDPC code; specifically, including: Obtain the code parameters of the pre-constructed quasi-cyclic LDPC code, including the code length N and code rate R; According to the conversion formula of code rate R Get the ratio relationship value of the preset row value γ and the preset column value ρ of the cyclic shift value matrix When the preset row value γ is determined to be 3, the preset column value ρ of the cyclic shift value matrix is obtained; Obtaining a code length of a pre-constructed quasi-cyclic LDPC code and a preset number of columns of a cyclic shift value matrix of the pre-constructed quasi-cyclic LDPC code; Obtaining an expansion factor of a pre-constructed quasi-cyclic LDPC code according to a relationship expression L=N / ρ between the code length and the preset number of columns of the cyclic shift value matrix; Step 2. Define a position function f(i, j) based on the expansion factor L, where the range of the position function is {y|-1≤y≤L-1,y∈Z}; i, j are positive integers greater than or equal to 1 and less than or equal to the expansion factor L; the position function f(i, j) is an arbitrary function expression related to the position variables i, j and modulo the expansion factor L, specifically including the following expression: f(i,j)=i+j(modL); f(i,j)=3i+2j(modL); f(i,j)=i 2 +2j(modL); f(i,j)=i×j(modL); f(i,j)=i 5 ×j 3 (modL); f(i,j)=i 4 ×j+i×j 6 (modL); In the formula, mod represents the modulo operation; Step 3. Construct a first cyclic shift value matrix P with a size of L×L according to the expansion factor L and the position function f(i, j) = [p i,j ], where p i,j =f(i,j),1≤i≤L,1≤j≤L; Step 4. Based on the preset column value ρ of the cyclic shift value matrix in step 1, select ρ columns from the first cyclic shift value matrix P to obtain a second cyclic shift value matrix P1 of size L×ρ, where the obtained second cyclic shift value matrix P1 satisfies the requirement that the length of the shortest cycle is maximized and the number of shortest cycles is minimized. Step 5. Based on the preset row value γ of the cyclic shift value matrix in step 1, select γ rows from the second cyclic shift value matrix P1 to obtain a target cyclic shift value matrix P2 of size γ×ρ. The obtained target cyclic shift value matrix P2 satisfies the requirement that the length of the shortest cycle is maximized and the number of shortest cycles is minimized. Step 6. Replace the -1 element in the target cyclic shift value matrix P2 with an all-zero matrix of size L×L, and replace the other elements except -1 with the corresponding first cyclic shift matrix P=[p i,j ], a check matrix H of size γL×ρL is obtained, and the quasi-cyclic LDPC code defined according to the check matrix H is the pre-constructed quasi-cyclic LDPC code.
2. A quasi-cyclic LDPC code construction system based on position function, characterized in that: include: The module for obtaining the preset row and column values of the cyclic shift value matrix and the expansion factor is used to determine the preset row and column values of the cyclic shift value matrix of the pre-constructed quasi-cyclic LDPC code and the expansion factor L of the pre-constructed quasi-cyclic LDPC code according to the code parameters of the pre-constructed quasi-cyclic LDPC code. Specifically, the module includes: Obtain the code parameters of the pre-constructed quasi-cyclic LDPC code, including the code length N and code rate R; According to the conversion formula of code rate R Get the ratio relationship value of the preset row value γ and the preset column value ρ of the cyclic shift value matrix When the preset row value γ is determined to be 3, the preset column value ρ of the cyclic shift value matrix is obtained; Obtaining a code length of a pre-constructed quasi-cyclic LDPC code and a preset number of columns of a cyclic shift value matrix of the pre-constructed quasi-cyclic LDPC code; Obtaining an expansion factor of a pre-constructed quasi-cyclic LDPC code according to a relationship expression L=N / ρ between the code length and the preset number of columns of the cyclic shift value matrix; Position function definition module: used to define the position function f(i, j) according to the expansion factor L, wherein the value range of the position function is {y|-1≤y≤L-1,y∈Z}; i, j are positive integers greater than or equal to 1 and less than or equal to the expansion factor L; the position function f(i, j) is an arbitrary function expression related to the position variables i, j and modulo the expansion factor L, specifically including the following expression: f(i,j)=i+j(modL); f(i,j)=3i+2j(modL); f(i,j)=i 2 +2j(modL); f(i,j)=i×j(modL); f(i,j)=i 5 ×j 3 (modL); f(i,j)=i 4 ×j+i×j 6 (modL); In the formula, mod represents the modulo operation; The first cyclic shift value matrix construction module is used to construct a first cyclic shift value matrix P with a size of L×L according to the expansion factor L and the position function f(i, j)=[p i,j ], where p i,j =f(i,j),1≤i≤L,1≤j≤L; A second cyclic shift value matrix construction module is configured to select a column ρ from the first cyclic shift value matrix P according to a preset column value ρ of the cyclic shift value matrix to obtain a second cyclic shift value matrix P1 of size L×ρ, wherein the obtained second cyclic shift value matrix P1 satisfies the conditions that the length of the shortest cycle is maximized and the number of the shortest cycles is minimized; A target cyclic shift value matrix construction module is configured to select γ rows from the second cyclic shift value matrix P1 according to a preset row value γ of the cyclic shift value matrix, and obtain a target cyclic shift value matrix P2 of size γ×ρ, wherein the obtained target cyclic shift value matrix P2 satisfies the requirement that the length of the shortest cycle is maximized and the number of the shortest cycles is minimized; Check matrix generation module: used to replace the -1 element in the target cyclic shift value matrix P2 with an all-zero matrix of size L×L, and replace the other elements except -1 with the corresponding first cyclic shift matrix P=[p i,j ], generate a check matrix H of size γL×ρL.
Citation Information
Patent Citations
Any array-based Q-ary quasi-cyclic LDPC code construction method
CN109617554A
Short-loop-free QC-LDPC code rapid generation method
CN110739976A