Convolution codes
       &
   turbo codes

                              BY
               Manish Srivastava
DIFFERENCE BETWEEN BLOCK
CODE AND CONVOLUTION CODE

The difference between block codes and
convolution codes is the encoding principle.

 In the block codes, the information bits are
followed by the parity bits.

 In convolutioncodes the information bits are
spread along the sequence
WHAT IS CONVOLUTION CODE?


Convolution codes are error detecting codes
used to reliably transmit digital data over
unreliable communication channel system to
channel noise.

The convolution codes map information to code
bits , but sequentially convolve the sequence of
information bits according to some rule.
ENCODING CIRCUIT
        The code is defined by the circuit,
         which consists of different number of
         shift registers

                                Xi
Ui
We   generate a convolution code by putting a
source stream through a linear filter. This filter
makes use of a shift register, linear output
functions and possibly linear feedback.

In  a shift register, the information bits roll from
right to left.

In  every filter there is one input bit and two
output bits. Because of each source bit having
two transmitted bits, the codes have rate ½.
DEFINING CONVOLUTION CODE

A convolution code can be defined by using a
generator matrix that describes the
encoding function u               x:
 x = u .G
For 3 information bit long sequence u = (u0,u1,u2)
 we get
((x0(1) x0(2) ), (x1 (1)x1 (2) ), (x2(1) x2(2) )) = (u0 ,u1 ,u2 )
.G
PUNCTURING OF CONVOLUTION CODES

The idea of puncturing is to delete some bits in the
code bit sequence according to a fixed rule. In
general the puncturing of a rate K / N code is defined
using N puncturing vectors.
Considering a code without puncturing,
 the information bit sequence
u =(0,0,1,1,0) generates the (unpunctured) code bit
sequence
 xNP= (00,00,11,01,01). The sequence xNP is
punctured using a puncturing matrix:
                      PI= 1110
                             1001

The puncturing period is 4. Using P1 , 3 out of 4 code
The rate of the punctured code is thus

R = 1/ 2 .(4 + 4) /(3 + 2)= 4 / 5 and u
is encoded to                x=
(00,0X ,1X , X1,01) = (00,0,1,1,01)

The  performance of the punctured
code is worse than the performance of
the mother code.

The  advantage of using puncturing is
that all punctured codes can be
decoded by a decoder that is able to
DECODING CONVOLUTION
CODES
  The most probable state sequence
can be found using the min-sum
algorithm
(also known as the Viterbi algorithm).
The viterbi algorithm is used to
decode convolutional codes and any
structure or system that can be
described by a trellis.

It   is a maximum likelihood decoding
TRELLIS DIAGRAM
TURBO CODES
 The Parallel-Concatenated
 Convolutional Codes(PCCC), called turbo
 codes, has solved the dilemma of structure
 and randomness through concatenation and
 interleaving respectively.

    The introduction of turbo codes has given
    most of the gain promised by the channel-
    coding theorem.

 Turbo     codes have an astonishing performance
    of bit error rate (BER) at relatively low Eb /No.
INTERLEAVING
    An interleaver is a device that
    rearranges the ordering of sequence of
    symbols in a deterministic manner.

 The    two main issues in the interleaver
    design are the interleaver size and the
    interleaver map.

 Interleaving is used to feed the encoders
    with permutations so that the generated
    redundancy sequences can be assumed
    independent.
TURBO ENCODER



INFORMATIO
N SOURCE     PAD                   x0
                                         Puncturing      TO THE
                                    x1        &          CHANNEL
                             ENC
                             1           parallel/seri
                                           al MUX
               INTERLEAVE   ENC
               R            2      x2
   There are two convolutional encoders in parallel. The
    information bits are scrambled before entering the
    second encoder.

   Turbo code block diagram shows only two branches.
    The convolutional code at every branch is called the
    constituent code (CC).

 A PAD is shown figure to append the proper sequence
  of bits to terminate all the encoders to the all-zero
  state.
 Some of the codes are called
       recursive
       non- recursive
DECODING CIRCUIT
                        (Interleaver 1)-1




                    Decoder 1         Interleaver 1   Decoder 2                       ESTIMATED
                                                                  (Interleaver 1)-1   SEQUENCE

           DEMU
RECEIVED
           X/INSE
SEQUENC    RT
E
DECODING THE TURBO
CODES

For  turbo codes we have two encoded
sequences. we start by decoding one of them to
get a first estimate of the information sequence.

This estimate should then be used as a priori
information in the decoding of the second
encoded sequence.

This  requires that the decoder is able to use a
soft decision input and to produce some kind of
soft output.
COMPARISION
Convolution  code is easy to
implement than turbo codes.
Turbo codes produces randomness in
coding due to interleavers which is
absent in convolution code.
 Only one decoder is needed and
