LDPC (Low Density Parity Check) channel decoding method, decoding device, equipment and medium

By using probability mass vectors in the multi-digital LDPC code decoding algorithm to generate symbol value vectors and convert them into GF(q) addition operation, the problem of high complexity of the existing multi-digital LDPC code decoding algorithm is solved, and efficient decoding in low-orbit satellite communication is achieved.

CN119628795AInactive Publication Date: 2025-03-14CHINA SATELLITE NETWORK EXPLORATION CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510165776.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-14
Publication Date
2025-03-14
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

The existing multi-digital LDPC coding and decoding algorithms are complex and difficult to effectively apply in low-orbit satellite communications, especially under limited hardware resources.

Method used

A LDPC channel decoding method is proposed, which generates multiple symbol value vectors based on the probability mass vector of each symbol of the LDPC code, and obtains the symbol value vector through the correspondence between the random number and the probability mass distribution matrix, simplifies the process of updating the inspection node and converts the product sum operation of the probability mass vector into the addition operation of symbol information in GF(q).

Benefits of technology

The operation complexity and storage space overhead of the decoding algorithm are reduced, and the decoding efficiency is improved, making the multi-primary LDPC soft decoding scheme suitable for low-orbit satellite communication.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119628795A_ABST
    Figure CN119628795A_ABST
Patent Text Reader

Abstract

The invention discloses an LDPC channel decoding method and device, equipment and a medium, and the method comprises the steps: obtaining a plurality of symbol value vectors corresponding to an LDPC code according to a probability quality vector of each symbol of the LDPC code; according to the plurality of symbol value vectors corresponding to the LDPC code, respectively updating each symbol value vector corresponding to the LDPC code; according to the symbol value in each symbol value vector corresponding to the updated LDPC code, adjusting a probability value in a preset probability matrix to obtain a decoding result of the LDPC code; the preset probability matrix is used for storing the probability of each symbol value. According to the invention, the received signal can be decoded with higher efficiency and higher fault tolerance, and the reliability and performance of satellite communication are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of coding technology, and in particular to an LDPC channel decoding method, decoding device, equipment and medium. Background Art

[0002] Satellite communications play a key role in modern society and are widely used in fields such as television broadcasting, Internet connectivity and communications. With the gradual decline in satellite costs and the increasing advantages of low-orbit satellites, the communications satellite industry is currently showing a trend of development from high orbit to medium orbit and low orbit. As an emerging channel code, low-density parity-check (LDPC) codes can provide high coding gain while maintaining high coding efficiency, making them very suitable for low-orbit satellite communications. Low-orbit satellites are generally small satellites with very limited onboard hardware resources, and the complexity of encoding and decoding should not be too high. However, most LDPC code encoding and decoding algorithms have high complexity, which limits the application of LDPC codes in low-orbit satellites.

[0003] LDPC is represented by a special bipartite graph, the Tanner graph, which consists of variable nodes, check nodes, and edges connecting the two types of nodes. In this way, its decoding process is mainly divided into four parts: storage of codeword information, storage of edge information, update of check nodes, and update of variable nodes. The two key processes of LDPC decoding are: variable node update and check node update. The iterative process of LDPC is that the information vector is transmitted back and forth between the variable node and the check node, and the transmission path is specified by the check matrix H. When the information vector encounters a variable node or a check node, the corresponding update operation is triggered. Different LDPC decoding algorithms have different update methods. One iteration includes one variable node update and one check node update.

[0004] Multi-level LDPC codes are the most popular error correction codes after binary LDPC codes. Compared with binary LDPC codes, they have stronger error correction capabilities (especially for medium and short code lengths), lower error platforms, and faster decoding convergence speed. Based on this, it is a development trend to apply multi-level LDPC to satellite communications. For example, the Beidou system first adopted multi-level LDPC coding in the satellite navigation system. The existing multi-level LDPC code decoding algorithms are mainly divided into two categories, one is the probability decoding algorithm based on belief propagation (BP), and the other is the large number logic decoding algorithm (MLGD). Classical BP decoding algorithms (such as SPA) generally use probability domain representation. Although FFT (fast Fourier transform) can be used to effectively check node-variable node operations, the probability domain representation requires a large dynamic range to ensure calculation accuracy, so that its decoding gain is high, but the calculation complexity and storage overhead are also large, so the traditional BP decoding algorithm is not suitable for actual products. Although the BP algorithm based on log-likelihood ratio (LLR) was proposed later, the algorithm complexity is relatively high. Summary of the invention

[0005] In view of this, the present application provides an LDPC channel decoding method, decoding device, equipment and medium.

[0006] The present application discloses an LDPC channel decoding method, which comprises: According to the probability mass vector of each symbol of the LDPC code, a plurality of symbol value vectors corresponding to the LDPC code are obtained; the LDPC code is composed of a plurality of symbols; the probability mass vector of each symbol is composed of the probabilities of each symbol taking all possible values ​​respectively; the symbol value in each symbol value vector is associated with each symbol of the LDPC code; According to the plurality of symbol value vectors corresponding to the LDPC code, respectively updating each symbol value vector corresponding to the LDPC code; According to the symbol value in each symbol value vector corresponding to the updated LDPC code, the probability value in the preset probability matrix is ​​adjusted to obtain the decoding result of the LDPC code; the preset probability matrix is ​​used to store the probability of each symbol value.

