Column hierarchical message passing decoding method and device and related components

By decoding the base matrix column by column and updating the message value of the decoding node, the problem of large storage overhead in the existing decoding solution is solved, the demand for low-power LDPC decoding is realized, and the storage demand is reduced.

CN120238138APending Publication Date: 2025-07-01成都芯忆联信息技术有限公司
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202510327238.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-19
Publication Date
2025-07-01

AI Technical Summary

Technical Problem

In the existing two-bit wide message delivery decoding scheme, the storage overhead of the decoding node is too high, especially in practical application scenarios where the code length is tens of thousands of bits, it is difficult to meet the needs of low-power LDPC decoding.

Method used

By performing column-by-coding of the base matrix, the initial prior channel information and the second hard decision sequence of the variable node are calculated, and the message of the check node is updated using the initial and iterated V2C symbol values ​​to reduce the storage overhead of the decoding node during the iteration process.

Benefits of technology

It effectively reduces the storage overhead of decoding nodes during the iteration process and reduces storage requirements, and is suitable for low-power LDPC decoding applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120238138A_ABST
    Figure CN120238138A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a column hierarchical message passing decoding method, a column hierarchical message passing decoding device and a related component, and the decoding method comprises the steps: carrying out the column-by-column decoding of a basis matrix, and calculating the initial prior channel information and a second hard decision sequence of a variable node; calculating an initial V2C symbol value transmitted by the variable node to the connected check node according to the initial prior channel information, completing message updating of the check node by using the V2C symbol value after the previous iteration (the initial V2C symbol value in the first iteration) and row information in the subsequent iteration, and completing updating of the variable node by using the updated check node. Therefore, row information updating of the basis matrix is realized, and the storage overhead of messages transmitted by decoding nodes in the iteration process is effectively reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of decoding technologies, and in particular, to a column-layered message-passing decoding method, apparatus, and related components. Background Art

[0002] In digital storage and transmission systems, error control coding is a key means to ensure data reliability. As a class of error-correcting codes with performance approaching the Shannon limit, low-density parity-check (LDPC) codes are widely used in fields such as solid-state drives and mobile communications. Message-passing iterative decoding of LDPC codes is a mainstream decoding method that can balance performance and complexity. Combining with column-layered decoding can further reduce the number of iterations. With the continuous improvement of the system's requirements for the power consumption and area of the error-correcting module, while ensuring performance, the LDPC decoding overhead needs to be further reduced, which poses new challenges to message-passing decoding methods.

[0003] In the existing two-bit message-passing (TBMP) decoding scheme, the messages transmitted by decoding nodes are represented by 2 bits (1 bit for the symbol and 1 bit for the amplitude), and are divided into low-confidence messages and high-confidence messages according to the amplitude. When the existing column-layered TBMP iteratively decodes to a certain column of the parity-check matrix, first, the number of low-confidence messages in the messages received by each check node related to this column is counted Then, based on the 2-bit messages transmitted by the variable nodes of this column in the previous iteration, the 2-bit messages transmitted by the relevant check nodes are updated; then, the messages transmitted by the relevant check nodes and the channel information are selectively accumulated, and after comparison with the threshold value, they are mapped to the 2-bit messages transmitted by the variable nodes of this column in the current iteration. Subsequently, the decoding of the remaining columns continues until the decoding sequence passes the check or reaches the maximum number of iterations. However, the storage overhead of the messages related to the decoding nodes in this scheme is too large. Taking an LDPC parity-check matrix with the number of rows and columns of m×n, and the row weight and column weight of dc and dv respectively as an example, the existing scheme needs to store the 2-bit messages transmitted by all variable nodes and each row of information in each iteration, and the storage overhead is bits. For low-power LDPC decoding schemes, this storage overhead is relatively large, especially in practical application scenarios where the code length n is tens of thousands of bits. Summary of the Invention

[0004] Embodiments of the present invention provide a column-layered message-passing decoding method, apparatus, and related components, aiming to solve the problem of large storage overhead in existing decoding schemes.

[0005] In a first aspect, an embodiment of the present invention provides a column hierarchical message passing decoding method based on location messages, including:

[0006] S1: Perform column-by-column decoding on the base matrix and control the decoder input to obtain a first hard decision sequence representing channel information;

[0007] S2: Initialize the parameters of the base matrix, calculate the initial prior channel information of all variable nodes and a second hard decision sequence, calculate the syndrome weight according to the second hard decision sequence and the parity check matrix, calculate the initial V2C symbol values passed from each variable node to the connected parity check nodes, and calculate the row information of all parity check nodes;

[0008] S3: Obtain the current iteration number and compare the current iteration number with the maximum iteration number. If the current iteration number is less than the maximum iteration number, go to S4; if the current iteration number is greater than or equal to the maximum iteration number, stop decoding and output the current iteration number and the second hard decision sequence;

[0009] S4: Obtain the current decoding column number and determine whether the current decoding column number meets the preset decoding condition. If it meets, go to S5; if it does not meet and the syndrome weight is not 0, increase the iteration number by one, reset the current decoding column number to zero, and return to S3; if it does not meet and the syndrome weight is 0, stop decoding and output the current iteration number and the second hard decision sequence;

