QC-LDPC code ring number detection method based on depth-first search, computer device and storage medium
By using the depth-first search algorithm in QC-LDPC code ring number detection, the complexity of ring number detection is reduced, the problem of high computational complexity in the prior art is solved, and efficient detection of large ring lengths is achieved.
Patent Information
- Application Number
- CN202110941659.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-17
- Publication Date
- 2025-03-18
- Estimated Expiration
- 2041-08-17
AI Technical Summary
In the prior art, the calculation complexity of the QC-LDPC code ring number detection is relatively high, especially when a given ring length increases, the calculation amount required to detect the ring number increases dramatically.
The depth-first search method is used to search the loop path through the depth-first search algorithm, and then call it during the calculation of the loop length, reducing the complexity in the search loop path process.
The overall complexity of the QC-LDPC code ring number detection method is reduced, making solving the corresponding ring number for large ring lengths more efficient.
Smart Images

Figure CN113794477B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication coding technology, and in particular to a QC-LDPC code ring number detection method based on depth-first search, a computer device and a storage medium. Background Art
[0002] QC-LDPC is the abbreviation of Quasi-Cyslic Low-Density Parity-Check Codes, which can be used in the fields of 5G communication coding. The check matrix is required in the encoding, checking and decoding of QC-LDPC codes. The decoding performance of QC-LDPC codes is usually evaluated by the length of the shortest cycle in the Tanner graph corresponding to the check matrix of the QC-LDPC code, that is, the ring length, where the ring length can also be called the girth. Since it is not possible to have no cycles or too many cycles when constructing QC-LDPC codes, and it is hoped that a larger ring length can be obtained, the number of cycles detected for a given ring length can well reflect the decoding performance of the QC-LDPC code. This process is equivalent to analyzing how many shortest cycles in the Tanner graph corresponding to the check matrix of the QC-LDPC code are equal to the given ring length for a given ring length.
[0003] In the current technology for detecting the number of loops of QC-LDPC codes, it is usually necessary to first analyze all loops of different shapes with a given loop length, and then detect the number of loops corresponding to different loop lengths in turn according to the loop shapes of the specified loop length in the check matrix. The computational complexity of the related technology is exponentially complex with the loop length as the index. When the given loop length increases, the amount of calculation required to detect the number of loops will increase dramatically. Summary of the invention
[0004] In view of at least one of the above technical problems, an object of the present invention is to provide a QC-LDPC code ring number detection method based on depth-first search, a computer device and a storage medium.
[0005] On the one hand, an embodiment of the present invention includes a QC-LDPC code ring number detection method based on depth-first search, including:
[0006] Determine the length of the ring to be tested;
[0007] Get the basis matrix corresponding to the QC-LDPC code;
[0008] According to the ring length to be detected, all sub-matrices corresponding to the base matrix are obtained;
[0009] The initial value of the number of rings is set to zero, and all the sub-matrices that meet the conditions are traversed to accumulate the number of rings; for each of the sub-matrices, when If the condition holds, the number of rings is added by 1, otherwise the number of rings is not added. and are all elements in the submatrix determined according to the loop path, and the loop path is obtained by searching according to the length of the loop to be detected using a depth-first search algorithm, 0≤i k ≤M-1,0≤j k ≤N-1, i k ≠i k+1 , j k ≠j k+1 , i0=i m , j0=j m , p is the expansion factor corresponding to the base matrix, the length of the ring to be detected and the length of the loop path are both 2m, and the size of the base matrix is M×N;
[0010] The final accumulated value of the number of rings is obtained as the number of rings corresponding to the ring length to be detected.
[0011] Furthermore, the order of each of the sub-matrices is m.
[0012] Furthermore, the QC-LDPC code ring number detection method based on depth-first search also includes:
[0013] A depth-first search algorithm is used to search according to the ring length to be detected to obtain a loop path corresponding to the ring length to be detected.
[0014] Further, the searching using a depth-first search algorithm according to the ring length to be detected to obtain a loop path corresponding to the ring length to be detected includes:
[0015] Acquire a ring domain matrix according to the ring length to be detected;
[0016] Obtaining the adjacency matrix corresponding to the ring domain matrix;
[0017] Use a depth-first search algorithm to traverse every two nodes in the adjacency matrix to search;
[0018] Get each loop path found.
[0019] Further, the obtaining of the ring area matrix according to the ring length to be detected includes:
[0020] Obtain a position number matrix; the size of the position number matrix is m×m, and the value of an element in the position number matrix is equal to the position number of the element;
[0021] Determine the ring domain matrix according to the position number matrix; the size of the ring domain matrix is m 2 ×m 2, the values of the elements on the main diagonal of the ring domain matrix are all 0; when the element with value a and the element with value b in the position number matrix are located in the same row or column in the position number matrix, the value of the element in the ath row and bth column of the ring domain matrix is 1, otherwise the value of the element in the ath row and bth column of the ring domain matrix is 0.
[0022] Furthermore, the use of a depth-first search algorithm to traverse every two nodes in the adjacency matrix to search and obtain each searched loop path includes:
[0023] Setting a plurality of sets; each set has a corresponding ring length, and the ring lengths of different sets are different;
[0024] When the set does not store the same loop path as the searched loop path, the searched loop path is stored in the set with the same loop length; otherwise, the searched loop path is deleted.
[0025] Furthermore, the QC-LDPC code ring number detection method based on depth-first search also includes:
[0026] The maximum search loop length of the depth-first search algorithm is set so that the depth-first search algorithm only searches for loop paths whose loop length is not greater than the maximum search loop length.
[0027] Furthermore, m=2, 3, 4, 5 or 6.
[0028] On the other hand, an embodiment of the present invention also includes a computer device, including a memory and a processor, wherein the memory is used to store at least one program, and the processor is used to load the at least one program to execute the QC-LDPC code ring number detection method based on depth-first search in the embodiment.
[0029] On the other hand, an embodiment of the present invention further includes a storage medium storing a program executable by a processor, wherein the program executable by the processor is used to execute the QC-LDPC code ring number detection method based on depth-first search in the embodiment when executed by the processor.
[0030] The beneficial effects of the present invention are as follows: the QC-LDPC code ring number detection method based on depth-first search in the embodiment obtains the loop path through a depth-first search algorithm, and then calls it in the process of calculating the ring length. The complexity of the loop path search process is reduced by the depth-first search algorithm, so that the complexity of the entire process of the QC-LDPC code ring number detection method based on depth-first search in the embodiment is reduced, which is conducive to solving the corresponding ring number for a large ring length. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 It is a flowchart of a QC-LDPC code ring number detection method based on depth-first search in an embodiment;
[0032] Figure 2 Schematic diagram of a loop path with a loop length of 4 in an embodiment;
[0033] Figure 3 Schematic diagram of a loop path with a loop length of 6 in an embodiment;
[0034] Figure 4 Schematic diagram of a loop path with a loop length of 8 in an embodiment;
[0035] Figure 5 Schematic diagram of nodes included in a loop path with a ring length of 10 in an embodiment;
[0036] Figure 6 Schematic diagram of a loop path with a loop length of 10 in an embodiment. DETAILED DESCRIPTION
[0037] In this embodiment, refer to Figure 1 , the QC-LDPC code ring number detection method based on depth-first search includes the following steps:
[0038] S1. Determine the length of the ring to be tested;
[0039] S2. Obtain the basis matrix corresponding to the QC-LDPC code;
[0040] S3. According to the length of the ring to be detected, obtain all sub-matrices corresponding to the base matrix;
[0041] S4. Set the initial value of the number of rings to zero, and traverse all sub-matrices to accumulate the number of rings;
[0042] S5. Obtain the final accumulated value of the number of rings as the number of rings corresponding to the ring length to be detected.
[0043] In step S1, the determined ring length to be detected is 2m, where the value of m can be 2, 3, 4, 5, 6 or other values, that is, steps S1-S5 can detect the number of rings corresponding to ring lengths of 4, 6, 8, 10, 12, etc., and steps S1-S5 can be executed once for each specific m. The principle is the same, so the specific value of m can be ignored when introducing the specific execution method of steps S1-S5.
[0044] In step S2, the check matrix H of the QC-LDPC code is usually an array composed of circulant permutation matrices (CEM) of the same size and all-zero matrices. If only the shift values of the circulant permutation matrix in the check matrix H are considered, a new matrix E can be obtained. This matrix E can be called a base matrix, or a permutation shift matrix.
[0045] Conversely, by replacing the elements in the base matrix E with a circulant permutation matrix (CEM) or an all-zero matrix of size p×p, the check matrix H of the quasi-cyclic LDPC code can be obtained. In this way, the circulant permutation matrix and the all-zero matrix obtained after replacement can be regarded as sub-matrices of the base matrix. The p here can be called the expansion factor, and the expansion factor p can not only be a prime number but also any positive integer. Therefore, from the perspective of constructing a QC-LDPC code, a QC-LDPC code can be obtained if a base matrix E and an expansion factor p are known. Then, constructing a good QC-LDPC code is actually to design a good permutation shift matrix E.
[0046] Specifically, the permutation shift matrix corresponding to the check matrix H of the QC-LDPC code, that is, the basis matrix E, can be expressed as
[0047]
[0048] The size of this basis matrix is M×N.
[0049] In step S3, according to the given length of the ring to be detected, 2m, all m-order sub-matrices corresponding to the base matrix E are obtained.
[0050] In step S4, a loop count variable can be established first, and then the initial value of the loop count is set to 0, and the traversal process of all m-order sub-matrices corresponding to the base matrix E can be started. Specifically, all m-order sub-matrices corresponding to the base matrix E can be sorted in any order, starting from the first m-order sub-matrix, using the depth first search algorithm (DFS), searching according to the length of the loop to be detected 2m, and obtaining the loop path corresponding to the length of the loop to be detected 2m. Determine the elements belonging to the loop path in the sub-matrix and Substituting these elements into the formula In this formula, 0≤i k ≤M-1,0≤j k ≤N-1, i k ≠i k+1 , j k ≠j k+1 , i0=i m , j0=j m The meaning of this formula is the cumulative sum of the elements that the loop path passes through in the submatrix, and then judge whether this cumulative sum can divide the expansion factor p, that is, judge Is it established? If This means that the cumulative sum can divide the expansion factor p. Then add 1 to the number of rings. If If it does not hold, it means that the accumulated sum cannot divide the expansion factor p, then the number of loops is not accumulated or is accumulated to 0; after completing the accumulation or non-accumulation operation corresponding to the first m-order submatrix, the second m-order submatrix is then used to determine the elements passed through in the second m-order submatrix using loop paths of the same or different shapes, and then substituted into the judgment Whether it is established, and according to the judgment result, the number of rings is accumulated by 1 or not. For the third, fourth and even the last m-order sub-matrix, the number of rings is accumulated by 1 or not according to the similar process.
[0051] When the ring number accumulation or non-accumulation process corresponding to the last m-order submatrix is completed, step S5 is executed to obtain the last accumulated ring number as the ring number corresponding to the ring length to be detected, that is, the detection result of the QC-LDPC code ring number detection method based on depth-first search executed in this embodiment.
[0052] Step S4 is based on the following theorem: for QC-LDPC codes, if there is a ring of length 2m in the base matrix, then there must be p rings of the same size in the corresponding check matrix H. And if the following sequence (p1, p2, ..., p i ,p 2m ), where any adjacent element p i and p i+1 (When p i =p 2m Time i+1 =p1) are in the same row or column, and non-adjacent elements are in different rows and columns. Then the sequence (p1, p2, ..., p i ,p 2m ) The necessary and sufficient condition for forming a ring of length 2m is Where 0≤i k ≤M-1,0≤j k ≤ N-1, i k ≠i k+1 , j k ≠j k+1 , i0=i m , j0=j m This formula is used to determine whether to add the number of rings. Specifically, p1, p2, ..., p i ,p 2m etc. represent the elements in the basis matrix E, Represents the elements in the circulant permutation matrix obtained by replacing the elements in the basis matrix E.
[0053] In this embodiment, the loop path used in step S4 may be acquired and stored in advance, and when steps S1 to S5 are executed, the process of calculating the loop path may not be executed, but the pre-acquired loop path may be directly called.
[0054] In this embodiment, the process of searching using a depth-first search algorithm according to the ring length to be detected to obtain the loop path corresponding to the ring length to be detected includes the following steps:
[0055] P1. Obtain the ring domain matrix according to the length of the ring to be detected;
[0056] P2. Get the adjacency matrix corresponding to the ring domain matrix;
[0057] P3. Use the depth-first search algorithm to traverse every two nodes in the adjacency matrix for searching;
[0058] P4. Get each loop path found.
[0059] Among them, steps P1-P4 can be executed before executing steps S1-S5, and steps P1-P4 can be executed only once. Each time steps S1-S5 are executed, the loop path obtained by executing steps P1-P4 can be called.
[0060] The principle of step P1 is that for a ring with a length of 2m, its ring shape will only appear in the ring with a length of m. 2 The ring shape is the connection relationship between each point in the ring domain matrix M, that is, the adjacency vector. Therefore, it is necessary to first determine the connection relationship between each connection node, that is, the connection relationship between one point and the other points, to confirm the ring shape.
[0061] Therefore, in order to obtain the ring area matrix M according to the length of the ring to be detected, a position number matrix of size m×m can be set first, and the value of the element in the position number matrix is equal to the position number of the element. For example, when the length of the ring to be detected is 2m=6, then m=3, then a position number matrix of size 3×3 is set, and the element in the first row and first column of the position number matrix is the first element, whose value is 1, the element in the first row and second column is the second element, whose value is 2, the element in the first row and third column is the third element, whose value is 3, the element in the second row and first column is the fourth element, whose value is 4, and so on. The resulting position number matrix is
[0062] Next, the ring domain matrix is determined according to the position number matrix. For the elements in the position number matrix, if the element with value a and the element with value b are in the same row or column in the position number matrix, the value of the element in the ath row and bth column in the ring domain matrix is 1; if the element with value a and the element with value b are neither in the same row nor in the same column, on the contrary, the value of the element in the ath row and bth column in the ring domain matrix is 0. The meaning of this rule is to regard each element in the position number matrix as a point. If two points belong to the same row or column in the position number matrix, then the two points are considered to be connected. With these two points as the row and column numbers, an element can be determined in the ring domain matrix, and this element in the ring domain matrix is set to 1; on the contrary, if the two points are neither in the same row nor in the same column in the position number matrix, then the two points are considered to be unconnected, and the corresponding element in the ring domain matrix is set to 0; it is considered that a point is always connected to itself, and the corresponding element in the ring domain matrix is set to 0.
[0063] For example, the position number matrix , element "1" is in the same row and column as itself, then the element in the first row and first column of the ring domain matrix is set to 0; element "1" and element "2" are in the same row, then the element in the first row and second column of the ring domain matrix is set to 1; element "1" and element "3" are in the same row, then the element in the first row and third column of the ring domain matrix is set to 1; element "1" and element "4" are in the same column, then the element in the first row and fourth column of the ring domain matrix is set to 1; element "1" and element "5" are neither in the same row nor in the same column, then the ring domain matrix The element in the 1st row and 5th column is set to 0; if element "1" and element "6" are neither in the same row nor in the same column, then the element in the 1st row and 6th column of the ring domain matrix is set to 0; if element "1" and element "7" are in the same column, then the element in the 1st row and 7th column of the ring domain matrix is set to 1; if element "1" and element "8" are neither in the same row nor in the same column, then the element in the 1st row and 8th column of the ring domain matrix is set to 0; if element "1" and element "9" are neither in the same row nor in the same column, then the element in the 1st row and 9th column of the ring domain matrix is set to 0. Through the above process, the first row of the ring domain matrix can be obtained as [0,1,1,1,0,0,1,0,0].
[0064] According to the above rules, we can get the position number matrix as When , the ring field matrix is:
[0065]
[0066] Since the size of the position number matrix is m×m, that is, the position number matrix includes m 2elements, so the obtained ring field matrix includes m 2 Line and m 2 Columns, that is, the size of the ring field matrix is m 2 ×m 2 Since a point in the position number matrix has the same position number as itself, the number of rows and columns of the corresponding elements in the ring domain matrix are also the same, so the elements on the main diagonal of the ring domain matrix are 0.
[0067] According to the formula As can be seen from the definition of a ring, there can only be two points in the same row or column in the ring domain matrix M. Therefore, for rings that are closed at both ends, it is also necessary to eliminate rings that do not meet the above requirements.
[0068] In step P2, the adjacency matrix L corresponding to the ring domain matrix M is obtained.
[0069] In step P3, a depth-first search algorithm is used to traverse every two nodes in the adjacency matrix L for searching.
[0070] The depth-first search algorithm generates a topological sorted table corresponding to the target graph. In simple terms, the process of the depth-first search algorithm is to go deep into each possible branch path until it cannot go deeper, and each node can only be visited once.
[0071] For the adjacency matrix L corresponding to the LDPC code, the DFS algorithm can be used to find the loop path between two nodes. In the case where there are multiple paths between two nodes, the DFS algorithm can be used to process them separately according to the path to obtain the loop length of each path. After traversing all the points, the loop lengths of multiple paths are obtained after processing them in sequence. To avoid the search from falling into a loop, the depth-first search algorithm can be set so that the depth-first search algorithm can search according to the following rules: (1) No longer search for nodes that have been searched; (2) Initially set the maximum search loop length for this search, and no longer detect loops that are larger than the maximum search loop length.
[0072] Since all edges need to be traversed, the resulting loops will be repeated. Duplicate loops need to be deleted. The strategy is: set multiple sets; each set has a corresponding loop length, and the loop lengths of different sets are different; when there is no loop path stored in the set that is the same as the searched loop path, the searched loop path is stored in the set with the same loop length, otherwise the searched loop path is deleted. Specifically, the following steps can be performed:
[0073] 1. For the searched rings, record the ring length and the edges of the ring in ascending order, and then put all the loop paths with the same ring length into the same set.
[0074] 2. During the search process, after the searched loop path is recorded, it is compared with the loops in the set of corresponding loop lengths according to the length of the loop path. Since they are all sorted in ascending order, the comparison is easy and the calculation is not large. If it is the same as the existing loop, the loop is deleted, otherwise it is added to the set.
[0075] In step P3, the loop path with a loop length of 2m=4 is obtained, and its shape is as follows Figure 2 As shown, it contains 4 nodes, which belong to the 2nd row and the 2nd column in the check matrix respectively. This loop path can be stored in set 1.
[0076] In step P3, the loop path with a loop length of 2m=6 is obtained, and its shape is as follows Figure 3 As shown, it contains 6 nodes, and these 6 nodes belong to the 3rd row and the 3rd column in the check matrix respectively. Therefore, it can be obtained that the number of different shapes of the ring with a girth of 6 is 6, and these 6 loop paths can be stored in set 2.
[0077] In step P3, the loop path with a ring length of 2m=8 is obtained, which contains 8 nodes. These 8 nodes belong to the 4th row and the 4th column in the check matrix. If the ring length is 8, the ring is selected from 4 rows, and each column is limited to 2 nodes. Then there are 6 ways to select the column. Therefore, the number of different shapes of the ring with a girth of 6 is 6, of which 3 shapes are as follows: Figure 4 As shown, these 6 loop paths can be stored in set 3.
[0078] In step P3, the loop path with a loop length of 2m=10 is obtained, refer to Figure 5 , which contains 10 nodes, these 10 nodes belong to the 5th row and 5th column in the check matrix respectively. If the ring length is 10, the ring is selected from 5 rows, and each column is limited to 2 nodes, then there are 10 ways to select columns. Then the branch method can be used to search all possible columns to form 12 shapes with a ring length of 10. These 12 shapes are as follows Figure 6 As shown, these 12 loop paths can be stored in set 4.
[0079] In step P4, set 1, set 2, set 3 and set 4 are stored in the same storage space, so as to obtain loop paths of different shapes under different loop lengths. When executing steps S1-S5, a loop path with the same loop length as the loop length to be detected can be directly read from this storage space for calling in step S4.
[0080] The principle of steps S1-S5 and P1-P4 is that for QC-LDPC codes, as long as there is no short cycle in the base matrix, there will be no short cycle in the check matrix. Therefore, the construction of large-cycle QC-LDPC codes ultimately depends on the design of the base matrix. The theorem mentioned in the previous section states that: the basis matrix E satisfies the formula The rings have a specific fixed ring shape and a fixed number, so steps P1-P4 use a depth-first algorithm to find all ring shape combinations of rings with lengths of 4, 6, 8, 10, etc., and then store these ring combinations. Steps S1-S5 find all sub-matrices of order 2, 3, 4, 5, etc. in the base matrix E, and verify whether all stored ring combinations in the sub-matrices of the base matrix E satisfy the formula If it is satisfied, the number of rings of the corresponding length is accumulated. Finally, the types and numbers of all rings of the check matrix H can be calculated in one calculation, thereby realizing the fast detection of the number of QC-LDPC code rings.
[0081] The following is an analysis of the QC-LDPC code ring number detection method based on depth-first search in this embodiment, as well as the computational complexity of two current related algorithms, which are based on the check matrix ring analysis algorithm and the base matrix E ring analysis algorithm. During the analysis, it is assumed that the number of variable nodes of the QC-LDPC code is pN, the number of check nodes is pM, the size of the base matrix E is M×N, and the size of the circulant permutation matrix (CPM) is p×p. The number of rings corresponding to the ring length of girth is to be detected.
[0082] For the check matrix ring analysis algorithm, its computational complexity increases with the increase of the detected ring length, and the growth rate is exponentially related to the number of check nodes pM. Its computational complexity is O(pN*(pM) 2 )+O(pN*(pM) 3 )+O(pN*(pM) 4 )+O(pN*(pM) 5 )+O(pN*(pM) 6 )……;
[0083] For the E-ring analysis algorithm based on the basis matrix, its computational complexity increases with the increase of the length of the detected ring, and its computational complexity is O((N*M) 2 )+O((N*M) 3 )+O((N*M) 4 )+O((N*M) 5 )+O((N*M) 6 )……;
[0084] For the QC-LDPC code loop number detection method based on depth-first search in this embodiment, since the loop path can be searched once by the depth-first search algorithm, and the loop path can be stored for each execution, so that it does not need to be recalculated each time it is used, the search loop path is omitted, and its calculation complexity is mainly caused by the path summation, specifically:
[0085] To detect a ring of length 4, the number of 2nd-order submatrices of the basis matrix E is (N-1)*(M-1), and one path needs to be calculated, two additions, and one comparison;
[0086] To detect a ring with a length of 6, the number of 3rd-order submatrices of the base matrix E is (N-2)*(M-2), and 6 paths need to be calculated, 3 additions, and 1 comparison;
[0087] To detect a ring with a length of 8, the number of 4th-order submatrices of the base matrix E is (N-3)*(M-3), which requires calculating 72 paths, 73 additions, and one comparison;
[0088] To detect a ring with a length of 10, the number of 5th-order submatrices of the basis matrix E is (N-4)*(M-4), and 1440 paths need to be calculated, 1440 additions, and one comparison.
[0089] In summary, the computational complexity of the QC-LDPC code ring number detection method based on depth-first search in this embodiment is O (N*M)+O(N*M)+O(N*M)+O(N*M)... Compared with the check matrix ring analysis algorithm and the base matrix E ring analysis algorithm, the computational complexity of the QC-LDPC code ring number detection method based on depth-first search in this embodiment is greatly reduced.
[0090] A computer program for executing the QC-LDPC code ring number detection method based on depth-first search in this embodiment can be written and written into a computer device or a storage medium. When the computer program is read out and run, the QC-LDPC code ring number detection method based on depth-first search in this embodiment is executed, thereby achieving the same technical effect as the QC-LDPC code ring number detection method based on depth-first search in the embodiment.
[0091] It should be noted that, unless otherwise specified, when a feature is referred to as "fixed" or "connected" to another feature, it may be directly fixed or connected to another feature, or it may be indirectly fixed or connected to another feature. In addition, the descriptions of up, down, left, right, etc. used in this disclosure are only relative to the relative positional relationship of the components of the present disclosure in the accompanying drawings. The singular forms of "a", "said" and "the" used in this disclosure are also intended to include the plural forms, unless the context clearly indicates other meanings. In addition, unless otherwise defined, all technical and scientific terms used in this embodiment have the same meaning as those generally understood by technicians in this technical field. The terms used in the specification of this embodiment are only for describing specific embodiments, not for limiting the present invention. The term "and / or" used in this embodiment includes any combination of one or more related listed items.
[0092] It should be understood that, although the term first, second, third etc. may be adopted to describe various elements in the present disclosure, these elements should not be limited to these terms. These terms are only used to distinguish the same type of elements from each other. For example, without departing from the scope of the present disclosure, the first element may also be referred to as the second element, and similarly, the second element may also be referred to as the first element. The use of any and all examples or exemplary language ("for example", "such as" etc.) provided by the present embodiment is only intended to better illustrate embodiments of the present invention, and unless otherwise required, the scope of the present invention will not be limited.
[0093] It should be appreciated that embodiments of the present invention may be implemented or implemented by computer hardware, a combination of hardware and software, or by computer instructions stored in a non-transitory computer-readable memory. The method may be implemented in a computer program using standard programming techniques - including a non-transitory computer-readable storage medium configured with a computer program, wherein the storage medium so configured causes the computer to operate in a specific and predefined manner - according to the methods and drawings described in the specific embodiments. Each program may be implemented in a high-level procedural or object-oriented programming language to communicate with a computer system. However, if desired, the program may be implemented in assembly or machine language. In any case, the language may be a compiled or interpreted language. In addition, the program may be run on a programmed dedicated integrated circuit for this purpose.
[0094] In addition, the operations of the process described in this embodiment may be performed in any suitable order, unless otherwise indicated in this embodiment or otherwise clearly contradicted by the context. The process described in this embodiment (or variations and / or combinations thereof) may be performed under the control of one or more computer systems configured with executable instructions, and may be implemented as a code (e.g., executable instructions, one or more computer programs, or one or more applications) executed jointly on one or more processors, by hardware or a combination thereof. The computer program includes a plurality of instructions that may be executed by one or more processors.
[0095] Further, the method can be implemented in any type of computing platform that is operably connected to a suitable computer, including but not limited to a personal computer, a minicomputer, a mainframe, a workstation, a network or distributed computing environment, a separate or integrated computer platform, or in communication with a charged particle tool or other imaging device, etc. Various aspects of the present invention can be implemented in machine-readable code stored on a non-transitory storage medium or device, whether removable or integrated into a computing platform, such as a hard disk, an optical read and / or write storage medium, a RAM, a ROM, etc., so that it can be read by a programmable computer, and when the storage medium or device is read by the computer, it can be used to configure and operate the computer to perform the process described herein. In addition, the machine-readable code, or a portion thereof, can be transmitted via a wired or wireless network. When such media includes instructions or programs that implement the steps described above in conjunction with a microprocessor or other data processor, the invention described in this embodiment includes these and other different types of non-transitory computer-readable storage media. When programmed according to the methods and techniques of the present invention, the present invention also includes the computer itself.
[0096] The computer program can be applied to input data to perform the functions described in the present embodiment, thereby converting the input data to generate output data stored in a non-volatile memory. The output information can also be applied to one or more output devices such as a display. In a preferred embodiment of the present invention, the converted data represents a physical and tangible object, including a specific visual depiction of the physical and tangible object produced on the display.
[0097] The above is only a preferred embodiment of the present invention. The present invention is not limited to the above implementation. As long as the technical effect of the present invention is achieved by the same means, any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included in the scope of protection of the present invention. Within the scope of protection of the present invention, its technical scheme and / or implementation method may have various modifications and changes.
Claims
1. A QC-LDPC code ring number detection method based on depth-first search, characterized in that: include: Determine the length of the ring to be tested; Get the basis matrix corresponding to the QC-LDPC code; According to the ring length to be detected, all sub-matrices corresponding to the base matrix are obtained; A depth-first search algorithm is used to search according to the ring length to be detected to obtain a loop path corresponding to the ring length to be detected; The initial value of the number of rings is set to zero, and all the sub-matrices that meet the conditions are traversed to accumulate the number of rings; for each of the sub-matrices, when If the condition holds, the number of rings is added by 1, otherwise the number of rings is not added. and are all elements in the submatrix determined according to the loop path, and the loop path is obtained by searching according to the length of the loop to be detected using a depth-first search algorithm, 0≤ ≤ , 0≤ ≤ , , , , , is the expansion factor corresponding to the base matrix, and the length of the ring to be detected and the length of the loop path are both , the size of the basis matrix is ; Obtaining a final accumulated value of the number of rings as the number of rings corresponding to the ring length to be detected; The step of searching using a depth-first search algorithm according to the ring length to be detected to obtain a loop path corresponding to the ring length to be detected includes: Acquire a ring domain matrix according to the ring length to be detected; Obtaining the adjacency matrix corresponding to the ring domain matrix; Use a depth-first search algorithm to traverse every two nodes in the adjacency matrix to search; Get each loop path found.
2. The QC-LDPC code ring number detection method based on depth-first search according to claim 1, characterized in that: The order of each of the sub-matrices is .
3. The QC-LDPC code ring number detection method based on depth-first search according to claim 1, characterized in that: The step of obtaining a ring area matrix according to the ring length to be detected includes: Get the position number matrix; the size of the position number matrix is , the value of an element in the position number matrix is equal to the position number where the element is located; Determine the ring domain matrix according to the position number matrix; the size of the ring domain matrix is , the values of the elements on the main diagonal of the ring domain matrix are all 0; when the value in the position number matrix is The elements and values of If the elements of are located in the same row or column in the position number matrix, then the first Line The value of the element in the column is 1, otherwise the value of the element in the ring field matrix is Line The value of the elements of the column is 0.
4. The QC-LDPC code ring number detection method based on depth-first search according to claim 1, characterized in that: The depth-first search algorithm is used to traverse every two nodes in the adjacency matrix to search and obtain each searched loop path, including: Setting a plurality of sets; each set has a corresponding ring length, and the ring lengths of different sets are different; When the set does not store the same loop path as the searched loop path, the searched loop path is stored in the set with the same loop length; otherwise, the searched loop path is deleted.
5. The QC-LDPC code ring number detection method based on depth-first search according to any one of claims 1 to 4, characterized in that: Also includes: The maximum search loop length of the depth-first search algorithm is set so that the depth-first search algorithm only searches for loop paths whose loop length is not greater than the maximum search loop length.
6. The QC-LDPC code ring number detection method based on depth-first search according to any one of claims 2 to 4, characterized in that: =2, 3, 4, 5, or 6.
7. A computer device, characterized in that: It comprises a memory and a processor, wherein the memory is used to store at least one program, and the processor is used to load the at least one program to execute the QC-LDPC code ring number detection method based on depth-first search as described in any one of claims 1-6.
8. A storage medium storing a program executable by a processor, characterized in that: The processor executable program is used to execute the QC-LDPC code ring number detection method based on depth-first search as described in any one of claims 1 to 6 when executed by the processor.
Citation Information
Patent Citations
SPFA-based LDPC code ring number determination method and system
CN108900197A
LDPC code decoding algorithm based on deep learning
CN110212920A