[0007] Furthermore, the obtaining of a plurality of symbol value vectors corresponding to the LDPC code according to the probability mass vector of each symbol of the LDPC code includes: According to each probability value in the probability mass vector of each symbol of the LDPC code, a plurality of probability mass distribution matrices are constructed; each of the probability mass distribution matrices includes a plurality of probability mass distribution vectors; each element in each of the probability mass distribution vectors is accumulated by the corresponding probability value in the probability mass vector of each symbol of the LDPC code; A plurality of symbol value vectors corresponding to the LDPC code are obtained through the correspondence between random numbers and the plurality of probability mass distribution matrices.

[0008] Furthermore, the obtaining of a plurality of symbol value vectors corresponding to the LDPC code through the correspondence between the random number and the plurality of probability mass distribution matrices includes: According to the correspondence between the random number and the elements in each probability mass distribution vector in the plurality of probability mass distribution matrices, a plurality of symbol value vectors corresponding to the LDPC code are obtained.

[0009] Further, the updating, according to the plurality of symbol value vectors corresponding to the LDPC code, each symbol value vector corresponding to the LDPC code comprises: The symbol value in each of the symbol value vectors is updated according to the symbol values ​​in all symbol value vectors except each of the symbol value vectors in the plurality of the symbol value vectors.

[0010] Furthermore, the step of adjusting the probability value in the preset probability matrix according to the symbol value in each symbol value vector corresponding to the updated LDPC code to obtain the decoding result of the LDPC code includes: According to each symbol value in each symbol value vector corresponding to the updated LDPC code, adjusting the probability value corresponding to each symbol value in the preset probability matrix; According to the adjusted preset probability matrix, updating the probability mass vector of each symbol of the LDPC code; A decoding result of the LDPC code is obtained according to the updated probability mass vector of each symbol of the LDPC code.

[0011] Further, updating the probability mass vector of each symbol of the LDPC code according to the adjusted preset probability matrix includes: According to the adjusted preset probability matrix and the probability mass vector of each symbol of the LDPC code, an updated probability mass vector of each symbol of the LDPC code is obtained.

[0012] Further, obtaining a decoding result of the LDPC code according to the updated probability mass vector of each symbol of the LDPC code includes: Obtaining a value of each symbol of the LDPC code according to the updated probability mass vector of each symbol of the LDPC code; A decoding result of the LDPC code is obtained according to the value of each symbol of the LDPC code.

[0013] Further, obtaining a decoding result of the LDPC code according to the value of each symbol of the LDPC code includes: If the value of each symbol of the LDPC code satisfies a check condition, a decoding result of the LDPC code is output; the check condition is determined according to the value of each symbol of the LDPC code and a check matrix; the check matrix includes non-zero values.

[0014] The present application also discloses an LDPC channel decoding device, which comprises: A symbol information generation module, configured to obtain a plurality of symbol value vectors corresponding to the LDPC code according to a probability mass vector of each symbol of the LDPC code; the LDPC code is composed of a plurality of symbols; the probability mass vector of each symbol is composed of the probabilities of each symbol taking all possible values; the symbol value in each symbol value vector is associated with the symbol of each LDPC code; A check node update module, used to update each symbol value vector corresponding to the LDPC code according to the multiple symbol value vectors corresponding to the LDPC code; A decoding module is used to adjust the probability value in the preset probability matrix according to the symbol value in each symbol value vector corresponding to the updated LDPC code to obtain the decoding result of the LDPC code; the preset probability matrix is ​​used to store the probability of each symbol value.

[0015] Furthermore, the decoding module includes: A probability tracking module, configured to adjust the probability value corresponding to each symbol value in the preset probability matrix according to each symbol value in each symbol value vector corresponding to the updated LDPC code; A variable node updating module, used for updating the probability mass vector of each symbol of the LDPC code according to the adjusted preset probability matrix; The decision verification module is used to obtain a decoding result of the LDPC code according to the updated probability mass vector of each symbol of the LDPC code.

[0016] Furthermore, the judgment verification module includes: A decision module, configured to obtain a value of each symbol of the LDPC code according to the updated probability mass vector of each symbol of the LDPC code; The verification module is used to obtain a decoding result of the LDPC code according to the value of each symbol of the LDPC code.

[0017] The present application also discloses an electronic device, which includes a memory and a processor, wherein the memory stores a computer program, and when the computer program is executed by the processor, the LDPC channel decoding method described above is implemented.

[0018] The present application also discloses a computer-readable storage medium, which includes a computer program or instructions. When the computer program or instructions are executed on a computer, the computer executes the above-mentioned LDPC channel decoding method. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the embodiments of the present application. For ordinary technicians in this field, other drawings can also be obtained based on these drawings.

[0020] Figure 1 A schematic diagram of a flow chart of an LDPC channel decoding method according to an embodiment of the present application; Figure 2 A schematic diagram of an LDPC channel decoding device according to an embodiment of the present application; Figure 3 A schematic diagram of information flow in an LDPC channel decoding device according to an embodiment of the present application; Figure 4 A simulation comparison diagram of an LDPC channel decoding method according to an embodiment of the present application; Figure 5 A block diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0021] The present application is further described in conjunction with the accompanying drawings and embodiments, and the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. All other embodiments obtained by ordinary technicians in this field should fall within the scope of protection of the embodiments of the present application.

[0022] The check matrix of LDPC code is represented by a special bipartite graph, Tanner graph, which consists of variable nodes, check nodes and edges connecting the two nodes. In this way, its decoding process is mainly divided into four parts: storage of codeword information, storage of edge information, update of check nodes and update of variable nodes.

[0023] The two key processes of LDPC decoding are: variable node update and check node update. The iterative process of LDPC is that the information vector is transmitted back and forth between the variable node and the check node, and the transmission path is specified by the check matrix H. When the information vector encounters a variable node or a check node, the corresponding update operation is triggered. Different LDPC decoding algorithms have different update methods. One iteration includes one variable node update and one check node update.

