Abstract
A decoding method of low density parity check codes comprises steps as follows. A first predetermined number of iterations of a messages-passing decoding algorithm are applied to a received signal vector, so as to attempt to decode a transmitted (or stored) codeword. Whether the decoding result converges to a valid codeword is determined by observing whether the decoding result makes all check nodes satisfied or not. When the decoding result does not converge to a valid codeword, the value of at least one of the variable nodes neighboring to one of the un-satisfied check node is be adjusted to an non-zero value, wherein the selected variable node is included in a trapping set. Then, a second predetermined number of iterations of the messages-passing decoding algorithm are applied to the update decoding result to generate another one decoding result, and whether the other one decoding result converges to a valid codeword is checked.