A decoding method, decoder, and storage medium for multivariate LDPC codes.

By employing a confidence vector update method with linear and nonlinear adjustments in multivariate LDPC code decoding, the decoding gain loss problem of the EMS algorithm is solved, thereby improving the decoding gain and system adaptability.

CN113824450BActive Publication Date: 2026-03-13SANECHIPS TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-06-18
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

Existing multivariate LDPC code decoding algorithms, such as the EMS algorithm, suffer from decoding gain loss in terms of performance and are not easy to adapt to different front-end systems.

Method used

The confidence vector of the multivariate LDPC code is updated by linear and/or nonlinear adjustment. By setting the maximum number of iterations and initializing the confidence vector, the performance of the EMS algorithm is improved and adapted to the ADC capabilities of different front-end systems.

Benefits of technology

The decoding gain was increased by 0.1dB to 0.2dB, improving the performance of the EMS algorithm, and it also has good versatility and adjustable and configurable performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113824450B_ABST
    Figure CN113824450B_ABST
Patent Text Reader

Abstract

This application discloses a decoding method, decoder, and storage medium for multivariate LDPC codes. The method includes: setting a maximum number of iterations I. max And set the current iteration number k equal to 0, and initialize the first confidence vector V2C. j→i Using the first confidence vector V2C j→i Update the second confidence vector C2V i→j According to the verification matrix H mn The codeword sequence is verified; if the verification passes, the decoding result is output; if the verification fails, the second confidence vector C2V is used. i→j Update the first confidence vector V2C j→i And let the current iteration number k = k + 1, and the current iteration number k is less than the maximum iteration number I. max When that happens, return to execute based on the first confidence vector V2C. j→i Update the second confidence vector C2V i→j The steps continue until the current iteration number k equals the maximum iteration number I. max So far, the first confidence vector V2C j→i The algorithm is updated using linear and / or nonlinear adjustments, where 0 ≤ i < m and 0 ≤ j < n. This application improves the EMS algorithm, increases decoding gain, and is adaptable to different front-end systems, exhibiting good versatility and adjustable configurable performance.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of encoding and decoding, and in particular to a decoding method, decoder and storage medium for multivariate LDPC codes. Background Technology

[0002] Low-density parity-check (LDPC) codes are block error-correcting codes with sparse parity-check matrices, applicable to almost all channels. Due to their performance being very close to the Shannon limit and their low decoding complexity and parallel decoding capabilities, LDPC codes have become a research hotspot in the field of communications in recent years. Among existing decoding methods for multivariate LDPC codes, the Extended-Min-Sum (EMS) algorithm based on the Log-likelihood ratio (LLR) has low decoding complexity and requires little storage space, making it very easy to implement in hardware and widely used in engineering practice. However, it suffers from a certain performance loss in decoding gain. Summary of the Invention

[0003] The main objective of this application is to propose a decoding method, decoder, and storage medium for multivariate LDPC codes, which can improve the EMS algorithm, increase decoding gain, and adapt to different front-end systems, exhibiting good versatility and adjustable configurability.

[0004] To achieve the above objectives, embodiments of this application provide a decoding method for multivariate LDPC codes, including: setting a maximum number of iterations I. max And set the current iteration number k equal to 0, and initialize the first confidence vector V2C. j→i Among them, the first confidence vector V2C j→i For the verification matrix H mn Each variable node VN j Transmitted to each verification node CN i The confidence vector;

[0005] Using the first confidence vector V2C j→i Update the second confidence vector C2V i→j Among them, the second confidence vector C2V i→j For each verification node CN i Passed to each variable node VN j The confidence vector;

[0006] According to the verification matrix H mn The codeword sequence is verified, wherein the codeword sequence is based on the first confidence vector V2C. j→i Obtained;

[0007] If the verification passes, the decoding result will be output.

[0008] If the verification fails, then the second confidence vector C2V is used. i→j Update the first confidence vector V2C j→i And let the current iteration number k = k + 1, and the current iteration number k is less than the maximum iteration number I. max When that happens, return to execute based on the first confidence vector V2C. j→i Update the second confidence vector C2V i→j The steps continue until the current iteration number k equals the maximum iteration number I. max Up to this point, the first confidence vector V2C j→i It is updated according to linear and / or nonlinear adjustment methods, 0≤i<m, 0≤j<n.

[0009] To achieve the above objectives, embodiments of this application propose a decoder, including: an initialization module, an update module, a verification module, a result output module, and an iterative processing module;

[0010] The initialization module is set to set the maximum number of iterations I. max And set the current iteration number k equal to 0, and initialize the first confidence vector V2C. j→i Among them, the first confidence vector V2C j→i For the verification matrix H mn Each variable node VN j Transmitted to each verification node CN i The confidence vector;

[0011] The update module is configured to utilize the first confidence vector V2C. j→i Update the second confidence vector C2V i→j Among them, the second confidence vector C2V i→j For each verification node CN i Passed to each variable node VN j The confidence vector;

[0012] The verification module is configured to verify the verification matrix H. mn The codeword sequence is verified, wherein the codeword sequence is based on the first confidence vector V2C. j→i Obtained;

[0013] The result output module is configured to output the decoding result if the verification passes.

[0014] The update module is also configured to utilize the second confidence vector C2V if the verification fails. i→jUpdate the first confidence vector V2C j→i The first confidence vector V2C j→i It is updated according to linear and / or nonlinear adjustment, 0≤i<m, 0≤j<n;