[0010] S5: Calculate the C2V message values passed from each parity check node to the connected variable nodes, where the C2V message values include C2V amplitude values and C2V symbol values;

[0011] S6: Calculate the posterior log-likelihood probability information according to the C2V message values and the initial prior channel information, and update the second hard decision sequence and the syndrome weight;

[0012] S7: Calculate the V2C message values passed from each variable node to the connected parity check nodes according to the C2V message values and the posterior log-likelihood probability information, where the V2C message values include V2C amplitude values and V2C symbol values;

[0013] S8: Obtain the C2V symbol values, V2C symbol values, and V2C amplitude values, and update the row information of the base matrix;

[0014] S9: Increase the current decoding column number by one column and return to S4.

[0015] In a second aspect, an embodiment of the present invention provides a column hierarchical message passing decoding device based on location messages, including:

[0016] A decoding unit, configured to perform column-by-column decoding on a base matrix and control the decoder input to obtain a first hard decision sequence representing channel information;

[0017] An initialization unit, configured to initialize parameters of the base matrix, calculate initial prior channel information of all variable nodes and a second hard decision sequence, calculate a syndrome weight according to the second hard decision sequence and a parity-check matrix, calculate initial V2C symbol values passed from each variable node to its connected parity-check node, and calculate row information of all parity-check nodes;

[0018] An iterative comparison unit, configured to obtain the current iteration number and compare the current iteration number with the maximum iteration number. If the current iteration number is less than the maximum iteration number, it enters the decoding column number determination unit;

[0019] A decoding column number determination unit, configured to obtain the current decoding column number and determine whether the current decoding column number meets a preset decoding condition. If it meets, it enters the C2V calculation unit. If it does not meet and the syndrome weight is not 0, it increases the iteration number by one and sets the current decoding column number to zero, then returns to the iterative comparison unit. If it does not meet and the syndrome weight is 0, it stops decoding and outputs the current iteration number and the second hard decision sequence;

[0020] A C2V calculation unit, configured to calculate C2V message values passed from each parity-check node to its connected variable node, where the C2V message values include a C2V amplitude value and a C2V symbol value;

[0021] A first update unit, configured to calculate posterior log-likelihood ratio information according to the C2V message values and the initial prior channel information, and update the second hard decision sequence and the syndrome weight;

[0022] A V2C calculation unit, configured to calculate V2C message values passed from each variable node to its connected parity-check node according to the C2V message values and the posterior log-likelihood ratio information, where the V2C message values include a V2C amplitude value and a V2C symbol value;

[0023] A second update unit, configured to obtain the C2V symbol value, the V2C symbol value and the V2C amplitude value, and update the row information of the base matrix;

[0024] A return unit, configured to increase the current decoding column number by one column and then return to the decoding column number determination unit.

[0025] In a third aspect, an embodiment of the present invention provides a computer device, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the column-layered message passing decoding method as described above is implemented.

[0026] Fourthly, an embodiment of the present invention provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the column hierarchical message passing decoding method described above is implemented.

[0027] An embodiment of the present invention provides a column hierarchical message passing decoding method, apparatus and related components. The decoding method decodes the base matrix column by column, calculates the initial prior channel information of variable nodes and the second hard decision sequence, calculates the initial V2C symbol value transmitted from variable nodes to connected check nodes according to the initial prior channel information, and uses the V2C symbol value after the previous iteration (the initial V2C symbol value for the first iteration) and row information to complete the message update of check nodes in subsequent iterations, and then uses the updated check nodes to complete the update of variable nodes, so as to realize the update of the row information of the base matrix and effectively reduce the storage overhead of the messages transmitted by decoding nodes in the iteration process. Description of the Drawings

[0028] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings required for the description of the embodiments will be briefly introduced below. Obviously, the drawings in the following description are some embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0029] Figure 1 It is a schematic flowchart of a column hierarchical message passing decoding method based on location information provided by an embodiment of the present invention;

[0030] Figure 2 It is a schematic block diagram of a column hierarchical message passing decoding device based on location information provided by an embodiment of the present invention;

[0031] Figure 3 It is a schematic block diagram of a computer device provided by an embodiment of the present invention. Detailed Embodiments

[0032] Next, the technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are some, rather than all, of the embodiments of the present invention. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts fall within the scope of protection of the present invention.

[0033] It should be understood that when used in this specification and the appended claims, the terms "comprising" and "including" indicate the presence of the described features, wholes, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, wholes, steps, operations, elements, components, and / or their combinations.

[0034] It should also be understood that the terms used in this specification of the present invention are merely for the purpose of describing specific embodiments and are not intended to limit the present invention. As used in this specification of the present invention and the appended claims, unless the context clearly indicates otherwise, the singular forms "a", "an", and "the" are intended to include the plural forms.

[0035] It should be further understood that the term "and / or" used in this specification of the present invention and the appended claims refers to any combination and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0036] Please refer to Figure 1 , an embodiment of the present invention provides a column hierarchical message passing decoding method based on location messages, including S1 - S9:

