A method for decoding Low Density Parity Check (LDPC) codes comprises executing
a sum product algorithm to recover a set of information bits from an LDPC code
represented as a bipartite graph of symbol nodes and check nodes, the sum product
algorithm being responsive to input log likelihood ratios associated with the symbol
nodes. The check nodes are updated by generating a set of forward difference metrics
and a set of backward difference metrics in dependence on the ratios of logarithmic
probabilities each associated with a corresponding symbol node of the LDPC code,
updating each metric in the set of forward difference metrics in dependence on
the absolute value of the log likelihood ratio associated with the symbol node
and the absolute value of the previous metric in the set, updating each metric
in the set of backward difference metrics in dependence on the absolute value of
the log likelihood ratio associated with the symbol node and the absolute value
of the previous metric in the set, and generating log likelihood ratios to be propagated
back to each symbol node in dependence on the updated sets of forward and backward
difference metrics.