# Turbo codes and message passing

I'm self-studying turbo codes for a graduate course in coding theory. I understood how turbo codes works by directly reading Berrou' paper and some of the following works on this topic. Given that, there is a simple question that i canno't answer with my self... Turbo code relies on the fundamental principle of message passing during iterative decoding, more formally speaking the extrinsic information produced by one decoder is passed as a-priori information to the next (companion) decoder. This is my problematic point: why extrinsic information, that is an a-posteriori computation (given from the Log-likelihood-ratio) should be passed as an a-priori information the next decoder?

The LLR can be expressed as: $$L(u_i)=\log\frac{P(u_i=1|\text{observation})}{P(u_i=0|\text{observation})}=\log\frac{p(obs.|u_i=1)}{p(obs.|u_i=0)}+\log\frac{P(u_i=0)}{P(u_i=1)}$$

What if the apriori knowledge of the source is known? For example...suppose a indipendent binary source, so that $P(0)=P(1)=1/2$. In this case there is no need to update the apriori knowledge because it is exactly equal to $0$, and extrinsic information is, in general, different from $0$, so the estimate is wrong at each step.

• That's ok but..in the LLR you're searching for the "best encoder input" given observation, and then, by applying Bayes' theorem, you obtain the rule i wrote in my question. $u_i$ in this case are the encoder input, not the codeword, so i can assume to know the statistical characterization of my source (i.e. the second term of my summation). I'm i wrong somewhere?
• A turbo code contains two convolutional codes. in the $k$'th step, the first term only considers one of the convolutional codes, while you take the other convolutional code into account by treating the knowledge you obtained by looking at it as a priori information. Jan 3 '16 at 13:43