[0015] The iteration processing module is configured to set the current iteration number k = k + 1, and ensure that the current iteration number k is less than the maximum iteration number I. max When this happens, the update module is returned to perform V2C based on the first confidence vector. j→i Update the second confidence vector C2V i→j The steps continue until the current iteration number k equals the maximum iteration number I. max until.

[0016] To achieve the above objectives, embodiments of this application also propose a decoder, including: a processor, which is configured to implement the method of any of the above embodiments when executing a computer program.

[0017] To achieve the above objectives, this application provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the method of any of the above embodiments.

[0018] This application provides a decoding method, decoder, and storage medium for multivariate LDPC codes, which updates the first confidence vector V2C through linear and / or nonlinear adjustment. j→i In this way, both linear and nonlinear adjustment methods can achieve significant performance improvements, increasing the decoding gain by 0.1dB to 0.2dB. This not only improves the performance of traditional extended minimum sum decoding algorithms, but also, because the decoder employs a dual configuration of linear and nonlinear processing, it can be adapted to different front-end systems to accommodate varying ADC capabilities, exhibiting excellent versatility and adjustable configurability.

[0019] Further details regarding the above embodiments and other aspects of this application, as well as their implementations, are provided in the accompanying drawings, detailed description, and claims. Attached Figure Description

[0020] Figure 1 This is a flowchart illustrating a decoding method for a multivariate LDPC code provided in one embodiment;

[0021] Figure 2 This is one embodiment of a method for determining a third confidence vector based on linear and / or nonlinear adjustments. A flowchart illustrating the method;

[0022] Figure 3This is a decoding simulation result diagram provided in one embodiment;

[0023] Figure 4 This is a schematic diagram of the structure of a decoder provided in one embodiment;

[0024] Figure 5 This is a schematic diagram of another decoder provided in one embodiment. Detailed Implementation

[0025] It should be understood that the specific embodiments described herein are merely illustrative of this application and are not intended to limit this application.

[0026] In the following description, the use of suffixes such as "module," "part," or "unit" to denote elements is solely for the purpose of illustration and has no inherent meaning. Therefore, "module," "part," or "unit" may be used interchangeably.

[0027] LDPC codes are block error-correcting codes with sparse parity-check matrices. Their performance is very close to the Shannon limit, and they are characterized by simple description and implementation, ease of theoretical analysis and research, simple decoding, parallel operation capability, and suitability for hardware implementation. In recent years, they have become a research hotspot in the field of communications. Current research on LDPC codes mainly focuses on two aspects: one is irregular binary LDPC codes, whose performance is very close to the Shannon limit when the code length is greater than 10000; the other is medium-to-short code length multi-element LDPC codes. Multi-element LDPC codes outperform binary LDPC codes, and high-performance LDPC codes are usually irregular multi-element LDPC codes.

[0028] Due to their relatively simple implementation and superior performance compared to previous mainstream error-correcting codes, binary LDPC codes have been widely used in practice, such as in wired transmission and fifth-generation wireless communication systems. However, it is undeniable that multi-ary LDPC codes are a superior type of code, offering the following advantages over binary LDPC codes:

[0029] (1) When the code length is relatively short, multi-ary LDPC codes have better error performance: Binary LDPC codes usually require a very long code length (usually more than 10,000 bits) to achieve performance close to the Shannon limit, while multi-ary LDPC codes can construct codes with medium to long code lengths or even short code lengths with excellent performance. This makes multi-ary LDPC codes more valuable in engineering practice.

[0030] (2) Better error correction performance: The Belief Propagation (BP) decoding algorithm (a message passing algorithm that performs inference on a graphical model) is equivalent to maximum a posteriori (MAP) decoding in acyclic graphs. However, in cyclic graphs, the presence of a large number of small cycles severely degrades the performance of the Belief Propagation decoding algorithm. Eliminating small cycles is crucial for the correct convergence of iterative decoding. Since multivariate LDPC codes combine multiple bits into a single multivariate symbol, they have the potential to eliminate small cycles in the Tanner graph of LDPC codes (which represents the parity-check matrix of LDPC), thus achieving better error correction performance.

[0031] (3) Strong resistance to burst errors: Errors generated in actual channels are often burst errors or a combination of burst errors and random errors. For example, in wireless and network channels, channel errors are often bursty, and binary LDPC codes do not have strong resistance to burst errors. In practical systems, they often need to be concatenated with Reed-Solomon (RS) codes or BCH (Bose-Ray Chaudhuri-Hocquenghem) codes. Multi-ary LDPC codes can combine multiple burst bit errors into fewer multi-ary symbol errors, thus their resistance to burst errors is better than that of binary LDPC codes.

[0032] (4) Suitable for high-speed transmission: Multi-element LDPC codes are designed based on high-order finite field, making them very suitable for combination with high-order modulation schemes and multi-antenna systems, thereby providing higher data transmission rates and spectral efficiency. Using multi-element LDPC codes, efficient single / multi-layer coding modulation systems can be designed.

[0033] In summary, it can be seen that multi-element LDPC codes have greater application value and prospects. Currently, there is also exploration into the practical application value of multi-element LDPC codes, such as their combination with higher-order modulation systems, their application in multiple-in multiple-out (MIMO) channels, and their application in satellite and deep space communications.

[0034] For LDPC decoding, the performance of very long LDPC codes in the multi-ary GF(q) field is close to the Shannon limit, where q is the original length of the transmitted confidence vector. Meanwhile, the error performance of medium and short LDPC codes improves with the increase of q, at the cost of increased decoding complexity.

