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
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
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= <
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
ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))
Page Page 55
AnotherAnother EncoderEncoder exampleexample
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
⎧ =⎪⎨
=⎪⎩
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
ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))
Page Page 88
RepresentationRepresentation –– CodeCode TreeTree
ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))
Page Page 99
TrellisTrellis and and StateState DiagramDiagram
ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))
Page Page 1010
MinimumMinimum HammingHamming DistanceDistance
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∞
=
=∏
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?
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
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
ConvolutionalConvolutional Coding & Coding & ViterbiViterbi AlgorithmAlgorithm Er Liu (Er Liu ([email protected]@cc.hut.fi))
Page Page 1515
ViterbiViterbi decodingdecoding
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
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
Helsinki University of TechnologyHelsinki University of TechnologyS-72.333 Postgraduate Seminar on Radio Communications
AnyAny questionsquestions??
Thanks!