adaptive coding scheme can be
implemented in convolution code unlike
turbo code.
The Viterbi decoding uses hard

Convolution codes and turbo codes

  • 1.
    Convolution codes & turbo codes BY Manish Srivastava
  • 2.
    DIFFERENCE BETWEEN BLOCK CODEAND CONVOLUTION CODE The difference between block codes and convolution codes is the encoding principle.  In the block codes, the information bits are followed by the parity bits.  In convolutioncodes the information bits are spread along the sequence
  • 3.
    WHAT IS CONVOLUTIONCODE? Convolution codes are error detecting codes used to reliably transmit digital data over unreliable communication channel system to channel noise. The convolution codes map information to code bits , but sequentially convolve the sequence of information bits according to some rule.
  • 4.
    ENCODING CIRCUIT  The code is defined by the circuit, which consists of different number of shift registers Xi Ui
  • 5.
    We generate a convolution code by putting a source stream through a linear filter. This filter makes use of a shift register, linear output functions and possibly linear feedback. In a shift register, the information bits roll from right to left. In every filter there is one input bit and two output bits. Because of each source bit having two transmitted bits, the codes have rate ½.
  • 6.
    DEFINING CONVOLUTION CODE Aconvolution code can be defined by using a generator matrix that describes the encoding function u x: x = u .G For 3 information bit long sequence u = (u0,u1,u2) we get ((x0(1) x0(2) ), (x1 (1)x1 (2) ), (x2(1) x2(2) )) = (u0 ,u1 ,u2 ) .G
  • 7.
    PUNCTURING OF CONVOLUTIONCODES The idea of puncturing is to delete some bits in the code bit sequence according to a fixed rule. In general the puncturing of a rate K / N code is defined using N puncturing vectors. Considering a code without puncturing, the information bit sequence u =(0,0,1,1,0) generates the (unpunctured) code bit sequence xNP= (00,00,11,01,01). The sequence xNP is punctured using a puncturing matrix: PI= 1110 1001 The puncturing period is 4. Using P1 , 3 out of 4 code
  • 8.
    The rate ofthe punctured code is thus R = 1/ 2 .(4 + 4) /(3 + 2)= 4 / 5 and u is encoded to x= (00,0X ,1X , X1,01) = (00,0,1,1,01) The performance of the punctured code is worse than the performance of the mother code. The advantage of using puncturing is that all punctured codes can be decoded by a decoder that is able to
  • 9.
    DECODING CONVOLUTION CODES  The most probable state sequence can be found using the min-sum algorithm (also known as the Viterbi algorithm). The viterbi algorithm is used to decode convolutional codes and any structure or system that can be described by a trellis. It is a maximum likelihood decoding
  • 10.
  • 11.
    TURBO CODES  TheParallel-Concatenated Convolutional Codes(PCCC), called turbo codes, has solved the dilemma of structure and randomness through concatenation and interleaving respectively.  The introduction of turbo codes has given most of the gain promised by the channel- coding theorem.  Turbo codes have an astonishing performance of bit error rate (BER) at relatively low Eb /No.
  • 12.
    INTERLEAVING  An interleaver is a device that rearranges the ordering of sequence of symbols in a deterministic manner.  The two main issues in the interleaver design are the interleaver size and the interleaver map.  Interleaving is used to feed the encoders with permutations so that the generated redundancy sequences can be assumed independent.
  • 13.
    TURBO ENCODER INFORMATIO N SOURCE PAD x0 Puncturing TO THE x1 & CHANNEL ENC 1 parallel/seri al MUX INTERLEAVE ENC R 2 x2
  • 14.
    There are two convolutional encoders in parallel. The information bits are scrambled before entering the second encoder.  Turbo code block diagram shows only two branches. The convolutional code at every branch is called the constituent code (CC).  A PAD is shown figure to append the proper sequence of bits to terminate all the encoders to the all-zero state.  Some of the codes are called recursive non- recursive
  • 15.
    DECODING CIRCUIT (Interleaver 1)-1 Decoder 1 Interleaver 1 Decoder 2 ESTIMATED (Interleaver 1)-1 SEQUENCE DEMU RECEIVED X/INSE SEQUENC RT E
  • 16.
    DECODING THE TURBO CODES For turbo codes we have two encoded sequences. we start by decoding one of them to get a first estimate of the information sequence. This estimate should then be used as a priori information in the decoding of the second encoded sequence. This requires that the decoder is able to use a soft decision input and to produce some kind of soft output.
  • 17.
    COMPARISION Convolution codeis easy to implement than turbo codes. Turbo codes produces randomness in coding due to interleavers which is absent in convolution code.  Only one decoder is needed and adaptive coding scheme can be implemented in convolution code unlike turbo code. The Viterbi decoding uses hard