This web page describes the logic inside the Check Node function. First consider a LDPC decoder as illustrated below which inputs probability values. A block diagram of the Check Node function is shown below... Gallager very cleverly derived the formula for the probability that the number of 1's in a set of probabilites is even on page 41 of his 1963 paper on LDPC codes. p(# 1's is even) = 1/2 + 1/2[(1-2p _{1})(1-2p_{2})(1-2p_{3})...]p(# 1's is odd) = 1 - p(# 1's is even) = -1/2 + 1/2[(1-2p _{1})(1-2p_{2})(1-2p_{3})...]In the above example, p _{1}out = 1/2(1-2p_{2}in)(1-2p_{3}in) -1/2p _{2}out = 1/2(1-2p_{1}in)(1-2p_{3}in) -1/2p _{3}out = 1/2(1-2p_{1}in)(1-2p_{2}in) -1/2The Check Node function could be implemented in a number of different ways... - It might make sense for the Check Node function to simply average the values it receives. [For the above example the value outputted by the Check Node would be pout = (p
_{1}in+p_{2}in+p_{3}in)/3.] - If one input value deviates more than some fixed amount from the other values, that value could be ignored similar to what the bit-flipping decoder does and the average of the others used as output.
- One input value could be ignored and the output could be declared to be 1 or 0 if the other values are above or below predetermined thresholds.
Simulations may tell which method is the most effective. |

LDPC Codes > LDPC Decoder Examples >