[0024] The existing multi-level LDPC code decoding algorithms are mainly divided into two categories, one is the probability decoding algorithm based on belief propagation (BP), and the other is the large number logic decoding algorithm (MLGD). The classic BP decoding algorithm generally uses the probability domain representation. Although FFT can be used to effectively perform check node-variable node operations, the probability domain representation requires a large dynamic range to ensure calculation accuracy, so the traditional BP decoding algorithm is not suitable for actual products. Although some people later proposed the BP algorithm based on the log-likelihood ratio (LLR), the algorithm complexity is relatively high.

[0025] The traditional multivariate sum-product decoding algorithm (SPA) is a high-performance multivariate LDPC decoding algorithm that divides the nodes of the multivariate LDPC into three categories: variable nodes, permutation nodes, and check nodes. The constraint of variable nodes is that the symbol information on all edges connected to them takes the same value, the constraint of permutation nodes is that the symbol information on one edge is equal to the product of the symbol information on another edge and the non-zero element of the finite field corresponding to the node, and the constraint of check nodes is that the sum of random variables on all edges is 0. GF(q). The SPA algorithm mainly includes five steps: calculating the external information from the variable node to the permutation node (variable node update), permuting the information from the permutation node from left to right (permutation node update), calculating the external information from the check node to the permutation node (check node update), permuting the information from the permutation node from right to left (permutation node update), and hard decision. Among them, the information between each step is transmitted according to the probability mass vector, and most of them involve the multiplication of the probability mass vector. In particular, for the check node update, it actually calculates the product sum of a series of probability mass vectors. If no simplification is made, for a check node with a degree of dc, the calculation complexity is O(q dc ), dc is a positive integer. It can be seen that for multivariate LDPC codes defined in high-order finite fields, the complexity of the check node is very high. For multivariate LDPC codes with high codewords, the degree dc of the check node is relatively large. Even if the SPA algorithm is simplified by the calculation method based on fast Fourier transform and message truncation, it is still impossible to achieve full parallelization.

[0026] Explanation: LDPC codes defined in high-order Galois Field (GF) can be represented by an M-row, N-column low-density parity check matrix H M,N To describe, a small number of non-zero elements H in the matrix i,jTaken from GF(q). A symbol c of length N (all its elements are taken from GF(q)), if Hc=0, is considered to be a valid codeword. LDPC codes can be divided into regular LDPC and irregular LDPC according to the characteristics of the row weight and column weight of the check matrix. The check matrix of regular LDPC (also called structured LDPC) code generally has a special structure, and the number of non-zero elements in each row and column is fixed, dc and dv respectively. Regular LDPC codes can be described and constructed using simple parameterization methods, which is convenient for fast encoding and decoding.

[0027] In view of this, see Figure 1 , an embodiment of the present application provides an LDPC channel decoding method, which includes: Step 101: According to the probability mass vector of each symbol of the LDPC code, a plurality of symbol value vectors corresponding to the LDPC code are obtained; the LDPC code is composed of a plurality of symbols; the probability mass vector of each symbol is composed of the probabilities of each symbol taking all possible values ​​respectively; the symbol values ​​in each symbol value vector are derived from the symbols corresponding to each LDPC code; Optionally, according to each probability value in the probability mass vector of each symbol of the LDPC code, multiple probability mass distribution matrices are constructed; each probability mass distribution matrix includes multiple probability mass distribution vectors; and the elements in each probability mass distribution vector are accumulated by the corresponding probability values ​​in the probability mass vector of each symbol of the LDPC code; Optionally, each probability value in the probability mass vector of each symbol of the LDPC code is numerically converted (base conversion between numerical values ​​or reordering of the order of numerical values), and multiple probability mass distribution matrices are constructed according to each probability value in the probability mass vector of each symbol of the LDPC code after the numerical conversion.

[0028] Optionally, each column of each probability mass distribution matrix is ​​a probability mass distribution vector, and the number of columns in each row is the total number of all symbols in each symbol value vector; or, each row of each probability mass distribution matrix is ​​a probability mass distribution vector, and the number of rows in each column is the total number of all symbols in each symbol value vector.

[0029] Optionally, the non-zero elements of each column in the check matrix represent the connection relationship between the variable node and the permutation node, and the non-zero elements of each row represent the connection relationship between the permutation node and the check node. The probability mass vector of each symbol of the LDPC code can be assigned to each variable node respectively, and each symbol corresponds to each variable node one by one.

[0030] Optionally, multiple symbol value vectors corresponding to the LDPC code are obtained according to the corresponding relationship between the random number and the elements in each probability mass distribution vector in the multiple probability mass distribution matrices.

[0031] Optionally, based on the correspondence between random numbers and intervals in each probability mass distribution vector in multiple probability mass distribution matrices, multiple symbol value vectors corresponding to the LDPC code are obtained; each probability mass distribution vector is composed of multiple intervals, and the total number of intervals is the same as the total number of possible values ​​of each symbol; each interval corresponds to a probability value in the probability mass vector of each symbol; illustratively, each column of the probability mass distribution matrix is ​​a probability mass distribution vector.

[0032] In order to better explain the technical solution of the present application, the following is an example of multi-level LDPC decoding applied to the navigation system. The LDPC code type of the data frame of the navigation system is GF(64) domain LDPC(200, 100), and its effective information consists of 600 bits. Each m=6 bits constitutes a symbol, so the effective information has 100 symbols. After encoding, one data frame corresponds to 200 symbols; the length of the LDPC code is 200 6=1200 bits, which is the length of the input data frame processed once.

