Post-processing decoder of LDPC codes for improved error floors
AssigneeMarvell International Ltd.
InventorsNedeljko Varnica, Gregory Burd, Zining Wu
Life of this patent
Estimating the term…
Abstract
Systems and methods are provided for decoding received codewords using an LDPC code. An LDPC post-processor is disclosed for performing post-processing when standard LDPC decoding fails due to a trapping set. The LDPC post-processor may direct the LDPC decoder to decode the received codeword again, but may change some of the inputs to the LDPC decoder so that the LDPC decoder does not fail in the same way. In one embodiment, the LDPC post-processor may modify the symbol positions in the received codeword that correspond to a particular unsatisfied check. In another embodiment, the LDPC post-processor may modify the messages in the decoder's iterative message algorithm that correspond to the symbol positions.
Claims29
A method of decoding a received codeword, the method comprising:
- performing standard decoding on the received codeword based on a low-density parity check (LDPC) code, wherein the standard decoding produces a plurality of checks and a tentative codeword;
- selecting a first unsatisfied check from the plurality of checks;
- identifying a first set of symbol positions in the received codeword associated with the first unsatisfied check;
- modifying the received codeword;
- wherein the modifying comprises:
- selecting a first symbol position from the first set of symbol positions;
- setting the first symbol position to a sign opposite of that of a corresponding symbol position in the tentative codeword;
- and
- setting a remainder of the first set of identified symbol positions to a same sign as that of corresponding symbol positions in the tentative codeword;
- and
- decoding the modified received codeword based on the LDPC code.
A method of decoding a received codeword using a low-density parity check (LDPC) code, the method comprising:
- performing, on the received codeword, one or more iterations of an iterative decoding algorithm, wherein a plurality of messages are generated at each iteration and used in a next iteration, and wherein the one or more iterations produce a plurality of checks;
- selecting a first unsatisfied check from the plurality of checks;
- identifying a first set of symbol positions in the received codeword associated with the first unsatisfied check;
- and
- performing, on the received codeword, a plurality of additional iterations of the iterative decoding algorithm, wherein the plurality of messages that are associated with the first set of identified symbol positions are fixed to predetermined values in each of the additional iterations.
A system for decoding a received codeword based on a low-density parity check (LDPC) code, the system comprising:
- an LDPC decoder coupled to a channel detector, the LDPC decoder configured to:
- obtain as inputs from the channel detector symbols of the received codeword;
- and
- perform standard decoding on the received codeword, wherein the standard decoding produces a plurality of checks and a tentative codeword, each check in the plurality storing a corresponding message;
- and
- an LDPC post-processor configured to:
- select a first unsatisfied check from the plurality of checks;
- identify a first set of symbol positions in the received codeword associated with the first unsatisfied check, each symbol position in the first set storing a corresponding message;
- modify a portion of the inputs to the LDPC decoder based on the messages corresponding to the first set of symbol positions by:
- selecting a first symbol position from the first set of symbol positions;
- and
- setting the message corresponding to the first symbol position to a sign opposite of that of a corresponding symbol position in the tentative codeword;
- and
- direct the LDPC decoder to perform decoding on the received codeword with modified inputs.
A system for decoding a received codeword based on a low-density parity check (LDPC) code, the system comprising:
- an LDPC decoder configured to:
- perform, on the received codeword, one or more iterations of an iterative decoding algorithm, wherein a plurality of messages are generated at each iteration and used in a next iteration, and wherein the one or more iterations produce a plurality of checks;
- an LDPC post-processor configured to:
- select a first unsatisfied check from the plurality of checks;
- identify a first set of symbol positions in the received codeword associated with the first unsatisfied check;
- and
- direct the LDPC decoder to perform, on the received codeword, a plurality of additional iterations of the iterative decoding algorithm, wherein the LDPC post-processor fixes the messages that are associated with the first set of identified symbol positions to predetermined values in each of the additional iterations.
Apparatus for decoding a received codeword, the apparatus comprising:
- means for performing standard decoding on the received codeword based on a low-density parity check (LDPC) code, wherein the standard decoding produces a plurality of checks and a tentative codeword;
- means for selecting a first unsatisfied check from the plurality of checks;
- means for identifying a first set of symbol positions in the received codeword associated with the first unsatisfied check;
- means for modifying the received codeword, wherein the modifying comprises:
- selecting a first symbol position from the first set of symbol positions;
- setting the first symbol position to a sign opposite of that of a corresponding symbol position in the tentative codeword;
- and
- setting a remainder of the first set of symbol positions to a same sign as that of corresponding symbol positions in the tentative codeword;
- means for decoding the modified received codeword based on the LDPC code.
Apparatus for decoding a received codeword using a low-density parity check (LDPC) code, the apparatus comprising:
- means for performing, on the received codeword, one or more iterations of an iterative decoding algorithm, wherein a plurality of messages are generated at each iteration and used in a next iteration, and wherein the one or more iterations produce a plurality of checks;
- means for selecting a first unsatisfied check from the plurality of checks;
- means for identifying a first set of symbol positions in the received codeword associated with the first unsatisfied check;
- and
- means for performing, on the received codeword, a plurality of additional iterations of the iterative decoding algorithm, wherein messages that are associated with the first set of identified symbol positions are fixed to predetermined values in each of the additional iterations.
Dependencies are inferred from the claim text.