[0035] Existing decoding algorithms for multivariate LDPC codes mainly include BP decoding, BP algorithms based on the Fast Fourier Transform (FFT), and EMS algorithms. The first two algorithms have high complexity, especially the BP decoding algorithm. Graph-based BP decoding is the most basic decoding algorithm for multivariate LDPC codes. The biggest difference between BP decoders for multivariate LDPC codes and those for binary LDPC codes lies in the fact that the messages transmitted between nodes are q probability measures or q-1 log-likelihood ratio measures. Therefore, the computational complexity of each check node is exponentially related to the value of q, which results in a considerable amount of computation when the order q of the finite field is large. Therefore, BP decoders can only be applied in situations where q is not very large. Using an FFT-based BP algorithm can reduce the computational complexity of the check node to O(qlog₂q), which significantly reduces the algorithm complexity. However, this algorithm requires exponential operations and real number multiplication, which is not conducive to hardware implementation.

[0036] The FFT-BP algorithm based on the logarithmic field can further reduce the decoding complexity, while the EMS algorithm based on the log-likelihood ratio simplifies the BP algorithm, reducing the complexity significantly and the required storage space, making it very easy to implement in hardware and widely used in engineering practice. However, due to the simplification, there is a certain loss in performance.

[0037] To address the aforementioned issues, embodiments of this application provide a decoding method, decoder, and storage medium for multivariate LDPC codes, which can improve the EMS algorithm, increase decoding gain, and adapt to different front-end systems, exhibiting good versatility and adjustable configurability.

[0038] In this application, the terms "system" and "network" are often used interchangeably. The various embodiments described below can be executed individually or in combination with each other; this application does not impose specific limitations on these embodiments.

[0039] The following describes the decoding method, decoder, and storage medium of multivariate LDPC codes, as well as their technical effects.

[0040] The method provided in this embodiment is based on the EMS algorithm. In the EMS algorithm, the transmitted confidence vector (such as the first confidence vector V2C mentioned in the following embodiment) j→i Second confidence vector C2V i→j The length of the field is reduced from q to n. m n finite field elements m << q), that is, q is the first confidence vector V2C transmitted. j→i Second confidence vector C2V i→j The original length, nm The first confidence vector V2C to be transmitted j→i Second confidence vector C2V i→j The actual length. That is, only the value of the log-likelihood ratio (LLR value, hereinafter referred to as the LLR value) with the smallest (i.e., the highest confidence) is retained in the confidence vector. m A finite field element.

[0041] This embodiment provides a decoding method for multivariate LDPC codes, the method comprising:

[0042] Set the maximum number of iterations I max And set the current iteration number k equal to 0, and initialize the first confidence vector V2C. j→i Among them, the first confidence vector V2C j→i For the verification matrix H mn Each variable node VN j Transmitted to each verification node CN i The confidence vector;

[0043] Using the first confidence vector V2C j→i Update the second confidence vector C2V i→j Among them, the second confidence vector C2V i→j For each verification node CN i Passed to each variable node VN j The confidence vector;

[0044] According to the check matrix H mn The codeword sequence is verified, where the codeword sequence is based on the first confidence vector V2C. j→i Obtained;

[0045] If the verification passes, the decoding result will be output.

[0046] If the verification fails, then the second confidence vector C2V is used. i→j Update the first confidence vector V2C j→i And let the current iteration number k = k + 1, and the current iteration number k is less than the maximum iteration number I. max When that happens, return to execute based on the first confidence vector V2C. j→i Update the second confidence vector C2V i→j The steps continue until the current iteration number k equals the maximum iteration number I. max So far, the first confidence vector V2C j→i It is updated according to linear and / or nonlinear adjustment methods, 0≤i<m, 0≤j<n.

[0047] For details, please refer to Figure 1 , Figure 1 A flowchart illustrating a decoding method for a multivariate LDPC code according to an embodiment is shown. The method provided in this embodiment is applicable to decoders and includes the following steps.

[0048] S110, Set the maximum number of iterations I max And set the current iteration number k = 0.

[0049] The multivariate LDPC codeword sequence c = (c0, c1, ..., c) generated by the encoder n-1 After modulation, the sequence is transmitted and received at the receiving end (such as a decoder) as the received sequence y = (y0, y1, ..., y2). n-1 ), where y j =(y j,0 ,y j,1 ,…,y j,r-1 ) represents the code character c j The corresponding channel received symbol information, c j ∈GF(q),q=2 r , 0 ≤ j < n. For a parity check matrix H of size m × n... mn H mn Each element h in i,j All are elements in GF(q). The parity-check matrix H mn Each row in the file corresponds to a check node CN. i Each column corresponds to a variable node VN j .

[0050] Using the parity-check matrix H of multivariate LDPC codes mn The received sequence y can be directly verified. Before verification, the maximum number of iterations I needs to be set. max And set the current iteration number k = 0. Maximum iteration number I max The value can be set according to actual needs, such as 50 times, 100 times, etc.

[0051] S120. Initialize each variable node VN j Transmitted to each verification node CN i First confidence vector V2C j→i .

[0052] If h i,j If ≠0, then check node CN i and variable node VN j They are interconnected and can exchange information. This is achieved through variable nodes VN. j Passed to the connected verification node CN i The confidence vector is represented as V2C j→i By the verification node CN iPassed to the connected variable node VN j The confidence vector is represented as C2V i→j , where 0≤i<m, 0≤j<n.

[0053] Specifically, initialize the first confidence vector V2C. j→i The method may include: the decoder based on the received symbol vector y j Calculate the confidence vector L of the received sequence j According to the variable node initialization rules, using the confidence vector L j Initialize the first confidence vector V2C j→i .