[0033] Using the log-likelihood ratio information of each received bit, the probability of each bit is calculated , and calculate the probability mass vector corresponding to the 64 finite field elements x∈GF(64) by grouping every 6 bits (each symbol consists of 6 bits) , and store the information, calculating a total of 200 sets of probability information vectors, each of which includes a probability mass vector of 64 elements (all possible values ​​of each symbol). All possible values ​​of each symbol are 0, 1, 2, 3, ..., 63.

[0034]

[0035]

[0036]

[0037] in, represents the log-likelihood ratio of the nth bit, represents the probability that the nth bit is 1, Indicates that each received symbol has a value of The probability of; n = 0, 1, 2, ..., 1200-1; Indicates that the transmitted bit is , receive bits The probability of being 1; Indicates that the transmitted bit is , receive bits The probability of 0; The probability of each bit being 1 or 0 in the 1200 bits is calculated, and then the probability of each symbol being 1 or 0 is multiplied by the probability of each symbol being 6 bits being 1 or 0 to calculate the value of each symbol. Probability , thereby obtaining the probability mass vector of each symbol of the data frame.

[0038] The probability mass vectors of 200 symbols of the LDPC code are assigned to 200 variable nodes respectively; the subsequent explanation is given by taking the case where the 200 variable nodes are connected to the 400 arrangement nodes and the 400 arrangement nodes are connected to the 100 check nodes as an example; after the iteration starts, the 200 variable nodes simultaneously pass the probability mass vectors of 200 symbols to the 400 arrangement nodes, and the 400 arrangement nodes receive the probability mass vectors of 400 symbols in total, and 4 symbol value vectors are generated according to the probability mass vectors of the 400 symbols received by the 400 arrangement nodes.

[0039] Exemplarily, how to generate 4 symbol value vectors based on the probability mass vectors of 400 symbols received by 400 permutation nodes is explained: The probability interval [0,1] is divided into 64 intervals, where 64 is the total number of elements in the finite field GF(64), and also the total number of all possible values ​​of each symbol of the LDPC code. The constructed probability mass distribution vector is as follows:

[0040]

[0041] Where L represents a probability mass distribution vector, is the probability value at the i+1th position of the probability mass distribution vector L, Obtained by summing the probability values ​​in the probability mass vector of each symbol; The probability of each symbol taking the value i.

[0042] It should be noted that for each probability mass distribution vector L, is the first interval of the probability mass distribution vector L, is the second interval of the probability mass distribution vector L, and so on. is the 64th interval of the probability mass distribution vector L. For example, The maximum value of Subtract the minimum value 0 and we get , The probability of taking the value 0 for each symbol; The maximum value of Subtract the minimum value ,get , The probability of taking the value 1 for each symbol; The maximum value of Subtract the minimum value ,get , The probability of each symbol taking a value of 63. It can be seen that there is a corresponding relationship between all intervals in each probability mass distribution vector L and the probabilities of all possible values ​​of each symbol.

[0043] To establish 4 65 100 probability mass distribution matrix as an example, where 65 100 means that the probability mass distribution matrix has 65 rows and 100 columns, and the random number R in the interval [0,1] is used to generate the 4 65 Each of the 65 probability mass distribution matrices of 100 1, and the matching relationship between the intervals in the probability mass distribution vector L is obtained with each 65 The value of the symbol corresponding to the probability mass distribution vector L of 1 (the value range is 0~63, 64-base integer), that is, for each 65 1 probability mass distribution vector L, generate a random number R in the interval [0,1], according to each 65 The corresponding relationship between the values ​​of the interval in the probability mass distribution vector L of 1 and the random number R is obtained with each 65 The value of the symbol corresponding to the probability mass distribution vector L of 1, each 65 The probability mass distribution vector L of 1 corresponds to each symbol one by one; the value of the interval is the difference between the maximum and minimum values ​​of the interval. The probability mass distribution matrix of 100 is processed in parallel, and a total of 4 1 100, each symbol value in the symbol value vector is any one of 0 to 63, which is a 64-base integer; the matching correspondence relationship can be that the random number R is equal to the value of an interval in the probability mass distribution vector L. For example, when the random number R is equal to 0.1, if the interval in the probability mass distribution vector L The value of is equal to 0.1, then the value of the symbol corresponding to the probability mass distribution vector L is 0. If the interval in the probability mass distribution vector L The value of If it is equal to 0.1, the value of the symbol corresponding to the probability mass distribution vector L is 63, and so on, so as to obtain the value of the symbol according to the value of the random number R and the probability of the possible value of the symbol corresponding to each interval in the probability mass distribution vector L.

[0044] Step 102: According to multiple symbol value vectors corresponding to the LDPC code, each symbol value vector corresponding to the LDPC code is updated respectively; Optionally, the symbol value in each symbol value vector is updated according to the symbol values ​​in all symbol value vectors except the symbol value vector in the plurality of symbol value vectors.

[0045] Based on the above embodiment, the implementation process of step 102 is explained. The above four 1 The symbol values ​​in the symbol value vector of 100 are reassigned, and the update rule of the check node can be: each of the 100 check nodes performs a 64-decimal addition operation on 3 of the 4 symbol values, and uses the result of the addition operation to update another symbol value, and so on. Each of the 4 symbol values ​​is updated by adding the remaining 3 symbol values; the 4 symbol values ​​come from the 4 1 A symbol value vector of 100, that is, 1 symbol value and 1 1 The symbol value vector corresponds to 100. 100 check nodes are performed in parallel.

