From: cpshah99 on
Hi all

As everybody knows that Turbo codes are the codes which gives improvement
as the iteration increases.

But why we get this improvement?

My question is in context of AWGN channel.

Thanking you

Chintan
From: cincydsp on
On May 6, 5:25 pm, Eric Jacobsen <eric.jacob...(a)ieee.org> wrote:
> On Tue, 06 May 2008 12:47:44 -0500, "cpshah99"
>
> <cpsha...(a)rediffmail.com> wrote:
> >Hi all
>
> >As everybody knows that Turbo codes are the codes which gives improvement
> >as the iteration increases.
>
> >But why we get this improvement?
>
> >My question is in context of AWGN channel.
>
> >Thanking you
>
> >Chintan
>
> One way to think of it is "code diversity". A Turbo Code essentially
> encodes the data twice, with two different codes, and the decoder
> iterates between decoding the two codes. The "extrinsic" soft
> reliability information is updated in each half-iteration and shared
> by each decoder. So if one code improves the estimated reliability
> of a particular information bit, that improvement is passed on to the
> next decoder during the next half-iteration. In this way the
> incremental improvements made by each iteration accumulate to,
> hopefully, improve the ultimate reliability of the codeword.
>
> That's an intuitive way to look at it, anyway. I hope it helps a bit
> or two.
>
> Eric Jacobsen
> Minister of Algorithms
> Abineau Communicationshttp://www.ericjacobsen.org

Another intuitive way to look at it: modern codes like this are
usually built up of low-complexity (i.e. short constraint length)
convolutional codes, connected via permutations. Inside each code,
there is relatively weak global structure; the bits at the end of a
block hardly have any dependence on bits at the beginning of a block.
However, there is tight local structure between bits that are close
together in a block. So, say you have one end of a block that is
relatively noise-free while the other has been reduced to garbage by
noise. As your decoder iterates, the beliefs from the noise-free
section of the codeword will propagate throughout the rest of the
coded block, in effect "bootstrapping" the more disadvantaged bits.
You get the turbo effect by exchanging the beliefs in "extrinsic form"
through a random interleaver with another decoder, as Eric pointed out
with his "code diversity" argument, which gives you additional ability
to improve your bit estimates.

Iterative decoding is actually a relatively intuitive technique and is
quite powerful; I've yet to find a good textbook that doesn't turn the
topic of turbo decoding into an incoherent mess. But, if you can get a
feel for how it works and how standard decoding rules are implemented,
it's straightforward to write a decoder for turbo codes, structured
LDPC codes, serially-concatenated convolutional codes, etc.

Jason
From: Eric Jacobsen on
On Tue, 06 May 2008 12:47:44 -0500, "cpshah99"
<cpshah99(a)rediffmail.com> wrote:

>Hi all
>
>As everybody knows that Turbo codes are the codes which gives improvement
>as the iteration increases.
>
>But why we get this improvement?
>
>My question is in context of AWGN channel.
>
>Thanking you
>
>Chintan


One way to think of it is "code diversity". A Turbo Code essentially
encodes the data twice, with two different codes, and the decoder
iterates between decoding the two codes. The "extrinsic" soft
reliability information is updated in each half-iteration and shared
by each decoder. So if one code improves the estimated reliability
of a particular information bit, that improvement is passed on to the
next decoder during the next half-iteration. In this way the
incremental improvements made by each iteration accumulate to,
hopefully, improve the ultimate reliability of the codeword.

That's an intuitive way to look at it, anyway. I hope it helps a bit
or two.

Eric Jacobsen
Minister of Algorithms
Abineau Communications
http://www.ericjacobsen.org
From: cpshah99 on
>On May 6, 5:25 pm, Eric Jacobsen <eric.jacob...(a)ieee.org> wrote:
>> On Tue, 06 May 2008 12:47:44 -0500, "cpshah99"
>>
>> <cpsha...(a)rediffmail.com> wrote:
>> >Hi all
>>
>> >As everybody knows that Turbo codes are the codes which gives
improvement
>> >as the iteration increases.
>>
>> >But why we get this improvement?
>>
>> >My question is in context of AWGN channel.
>>
>> >Thanking you
>>
>> >Chintan
>>
>> One way to think of it is "code diversity". A Turbo Code essentially
>> encodes the data twice, with two different codes, and the decoder
>> iterates between decoding the two codes. The "extrinsic" soft
>> reliability information is updated in each half-iteration and shared
>> by each decoder. So if one code improves the estimated reliability
>> of a particular information bit, that improvement is passed on to the
>> next decoder during the next half-iteration. In this way the
>> incremental improvements made by each iteration accumulate to,
>> hopefully, improve the ultimate reliability of the codeword.
>>
>> That's an intuitive way to look at it, anyway. I hope it helps a bit
>> or two.
>>
>> Eric Jacobsen
>> Minister of Algorithms
>> Abineau Communicationshttp://www.ericjacobsen.org
>
>Another intuitive way to look at it: modern codes like this are
>usually built up of low-complexity (i.e. short constraint length)
>convolutional codes, connected via permutations. Inside each code,
>there is relatively weak global structure; the bits at the end of a
>block hardly have any dependence on bits at the beginning of a block.
>However, there is tight local structure between bits that are close
>together in a block. So, say you have one end of a block that is
>relatively noise-free while the other has been reduced to garbage by
>noise. As your decoder iterates, the beliefs from the noise-free
>section of the codeword will propagate throughout the rest of the
>coded block, in effect "bootstrapping" the more disadvantaged bits.
>You get the turbo effect by exchanging the beliefs in "extrinsic form"
>through a random interleaver with another decoder, as Eric pointed out
>with his "code diversity" argument, which gives you additional ability
>to improve your bit estimates.
>
>Iterative decoding is actually a relatively intuitive technique and is
>quite powerful; I've yet to find a good textbook that doesn't turn the
>topic of turbo decoding into an incoherent mess. But, if you can get a
>feel for how it works and how standard decoding rules are implemented,
>it's straightforward to write a decoder for turbo codes, structured
>LDPC codes, serially-concatenated convolutional codes, etc.
>
>Jason
>
%%%%%%

Hi

Thanks for replying. It is clear now how we get iterative gain when we use
turbo decoder.

Now, in case of turbo equaliser, we can still give same explanation (I
hope I cam correct!!!) but does it improve the SINR(Signal to noise
interference ratio)?

Regards,

Chintan P. Shah