Convolution codes & turbo codes BY Manish Srivastava
DIFFERENCE BETWEEN BLOCKCODE AND CONVOLUTION CODEThe difference between block codes andconvolution codes is the encoding principle. In the block codes, the information bits arefollowed by the parity bits. In convolutioncodes the information bits arespread along the sequence
WHAT IS CONVOLUTION CODE?Convolution codes are error detecting codesused to reliably transmit digital data overunreliable communication channel system tochannel noise.The convolution codes map information to codebits , but sequentially convolve the sequence ofinformation bits according to some rule.
ENCODING CIRCUIT The code is defined by the circuit, which consists of different number of shift registers XiUi
We generate a convolution code by putting asource stream through a linear filter. This filtermakes use of a shift register, linear outputfunctions and possibly linear feedback.In a shift register, the information bits roll fromright to left.In every filter there is one input bit and twooutput bits. Because of each source bit havingtwo transmitted bits, the codes have rate ½.
DEFINING CONVOLUTION CODEA convolution code can be defined by using agenerator matrix that describes theencoding function u x: x = u .GFor 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 CODESThe idea of puncturing is to delete some bits in thecode bit sequence according to a fixed rule. Ingeneral the puncturing of a rate K / N code is definedusing N puncturing vectors.Considering a code without puncturing, the information bit sequenceu =(0,0,1,1,0) generates the (unpunctured) code bitsequence xNP= (00,00,11,01,01). The sequence xNP ispunctured using a puncturing matrix: PI= 1110 1001The puncturing period is 4. Using P1 , 3 out of 4 code
The rate of the punctured code is thusR = 1/ 2 .(4 + 4) /(3 + 2)= 4 / 5 and uis encoded to x=(00,0X ,1X , X1,01) = (00,0,1,1,01)The performance of the puncturedcode is worse than the performance ofthe mother code.The advantage of using puncturing isthat all punctured codes can bedecoded by a decoder that is able to
DECODING CONVOLUTIONCODES The most probable state sequencecan be found using the min-sumalgorithm(also known as the Viterbi algorithm).The viterbi algorithm is used todecode convolutional codes and anystructure or system that can bedescribed by a trellis.It is a maximum likelihood decoding
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 ENCODERINFORMATION 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 THE TURBOCODESFor turbo codes we have two encodedsequences. we start by decoding one of them toget a first estimate of the information sequence.This estimate should then be used as a prioriinformation in the decoding of the secondencoded sequence.This requires that the decoder is able to use asoft decision input and to produce some kind ofsoft output.
COMPARISIONConvolution code is easy toimplement than turbo codes.Turbo codes produces randomness incoding due to interleavers which isabsent in convolution code. Only one decoder is needed andadaptive coding scheme can beimplemented in convolution code unliketurbo code.The Viterbi decoding uses hard