[0046] Step 103: According to the symbol value in each symbol value vector corresponding to the updated LDPC code, the probability value in the preset probability matrix is ​​adjusted to obtain the decoding result of the LDPC code; the preset probability matrix is ​​used to store the probability of each symbol value; the value of each symbol comes from all possible values ​​of each symbol.

[0047] Optionally, according to each symbol value in each symbol value vector corresponding to the updated LDPC code, adjusting the probability value corresponding to each symbol value in the preset probability matrix; According to the adjusted preset probability matrix and the probability mass vector of each symbol of the LDPC code, the probability mass vector of each symbol of the updated LDPC code is obtained; or, the probability values ​​in the adjusted preset probability matrix are numerically converted (the base conversion between the numerical values ​​or the order of the numerical values ​​is reordered), and according to the preset probability matrix after numerical conversion and the probability mass vector of each symbol of the LDPC code, the probability mass vector of each symbol of the updated LDPC code is obtained; According to the probability mass vector of each symbol of the updated LDPC code, a value of each symbol of the LDPC code is obtained; If the value of each symbol of the LDPC code satisfies the check condition, the decoding result of the LDPC code is output; the check condition is determined according to the value of each symbol of the LDPC code and the check matrix; the check matrix includes non-zero values.

[0048] Optionally, the check condition is to multiply the value of each symbol of the LDPC code by a non-zero value in the check matrix and sum the multiplication results. If the sum result is a set value, the check is successful, and multiple symbol values ​​are output, and the multiple symbol values ​​are used as the decoding results of the LDPC code.

[0049] Based on the above embodiment, the implementation process of step 103 is explained. The preset probability matrix consists of 4 64 100 probability matrices, each with 64 All elements in the probability matrix of 100 are probability values. All probability values ​​in the probability matrix of 100 are initialized to equal probability distribution, that is, each 64 All probability values ​​in the probability matrix of 100 are initialized to 1 / 64. 100 symbol value vector, adjust 4 64 100 probability matrix with 4 1 The probability value corresponding to each symbol value in the symbol value vector of 100 is as follows: According to the following formula, adjust the 4 64 100 probability matrix with 4 1 The probability value corresponding to each symbol value in the symbol value vector of 100 is:

[0050] For example, if the first 1 A vector of symbolic values ​​of 100 ( ) has a value of 5, then the first 64 The first column in the probability matrix of 100 (64 1) The probability value of the 6th position (corresponding to the probability value of the symbol value 5) is added to the β operation ( ), the first 64 The other 63 probability values ​​in 1 are not added with β operation ( ), 4 64 100 probability matrices are executed in parallel, that is, four 64 100 probability matrix with 4 1 The probability value corresponding to each symbol value in the symbol value vector of 100 is obtained, and the adjusted 4 64 A probability matrix of 100 (the adjusted preset probability matrix).

[0051] For example, in the first iteration, 400 permutation nodes (working in parallel) will adjust the 4 64 After converting the probability values ​​in the probability matrix of 100 (converting the bases of the values), the converted four 64 The probability matrix of 100 is simultaneously passed to the above 200 variable nodes (corresponding to 200 symbols of the LDPC code), and each variable node performs a multiplication operation based on its current probability mass vector and the probability mass vector it receives (the probability mass vector sent by the two arrangement nodes), and the result of the multiplication operation is the probability mass vector of the variable node after the update (after the first iteration). The probability mass vector sent by the two arrangement nodes (connected to the variable node) can be the probability mass vector returned by the probability mass vector of the variable node after the first iteration.

[0052] After the 200 variable nodes update their probability mass vectors, the maximum probability value is selected from the probability mass vector of each symbol. The symbol value corresponding to the maximum probability value is the value of the symbol, and finally 200 symbol values ​​are obtained. The 200 symbol values ​​are judged, and the 200 symbol values ​​are multiplied by the transpose of the check matrix and the multiplication results are summed. If the sum result is a specified value (for example, 0), the check is successful, and 100 symbol values ​​are output. The 100 symbol values ​​are used as the decoding result of the LDPC code. The number of non-zero elements in each column of the check matrix is ​​2, and the number of non-zero elements in each row is 4.

[0053] In this application, after the information to be sent is LDPC encoded, modulated, sent and transmitted, the satellite signal received by the receiver is taken as the research object, and the symbol information is represented by random representation. The complex product-sum operation (first find the product, and then sum the results of all products) in the check node update process, which has the most complex calculation and the largest storage overhead in the multivariate sum-product decoding algorithm (SPA), is converted into an addition operation in a finite field. Under the premise of almost no impact on the decoding gain, the calculation complexity and storage space overhead are simplified, the calculation complexity of the SPA algorithm is greatly reduced, and the consumption of computing resources is greatly reduced at the level of hardware implementation. The problem of slow convergence or even failure to converge of the purely probabilistic multi-ary LDPC decoding method in high-order (64 and above) is avoided, making it possible to apply the multi-ary LDPC soft decoding scheme to low-orbit satellite communications.

[0054] Since the multiplication part of the check constraint is performed by the permutation node, the check node only performs the summation part. Check the output message of node c to arrange the output message of node z:

[0055] in, is the convolution operator. The convolution operation has a high complexity, and the complexity increases exponentially with the increase of domain order and number of node degrees. Therefore, see Figure 2 The embodiment of the present application provides an LDPC channel decoding device, which uses probability calculation to convert the convolution operation of the check node into an addition operation in the GF(64) domain, and corresponds to the specific implementation process of the symbol information generation module, the check node update module and the probability tracking module.

