An OSD decoding method for LDPC codes based on sorted TEPs
By sorting TEPs and introducing OSD decoding methods for CRC verification, the error performance of LDPC codes is improved, the decoding complexity is reduced, and efficient decoding is achieved in the case of short codes.
Patent Information
- Application Number
- CN202310678778.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-09
- Publication Date
- 2025-07-04
- Estimated Expiration
- 2043-06-09
AI Technical Summary
The existing low-order OSD decoding methods have low code error performance and high complexity during LDPC decoding, making it difficult to achieve maximum likelihood decoding performance under short code length.
By sorting the test error modes (TEPs), TEPs with small weight or index and large weight are preferred to participate in recoding, and CRC verification is introduced, only the codeword estimation that passes the CRC verification is saved, and the Euclidean distance with the smallest Euclidean distance is selected as the decoding output.
Improve the error performance of low-order OSD decoding, reduce the coding complexity, and balance the decoding complexity and code error performance by reasonably setting the list length.
Smart Images

Figure CN116683919B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of communication technologies, and particularly relates to an OSD decoding method for LDPC codes based on sorted test error patterns (TEPs), which can be used in the scenario of a communication system for LDPC code channel coding. Background Art
[0002] With the continuous development of communication technologies, in order to ensure the reliability of a communication system, a channel coding technology with excellent performance is one of the key technologies for reducing the transmission error rate. As a channel coding with certain advantages in both error correction performance and delay, the Low-Density Parity-Check (LDPC) code has been widely applied in various communication systems. Although iterative decoding algorithms represented by the Belief Propagation (BP) algorithm perform excellently when decoding LDPC long codes, when the LDPC code length is short, BP-based decoding algorithms are prone to error floors. To address this problem, Ordered Statistic Decoding (OSD) was proposed by Fossorier et al. in 1995. As the order increases, OSD can achieve the performance of maximum likelihood decoding. However, since OSD decoding involves Gaussian elimination, sorting, recoding, etc., the algorithm complexity is relatively high, which limits its large-scale implementation. Especially as the order increases, the complexity of OSD will become higher and higher. Therefore, generally, lower-order OSD is more commonly used. However, there is still a certain gap between the error performance of lower-order OSD decoding and the realization of maximum likelihood decoding. Summary of the Invention
[0003] When decoding LDPC codes, aiming at the problem that there is still room for improvement in the error performance of low-order OSD decoding, the present invention proposes an OSD decoding method for LDPC codes based on sorted TEPs, aiming to improve the error performance of low-order OSD decoding. For LDPC codes, in the proposed OSD decoding method based on sorted TEPs, compared with the original OSD decoding method, there are mainly two differences: (1) A criterion for sorting TEPs is proposed, making the TEPs with a greater possibility of occurrence participate in the re-encoding and other links in OSD decoding first. From the perspective of the likelihood of TEPs, a method for calculating the index and weight of TEPs is proposed. When sorting all TEPs, first calculate their Hamming weights, and make the TEPs with smaller Hamming weights participate in re-encoding first; if the Hamming weights of TEPs are the same, then calculate their index and weight, and make the TEPs with larger index and weight participate in re-encoding first. (2) CRC check is introduced. When decoding using the OSD method at the receiving end, for the candidate codeword estimate corresponding to a certain TEP, first extract the information estimate with CRC check bits, perform CRC check, and set a list (List) with a length of Len, only store the codeword estimates that pass the CRC check. Finally, calculate the Euclidean distances between the Len codeword estimates in the list and the received sequence respectively, and select the codeword estimate with the smallest Euclidean distance as the final decoding output.
[0004] The weighted Hamming weight of a certain TEP Mainly by re-encoding the codewords And the hard decision received sequence The symbol reliability values corresponding to different positions Are added and calculated as follows:
[0005]
[0006] Obviously, maximum likelihood decoding is equivalent to finding the TEP that makes the weighted Hamming weight The smallest.
[0007] According to the fact that only K-bit TEPs are used in the OSD decoding method, the weighted Hamming weight Can be divided into two parts according to Equation (2). One part represents the likelihood of the TEP (this is because the generator matrix in OSD Is in systematic form, that is, the first K-bit codeword estimate is the information bit estimate, and the information bit estimate in OSD is obtained by adding the TEP to the hard decision sequence), denoted as The other part represents the weighted Hamming weight of the redundant bits, denoted as Their specific calculations are shown in Equations (3) and (4) respectively.
[0008]
[0009] Once a certain TEP is determined, its likelihood can be directly calculated. However, the weighted Hamming weight of the redundant bits must be obtained through re-encoding. Here, according to formula (5), using to achieve the estimation of .
[0010]
[0011] Using this estimation, equation (2) is transformed into equation (6). Since the coefficient β > 0 and β is a constant as long as the received sequence is determined, so Therefore, the maximum likelihood algorithm, which searches for the TEP that minimizes the weighted Hamming weight , is transformed into searching for the TEP that minimizes the likelihood .
[0012]
[0013] From equation (3), it can be obtained that the likelihood of the TEP is the sum of the reliability values corresponding to the positions where the value is 1. To simplify the real-value operation, using the fact that the OSD has sorted the received symbols in descending order of reliability values during the process of finding the MRB, that is, the sorting of each reliability value among all received symbol reliability values is known, and this sequence number (index) is used instead of the reliability value operation. For example, after completing the search for the MRB, the obtained descending sequence of reliability values is satisfying Take the first K to form The corresponding index sequence is [1, 2,..., K]. Define the index and weight As shown in equation (7), it represents the sum of the indices where the value in the TEP is 1. Since the smaller the value, the larger its index i. Therefore, when equation (3) is simplified to (7), the goal of finding the TEP that minimizes the likelihood is transformed into finding the TEP with the largest index and weight . Therefore, during re-encoding, the TEP with a larger index and weight is preferentially selected to perform modulo-two addition with the hard-decision received sequence corresponding to the MRB to obtain the estimated information sequence, and subsequent decoding steps such as re-encoding are carried out.
[0014]
[0015] Since there is only a likelihood when the TEP has the same Hamming weight (the number of 1s in the TEP), the smaller the The greater the relationship. Therefore, in the OSD decoding method based on sorting TEPs, the principle of sorting TEPs is mainly divided into two steps: (1) If the Hamming weights of two TEPs are different, the TEP with the smaller Hamming weight is preferentially selected to participate in the re-encoding; (2) If the Hamming weights of two TEPs are the same, the TEP with the larger index and weight is preferentially selected to participate in the re-encoding. The greater the relationship. Therefore, in the OSD decoding method based on sorting TEPs, the principle of sorting TEPs is mainly divided into two steps: (1) If the Hamming weights of two TEPs are different, the TEP with the smaller Hamming weight is preferentially selected to participate in the re-encoding; (2) If the Hamming weights of two TEPs are the same, the TEP with the larger index and weight is preferentially selected to participate in the re-encoding.
[0016] The technical solution of the present invention is as follows:
[0017] Let the information sequence of length K be m = [m0, m1,..., m K-1 After CRC encoding, r-bit CRC check bits are introduced to obtain the sequence m crc = [m′0, m1′,..., m′ K+r-1 . The information sequence with CRC check bits is subjected to LDPC encoding with a code length of N to obtain the LDPC codeword c = [c0, c1,..., c N-1 . The codeword c is modulated by BPSK to obtain the sequence x = [x0, x1,..., x N-1 . The sequence x is transmitted through an AWGN channel with a mean of 0 and a variance of σ 2 to obtain the received sequence at the receiving end as y = [y0, y1,..., y N-1 . The received sequence y = [y0, y1,..., y N-1 is hard-decided to obtain the hard-decision sequence defined as h = [h0, h1,..., h N-1 . Assume that the most reliable first K + r MRBs have been found according to the original OSD decoding method. Then, to execute the OSD decoding method based on sorting TEPs, the following inputs are required: the K + r-bit MRB sequence m0, the permutation relations λ1, λ2, the generated matrix G2 after permutation, the original received sequence y, the order L, the CRC generation polynomial G_crc, and the list length Len for saving the codewords passing the CRC check; the output of the decoding method is the codeword estimate The specific implementation steps of executing the OSD decoding method based on sorting TEPs for an L-order LDPC code are as follows, where the symbol "~" is used to represent the relevant sequence corresponding to the MRB.
[0018] The specific steps are as follows:
[0019] S1. The information sequence is CRC-encoded before transmission and then LDPC-encoded;
[0020] S2. The sequence obtained by LDPC encoding is transmitted through an AWGN channel;
[0021] S3. After receiving the transmitted information, the receiving end decodes it. The specific method is as follows:
[0022] a. Obtain the MRB sequence m0 according to the OSD decoding method;
[0023] b. Generate all test error patterns TEP based on the MRB length K + r and order L, a total of TEP are generated, and calculate the Hamming weight of each TEP and the index and weight where 0 ≤ l ≤ L, e represents the TEP, K is the length of the transmitted information sequence, and r is the length of the CRC check bits;
[0024] c. Sort all TEP in ascending order of Hamming weight and in descending order of index and weight when the Hamming weights are the same Define the sorted TEP list stored as Z = {e1, e2,..., e T}, where for all i, j ∈ [1, T], i < j, there is where the index and weight represent the sum of the indices of the positions where the element 1 is located in the TEP, that is
[0025] d. Extract e from the list Z t (in the order of t = 1 → T), 1 ≤ t ≤ T, and calculate the flipped information sequence
[0026] e. Multiply the information sequence by the generation matrix G2, where G2 is a permutation generation matrix, to obtain the codeword estimate corresponding to the current TEP that is
[0027] f. Perform an inverse permutation operation on the current codeword estimate to obtain the codeword estimate corresponding to the original transmitted codeword that is where λ1, λ2 are permutation relationships;
[0028] g. Extract the information bit estimate of the codeword with CRC from and perform CRC check (using the CRC generation polynomial G_crc). If can pass the CRC check, then store the corresponding codeword estimate into the preliminary output codeword list P, otherwise consider the information bit estimate to be incorrect and discard the corresponding codeword estimate
[0029] h. Determine whether the number of codeword sequences in the preliminary output codeword list P has reached the set list length Len. If the number of codewords in list P has reached Len, or all TEP in list Z have been verified, go to step l; if the number of codewords in list P is less than Len and there are still TEP in list Z that have not been verified, go to step d to extract e t+1 Continue with re - encoding;
[0030] l. Calculate the estimated Euclidean distance between all codewords in list P and the received sequence y, and select the codeword with the smallest Euclidean distance as the final decoded output
[0031] The beneficial effects of the present invention are mainly reflected in two points:
[0032] 1. In the OSD decoding method based on sorted TEPs proposed in the present invention, by estimating and sorting the likelihood of TEPs, the most likely to appear TEP is given priority to participate in re - encoding. Before flipping the bits in the MRB, the principle of sorting the TEPs is mainly determined in two steps: when the Hamming weights are different, preferentially select the TEP with a smaller Hamming weight to participate in re - encoding; when the Hamming weights are the same, preferentially select the TEP with a larger index and weight to participate in re - encoding. Generate a sorted list of TEPs according to this principle, with the most likely to appear TEP ranked at the front, and the likelihood of subsequent TEPs decreasing in turn, so as to more accurately locate the correct TEP and the corresponding codeword estimate, and improve the error - code performance.
[0033] 2. In the OSD decoding method based on sorted TEPs proposed in the present invention, through CRC check, use a list to save Len codeword estimates that can pass the CRC check, and select the one with the smallest Euclidean distance among the codeword estimates that pass the CRC check as the decoded output. This way of selecting the output codeword not only passes the CRC check but also uses the Euclidean distance for comparison and judgment, so it is more accurate than the original OSD decoding method in locating the correct codeword output, thus improving the error - code performance. In addition, by setting the list length Len, the number of TEPs participating in re - encoding can be determined, thereby affecting the decoding complexity. Therefore, in the method proposed in the present invention, the list length Len can be set according to actual needs to balance the decoding complexity and the error - code performance. Brief Description of the Drawings
[0034] Figure 1 is the flow chart for implementing the OSD decoding method based on sorted TEPs proposed in the present invention;
[0035] Figure 2 is the bit - error - rate performance curve of (64, 32) LDPC code under different decoding methods;
[0036] Figure 3 is the bit error rate performance curve of (64,48) LDPC code under different decoding methods;
[0037] Figure 4 is the bit error rate performance curve of (128,96) LDPC code under different decoding methods. Detailed implementation manners
[0038] The technical solution of the present invention will be described in detail below in conjunction with the accompanying drawings and simulation examples:
[0039] Figure 1 shows the implementation flowchart of the OSD decoding method based on sorted TEPs proposed by the present invention. That is, before the decoding starts, the length of the preliminary output codeword list needs to be set to Len, and the MRB sequence is found according to the original OSD decoding method. Subsequently, all TEPs are generated according to parameters such as the MRB length and the OSD order, and their Hamming weights and index and weights are calculated respectively. All TEPs are sorted in ascending order of Hamming weight and descending order of index and weight when the Hamming weights are the same. When the OSD decoding method based on sorted TEPs is executed each time, the TEP is extracted in order and exclusive-ORed with the MRB sequence to calculate the candidate information sequence. The candidate information sequence is re-encoded and inverse-permuted to obtain the corresponding codeword estimate. The codeword estimate is subjected to CRC check, and only the codeword estimate that passes the CRC check is stored in the list until the list is full. When the list is full, no new codeword estimate is calculated, but the Euclidean distances between the codeword estimates in the list and the received sequence are calculated respectively, and the codeword with the minimum Euclidean distance is obtained as the decoding output.
[0040] Here, the LDPC code constructed by PEG is used in the simulation, and the channel model is the AWGN channel with a mean of 0 and a variance of σ 2 . The modulation method is BPSK modulation. Simulations are mainly carried out for LDPC codes with different code lengths and code rates, and two different decoding methods, namely OSD and OSD based on sorted TEPs, are used respectively. The OSD order in both decoding methods is 3.
[0041] Figure 2 and Figure 3The bit error rate performance curves of (64,32) LDPC code and (64,48) LDPC code using the OSD decoding method and the OSD decoding method based on sorted TEPs are respectively shown. Among them, the CRC check bits used in the OSD decoding method based on sorted TEPs are 11 bits, and the corresponding CRC generating polynomial is [1 1 1 0 0 0 1 0 0 0 0 1]. The list length used varies according to the signal-to-noise ratio. For the (64,32) LDPC code, when the signal-to-noise ratio is less than or equal to 4 dB, the list length Len = 4; when the signal-to-noise ratio is greater than 4, the list length Len = 3. For the (64,48) LDPC code, when the signal-to-noise ratio is less than or equal to 4 dB, the list length Len = 10; when the signal-to-noise ratio is greater than 4, the list length Len = 3.
[0042] From Figure 2 and Figure 3 it can be seen that under most signal-to-noise ratio conditions, for LDPC codes, the bit error rate of the OSD decoding method based on sorted TEPs is lower than that of the OSD decoding method. When the bit error rate is 10 -4 , the (64,32) LDPC code using the OSD decoding method based on sorted TEPs has a performance gain of nearly 0.22 dB compared with the OSD decoding method. When the bit error rate is 10 -3 , the (64,48) LDPC code using the OSD decoding method based on sorted TEPs has a performance gain of nearly 0.24 dB compared with the OSD decoding method. In addition, as the signal-to-noise ratio increases, the error performance advantage of the OSD decoding method based on sorted TEPs compared with the OSD decoding method becomes more obvious.
[0043] Table 1 and Table 2 respectively count the number of TEPs participating in the re-encoding process when the (64,32) LDPC code and the (64,48) LDPC code use two OSD-like decoding methods. It can be found from the table that the number of TEPs of the OSD decoding method is determined by the order and is the same at each signal-to-noise ratio point. The number of TEPs participating in the re-encoding of the OSD decoding method based on sorted TEPs is mainly determined by the list length Len. The smaller the list length, the fewer the number of TEPs participating in the re-encoding, and the lower the computational complexity in the decoding re-encoding link. From the data in Table 1 and Table 2, it is found that for the LDPC code with a code length of 64 using the OSD decoding method based on sorted TEPs, to achieve better error performance than the original OSD under low signal-to-noise ratio conditions, the number of TEPs required is slightly more than that of the original OSD. Under high signal-to-noise ratio conditions, only fewer TEPs than the original OSD need to participate in the re-encoding to obtain better decoding performance.
[0044] Table 1 Number of TEPs Participating in Re-encoding of (64,32) LDPC Code Using Different Decoding Methods
[0045]
[0046] Table 2 Number of TEPs Participating in Recoding for (64,48) LDPC Codes with Different Decoding Methods
[0047]
[0048] Table 3 Number of TEPs Participating in Recoding for (128,96) LDPC Codes with Different Decoding Methods
[0049]
[0050] Figure 4 Table 2 and Table 3 respectively count the bit error rate performance curves and the number of TEPs participating in the recoding process for (128,96) LDPC codes using two OSD - type decoding methods. Among them, the CRC check bits used in the OSD decoding method based on sorted TEPs are 11 bits, and the corresponding CRC generating polynomial is [1 1 1 0 0 0 1 0 0 0 0 1]. From Figure 4 it can be found that the trend of its bit error rate is basically the same as that of the LDPC code with a code length of 64. The bit error rate performance of the OSD decoding method based on sorted TEPs is better than that of the original OSD decoding method. From Table 3, it can be found that by setting a reasonable list length Len, for (128,96) LDPC codes using the OSD decoding method based on sorted TEPs, only fewer TEPs need to participate in the recoding than the original OSD, and better decoding performance can also be obtained. At this time, the complexity of the OSD - type decoding method in the recoding link can be reduced.
[0051] In summary, from the above - mentioned several groups of simulation result data, it can be seen that for LDPC codes, the OSD decoding method based on sorted TEPs proposed in the present invention can achieve better bit error performance than the OSD decoding method of the same order. At the same time, in the OSD decoding method based on sorted TEPs proposed in the present invention, by setting a reasonable list length Len, this method only needs fewer TEPs to participate in the recoding than the original OSD to achieve better bit error performance, while reducing the complexity of the OSD - type decoding recoding link.
Claims
1. An OSD decoding method for LDPC codes based on sorted TEPs, characterized in that, It includes the following steps: S1. Perform CRC encoding on the information sequence before transmission, and then perform LDPC encoding; S2. Transmit the sequence obtained by LDPC encoding through an AWGN channel; S3. After the receiving end receives the transmitted information, perform decoding. The specific method is as follows: a. Obtain the MRB sequence m0 according to the OSD decoding method; b. Generate all test error patterns TEP according to the MRB length K+r and the order L, a total of TEP are generated, and calculate the Hamming weight of each TEP and the index and weight where 0 ≤ l ≤ L, e represents the TEP, K is the length of the transmitted information sequence, and r is the length of the CRC check bits; c. According to Hamming weight Increment, and for the same Hamming weight, sort the index and weight Decrease the order to sort all TEPs, and define the sorted TEP list stored as Z = {e1, e2,..., e T}, where for all i, j ∈ [1, T], i < j, there is Where the index and weight represent the sum of the indices of the positions where element 1 is located in the TEP, that is d. Extract e from list Z t , where 1 ≤ t ≤ T, calculate the flipped information sequence e. Multiply the information sequence by the generating matrix G2, where G2 is a permutation generating matrix, to obtain the codeword estimate corresponding to the current TEP That is f. Estimation of the current codeword Perform the inverse permutation operation to obtain the codeword estimate corresponding to the original transmitted codeword That is where λ1 and λ2 are permutation relations; g. Extract the information bit estimate with the CRC codeword from Perform CRC check. If it can pass the CRC check, then store the corresponding codeword estimate into the preliminary output codeword list P. Otherwise, consider the information bit estimate as incorrect and discard the corresponding codeword estimate h. Determine whether the number of codeword sequences in the preliminary output codeword list P has reached the set list length Len. If the number of codewords in list P has reached Len, or all TEP in list Z have been verified, go to step l; if the number of codewords in list P is less than Len and there are still TEP in list Z that have not been verified, go to step d to extract e t+1 Continue with re-encoding; l. Calculate the estimated values of all codewords in list P Calculate the Euclidean distance from the received sequence y, and select the codeword with the smallest Euclidean distance as the final decoded output
Citation Information
Patent Citations
Data transmission method and device, computer equipment and storage medium
CN112737729A
QC-LDPC coding transmission method based on Q matrix
CN115001509A