[0054] Understandably, the first confidence vector V2C j→i It is a VN containing various variable nodes. j Passed to adjacent check nodes CN i All confidence vectors are a set of vectors.

[0055] S130, Using the first confidence vector V2C j→i Update the CN of each verification node i Passed to each variable node VN j The second confidence vector C2V i→j .

[0056] Specifically, update the second confidence vector C2V. i→j The method may include: the decoder updates the check node according to the check node update rule, using the first confidence vector V2C. j→i Update the second confidence vector C2V i→j .

[0057] For each verification node CN i Receives the first confidence vector V2C passed from all connected variable nodes. j→i Calculate the second confidence vector C2V i→j :

[0058]

[0059] S140, According to the verification matrix H mn The codeword sequence is verified.

[0060] The codeword sequence is based on the first confidence vector V2C. j→i Obtained.

[0061] Specifically, methods for verifying codeword sequences can include:

[0062] Step 1: Based on the first confidence vector V2C j→iObtain the codeword sequence

[0063] Step 2: Based on the verification matrix H mn Calculate the checksum

[0064] Step 3: Determine if the checksum is 0.

[0065] S150. If the verification passes, output the decoding result.

[0066] Referring to the description in step S140, if the checksum s = 0, it indicates successful decoding (i.e., the check passes), and the codeword sequence is... If the decoding result is correct, output the correct result; otherwise, continue with step S160 below.

[0067] S160. If the verification fails, then use the second confidence vector C2V. i→j Update the first confidence vector V2C j→i .

[0068] Among them, the first confidence vector V2C is updated. j→i The method may include: the decoder using the second confidence vector C2V according to the variable node update rule. i→j Update the first confidence vector V2C j→i .

[0069] For example, update the first confidence vector V2C j→i The method can be implemented in the following three steps:

[0070] Step 1: If the current iteration number k≠0, determine the third confidence vector according to the linear adjustment and / or nonlinear adjustment method. Among them, the third confidence vector It is the second confidence vector C2V i→j qn m A finite field element, where q is the first confidence vector V2C passed. j→i Second confidence vector C2V i→j The original length, n m The first confidence vector V2C to be transmitted j→i Second confidence vector C2V i→j The actual length.

[0071] The above qn m The finite field elements are determined by the second confidence vector C2V. i→j Discarded (also known as pruning) qn m A finite field element, that is, qn m The elements of the finite field do not participate in the first confidence vector V2C.j→i Update processing.

[0072] Step 2: Based on the third confidence vector Calculate the first confidence vector V2C j→i .

[0073] Wherein, assuming C2V f→j It is a connected verification node CN f Passed to variable node VN j The set of confidence vectors, the set size is n m (n m <<q). Using VN j All received confidence vectors C2V f→j (f∈M,f≠i), calculate VN j Passed to CN i First confidence vector V2C j→i .

[0074]

[0075] h i,j For the verification matrix H mn The elements in for h i,j inverse (i.e.) C2V f→j For verifying node CN f Passed to variable node VN j The set of confidence vectors of size n m , It is to convert each confidence vector C2V i→j The values ​​of the log-likelihood ratios of identical elements in L are summed. j This is the confidence vector of the received sequence. It involves sorting the elements in the confidence vector in ascending order and selecting the top n. m A finite field element, and the first n elements m Each element of a finite field is distinct, Rs j→i It is the first n m A vector consisting of elements of a finite field, R j→i It is the first n m The vector of values ​​for the log-likelihood ratios corresponding to the elements of a finite field.

[0076] Step 3: Determine the first confidence vector V2C j→i The minimum value of the log-likelihood ratio LLR min and the first confidence vector V2C j→i The value of the log-likelihood ratio of each element minus the LLR min .

[0077] For step 1 above, the traditional method calculates the third confidence vector. The following formula is usually used:

[0078] offset is the offset value, and offset ≥ 0.

[0079] From the perspective of LLR principles, as the signal-to-noise ratio changes, its average amplitude will show an increasing trend (changing towards a higher signal-to-noise ratio range) or a decreasing trend (changing towards a lower signal-to-noise ratio range). Therefore, adding a fixed offset constitutes... The set-based approach may incur a performance penalty (ranging from 0.1 to 0.2 dB), so a fixed offset cannot provide consistent decoding performance across the entire operating signal-to-noise ratio range. This detail, however, has a significant impact on the performance of the extended minimum sum algorithm. Therefore, this application proposes a method for determining the third confidence vector based on linear and / or nonlinear adjustments. The proposed method can improve the EMS algorithm, increase decoding gain, and adapt to different front-end systems, exhibiting good versatility and adjustable configurability.

[0080] For details, please refer to Figure 2 , Figure 2 An embodiment is shown that provides a method for determining a third confidence vector based on linear and / or nonlinear adjustments. The flowchart of the method is shown below. The method includes the following steps.

[0081] S210. Determine the linear adjustment factor. linear and nonlinear adjustment factor non-linear .

[0082] S220, Based on the linear adjustment factor (factor) linear Adjusting the second confidence vector C2V i→j The largest confidence vector in the matrix, and the vector based on the nonlinear adjustment factor. non-linear Adjust the offset according to the adjusted second confidence vector C2V. i→j The third confidence vector is obtained by combining the largest confidence vector and the adjusted offset.

[0083] Among them, the third confidence vector The following formula is used for calculation:

[0084]

[0085] Where max(C2V) i→j) represents the second confidence vector C2V i→j The largest confidence vector in F offset (C2V i→j ) represents the offset.