[0056] The LDPC channel decoding device of this embodiment includes: The symbol information generation module is used to obtain multiple symbol value vectors corresponding to the LDPC code according to the probability mass vector of each symbol of the LDPC code; the LDPC code is composed of multiple symbols; the probability mass vector of each symbol is composed of the probabilities of each symbol taking all possible values; the symbol value in each symbol value vector is derived from the symbol corresponding to each LDPC code; A check node update module, used for updating each symbol value vector corresponding to the LDPC code according to multiple symbol value vectors corresponding to the LDPC code; The decoding module is used to adjust the probability value in the preset probability matrix according to the symbol value in each symbol value vector corresponding to the updated LDPC code to obtain the decoding result of the LDPC code; the preset probability matrix is ​​used to store the probability of each symbol value.

[0057] Figure 3 The variable node update module in the program works through the variable nodes, the arrangement node update module works through the arrangement nodes, and the check node update module works through the check nodes.

[0058] When checking node updates, the application converts the product and sum operation of the probability mass vector into the addition operation of the symbol information in GF(q), and when transmitting information to the arrangement node, the symbol information is converted into probability information by probability tracking, thus avoiding the problem of slow or non-convergence of LDPC decoding iterations in high-element (64 and above) LDPC decoding. The application can decode the received information more efficiently and with more fault tolerance, thus improving the reliability and performance of satellite communications.

[0059] It should be noted that, based on the above-mentioned LDPC channel decoding method embodiment, this embodiment continues to explain the specific working process of each module in the LDPC channel decoding device.

[0060] For the specific implementation process of the symbol information generation module, reference may be made to the relevant content of step 101 in the above method embodiment, which will not be repeated here.

[0061] Alternatively, see Figure 2This embodiment also includes: a probability mass information generation module; the probability mass information generation module is used to calculate the probability mass vector of each symbol of the above-mentioned LDPC code. For details, please refer to the calculation method of the probability mass vector in step 101 of the above-mentioned method embodiment, which will not be repeated here.

[0062] The specific implementation process of the check node update module is as follows: See also Figure 3 , update the values ​​of all check nodes. There are 100 check nodes in total. Each check node is connected to 4 variable nodes. Therefore There are 400 symbol information in total. Using the connection relationship of the check matrix H, 3 of the 4 symbol information (symbol values) received by each check node are accumulated through the following formula to update another symbol information, that is, the check node updates the symbol information it receives:

[0063] in, Indicates the degree of the check node, and its value is 4; It means that in the tth iteration, the symbol information passed from the check node c to the permutation node p is; It represents the symbol information passed from the permutation node p to the check node c in the tth iteration.

[0064] Optionally, the decoding module includes: A probability tracking module, used for adjusting a probability value corresponding to each symbol value in a preset probability matrix according to each symbol value in each symbol value vector corresponding to the updated LDPC code; A variable node updating module, used for updating the probability mass vector of each symbol of the LDPC code according to the adjusted preset probability matrix; The decision checking module is used to obtain a decoding result of the LDPC code according to the probability mass vector of each symbol of the updated LDPC code.

[0065] The specific implementation process of the probability tracking module is as follows: In the probabilistic tracking module, see Figure 3 , at the beginning of the iteration (t=0), the probability information of the check node to the permutation node Initialize 400 groups of probability mass vectors with equal probability distribution; At each iteration, check the probability mass vector of the node to the permutation node The tracking process is:

[0066] Among them, γ is an element in GF(64); β is a tracking factor, and β<1. Usually, β is an integer power of 2, which can convert the multiplication operation into a shift operation. Through the probability tracking module, the symbol information after the check node update is converted into probability information, which is convenient for maintaining the operation process of the SPA algorithm during the variable node update process, avoiding the non-convergence phenomenon in high-dimensional LDPC decoding, and reducing the number of iterative decoding. The decoder complexity and throughput are comprehensively considered.

[0067] The specific implementation process of the variable node update module is as follows: In the variable node update module, see Figure 3 At the beginning of the iteration (t=0), the values ​​of all variable nodes are updated using the 200 sets of probability mass vectors obtained by the initial calculation. There are 200 variable nodes in total, and each variable node is connected to 2 check nodes. Therefore There are 400 groups in total. When the number of iterations is greater than 0, the initial probability mass vector of each variable node and the probability mass vectors transmitted by the two arrangement nodes connected to it are multiplied. The result of the product operation is the probability mass vector of the variable node after update. .

[0068]

[0069] in, Indicates the degree of variable node v, the value is 2; is the initial probability mass vector of variable node v; Indicates that in the tth iteration, the probability mass vector of the variable node v passed to the arrangement node p before normalization is obtained after normalization ; It represents the probability mass vector that the permutation node p passes to the variable node v in the tth iteration.

[0070] Optionally, the judgment and verification module includes a judgment module and a verification module: The decision module is used to select the maximum probability value from each probability mass vector according to the probability mass vector of each variable node after the update (the probability mass vector of each symbol). The symbol value corresponding to the maximum probability value is the value of the symbol, and 200 symbol values ​​are determined. , and pass the result to the verification module; the verification module calculates , is the transpose of the check matrix H, and the product sum of the four non-zero values ​​and the corresponding symbol values ​​of each row of the check matrix H is calculated in turn. If the equation is satisfied, that is, , the verification is successful and the judgment result is output. Once a row of calculated values ​​is not 0, the verification fails. If the verification fails, the probability information output by the probability tracking module is used as the new input of the variable node update module to enter a new round of decoding iterations until the verification is successful or the number of iterations reaches the upper limit to end the decoding of the current data frame.

