Logo der Uni Stuttgart
Decoding

The optimum decoder performance (upper bound on the performance) is obtained when applying the block-wise maximum a-posteriori (MAP) decoding which minimizes the block error probability. But this algorithm is not practical due to its high complexity $O(n^{3})$.

$$\hat{x}=arg\max_{x\epsilon C} P(x|y)$$

So the concept of the peeling decoder was introduced which is a very simple, graph-based, sub-optimal decoding algorithm that yields good results. The decoding algorithm is based on the tanner graph of the code. If the tanner graph of the code is cycle free, then this decoding algorithm will be optimal too and it will be equivalent to the bit wise MAP decoder. Because message independence can be guaranteed in a cycle free graph.

The peeling decoder can be applied to any arbitrary linear code.

In this decoding scheme, decoding is done by iteratively passing messages between the check nodes and the variable nodes till all of the erased bits (due to the BEC) are corrected.

The decoding algorithm is as follows:

Step 1: Each variable node forwards the received bit (message) to the connected check nodes. Delete the edges connected to non erased bits. If there are some erased bits, go to step 2. If not (empty tanner graph), then decoding is done.

Step 2: Choose a check node which is connected to only one erased bit and calculate the sum of all of the bits connected to this check node (excluding the erased bit) mod 2. Now the erased bit connected to this check node will be assigned the calculated value (since the sum of all of the bits connected to a certain check node mod 2 must be equal to zero $HX^{T}=0$ ) .Then update the received bits (message passed from the check node to the variable node). Then go to step 1. If there is no check nodes connected to only one erased bit at the beginning of step 2, then the decoding process is stuck and decoding fails.

The number of iterations needed to recover the codeword can be known from the number of staircase steps in the EXtrinsic Information Transfer (EXIT) chart. For a more detailed explanation about the EXIT Charts you can check EXIT Charts for LDPC Codes.