
174 TURBO CODES
4.1.4 Belief Propagation
The general belief propagation algorithm is also a message-passing algorithm similar to
the one discussed in Section 4.1.2. The difference lies in the messages that are passed
between nodes. The messages passed along the edges in the belief propagation algorithm
are log-likelihood values. Each round of the algorithm consists of two steps. In the first
half-iteration, a message is sent from each message node to all neighbouring check nodes.
In the second half-iteration, each check node sends a message to the neighbouring message
nodes. Let L
l
[b
i
→ c
j
] denote the message from a message node b
i
to a check node c
j
in
the lth iteration. This message is computed on the basis of the observed channel value r
i
and
some of the messages received from the neighbouring check nodes except c
j
according
to Equation (4.7) in Figure 4.7. It is an important aspect of belief propagation that the
message sent from a message node b
i
to a check node c
j
must not take into account the
message sent in the previous round from c
j
to b
i
. Therefore, this message is explicitly
excluded in the update Equation (4.7). Remember that M
i
denotes the neighbourhood of
the node b
i
.
The message L
l
[c
j
→ b
i
] from the check node c
j
to the message node b
i
is an extrinsic
log-likelihood value based on the parity-check equation and the incoming messages from
all neighbouring message nodes except b
i
. The update rule is given in Equation (4.8). The
symbol
#
denotes the sum with respect to the boxplus operation.
Consider now the code defined by the Tanner graph in Figure 4.3. We consider transmis-
sion over a Gaussian channel with binary phase shift keying. Suppose the transmitted code
word is b = (+1, −1, −1, −1, −1, +1, −1, +1, −1). For this particular code word we may
obtain the following channel L-values L(r) = 4
E
s
N
0
· r = (5.6, −10.2, 0.7, 0.5, −7.5, 12.2,
−8.5, 6.9, −7.7). In the first step of the belief propagation algorithm the message nodes
pass these received values to the neighbouring check nodes. At each check node we calcu-
late a message for the message nodes. This message takes the code constraints into account.
For the first check node this is the parity-check equation b
1
⊕ b
2
⊕ b
5
= 0. Based on this
Update equations for belief propagation
■ Messages from message nodes to check nodes
L
l
[b
i
→ c
j
] =
%
L(r
i
) if l = 1
L(r
i
) +
#
j
∈M
i
\{j }
L
l−1
[c
j
→ b
i
] if l>1
(4.7)
■ Messages from check nodes to message nodes
L
l
[c
j
→ b
i
] =
i
∈P
j
\{i}
L
l−1
[b
i
→ c
j
] (4.8)
Figure 4.7: Update equations for the message passing with belief propagation