[0071] The embodiment of the present application further includes an arranging node update module, which is located between the variable node update module and the check node; the specific working process of the arranging node update module is as follows: In the permutation node update module, see Figure 3 The check matrix H of non-binary LDPC code is sparse, and its elements come from GF(64). The check constraint of the check node is that the sum of the products of all the information input to the check node and the corresponding elements in the check matrix H is 0. In order to simplify the calculation of the check node, the check constraint is separated into the elements in the check matrix H for multiplication, and then the results of the multiplication are summed, and the permutation node is introduced to process the multiplication part of the multiplication sum of the check constraint.

[0072] When information is passed from the variable node to the check node, the update process of the arrangement node is:

[0073] in, is the element of the check matrix H corresponding to the arrangement node p; represents an element in GF(q), the value of q is 64; represents the probability mass vector passed from permutation node p to check node c in the tth iteration; It represents the probability mass vector of the variable node v transferred to the permutation node p in the tth iteration. After the code pattern of the LDPC code is determined, the update of the permutation node in the permutation node update module can be realized by a lookup table.

[0074] When information is passed from a check node to a variable node, see Figure 3 , the update process of the arrangement nodes is:

[0075] in, is the reciprocal of the element in the check matrix H corresponding to the permutation node p; represents an element in GF(q); It represents the probability information transmitted from the permutation node p to the variable node v in the tth iteration; It indicates the probability information passed from the check node c to the permutation node p in the tth iteration.

[0076] This application is based on the method of stochastic computation, which represents symbol information by stochastic representation, and combines the SPA algorithm of multivariate LDPC to transform the product and sum of probability mass vectors in the check node update with the highest complexity in the SPA algorithm into the addition of symbol information in GF(q). Specifically, the probability interval of [0,1] is divided into q intervals, and the probability mass vector is converted into symbol information by arranging the interval position of the probability in the probability mass vector transmitted by the node. When checking the node update, the product and sum operation of the probability mass vector is transformed into the addition operation of symbol information in GF(q). When transmitting information to the arrangement node, the symbol information is converted into probability information by probability tracking, avoiding the problem of slow convergence of high-dimensional (64 and above) LDPC decoding iterations. By improving SPA through the method of probability calculation, it is possible to avoid the computational complexity and storage space overhead caused by the check node update in the traditional SPA algorithm, and to avoid the decoding performance loss caused by the simplified algorithm.

[0077] The present application splits the check node update module of the traditional SPA algorithm into a symbol information generation module, a check node update module and a probability tracking module, thereby avoiding the computational complexity and storage space overhead caused by the check node update of the traditional SPA algorithm and simplifying the decoding performance loss caused by the algorithm.

[0078] In order to verify the technical effect that this application can produce, this application simulates LDPC (200, 100) in the GF (64) domain. The frame error rate performance of the decoding device of this application is simulated by computer under BPSK modulation and AWGN channel. The values ​​of the tracking factor β are 1 / 128 and 1 / 512 respectively, and the maximum number of iterations is 10 4 and 10 6 The simulation results are as follows: Figure 4 As shown, when the value of β is 1 / 512, the present application can achieve decoding performance comparable to that of SPA.

[0079] See also Figure 5, the embodiment of the present application also provides an electronic device, which includes a processor, a bus, a memory and a communication interface. The processor, the memory and the communication interface are connected via a bus. The processor may be a CPU (central processing unit), or other general-purpose processors, DSPs (digital signal processors), ASICs (application integrated circuits), FPGAs (field programmable gate arrays) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. The communication interface is used to realize communication between the electronic device and an external device or device. The communication interface is used to exchange data with other computing devices. The bus may include a channel for transmitting information between the above components (such as a processor and a memory). In addition to the data bus, the bus may also include a power bus, a control bus, and a status signal bus. As an example, an electronic device may include multiple processors. The processor may refer to one or more devices, circuits, and / or computing units for processing data (such as computer programs). The processor may call a computer program stored in the memory to implement the LDPC channel decoding method described in the above embodiment. Figure 5 In the example, an electronic device including 1 processor and 1 memory is taken as an example. The processor and the memory are respectively used to indicate a type of device or equipment. The quantity of each type of device or equipment can be determined according to business requirements.

[0080] An embodiment of the present application further provides a computer-readable storage medium, which includes a computer program or instructions. When the computer program or instructions are executed on a computer, the computer executes the LDPC channel decoding method described in the above embodiment.

[0081] It should be noted that in the various embodiments of the present application, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0082] Those skilled in the art should clearly understand that, for the convenience and brevity of description, the relevant technical solutions of the LDPC channel decoding method and the LDPC channel decoding device described in the above embodiments may refer to each other, and the specific working processes of the electronic device and the computer-readable storage medium may refer to the corresponding processes in the aforementioned method and device embodiments, which will not be repeated here.

[0083] A person of ordinary skill in the art will appreciate that all or part of the steps to implement the above embodiments may be accomplished by hardware, or may be accomplished by instructing the relevant hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk, or an optical disk, etc.

[0084] The above are only optional embodiments of the present application, which are only used to illustrate the technical solution of the present application rather than to limit it. Without departing from the spirit and scope of the present application, modifications, equivalent substitutions, improvements, etc. to the specific implementation methods of the present application should all be included in the protection scope of the present application.

Claims