[0037] S1. Decode the base matrix column by column, and control the decoder input to obtain a first hard decision sequence representing channel information;

[0038] In this step, traverse the base matrix column by column, and at the same time control the input of the decoder. After the decoding is completed, obtain the first hard decision sequence from the output of the decoder. Among them, hard decision means that after receiving the signal, it is directly judged as 0 or 1 without considering the intermediate state or uncertainty of the signal. For example, after receiving an analog signal at the receiving end, by setting a threshold, the signal higher than the threshold is judged as 1, and the signal lower than the threshold is judged as 0, thus obtaining a hard decision 01 sequence (i.e., the first hard decision sequence).

[0039] S2. Initialize the parameters of the base matrix, calculate the initial prior channel information of all variable nodes and a second hard decision sequence, calculate the syndrome weight according to the second hard decision sequence and the parity check matrix, calculate the initial V2C symbol values passed from each variable node to the connected parity check nodes, and calculate the row information of all parity check nodes;

[0040] In this step, the base matrix is the core of LDPC code construction. By initializing the parameters of the base matrix, it can be ensured that the subsequent decoding operations are based on a specific code type, guaranteeing the consistency and repeatability of the decoding process. In practical applications, different base matrix parameters can be selected according to different communication scenarios and requirements. For example, for scenarios with high requirements for bit error rate, a base matrix with stronger error correction ability can be selected; for scenarios with high requirements for decoding speed, a base matrix with lower complexity can be selected. Initializing the base matrix parameters enables the system to flexibly adapt to various different application scenarios. Among them, the initial prior channel information (log likelihood ratio, LLR) needs to be passed to the decoder as input. The LLR of the punctured bits is 0, and the LLR of the non-punctured bits is mapped to {-C, +C} according to the channel output, where the positive number C is the amplitude of the LLR; the second hard decision sequence is obtained according to the initial prior channel information; the syndrome weight (SW) represents the number of non-zero values in the LDPC checksum; V2C represents the message value passed from the variable node (VN) to the check node (CN) during the iterative decoding process, and its amplitude value abs(V2C) and sign value sign(V2C) are each 1 bit; for the punctured bits, the initial sign value sign(V2C) is set to 0; the row information includes sc, zero_cnt, and the position information post_first_W, post_last_W. Among them, sc represents the product value of all sign values sign(V2C) related to the CN during the iterative decoding process, zero_cnt is the number of punctured bits related to the CN, determined according to the parity-check matrix H and the punctured columns. When the number of punctured columns is N p then zero_cnt does not exceed N p ; post_first_W represents the position information of the first low-confidence message among all V2C received by the CN during the iterative decoding process, that is, the relative ordinal number of the VN corresponding to the first amplitude value of abs(V2C)=W, pos_first_W∈{-1,0,1,…,dc-1}, where -1 means that the first V2C with an amplitude value of W has not been found in the current iteration; post_last_W represents the position information of the last low-confidence message among all V2C received by the CN during the iterative decoding process, that is, the relative ordinal number of the VN corresponding to the last abs(V2C)=W, pos_last_W∈{-1,0,1,…,dc-1}, where -1 means that the last V2C with an amplitude value of W has not been found in the current iteration, and dc represents the row weight.

[0041] In one embodiment, initializing the parameters of the base matrix includes:

[0042] Obtain the number of rows and columns of the base matrix, and make each element in the base matrix correspond to a circulant matrix of a predetermined size;

[0043] Obtain the number of punctured bits and the number of non-punctured bits respectively, and make the punctured bits correspond to a first ordinal range, and make the non-punctured bits correspond to a second ordinal range;

[0044] Obtain the first ordinal set of variable nodes connected to the current check node, and obtain the second ordinal set of check nodes connected to the current variable node;

[0045] Reset the current iteration count to zero.

[0046] In this embodiment, assume that the number of rows and columns of the base matrix are M and N respectively, that is, the size of the base matrix is M*N. The size of the circulant matrix corresponding to each element in the base matrix is Z*Z, then the base matrix is expanded into a parity-check matrix with M*Z rows and N*Z columns, and the number of punctured bits is n p , let the first ordinal range j∈[0, n p -1] correspond to the punctured bits, and the second ordinal range j∈[n p , N*Z - 1] correspond to the non-punctured bits. In iterative decoding, first process all the punctured bits. Let the ordinal set of the CNs connected to the j-th VN be M j (that is, the first ordinal set), and the ordinal set of the VNs connected to the i-th CN be N i (that is, the second ordinal set). Denote the current iteration count as Iter, and initially Iter = 0.

[0047] In one embodiment, calculate the initial prior channel information of all variable nodes, including:

[0048] For the variable nodes of the punctured bits, the initial prior channel information is set to zero;

[0049] For the variable nodes of the non-punctured bits, the initial prior channel information is calculated according to the first hard decision sequence.