[0086] For a number of elements n m A set of confidence vectors Extract Two confidence vectors in the set and Its superscript indicates that the element is in the second confidence vector C2V i→j The index position in the table. Calculate their relative differences. because The set is sorted in ascending order based on the confidence scores, so... This is the minimum value; the relative difference is always greater than zero. Then, the likelihood offset (positive value) is dynamically calculated using the natural logarithm |ln(·)|. The corresponding offset F... offset (C2V i→j The following formula is used for calculation:

[0087]

[0088] C2V f→j It is a connected verification node CN f Passed to variable node VN j The set of confidence vectors, the set size is n m Optional, as the element of the minuend. Use the last element

[0089] For the linear adjustment method: referring to the normalization principle, a linear adjustment factor (factor) is introduced. linear participate Set assignment processing, i.e., setting... The maximum value in the set is linearly amplified. Combined with a non-linear real-time adjustment method, the result can be obtained...

[0090] In one embodiment, the linear adjustment factor is... linear The value of is greater than or equal to 1; non-linear adjustment factor. non-linear The value of is greater than or equal to 0.

[0091] linear adjustment factor linear The choice of value is based on the application implementation; its value is determined by the specific application implementation. Where N is a finite set of non-zero positive integers. The specific value is related to the multivariate LDPC parity-check matrix used in the actual application and can be obtained through simulation. Its processing can be conveniently implemented using a shift-add method, which does not introduce too much complexity compared to the traditional EMS algorithm. Furthermore, due to the linearity of its algorithm, it has relatively stable and consistent performance throughout the entire working range, while not placing excessive demands on the performance of the analog-to-digital converter (ADC) of the front-end system.

[0092] Nonlinear adjustment factor non-linear Primarily used to control the enabling of the nonlinear component, its typical value is {0,1}. Nonlinear adjustment factor. non-linear The value of can also be any other positive real number that is not zero, used to adjust the correction weights of the nonlinear part. This application does not impose any specific restrictions on this.

[0093] In one embodiment, when the linear adjustment factor is... linear The value of is 1, and the non-linear adjustment factor is 1. non-linear When the value is 1, it means that linear adjustment is off and nonlinear adjustment is on;

[0094] When the nonlinear adjustment factor is factor non-linear When the value is 0, it means that non-linear adjustment is off and linear adjustment is on.

[0095] Furthermore, by employing a nonlinear adjustment method, dynamic offset operations can be performed in real time based on the received LLR, avoiding performance variations caused by the offset value across different signal-to-noise ratio ranges. The calculation of the nonlinear processing ln(·) can be accomplished using a lookup table.

[0096] The solution provided in this application achieves significant performance improvements using both linear and nonlinear adjustment methods, increasing decoding gain by 0.1dB to 0.2dB. The nonlinear adjustment method, in particular, exhibits superior performance in the high signal-to-noise ratio range. In certain unstable transmission scenarios, its flexible and configurable characteristics enable the implementation of multiple adjustment modes, including linear, nonlinear, and hybrid linear-nonlinear adjustments.

[0097] Compared with existing technologies, this application not only improves the performance of traditional extended minimum and decoding algorithms, but also adapts to different front-end systems due to the dual configuration of linear and nonlinear processing in the decoder, so as to cope with the different ADC capabilities of different systems, and has good versatility and adjustable and configurable performance.

[0098] S170. Let the current iteration number k = k + 1, and determine whether the current iteration number k is less than the maximum iteration number I. max .

[0099] If the checksum s≠0, it represents a codeword sequence. This is not correct decoding information; further decoding iterations are needed. At this point, increment the current iteration count by one and check if the current iteration count k is less than the maximum iteration count I. max .

[0100] S180. If the current iteration number k is equal to the maximum iteration number I. max If the code fails, the decoding process will terminate and a declaration of decoding failure will be made.

[0101] The current iteration number k is equal to the maximum iteration number I. max If the decoding fails, it means that it is no longer possible to continue iterating the decoding process, and the decoding will terminate and the decoding will be declared as failed.

[0102] S190. If the current iteration number k is less than the maximum iteration number I. max If so, return to step S130.

[0103] For example, the decoding method of multivariate LDPC codes provided in this application is illustrated by taking the LDPC codes on GF(64) used in the BeiDou system as a reference codebook.

[0104] The B-CNAV2 navigation message in the BeiDou system uses 64-bit LDPC(96,48) encoding, where each code character is also composed of 6 bits, defined by the primitive polynomial p(x) = 1 + x + x 6 finite field GF(2) 6 The mapping between multi-base symbols and binary bits uses vector representation, with the most significant bit first. The information length is k = 48 code characters, i.e., 288 bits. Its parity check matrix is ​​a 48×96 sparse matrix H. 48,96 Defined on the primitive polynomial p(x) = 1 + x + x 6 finite field GF(2) 6 The first 48×48 part corresponds to the information symbol, and the last 48×48 part corresponds to the check symbol. The code rate is 1 / 2.

[0105] First, the log-likelihood ratio (LLR) value used by the decoder is obtained from the received symbols received from the receiver. Assume the noise mean of the Additive White Gaussian Noise (AWGN) channel is 0, and the variance is σ. 2 Based on the received symbol vector y corresponding to each code character. j Calculate the confidence vector L of the received sequence jAll q finite field elements x∈GF(q) and their corresponding log-likelihood ratios LLR(x) together constitute the confidence vector L. j L j The l-th element (0 ≤ l < q) consists of the l-th finite field symbol x and its LLR value. The confidence vector L of the received sequence... j The log-likelihood ratio of the finite field symbol x is:

[0106]

[0107] Where r = log2(q), Is GF(q) such that the probability P(y) j The largest finite field element of |x) is the one that directly corresponds to the receiving symbol y. j =(y j,0 ,y j,1 ,...,y j,r-1 The element obtained after bit-by-bit hard decision. Finite field element x and The corresponding bit sequences are x = (x0, x1, ..., x...). r-1 )and