1. A LDPC channel decoding method, characterized in that: include: According to the probability mass vector of each symbol of the LDPC code, a plurality of symbol value vectors corresponding to the LDPC code are obtained; The LDPC code is composed of a plurality of symbols; the probability mass vector of each symbol is composed of the probabilities of each symbol taking all possible values; the symbol value in each symbol value vector is associated with each symbol of the LDPC code; According to the multiple symbol value vectors corresponding to the LDPC code, each symbol value vector corresponding to the LDPC code is updated respectively; According to the symbol value in each symbol value vector corresponding to the updated LDPC code, the probability value in the preset probability matrix is ​​adjusted to obtain a decoding result of the LDPC code; The preset probability matrix is ​​used to store the probability of each symbol value.

2. The LDPC channel decoding method according to claim 1, characterized in that: The step of obtaining a plurality of symbol value vectors corresponding to the LDPC code according to the probability mass vector of each symbol of the LDPC code comprises: According to each probability value in the probability mass vector of each symbol of the LDPC code, a plurality of probability mass distribution matrices are constructed; each of the probability mass distribution matrices includes a plurality of probability mass distribution vectors; each element in each of the probability mass distribution vectors is accumulated by the corresponding probability value in the probability mass vector of each symbol of the LDPC code; A plurality of symbol value vectors corresponding to the LDPC code are obtained through the correspondence between random numbers and the plurality of probability mass distribution matrices.

3. The LDPC channel decoding method according to claim 2, characterized in that: The method of obtaining a plurality of symbol value vectors corresponding to the LDPC code by using a correspondence between a random number and a plurality of probability mass distribution matrices comprises: According to the correspondence between the random number and the elements in each probability mass distribution vector in the plurality of probability mass distribution matrices, a plurality of symbol value vectors corresponding to the LDPC code are obtained.

4. The LDPC channel decoding method according to any one of claims 1 to 3, characterized in that: The updating, according to the plurality of symbol value vectors corresponding to the LDPC code, respectively each symbol value vector corresponding to the LDPC code comprises: The symbol value in each of the symbol value vectors is updated according to the symbol values ​​in all symbol value vectors except each of the symbol value vectors in the plurality of the symbol value vectors.

5. The LDPC channel decoding method according to any one of claims 1 to 3, characterized in that: The step of adjusting the probability value in the preset probability matrix according to the symbol value in each symbol value vector corresponding to the updated LDPC code to obtain the decoding result of the LDPC code includes: According to each symbol value in each symbol value vector corresponding to the updated LDPC code, adjusting the probability value corresponding to each symbol value in the preset probability matrix; According to the adjusted preset probability matrix, updating the probability mass vector of each symbol of the LDPC code; A decoding result of the LDPC code is obtained according to the updated probability mass vector of each symbol of the LDPC code.

6. The LDPC channel decoding method according to claim 5, characterized in that: The updating of the probability mass vector of each symbol of the LDPC code according to the adjusted preset probability matrix comprises: According to the adjusted preset probability matrix and the probability mass vector of each symbol of the LDPC code, an updated probability mass vector of each symbol of the LDPC code is obtained.

7. The LDPC channel decoding method according to claim 5, characterized in that: The step of obtaining a decoding result of the LDPC code according to the updated probability mass vector of each symbol of the LDPC code comprises: Obtaining a value of each symbol of the LDPC code according to the updated probability mass vector of each symbol of the LDPC code; A decoding result of the LDPC code is obtained according to the value of each symbol of the LDPC code.

8. The LDPC channel decoding method according to claim 7, characterized in that: The step of obtaining a decoding result of the LDPC code according to a value of each symbol of the LDPC code comprises: If the value of each symbol of the LDPC code satisfies a check condition, a decoding result of the LDPC code is output; the check condition is determined according to the value of each symbol of the LDPC code and a check matrix; the check matrix includes non-zero values.

9. An LDPC channel decoding device, characterized in that: include: A symbol information generation module, used to obtain a plurality of symbol value vectors corresponding to the LDPC code according to the probability mass vector of each symbol of the LDPC code; The LDPC code is composed of a plurality of symbols; the probability mass vector of each symbol is composed of the probabilities of each symbol taking all possible values; the symbol value in each symbol value vector is associated with each symbol of the LDPC code; A check node update module, used to update each symbol value vector corresponding to the LDPC code according to the multiple symbol value vectors corresponding to the LDPC code; A decoding module, used for adjusting the probability value in the preset probability matrix according to the symbol value in each symbol value vector corresponding to the updated LDPC code, to obtain a decoding result of the LDPC code; The preset probability matrix is ​​used to store the probability of each symbol value.

10. The LDPC channel decoding device according to claim 9, characterized in that: The decoding module comprises: A probability tracking module, configured to adjust the probability value corresponding to each symbol value in the preset probability matrix according to each symbol value in each symbol value vector corresponding to the updated LDPC code; A variable node updating module, used for updating the probability mass vector of each symbol of the LDPC code according to the adjusted preset probability matrix; The decision verification module is used to obtain a decoding result of the LDPC code according to the updated probability mass vector of each symbol of the LDPC code.

11. The LDPC channel decoding device according to claim 10, characterized in that: The judgment verification module comprises: A decision module, configured to obtain a value of each symbol of the LDPC code according to the updated probability mass vector of each symbol of the LDPC code; The verification module is used to obtain a decoding result of the LDPC code according to the value of each symbol of the LDPC code.

12. An electronic device, characterized in that: The invention comprises a memory and a processor, wherein the memory stores a computer program, and when the computer program is executed by the processor, the LDPC channel decoding method according to any one of claims 1 to 8 is implemented.

13. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes a computer program or an instruction. When the computer program or the instruction is executed on a computer, the computer is enabled to execute the LDPC channel decoding method according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Multi-system symbol-level product code method for correcting random errors and long burst deletion

    CN111555760A