[0050] In this embodiment, for the variable nodes of the punctured bits, the initial prior channel information LLR[j] is set to zero, that is, LLR[j] = 0 for j∈[0, n p -1], where j is the ordinal of the current variable node of the punctured bit, and j∈[0, n p -1] is the first ordinal range. For the variable nodes of the non-punctured bits, the initial prior channel information LLR[j] is calculated according to the first hard decision sequence y by the following formula:

[0051] LLR[j] = C * (1 - 2 * y[j - n p ) for j∈[n p , N*Z - 1]

[0052] where j is the ordinal number of the current variable node of the non-punctured bit, and j ∈ [n p , N*Z - 1] is the second ordinal range.

[0053] In one embodiment, the second hard decision sequence of all variable nodes is calculated according to the following formula:

[0054] x[j] = ((LLR[j] ≥ 0)? 0 : 1) for j ∈ [0, N*Z - 1], where ((LLR[j] ≥ 0)? 0 : 1) means that if LLR[j] ≥ 0, then x[j] = 0, otherwise x[j] = 1.

[0055] j ∈ [0, N*Z - 1] includes the first ordinal range and the second ordinal range.

[0056] In one embodiment, the syndrome s is calculated according to the parity-check matrix H according to the following formula:

[0057] s = mod(H·x, 2)

[0058] where mod() is the modulo operation, and mod(H·x, 2) is the remainder obtained by dividing H·x by 2.

[0059] Then, the syndrome weight SW is calculated according to the syndrome s: SW = sum(s), and sum() is the summation operation.

[0060] In one embodiment, calculating the initial V2C symbol value sign(V2C[j, i]) passed from each variable node to the connected check node includes:

[0061] For the variable node of the punctured bit, then sign(V2C[j, i]) = 1 for j ∈ [0, n p - 1] and i ∈ M j ;

[0062] For the variable node of the non-punctured bit, then sign(V2C[j, i]) = 1 - 2*y[j - n p for j ∈ [n p , N*Z - 1] and i ∈ M j , where M j is the ordinal number set (i.e., the first ordinal number set) of the CNs connected to the j-th VN.

[0063] In one embodiment, calculating the row information of all check nodes includes:

[0064] Calculating the product symbol value related to each check node in the current decoding row according to the initial V2C symbol value;

[0065] Obtain the row weight of the current decoding row corresponding to the base matrix in the parity-check matrix and the number of relevant punctured bits, and calculate the position information post_first_W of the first low-confidence message received by each check node from the connected variable nodes during the iterative decoding process and the position information post_last_W of the last low-confidence message.

[0066] In this embodiment, i is the current row, i ∈ [0, M*Z - 1], M*Z is the total number of rows of H, and the row information of the i-th row includes sc[i], zero_cnt[i], and the position information pos_first_W[i], pos_last_W[i]. zero_cnt[i] is the number of punctured bits related to the i-th CN, determined according to H and the punctured columns. Let the row weight of the i-th row in H be dc[i], and the calculation of sc[i] and the position information is as follows:

[0067]

[0068] pos_first_W[i] = zero_cnt[i]

[0069] pos_last_W[i] = dc[i] - 1

[0070] Calculate the row information of each row according to the above formula.

[0071] S3. Obtain the current iteration number, and compare the current iteration number with the maximum iteration number. If the current iteration number is less than the maximum iteration number, then proceed to S4. If the current iteration number is greater than or equal to the maximum iteration number, then stop decoding and output the current iteration number and the second hard decision sequence.

[0072] In this step, by judging whether the current iteration number Iter is less than the maximum iteration number maxIter. If Iter < maxIter, then continue column-layered decoding. If Iter ≥ maxIter, then stop the iteration and output Iter and the second hard decision sequence x. In specific implementation, when Iter ≥ maxIter and the syndrome weight SW ≠ 0, it is considered that an uncorrectable error has occurred in the currently output codeword.

[0073] S4. Obtain the current decoding column number, and judge whether the current decoding column number meets the preset decoding condition. If it meets, then proceed to S5. If it does not meet and the syndrome weight is not 0, then increase the iteration number by one, reset the current decoding column number to zero, and return to S3. If it does not meet and the syndrome weight is 0, then stop decoding and output the current iteration number and the second hard decision sequence.

[0074] In this step, assume that the current decoding has reached the g-th column of the base matrix. Determine whether the preset decoding condition (SW≠0&&g<N) is satisfied. If the decoding condition is satisfied, jump to S5; if the decoding condition is not satisfied and SW≠0, then set the current iteration number Iter = Iter + 1 and g = 0, and then jump to S3; otherwise, terminate the decoding and output Iter = Iter + g / N and the second hard decision sequence x.

[0075] S5. Calculate the C2V message values passed from each check node to the connected variable nodes. Among them, the C2V message values include the C2V amplitude value and the C2V symbol value.

[0076] In this step, C2V represents the message value passed from the check node (CN) to the variable node (VN) during the iterative decoding process. Its amplitude value abs(C2V) and symbol value sign(C2V) are both 1 bit.

[0077] In one embodiment, S5 includes:

[0078] For the C2V symbol value, C2V symbol value = the product symbol value × V2C symbol value. Among them, in the first iteration, the V2C symbol value is the initial V2C symbol value.

[0079] For the C2V amplitude value, if the current iteration number is 0 and the current variable node corresponds to a punctured bit and post_first_W[i]≠1, then the C2V amplitude value = 0.

[0080] If the current iteration number is 0 and the current variable node corresponds to a punctured bit and post_first_W == 1, then the C2V amplitude value = W, where W is the low-grade amplitude value.

[0081] If the preset condition is satisfied, the C2V amplitude value = W. If the preset condition is not satisfied, the C2V amplitude value = ((SW<SWTh)? S: S - offset), where SW is the syndrome weight, SWTh is the preset threshold of the syndrome weight, S is the high-grade amplitude value, and offset is the offset value.

[0082] In this embodiment, for j∈[g*Z,(g + 1)*Z - 1] and i∈M j, the sign value of C2V, sign(C2V[i,j]) = sc[i] * sign(V2C[j,i]), where sc[i] can be obtained from the row information of S2. If it is the first iteration, sign(V2C[j,i]) can be obtained from the initial V2C sign value sign(V2C[j,i]) of S2. If it is the nth (n≥2) iteration, sign(V2C[j,i]) is the V2C sign value sign(V2C[j,i]) after the previous iteration.

[0083] For the C2V amplitude value, let rel_vn_idx[i,j] be the relative ordinal number of the jth VN among the VNs connected to the ith CN. When calculating the C2V amplitude value abs(C2V[i,j]), it is classified and discussed as follows:

[0084] 1) If the current iteration number Iter == 0 and the current variable node VN corresponds to a punctured bit and pos_first_W[i] ≠ 1, then

[0085] abs(C2V[i,j]) = 0

[0086] 2) If the current iteration number Iter == 0 and the current variable node VN corresponds to a punctured bit and pos_first_W[i] == 1, then