[0108] In the extended minimum sum decoding algorithm, the confidence vector L is passed. j The length is reduced from q finite field elements to n m n finite field elements m << q). That is, only the n values ​​with the smallest LLR (i.e., the highest confidence) are retained in the confidence vector. m n is a finite field element. In this embodiment, n m =16.

[0109] 1. Set the maximum number of iterations I max =50, let the current iteration number k=0.

[0110] 2. Based on the received symbol vector y j Calculate the confidence vector L of the received sequence j According to the variable node initialization rules, using the confidence vector L j Initialize the first confidence vector V2C j→i .

[0111] 3. Using the first confidence vector V2C j→i Update the second confidence vector C2V i→j .

[0112] 4. Based on the verification matrix H mn The codeword sequence is verified, where the codeword sequence is based on the first confidence vector V2C. j→i Obtained.

[0113] 5. If the verification passes, output the decoding result.

[0114] 6. If the verification fails, then use the second confidence vector C2V. i→j Update the first confidence vector V2C j→i .

[0115] 7. Let the current iteration number k = k + 1, and determine whether the current iteration number k is less than the maximum iteration number I. max .

[0116] 8. If the current iteration number k equals the maximum iteration number I max If the code fails, the decoding process will terminate and a declaration of decoding failure will be made.

[0117] 9. If the current iteration number k is less than the maximum iteration number I max If so, return to step 3.

[0118] For the above 6, update the first confidence vector V2C. j→i The steps may include:

[0119] Assuming C2V f→j It is a connected verification node CN f Passed to variable node VN j The set of confidence vectors, the set size is n m (n m <<q). Using VN j All received confidence vectors C2V f→j (f∈M,f≠i), calculate VN j Passed to CN i Confidence vector V2C j→i . Among them, h i,j For the verification matrix H mn The elements in for h i,j inverse (i.e.) C2V f→j For verifying node CN f Passed to variable node VN j The set of confidence vectors of size n m , It is to convert each confidence vector C2V i→j The values ​​of the log-likelihood ratios of identical elements in L are summed. j This is the confidence vector of the received sequence. It involves sorting the elements in the confidence vector in ascending order and selecting the top n. m A finite field element, and the first n elements mEach element of a finite field is distinct, Rs j→i It is the first n m A vector consisting of elements of a finite field, R j→i It is the first n m The vector of values ​​for the log-likelihood ratios corresponding to the elements of a finite field.

[0120] The third confidence vector is determined based on linear and / or nonlinear adjustment methods.

[0121]

[0122] Where max(C2V) i→j ) represents the confidence vector C2V i→j The largest confidence vector in F offset (C2V i→j ) represents the offset.

[0123] For linear adjustment mode: factor linear =1.25; factor non-linear =0.

[0124] That is, the third confidence vector

[0125] For non-linear adjustment modes: factor linear =1; factor non-linear =1; k=15.

[0126] That is, the third confidence vector

[0127] In each confidence vector V2C j→i After the calculation is completed, the confidence vector V2C is determined. j→i The minimum value of the log-likelihood ratio LLR min And the confidence vector V2C j→i The value of the log-likelihood ratio of each element minus the LLR min .

[0128] After decoding using the above method, the simulation results are as follows: Figure 3 As shown. Figure 3 A decoding simulation result diagram provided by one embodiment is shown. It can be seen that both the linear adjustment method and the nonlinear adjustment method achieve an improvement gain of more than 0.1dB. At the same time, the nonlinear method has a better slope performance curve in the high signal-to-noise ratio range, and the increased complexity is within an acceptable range.

[0129] This application provides a decoding method for multivariate LDPC codes, including: setting a maximum number of iterations I.max And set the current iteration number k equal to 0, and initialize the first confidence vector V2C. j→i Among them, the first confidence vector V2C j→i For the verification matrix H mn Each variable node VN j Transmitted to each verification node CN i The confidence vector; using the first confidence vector V2C j→i Update the second confidence vector C2V i→j Among them, the second confidence vector C2V i→j For each verification node CN i Passed to each variable node VN j The confidence vector; based on the verification matrix H mn The codeword sequence is verified, where the codeword sequence is based on the first confidence vector V2C. j→i If the verification passes, the decoding result is output; if the verification fails, the second confidence vector C2V is used. i→j Update the first confidence vector V2C j→i And let the current iteration number k = k + 1, and the current iteration number k is less than the maximum iteration number I. max When that happens, return to execute based on the first confidence vector V2C. j→i Update the second confidence vector C2V i→j The steps continue until the current iteration number k equals the maximum iteration number I. max So far, the first confidence vector V2C j→i The algorithm is updated using linear and / or nonlinear adjustments, where 0 ≤ i < m and 0 ≤ j < n. This application improves the EMS algorithm, increases decoding gain, and is adaptable to different front-end systems, exhibiting good versatility and adjustable configurable performance.

[0130] Figure 4 A schematic diagram of the structure of a decoder provided in one embodiment is shown, as follows: Figure 4 As shown, it includes: initialization module 10, update module 11, verification module 12, result output module 13, and iterative processing module 14.

