Appendix B
SISO VLC Decoder
In Chapter 3 we derive the MAP VLC decoder as an inner code, which processes the channel output directly. In the following we derive the APP VLC decoder as an outer code, which processes the extrinsic output of the inner code. We derive the decoding procedure based on the SISO APP module introduced in [254], which was a slightly modified version of the BCJR algorithm [48] and was originally designed for convolutional codes.
The SISO module is a four-terminal device having two inputs and two outputs, as shown in Figure B.1. It accepts as its inputs P(u; I) and P(c; I), namely the probability distributions of the information symbols u and code symbols c labeling the edges of the code trellis, and forms the resultant outputs, P(u; O) and P(c; O), which constitute an update of these distributions based upon the code constraints. These outputs represent the extrinsic information.
Following the notation of [254], the extrinsic information is calculated as follows. At time k the output probability distribution is evaluated as
where e represents a branch of the trellis, and c(e), sS(e), and sE(e) are, respectively, the output symbol, the starting state and the terminating state of the branch e, while k is a normalizing factor that ensures maintaining k(0; ...