[0087] abs(C2V[i,j]) = W

[0088] where W is the low - grade amplitude value.

[0089] 3) The preset condition C1 is If the preset condition C1 holds, then

[0090] abs(C2V[i,j]) = W

[0091] If the preset condition C1 does not hold, then

[0092] abs(C2V[i,j]) = ((SW < SWTh)? S : S - offset)

[0093] where, if SW < SWTh, then abs(C2V[i,j]) = S, otherwise abs(C2V[i,j]) = S - offset.

[0094] S6. Calculate the posterior log - probability information according to the C2V message value and the initial prior channel information, and update the second hard - decision sequence and the syndrome weight;

[0095] In this step, APP represents the posterior log-likelihood probability information in the iterative decoding process, and the posterior log-likelihood probability information is obtained by accumulating LLR and the relevant C2V. For j ∈ [g*Z, (g + 1)*Z - 1], calculate APP[j]:

[0096]

[0097] For the update of the second hard decision sequence, when j ∈ [g*Z, (g + 1)*Z - 1], first temporarily store the second hard decision sequence x[j] of the current ordinal number into the intermediate variable t, that is, t = x[j], and then update x[j]:

[0098]

[0099] If x[j] changes after the update, that is, t ≠ x[j], then update the syndrome s associated with the j-th VN, and then calculate SW:

[0100]

[0101] for i ∈ M j , SW = ((s[i] == 0)? SW - 1 : SW + 1)

[0102] where j' represents an element in the second ordinal number set N i and x[j'] represents the hard decision value after the update of the j'-th VN.

[0103] S7. Calculate the V2C message values passed from each variable node to the connected check node according to the C2V message values and the posterior log-likelihood probability information, and the V2C message values include V2C amplitude values and V2C sign values;

[0104] In this step, calculate the V2C message values passed from each variable node to the connected check node according to the C2V message values obtained in S5 and the posterior log-likelihood probability information obtained in S6. Specifically, subtract the C2V message values from the posterior log-likelihood probability information to obtain the V2C message value ^, that is, V2C[j, i]^ = APP[j] - C2V[i, j], and then map the V2C message value ^ (V2C[j, i]^) to the V2C message value (V2C[j, i]), and take values according to the following situations:

[0105] If the condition 1 is satisfied: V2C[j, i]^ == 0, then V2C[j, i] = ((LLR[j] < 0)? -W : +W), where V2C[j, i]^ is the V2C message value ^, V2C[j, i] is the V2C message value, LLR[j] is the prior channel information of the j-th variable node, and W is the low-grade amplitude value;

[0106] If condition 2 is satisfied: (Iter == 0 and the current variable node corresponds to a punctured bit) || 0 < abs(V2C[j,i]^) < Th, then V2C[j,i] = W * sign(V2C[j,i]^), where Iter is the current iteration number, abs(V2C[j,i]^) is the magnitude value of V2C^, sign(V2C[j,i]^) is the sign value of V2C^, and Th is the decision threshold;

[0107] If neither of the above conditions 1 and 2 is satisfied, then V2C[j,i] = S * sign(V2C[j,i]^), where S is the high-level magnitude value.

[0108] S8. Obtain the C2V sign value, V2C sign value, and V2C magnitude value, and update the row information of the base matrix;