[0131] Initialize module 10 and set it to set the maximum number of iterations I. max And set the current iteration number k equal to 0, and initialize the first confidence vector V2C. j→i Among them, the first confidence vector V2C j→i For the verification matrix H mn Each variable node VN j Transmitted to each verification node CN i The confidence vector;

[0132] Update module 11, set it to use the first confidence vector V2C j→i Update the second confidence vector C2V i→j Among them, the second confidence vector C2V i→j For each verification node CN i Passed to each variable node VN j The confidence vector;

[0133] Verification module 12 is configured to verify the verification matrix H. mn The codeword sequence is verified, where the codeword sequence is based on the first confidence vector V2C. j→i Obtained;

[0134] Result output module 13 is configured to output the decoding result if the verification passes.

[0135] The update module 11 is also configured to use the second confidence vector C2V if the verification fails. i→j Update the first confidence vector V2C j→i Among them, the first confidence vector V2C j→i It is updated according to linear and / or nonlinear adjustment, 0≤i<m, 0≤j<n;

[0136] The iteration processing module 14 is configured to, if the verification fails, set the current iteration number k = k + 1, and ensure that the current iteration number k is less than the maximum iteration number I. max When this happens, the update module 10 performs the update based on the first confidence vector V2C. j→i Update the second confidence vector C2V i→j The steps continue until the current iteration number k equals the maximum iteration number I. max until.

[0137] The decoder provided in this embodiment is a decoding method for multivariate LDPC codes as described in the above embodiment. The decoding principle and technical effect of the decoder provided in this embodiment are similar, and will not be repeated here.

[0138] In one embodiment, the update module 11 is configured to determine the third confidence vector based on linear adjustment and / or nonlinear adjustment if the current iteration number k ≠ 0. Among them, the third confidence vector It is the second confidence vector C2V i→j qn m A finite field element, where q is the first confidence vector V2C passed. j→i Second confidence vector C2V i→j The original length, n m The first confidence vector V2C to be transmittedj→i Second confidence vector C2V i→j The actual length; based on the third confidence vector Calculate the first confidence vector V2C j→i Determine the first confidence vector V2C. j→i The minimum value of the log-likelihood ratio LLR min and the first confidence vector V2C j→i The value of the log-likelihood ratio of each element minus the LLR min .

[0139] In one embodiment, the update module 11 is configured to determine the linear adjustment factor. linear and nonlinear adjustment factor non-linear Based on the linear adjustment factor linear Adjusting the second confidence vector C2V i→j The largest confidence vector in the matrix, and the vector based on the nonlinear adjustment factor. non-linear Adjust the offset according to the adjusted second confidence vector C2V. i→j The third confidence vector is obtained by combining the largest confidence vector and the adjusted offset.

[0140] In one embodiment, the third confidence vector Equal to linear adjustment factor linear With the second confidence vector C2V i→j The product of the largest confidence vectors and the nonlinear adjustment factor. non-linear The sum of the products of the offset and the product of the offset.

[0141] In one embodiment, the offset F offset (C2V i→j The following formula is used for calculation:

[0142]

[0143] Wherein, the superscript indicates that the element is in the second confidence vector C2V i→j The index position in the table.

[0144] In one embodiment, the linear adjustment factor is... linear The value of is greater than or equal to 1; non-linear adjustment factor. non-linear The value of is greater than or equal to 0.

[0145] In one embodiment, the linear adjustment factor is... linear The value is Nonlinear adjustment factornon-linear The value of is {0, 1}; where N is a finite set of non-zero positive integers.

[0146] In one embodiment, when the linear adjustment factor is... linear The value of is 1, and the non-linear adjustment factor is 1. non-linear When the value of is 1, linear adjustment is turned off and nonlinear adjustment is turned on;

[0147] When the nonlinear adjustment factor is factor non-linear When the value of is 0, non-linear adjustment is turned off and linear adjustment is turned on.

[0148] This application also provides a decoder, including a processor, which is configured to implement the methods provided in any embodiment of this application when executing a computer program. Figure 5 A schematic diagram of another decoder provided in one embodiment is shown below. Figure 5 As shown, the decoder includes a processor 60, a memory 61, and a communication interface 62; the number of processors 60 in the decoder can be one or more. Figure 5 Taking a processor 60 as an example; the processor 60, memory 61, and communication interface 62 in the decoder can be connected via a bus or other means. Figure 5 Taking the bus connection as an example, a bus can refer to one or more of several bus architectures, including a memory bus or memory controller, a peripheral bus, a graphics acceleration port, a processor, or a local bus that uses any of the various bus architectures.

[0149] The memory 61, as a computer-readable storage medium, can be configured to store software programs, computer-executable programs, and modules, such as the program instructions / modules corresponding to the methods in the embodiments of this application. The processor 60 executes at least one functional application and data processing of the decoder by running the software programs, instructions, and modules stored in the memory 61, that is, it implements the above-described decoding method for multi-element LDPC codes.

[0150] Memory 61 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the decoder. Furthermore, memory 61 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device. In some instances, memory 61 may include memory remotely located relative to processor 60, which can be connected to the decoder via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.

[0151] Communication interface 62 can be configured to receive and send data.

[0152] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the methods provided in any embodiment of this application.

[0153] The computer storage medium in this application embodiment can be any combination of one or more computer-readable media. The computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. For example, a computer-readable storage medium can be—but is not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. Computer-readable storage media include (a non-exhaustive list): electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), electrically erasable, programmable read-only memory (EPROM), flash memory, optical fiber, portable compact disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this application, the computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.

