convolution codes and turbo codes

17
Convolution codes & turbo codes BY Manish Srivastava

Upload: manish-srivastava

Post on 24-May-2015

7.465 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Convolution codes and turbo codes

Convolution codes &

turbo codes

BYManish Srivastava

Page 2: Convolution codes and turbo codes

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

Page 3: Convolution codes and turbo codes

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.

Page 4: Convolution codes and turbo codes

ENCODING CIRCUIT

The code is defined by the circuit, which consists of different number of shift registers

Ui

Xi

Page 5: Convolution codes and turbo codes

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 ½.

Page 6: Convolution codes and turbo codes

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

Page 7: Convolution codes and turbo codes

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.

Page 8: Convolution codes and turbo codes

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.

Page 9: Convolution codes and turbo codes

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.

Page 10: Convolution codes and turbo codes

TRELLIS DIAGRAM

Page 11: Convolution codes and turbo codes

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.

Page 12: Convolution codes and turbo codes

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.

Page 13: Convolution codes and turbo codes

TURBO ENCODER

PAD

INTERLEAVER

ENC1

ENC2 x

2

x0

x1Puncturing

& parallel/serial MUX

INFORMATION SOURCE

TO THE CHANNEL

Page 14: Convolution codes and turbo codes

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

Page 15: Convolution codes and turbo codes

DECODING CIRCUIT

(Interleaver 1)-1

Decoder 1 Interleaver 1 Decoder 2 (Interleaver 1)-1

DEMUX/INSERT

ESTIMATED SEQUENCE

RECEIVED SEQUENCE

Page 16: Convolution codes and turbo codes

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.

Page 17: Convolution codes and turbo codes

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).