Professional Documents
Culture Documents
Viterbi References
Suggestedreferences:
J.G.Proakis andM.Salehi,FundamentalsofCommunication Systems,PrenticeHall,2005.[codingandviterbi] A.J.Viterbi,ErrorBoundsforConvolutionalCodesandan AsymptoticallyOptimumDecodingAlgorithm, IEEETrans. onInformationTheory, April1967. G.D.Forney,MaximumLikelihoodSequenceEstimation ofDigitalSequencesinthePresenceofIntersymbol Interference, IEEETrans.onInformationTheory, May1972. H.L.Lou,ImplementingtheViterbiAlgorithm, IEEE SignalProcessingMagazine, Sept.1995. P.J.Black,AlgorithmsandArchitecturesforHighSpeed ViterbiDecoding, Ph.D.dissertation,March1993.
B.Baas, 2013,EEC281
133
Viterbi Algorithm
Widelyusedincommunicationsystemstodecodea datasequencethathasbeenencodedbyafinite state process
Ex:ethernetreceiver Ex:harddiskreadelectronics
AverycommondemandingDSPtask
Ex:viterbibuildingblocksareineveryseriousDSP benchmarkingsuite Ex:TheTexasInstrumentsC64xDSPprocessorhasa dedicatedonchipviterbidecoder.Theviterbi decoderand aturbodecoder occupyabout8%ofthechipsarea
B.Baas, 2013,EEC281
134
Viterbi Algorithm
Involvescodingdata,addingnoise,anddecoding
Deliberateencoding:convolutionalortrelliscodes Unintentionalencoding:intersymbolinterference
channel
B.Baas, 2013,EEC281
135
Ex:a4state,Rate= convolutionalencoder
inputdataxn encodedsymbolsy1 andy2 y1,n =xn XOR xn1XOR xn2 y2,n =xnXOR xn2 Twodatabitsoutputbydecoderforeachinputbit(rate=) Doublerate outputbitstypicallysentseriallyintoonechannel
B.Baas, 2013,EEC281
136
xn1 xn (input)
y1,n
xn
xn-1
XOR
xn-2 y2,n
137
B.Baas, 2013,EEC281
y1,n 0 1 1 0 1 0 0 1
y2,n 0 1 0 1 1 0 1 0
138
B.Baas, 2013,EEC281
Nextstatefoundby:
xn1
xn (input)
01
1/10
11
1/10
0/01
139
B.Baas, 2013,EEC281
Trellis
Thetrellis isatimeindexed versionofthestatediagram Eachstatetransition(inputbit intotheencoder)corresponds toaforwardstepinthetrellis
State 00 01 10 11 time: n n+1 00 01 10 11
01
01
00
11
00
11
10
10
B.Baas, 2013,EEC281
140
Trellis
Givenastartingstate,everypossibleinputsequence correspondstoauniquepaththroughthetrellis Example:
Inputxn =0,1,1,0 Output ={0,0},{1,1}, {1,0},{1,0} State 00 01 10 11 0/00
B.Baas, 2013,EEC281
1/11
1/10
0/10
141
Viterbi Decoding
Viterbidecodercalculatesasemibruteforceestimateofthe likelihoodforeachpaththroughthetrellis Keypoint:Oncetheestimatesforallstatesinastep/iteration of thetrellishavebeencalculated,theprobabilitiesforall previoussteps/iterationscanbediscarded;onlythemostlikely entrytoastateneedberemembered Fourbasicsteps
1. Calculatethetrellis
a) Weightthetrellisbranchesbycalculatingbranchmetrics b) Computetheminimumweightpathtotimen+1intermsofthe minimumweightpathtotimen.Retainstepdecisions.Usesadd compareselect(ACS) algorithm.
Goalistofindtheminimumweightpath(oftencalledshortest path)throughthetrellis
B.Baas, 2013,EEC281
143
1b) ACS
Goalistofindthemostlikelyentrypathintoastate ADDpreviousstatemetrictocurrentbranchmetric
forfirstbranch forsecondbranch
ACS Hardware
Branch metric Decision bit
Compare
Select (mux)
Branch metric
B.Baas, 2013,EEC281
145
B.Baas, 2013,EEC281
146
3. Traceback
Thegoalistoreadoutthebestestimateforall decodedbits Theprocessbeginsatthemostlikelystateandit followsthisprocedureforeachstateinthetrellis
1) ReadstoreddecisionbitfromACS 2) Outputthisdecodedbit 3) Usethedecisionbittocalculatethepreviousstateinthe trellis 4) <repeat>
B.Baas, 2013,EEC281
147
B.Baas, 2013,EEC281
148