[0154] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, the data signals carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, which can send, propagate, or transmit programs for use by or in conjunction with an instruction execution system, apparatus, or device.

[0155] Program code contained on a computer-readable medium may be transmitted using any suitable medium, including—but not limited to—wireless, wire, optical fiber, radio frequency (RF), or any suitable combination thereof.

[0156] Computer program code for performing the operations of this disclosure can be written in one or more programming languages ​​or a combination of programming languages, including object-oriented programming languages ​​such as Java, Smalltalk, C++, Ruby, and Go, as well as conventional procedural programming languages ​​such as "C" or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a Local Area Network (LAN) or a Wide Area Network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0157] Those skilled in the art will understand that the term user terminal encompasses any suitable type of wireless user equipment, such as mobile phones, portable data processing devices, portable web browsers, or vehicle-mounted mobile stations.

[0158] Generally, the various embodiments of this application can be implemented in hardware or dedicated circuitry, software, logic, or any combination thereof. For example, some aspects can be implemented in hardware, while others can be implemented in firmware or software that can be executed by a controller, microprocessor, or other computing device, although this application is not limited thereto.

[0159] Embodiments of this application can be implemented by executing computer program instructions through the data processor of a mobile device, for example, in a processor entity, or through hardware, or through a combination of software and hardware. The computer program instructions can be assembly instructions, Instruction Set Architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages.

[0160] Any block diagram of logical flow in the accompanying drawings of this application may represent program steps, or may represent interconnected logic circuits, modules, and functions, or may represent a combination of program steps and logic circuits, modules, and functions. The computer program may be stored in memory. The memory may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as, but not limited to, read-only memory (ROM), random access memory (RAM), optical storage devices and systems (Digital Multifunction Discs, DVDs, or CDs), etc. Computer-readable media may include non-transitory storage media. The data processor may be of any type suitable to the local technical environment, such as, but not limited to, general-purpose computers, special-purpose computers, microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and processors based on multi-core processor architectures.

[0161] The preferred embodiments of this application have been described above with reference to the accompanying drawings, but this does not limit the scope of the claims. Any modifications, equivalent substitutions, and improvements made by those skilled in the art without departing from the scope and spirit of this application shall be within the scope of the claims.

Claims

1. A decoding method of a multi-variate LDPC code, characterized by, The method comprises the steps that: Setting a maximum number of iterations and let the current iteration number be equal to 0, initializing a first belief vector where the first belief vector is a belief vector transmitted to each check node of the check matrix H by each variable node of the check matrix H; updating a second belief vector using the first belief vector where the second belief vector is a belief vector passed to each variable node from each check node ​​ According to the check matrix The code word sequence is checked, wherein the code word sequence is obtained according to the first confidence vector The code word sequence is checked, wherein the code word sequence is obtained according to the first confidence vector If the check passes, output the decoding result; If the verification fails, then the second confidence vector is used. Update the first confidence vector and let the current iteration number And in the current iteration number Less than the maximum number of iterations When that happens, return to execute based on the first confidence vector. Update the second confidence vector The steps continue until the current iteration number. Equal to the maximum number of iterations So far, where the first confidence vector It is updated based on linear and / or nonlinear adjustments. , ; updating the first confidence vector comprising: if the current iteration number is determined according to a linear adjustment and / or a nonlinear adjustment manner , wherein the third confidence vector is a finite field element of the second confidence vector , original length of the delivered first confidence vector and the second confidence vector , actual length of the delivered first confidence vector and the second confidence vector . According to the third confidence vector , the first confidence vector is calculated determining the first confidence vector the minimum value of the log likelihood ratio and subtracting from the value of the log likelihood ratio each element of the first confidence vector .

2. The method of claim 1, wherein, determining the third confidence vector according to a linear adjustment and / or a nonlinear adjustment comprising: determining a linear adjustment factor and a non-linear adjustment factor ; According to the linear adjustment factor adjusting the second confidence vector with the largest confidence vector, and according to the non-linear adjustment factor adjusting an offset, to obtain the third confidence vector from the adjusted second confidence vector with the largest confidence vector and the adjusted offset.

3. The method of claim 2, wherein, the third confidence vector a product of the maximum confidence vector in the second confidence vector and the nonlinear adjustment factor a sum of a product of the maximum confidence vector in the second confidence vector and the offset.

4. The method of claim 3, wherein, The offset is calculated by the following formula: , ; wherein the upper index denotes the index position of the element in the second confidence vector wherein is an offset.

5. The method according to claim 2 or 3, characterized in that, the linear adjustment factor has a value greater than or equal to 1; the non-linear adjustment factor has a value greater than or equal to 0.

6. The method of claim 5, wherein, the linear adjustment factor has a value of ; the non-linear adjustment factor has a value of ; wherein is a finite number of non-zero positive integer set.

7. The method of claim 5, wherein, when the linear adjustment factor has a value of 1 and the non-linear adjustment factor has a value of 1, linear adjustment is off and non-linear adjustment is on; When the value of the non-linear adjustment factor is 0, non-linear adjustment is off and linear adjustment is on.

8. A decoder, characterized in that The method comprises the steps that: The processor is configured to implement the decoding method of the multi-element LDPC code according to any one of claims 1-7 when executing the computer program.

9. A computer readable storage medium storing a computer program, characterized in that, The computer program is configured to implement the decoding method of the multi-element LDPC code according to any one of claims 1-7 when executed by the processor.

Citation Information

Patent Citations

  • multi-system LDPC decoding system and method

    CN109802688A

  • Non-binary decoding using tensor product transforms

    US20180034484A1