Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi...

9

Click here to load reader

Transcript of Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi...

Page 1: Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi Algorithm Rhett Davis EECS 290A February 16, 1999

Introduction to the ViterbiAlgorithm

Rhett Davis

EECS 290A

February 16, 1999

Page 2: Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi Algorithm Rhett Davis EECS 290A February 16, 1999

Problem Statement:

νi=f(yi)

Estimate the state of a system given a noisy observation, optimally

a

b

c

d

0/ya0

1/ya1

0/yc0

1/yb1

0/yb0

0/yd01/yc1

1/yd1

observations

estimates

ν0 ν1 ν2 ν3 ν4

a c b cd

...

...

Page 3: Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi Algorithm Rhett Davis EECS 290A February 16, 1999

Build a Trellis

ν0 ν1 ν2 ν3 ν4a

b

d

c

...

...

Trellis - a graphical representation of possible state evolution

Branch - a transition from one point in the trellis to another

Path - a group of connected branches through the trellis

Page 4: Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi Algorithm Rhett Davis EECS 290A February 16, 1999

Maximum Likelihood SequenceDetection (MLSD)

ν0 ν1 ν2 ν3 ν4a

b

d

c

...

...

P(a|ν0, ν1, ν2, ν3, ν4)P(b|ν0, ν1, ν2, ν3, ν4)P(c|ν0, ν1, ν2, ν3, ν4)P(d|ν0, ν1, ν2, ν3, ν4)

Path Metric: PM=f(ν0, ν1, ν2, ν3, ν4)

Page 5: Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi Algorithm Rhett Davis EECS 290A February 16, 1999

Viterbi Algorithm

ν1 ν2 ν3ν0a

b

d

c

ν4PM = Σ BM (Branch metrics)

Each state has one survivor path which is the most likely path

See http://www.alantro.com/html/viterbi.html

Page 6: Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi Algorithm Rhett Davis EECS 290A February 16, 1999

Application toConvolutional Coding

uncodedword

(length=k=1)

constraint length=K=3

1 2

code word (length=n=2)

00

01

10

11

0/00

1/11

0/10

1/00

0/11

0/011/01

1/10

00

10

11

01No. of states = 2(K-1)

Page 7: Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi Algorithm Rhett Davis EECS 290A February 16, 1999

Branch Metric Calculation

0 1

fν(ν|y=0)N(0,σ2)

fν(ν|y=1)N(1,σ2)

0 1

0

1

y1

y2

BM00-00 = BM00 = (0-ν1)2 + (0-ν2)2

BM00-10 = BM11 = (1-ν1)2 + (1-ν2)2

BM10-01 = BM10 = (1-ν1)2 + (0-ν2)2

......

...

Page 8: Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi Algorithm Rhett Davis EECS 290A February 16, 1999

Application toTrellis Coded Modulation

Source: V.32 modem for Motorola DSP, Dion D. Messer

real

imag

Convolutionally code somebits to choose a sub-constellation,use the remaining bits to choosebetween the points in a sub-constell.

Example:32-QAM3 bits used in coder(8 sub-constellations,4 bits per sub-constellation)

Page 9: Introduction to the Viterbi Algorithmnewton/Classes/EE290sp99/... · Introduction to the Viterbi Algorithm Rhett Davis EECS 290A February 16, 1999

TCM Trellis