Convolutional Coding Viterbi Algorithm

18
Helsinki University of Technology Helsinki University of Technology S-72.333 Postgraduate Seminar on Radio Communications Convolutional Convolutional Coding & Coding & Viterbi Viterbi Algorithm Algorithm Er Liu [email protected] [email protected] Communications Laboratory Communications Laboratory 16.11.2004 16.11.2004

Transcript of Convolutional Coding Viterbi Algorithm

Page 1: Convolutional Coding Viterbi Algorithm

Helsinki University of TechnologyHelsinki University of TechnologyS-72.333 Postgraduate Seminar on Radio Communications

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm

Er Liu

[email protected]@cc.hut.fiCommunications LaboratoryCommunications Laboratory

16.11.200416.11.2004

Page 2: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 22

OutlineOutline

Convolutional CodingConvolutional codeGenerator sequenceTrellis and state diagram

Viterbi AlgorithmMaximum-Likelihood decodingViterbi algorithm

Page 3: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 33

ConvolutionalConvolutional EncodingEncoding

Convolutional codes are applied in applications that requiregood performance with low implementation cost. They operateon data stream, not static block.

Convolutional codes have memory that uses previous bits to encode or decode following bits

It is denoted by (n,k,L), where L is code memory depth

Code rate r is determined by input rate and output rate:

1input

output

rr

r= <

Page 4: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 44

ConvolutionalConvolutional EncoderEncoder

Convolutional encoder is a finite state machine (FSM), processing information bits in a serial mannerThus the generated code is a function of input and the states of the FSMIn this (n,k,L)=(2,1,2) encoder each message bits influences a span of n(L+1)=6 successive output bits

'2 1

''2

j j j j

j j j

x m m m

x m m− −

= ⊕ ⊕

= ⊕

(n,k,L)=(2,1,2) encoder

Page 5: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 55

AnotherAnother EncoderEncoder exampleexample

Page 6: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 66

GeneratorGenerator SequenceSequence(n,k,L) convolutional code can be described by generator sequencesg(1) , g(2),..., g(n) that are the impulse responses of each coder output branch

Generator sequences specify convolutional code completely by the associated generator matrixEncoded convolutional code is produced by matrix multiplication of input and the generator matrix

(1)

(2)

[1 0 1 1][1 1 1 1]

gg

⎧ =⎪⎨

=⎪⎩

Page 7: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 77

ExampleExample of of UsingUsing GeneratorGenerator MatrixMatrix

It can also use polynomial multiplication

Page 8: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 88

RepresentationRepresentation –– CodeCode TreeTree

Page 9: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 99

TrellisTrellis and and StateState DiagramDiagram

Page 10: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 1010

MinimumMinimum HammingHamming DistanceDistance

Page 11: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 1111

MaximumMaximum--LikelihoodLikelihood DecodingDecoding

Maximum likelihood decoding means finding the codebranch in the code trellis that was most likely to transmittedTherefore maximum likelihood decoding is based on calculating the hamming distances for each branch formingencode wordProbability to decode sequence is then

The most likely path through the trellis will maximize thismetric

0

( , ) ( )j jj

p y x p y x∞

=

=∏

Page 12: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 1212

Example of Maximal Likelihood DetectionExample of Maximal Likelihood DetectionAssume a three bit message is to transmitted. To clear the encoder two zero-bits are appended after message. Thus 5 bits are inserted into encoder and 10 bits produced. Assume channel error probability is p=0.1. After the channel 10,01,10,11,00 is produced. What comes after decoder, e.g. what was most likely the transmitted sequence?

Page 13: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 1313

Example of Maximal Likelihood DetectionExample of Maximal Likelihood Detection

Page 14: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 1414

ViterbiViterbi AlgorithmAlgorithm

ML algorithm is too complex to search all available pathesEnd to end calculation

Viterbi algorithm performs ML decoding by reducing itscomplexity

Eliminate least likely trellis path at each transmission stage

Reduce decoding complexity with early rejection of unlike pathes

Viterbi algorithm gets its efficiency via concentrating on suvival paths of the trellis

Page 15: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 1515

ViterbiViterbi decodingdecoding

Page 16: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 1616

ExampleExample of of ViterbiViterbi decodingdecoding

Input data : m =1 1 0 1 1Codeword : X = 11 01 01 00 01Received code : Z = 11 01 01 10 01

Page 17: Convolutional Coding Viterbi Algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))

Page Page 1717

HomeworkHomework

Please use Viterbi algorithm to decode the receivedsequence:

Z=[11 10 10 10 01]Please draw the trellis and state diagram

Page 18: Convolutional Coding Viterbi Algorithm

Helsinki University of TechnologyHelsinki University of TechnologyS-72.333 Postgraduate Seminar on Radio Communications

AnyAny questionsquestions??

Thanks!