[0109] In this step, the row information includes the product sign value, position information pos_first_W, and pos_last_W. For the product sign value, it is updated by multiplying the obtained C2V sign value and V2C sign value, that is, j ∈ [g * Z, (g + 1) * Z - 1] and i ∈ M j The product sign value sc[i] is updated according to the following formula:

[0110] sc[i] = sign(V2C[j,i]) * sign(C2V[i,j])

[0111] For the position information pos_first_W[i] and pos_last_W[i], they are updated according to the obtained V2C magnitude value in the following cases:

[0112] If Iter == 0 and the relevant variable node corresponds to a punctured bit, then pos_first_W[i] = pos_first_W[i] - 1;

[0113] If abs(V2C[j,i]) == W and (pos_first_W[i] == -1 || rel_vn_idx[i,j] < pos_first_W[i]), then pos_first_W[i] = rel_vn_idx[i,j], where rel_vn_idx[i,j] is the relative ordinal number of the jth variable node among the variable nodes connected to the ith check node. If pos_first_W[i] == pos_last_W[i], then pos_last_W[i] = -1;

[0114] If abs(V2C[j,i]) == W and rel_vn_idx[i,j] > pos_first_W[i], then pos_last_W[i] = rel_vn_idx[i,j];

[0115] If abs(V2C[j,i]) == S and rel_vn_idx[i,j] == pos_first_W[i], then pos_first_W[i] = -1;

[0116] If abs(V2C[j,i]) == S and rel_vn_idx[i,j] == pos_last_W[i], then

[0117] pos_last_W[i] = -1.

[0118] S9. Increase the current decoding column count by one column and then return to S4 until decoding stops.

[0119] Compared with the existing TBMP scheme, for the decoding method of the embodiments of the present invention, the information required for calculating C2V becomes sign(V2C) and the position information pos_first_W and pos_last_W, while the other required information remains unchanged. Taking an H matrix with row and column counts of m×n, row weight and column weight of dc and dv respectively as an example to calculate the storage overhead of the changed part: (1) sign(V2C) with a quantity of n·dv requires n·dv bits of storage; (2) pos_first_W with a quantity of m and pos_last_W with a quantity of m respectively require bits of storage. In summary, the storage overhead of the decoding node messages in the present invention is bits, which is significantly reduced compared with the storage overhead of the existing decoding scheme.

[0120] The embodiments of the present invention further provide a column hierarchical message passing decoding device based on position messages. This device is used to execute any of the embodiments of the foregoing column hierarchical message passing decoding method based on position information. Specifically, please refer to Figure 2 , Figure 2 is a schematic block diagram of a column hierarchical message passing decoding device based on position information provided by the embodiments of the present invention. This column hierarchical message passing decoding device 200 based on position information includes:

[0121] A decoding unit, configured to perform column-by-column decoding on the base matrix and control the decoder input to obtain a first hard decision sequence representing channel information;

[0122] An initialization unit, configured to initialize parameters of a base matrix, calculate initial prior channel information of all variable nodes and a second hard decision sequence, calculate a syndrome weight according to the second hard decision sequence and a parity check matrix, calculate initial V2C symbol values transmitted by each variable node to a connected parity check node, and calculate row information of all parity check nodes;

[0123] An iterative comparison unit, configured to obtain a current iteration number, and compare the current iteration number with a maximum iteration number. If the current iteration number is less than the maximum iteration number, it enters a decoding column number determination unit;

[0124] A decoding column number determination unit, configured to obtain a current decoding column number, and determine whether the current decoding column number meets a preset decoding condition. If it meets, it enters a C2V calculation unit. If it does not meet and the syndrome weight is not 0, it increases the iteration number by one and sets the current decoding column number to zero, then returns to the iterative comparison unit. If it does not meet and the syndrome weight is 0, it stops decoding and outputs the current iteration number and the second hard decision sequence;

[0125] A C2V calculation unit, configured to calculate C2V message values transmitted by each parity check node to a connected variable node, where the C2V message values include a C2V amplitude value and a C2V symbol value;

[0126] A first update unit, configured to calculate posterior log-likelihood ratio information according to the C2V message values and the initial prior channel information, and update the second hard decision sequence and the syndrome weight;

[0127] A V2C calculation unit, configured to calculate V2C message values transmitted by each variable node to a connected parity check node according to the C2V message values and the posterior log-likelihood ratio information, where the V2C message values include a V2C amplitude value and a V2C symbol value;

[0128] A second update unit, configured to obtain the C2V symbol value, the V2C symbol value, and the V2C amplitude value, and update the row information of the base matrix;

[0129] A return unit, configured to increase the current decoding column number by one column and then return to the decoding column number determination unit.

[0130] As Figure 3 shown, an embodiment of the present invention provides a computer device 300, including a memory 301, a processor 302, and a computer program 3031 stored in the memory 301 and executable on the processor 302. When the processor 302 executes the computer program 3031, it implements the column hierarchical message passing decoding method as described in the foregoing embodiment.

[0131] An embodiment of the present invention provides a computer-readable storage medium 303, on which a computer program 3031 is stored. When the computer program 3031 is executed by a processor, the column hierarchical message passing decoding method described in the foregoing embodiment is implemented.

