Convolutional Coding Viterbi Algorithm

Post on 10-Apr-2015

2,251 views 13 download

transcript

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

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm

Er Liu

liuer@cc.hut.filiuer@cc.hut.fiCommunications LaboratoryCommunications Laboratory

16.11.200416.11.2004

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@cc.hut.fi))

Page Page 22

OutlineOutline

Convolutional CodingConvolutional codeGenerator sequenceTrellis and state diagram

Viterbi AlgorithmMaximum-Likelihood decodingViterbi algorithm

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@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= <

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@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

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@cc.hut.fi))

Page Page 55

AnotherAnother EncoderEncoder exampleexample

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@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

⎧ =⎪⎨

=⎪⎩

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@cc.hut.fi))

Page Page 77

ExampleExample of of UsingUsing GeneratorGenerator MatrixMatrix

It can also use polynomial multiplication

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@cc.hut.fi))

Page Page 88

RepresentationRepresentation –– CodeCode TreeTree

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@cc.hut.fi))

Page Page 99

TrellisTrellis and and StateState DiagramDiagram

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@cc.hut.fi))

Page Page 1010

MinimumMinimum HammingHamming DistanceDistance

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@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∞

=

=∏

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@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?

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@cc.hut.fi))

Page Page 1313

Example of Maximal Likelihood DetectionExample of Maximal Likelihood Detection

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@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

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@cc.hut.fi))

Page Page 1515

ViterbiViterbi decodingdecoding

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@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

ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu (liuer@cc.hut.filiuer@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

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

AnyAny questionsquestions??

Thanks!