convolution codes and turbo codes
TRANSCRIPT
Convolution codes &
turbo codes
BYManish 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 convolution codes 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
Ui
Xi
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 theencoding 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 bits xi
(1) and 2 out of 4 code bits xi(2) of
the mother codes are used, the others are deleted.
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 decode the mother code, so only one decoder is needed.
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 algorithm that selects the most probable path that maximizes the likelihood function.
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.
Key role of the interleaver is to shape the weight distribution of the code, which ultimately controls its performance.
TURBO ENCODER
PAD
INTERLEAVER
ENC1
ENC2 x
2
x0
x1Puncturing
& parallel/serial MUX
INFORMATION SOURCE
TO THE CHANNEL
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 recursivenon- recursive
DECODING CIRCUIT
(Interleaver 1)-1
Decoder 1 Interleaver 1 Decoder 2 (Interleaver 1)-1
DEMUX/INSERT
ESTIMATED SEQUENCE
RECEIVED SEQUENCE
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 decisions is therefore very vulnerable to error bursts where as in case of turbo codes it uses SOVA(soft output viterbi algorithm).