[0132] Those skilled in the art can clearly understand that for the convenience and brevity of description, the specific working processes of the above-described devices, apparatuses, and units can refer to the corresponding processes in the foregoing method embodiments, and will not be described herein again. Those of ordinary skill in the art can realize that the units and algorithm steps of the examples described in conjunction with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of the two. To clearly illustrate the interchangeability of hardware and software, the components and steps of the examples have been generally described according to their functions in the above description. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present invention.

[0133] In several embodiments provided by the present invention, it should be understood that the disclosed devices, apparatuses, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods, or units with the same function can be aggregated into a unit. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the displayed or discussed couplings, direct couplings, or communication connections to each other can be indirect couplings or communication connections through some interfaces, devices, or units, and can also be electrical, mechanical, or other forms of connection.

[0134] The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they can be located in one place, or can be distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment of the present invention.

[0135] In addition, the functional units in various embodiments of the present invention can be integrated into a processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional units.

[0136] When the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a storage medium. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of the present invention. The aforementioned storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memories (ROMs), magnetic disks, or optical discs that can store program codes.

[0137] As described above, the above is only the specific implementation manner of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art within the technical scope disclosed by the present invention can easily think of various equivalent modifications or substitutions, and these modifications or substitutions should all be covered within the protection scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims

1. A column-level message passing decoding method based on position messages, characterized in that: include: S1: Decode the base matrix column by column, and control the decoder input to obtain a first hard decision sequence representing channel information; S2: Initialize the parameters of the base matrix, calculate the initial a priori channel information and the second hard decision sequence of all variable nodes, calculate the syndrome weight according to the second hard decision sequence and the check matrix, calculate the initial V2C symbol value transmitted by each variable node to the connected check node, and calculate the row information of all check nodes; S3: Get the current number of iterations and compare it with the maximum number of iterations. If the current number of iterations is less than the maximum number of iterations, enter S4. If the current number of iterations is greater than or equal to the maximum number of iterations, stop decoding and output the current number of iterations and the second hard decision sequence. S4: Obtain the current number of decoding columns, and determine whether the current number of decoding columns meets the preset decoding condition. If so, enter S5. If not and the syndrome weight is not 0, increase the number of iterations and reset the current number of decoding columns to zero, and then return to S3. If not and the syndrome weight is 0, stop decoding and output the current number of iterations and the second hard decision sequence. S5: Calculate the C2V message value transmitted by each check node to the connected variable node, wherein the C2V message value includes a C2V amplitude value and a C2V sign value; S6: Calculate the a posteriori logarithmic probability information according to the C2V message value and the initial a priori channel information, and update the second hard decision sequence and syndrome weight; S7: Calculate the V2C message value transmitted by each variable node to the connected check node according to the C2V message value and the posterior logarithmic probability information, wherein the V2C message value includes a V2C amplitude value and a V2C symbol value; S8: Acquire a C2V symbol value, a V2C symbol value, and a V2C amplitude value, and update row information of the base matrix; S9: Increase the current number of decoding columns by one and return to S4.

2. The column-level message passing decoding method according to claim 1, characterized in that: Initialize the parameters of the basis matrix, including: Obtaining the number of rows and columns of a base matrix, and making each element in the base matrix correspond to a circulant matrix of a predetermined size; Respectively obtaining the number of punctured bits and the number of non-punctured bits, and making the punctured bits correspond to a first ordinal range, and making the non-punctured bits correspond to a second ordinal range; Obtain a first ordinal set of variable nodes connected to the current check node, and obtain a second ordinal set of check nodes connected to the current variable node; Reset the current iteration count to zero.

3. The column-level message passing decoding method according to claim 2, characterized in that: Calculate the initial prior channel information of all variable nodes, including: For variable nodes of punctured bits, the initial a priori channel information is set to zero; For variable nodes of non-punctured bits, the initial a priori channel information is calculated according to the first hard decision sequence.

4. The column-level message passing decoding method according to claim 1, characterized in that: Calculate the row information of all check nodes, including: Calculate the associated concatenated symbol value of each check node in the current decoding row according to the initial V2C symbol value; Obtain the row weight of the current decoding row corresponding to the base matrix in the parity-check matrix and the number of relevant punctured bits, and calculate the position information post_first_W of the first low-confidence message received by each check node from the connected variable nodes during the iterative decoding process and the position information post_last_W of the last low-confidence message.

5. The column-level message passing decoding method according to claim 4, characterized in that: The S5 includes: For the C2V symbol value, C2V symbol value = the product symbol value × V2C symbol value, where, in the first iteration, the V2C symbol value is the initial V2C symbol value; For the C2V amplitude value, if the current iteration number is 0 and the current variable node corresponds to a punctured bit and post_first_W ≠ 1, then C2V amplitude value = 0; If the current iteration number is 0 and the current variable node corresponds to a punctured bit and post_first_W == 1, then C2V amplitude value = W, where W is the low-grade amplitude value; If the preset condition is satisfied, then C2V amplitude value = W, if the preset condition is not satisfied, then C2V amplitude value = ((SW < SWTh)? S : S - offset), where, SW is the syndrome weight, SWTh is the preset threshold of the syndrome weight, S is the high-grade amplitude value, and offset is the offset value.

