You are on page 1of 17

.

CODE CONVOLUTIF ET ALGORITHME DE VITERBI

Didier LE RUYET
CNAM Paris

codeur convolutif non rcursif non systmatique dfini par sa matrice gnratrice :
G(D) = (1 + D + D2, 1 + D)
x1i

ui

s1i

s2 i
D

x2i

4 tats internes nots a,b,c et d.


s1i
0
0
1
1

tat interne
a
b
c
d

s2i
0
1
0
1

treillis lmentaire du code convolutif :


00
a
11
11

00
10

c
01

01
d

10

on considre la squence dinformation suivante : 1001


la squence code est donc : 11 10

11 11

une erreur survient dans la transmission du troisime bit.


La squence reue est donc : 11 00

11

11

on dcode en utilisant lalgorithme de Viterbi

a (0)

i=0

i = 0 : initialisation du treillis

Squence
reue :
a (0)

11

00 (2)

11 (0)

i=0

i=1

i = 1 : calcul des mtriques de branche

Squence
reue :
a (0)

11

00 (2)

(2) 0

11 (0)

(0) 1

i=0

i=1

i = 1 : calcul des mtriques cumules


stockage des squences survivantes

Squence
reue :

11

00
(2)

a
00 (2)

00 (0)

0
b

11 (0)

11 (2)

10 (1)

(0)
1
01 (1)

i=0

i=1

i=2

i = 2 : calcul des mtriques de branche

Squence
reue :

11

00
(2) 00

(2)

a
00 (2)

00 (0)

0
b

11 (0)

11 (2)

(1) 10

10 (1)

(0)

(4) 01

1
01 (1)

(1) 11

i=0

i=1

i=2

i = 2 : calcul des mtriques cumules


stockage des squences survivantes

Squence
reue :

11

00

11

(2)

a
00 (2)

00 (0)

(2) 00

00 (2)

0
11 (0)

11 (0)

11 (2)

(1) 10

11 (0)
00 (2)

10 (1)

(0)

(4)

01
01 (1)

i=0

01 (1)

(1)

i=1

10 (1)

11

01 (1)
10 (1)

i=2

i=3

i = 3 : calcul des mtriques de branche

10

Squence
reue :

11

a
00 (2)

00
(2) 0

11
(4) 000

(2)
00 (0)

00 (2)

00

(1) 100

11 (0)

11 (0)

11 (2)

(1)

11 (0)

10
00 (2)

(5) 010
(2) 110

10 (1)

(0) 1

(4)

10 (1)

(2) 001

01
01 (1)

01 (1)

(1)

(3) 101

11

01 (1)
10 (1)

(5) 011
(2) 111

i=0

i=1

i=2

i=3

i = 3 : calcul des mtriques cumules

11

Squence
reue :

11

a
00 (2)

00
(2) 0

11
(2)

00 (0)

00 (2)

00

(1) 100

11 (0)

11 (0)

11 (2)

(1)

11 (0)

10

(2) 110

00 (2)
10 (1)

(0) 1

(4)

10 (1)

(2) 001

01
01 (1)

01 (1)

(1)

11

01 (1)
10 (1)

(2) 111
i=0

i=1

i=2

i=3

i = 3 : stockage des squences survivantes

12

Squence
reue :

11

00

11
(2)

(2)

11

00 (2)

00 (0)

00 (2)

(1) 100

00

11 (0)

11 (0)

11 (0)

11 (2)

(1)

11 (0)

00 (2)

(2)

11 (0)

110

10
00 (2)

00 (2)

10 (1)

(0)

(4)

i=0

11

10 (1)

001

01 (1)

(1)

i=1

(2)

01
01 (1)

10 (1)

01 (1)
10 (1)

i=2

01 (1)

(2)

i=3

i = 4 : calcul des mtriques de branche

13

111

01 (1)
10 (1)

i=4

Squence
reue :

11

a
00 (2)

00
(2) 0

11

11

(2)
00 (0)

00 (2)

(1) 100

00

11 (0)

11 (0)

11 (0)

11 (2)

(1)

11 (0)

00 (2)

(2)

10

11 (0)

110
00 (2)

(3) 1000
(2) 1100
(3) 0010
(3) 1110

00 (2)

10 (1)

(0) 1

(4)

10 (1)

(2)

01
01 (1)

(1) 1001
001
(4) 1101

01 (1)

(1)

10 (1)

11

01 (1)
10 (1)

01 (1)

(2)

111

01 (1)
10 (1)

(3) 0011
(3) 1111

i=0

i=1

i=2

i=3

i = 4 : calcul des mtriques cumules

14

i=4

Squence
reue :

11

a
00 (2)

00
(2) 0

11

11

(2)
00 (0)

00 (2)

(1) 100

00

11 (0)

11 (0)

11 (0)

11 (2)

(1)

11 (0)

00 (2)

(2)

10

(2) 1100

11 (0)

110
00 (2)

(3) 1110

00 (2)

10 (1)

(0) 1

(4)

10 (1)

(2)

01
01 (1)

i=0

i=1

11

(1) 1001
001

01 (1)

(1)

10 (1)

01 (1)
10 (1)

i=2

01 (1)

(2)

i=3

i = 4 : stockage des squences survivantes

15

111

01 (1)
10 (1)

(3) 0011

i=4

Squence
reue :

11

a
00 (2)

00
(2) 0

11

11

(2)
00 (0)

00 (2)

(1) 100

00

11 (0)

11 (0)

11 (0)

11 (2)

(1)

11 (0)

00 (2)

(2)

10

11 (0)

110
00 (2)

00 (2)

10 (1)

(0) 1

(4)

10 (1)

(2)

01
01 (1)

i=0

i=1

11

1001
001

01 (1)

(1)

10 (1)

01 (1)
10 (1)

i=2

01 (1)

(2)

i=3

i = 4 : choix de la squence la plus probable

16

111

01 (1)
10 (1)

i=4

Squence
reue:
11
a

00 (2)

00
(2) 0

11

11

(2)
00 (0)

00 (2)

(1) 100

00

11 (0)

11 (0)

11 (0)

11 (2)

(1)

11 (0)

10

(2)
110

00 (2)
10 (1)

(0) 1

(4)

10 (1)

(2)

i=0

i=1

11

10 (1)

1001

001

01 (1)

(1)

11 (0)

00 (2)

01
01 (1)

00 (2)

01 (1)
10 (1)

i=2

01 (1)

(2) 111
i=3

i = 4 : choix de la squence la plus probable

17

01 (1)
10 (1)

i=4