6. The column-level message passing decoding method according to claim 1, characterized in that: The S7 includes: Subtract the C2V message value from the posterior log-likelihood probability information to obtain the V2C message value ^; Map the V2C message value ^ to the V2C message value and take values according to the following situations: If condition 1 is satisfied: V2C[j,i]^ == 0, then V2C[j,i] = ((LLR[j] < 0)? -W : +W), where, V2C[j,i]^ is the V2C message value ^, V2C[j,i] is the V2C message value, LLR[j] is the prior channel information of the jth variable node, and W is the low-grade amplitude value; If condition 2 is satisfied: (Iter == 0 and the current variable node corresponds to a punctured bit) || 0 < abs(V2C[j,i]^) < Th, then V2C[j,i] = W * sign(V2C[j,i]^), where, Iter is the current iteration number, abs(V2C[j,i]^) is the V2C amplitude value ^, sign(V2C[j,i]^) is the V2C symbol value ^, and Th is the decision threshold; If neither condition 1 nor condition 2 is satisfied, then V2C[j,i] = S * sign(V2C[j,i]^), where, S is the high-grade amplitude value.

7. The column-level message passing decoding method according to claim 4, characterized in that: The row information includes the product symbol value, the position information post_first_W and post_last_W, and the S8 includes: For the product symbol value, update it by multiplying according to the obtained C2V symbol value and V2C symbol value; For the position information pos_first_W[i] and pos_last_W[i], update them according to the following situations: If Iter == 0 and the relevant variable node corresponds to a punctured bit, then pos_first_W[i] = pos_first_W[i] - 1; If abs(V2C[j,i]) == W and (pos_first_W[i] == -1 || rel_vn_idx[i,j] < pos_first_W[i]), then pos_first_W[i] = rel_vn_idx[i,j], where rel_vn_idx[i,j] is the relative ordinal number of the j-th variable node among the variable nodes connected to the i-th check node. If pos_first_W[i] == pos_last_W[i], then pos_last_W[i] = -1; If abs(V2C[j,i]) == W and rel_vn_idx[i,j] > pos_first_W[i], then pos_last_W[i] = rel_vn_idx[i,j]; If abs(V2C[j,i]) == S and rel_vn_idx[i,j] == pos_first_W[i], then pos_first_W[i] = -1; If abs(V2C[j,i]) == S and rel_vn_idx[i,j] == pos_last_W[i], then pos_last_W[i] = -1.

8. A column-level message passing decoding device based on position messages, used to implement the column-level message passing decoding method according to any one of claims 1 to 7, characterized in that: Including: A decoding unit for column-by-column decoding of the base matrix and controlling the decoder input to obtain a first hard decision sequence representing channel information; An initialization unit for initializing the parameters of the base matrix, calculating the initial prior channel information and the second hard decision sequence of all variable nodes, calculating the syndrome weight according to the second hard decision sequence and the parity-check matrix, calculating the initial V2C symbol values passed from each variable node to the connected check nodes, and calculating the row information of all check nodes; An iterative comparison unit for obtaining the current iteration number and comparing the current iteration number with the maximum iteration number. If the current iteration number is less than the maximum iteration number, it enters the decoding column number judgment unit; A decoding column number judgment unit for obtaining the current decoding column number and judging whether the current decoding column number meets the preset decoding condition. If it meets, it enters the C2V calculation unit. If it does not meet and the syndrome weight is not 0, it increases the iteration number by one and resets the current decoding column number to zero and then returns to the iterative comparison unit. If it does not meet and the syndrome weight is 0, it stops decoding and outputs the current iteration number and the second hard decision sequence; A C2V calculation unit for calculating the C2V message values passed from each check node to the connected variable nodes, where the C2V message values include C2V amplitude values and C2V symbol values; A first update unit for calculating the posterior log-likelihood probability information according to the C2V message values and the initial prior channel information, and updating the second hard decision sequence and the syndrome weight; A V2C calculation unit for calculating the V2C message values passed from each variable node to the connected check nodes according to the C2V message values and the posterior log-likelihood probability information, where the V2C message values include V2C amplitude values and V2C symbol values; A second updating unit, used to obtain a C2V symbol value, a V2C symbol value and a V2C amplitude value, and update row information of the base matrix; The return unit is used to increase the current number of decoding columns by one and then return to the decoding column number judgment unit.

9. A computer device, characterized in that: The method comprises a memory, a processor and a computer program stored in the memory and executable on the processor, wherein the processor implements the column-level message passing decoding method according to any one of claims 1 to 7 when executing the computer program.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the column-level message passing decoding method according to any one of claims 1 to 7 is implemented.

Citation Information

Cited By

  • Step-by-step decoding method and device, storage medium and electronic equipment

    CN120929301A

  • Flash memory decoding method, flash memory decoding device and computer storage medium

    CN122044947A