Vous êtes sur la page 1sur 29

Nicolas Sendrier

Programme Informatique Th
ematique S
ecurit
e

Introduction la th
eorie de linformation

Cours n8
Codes convolutifs

Codeur convolutif
D
efinition Un codeur convolutif binaire (n, k, m) est un circuit lin
eaire
invariant dans le temps, sans feedback, dordre m, `
a k entr
ees et n
sorties sur {0, 1}.
equences produites
D
efinition Un code convolutif est lensemble des s
par un codeur convolutif.
equence cod
ee (infinie) corPour toute s
equence binaire infinie u la s
respondante est v = uG, o`
u G est une matrice binaire infinie

G=

G0 G1 G m
G0 G1 G m
... ... ... ...
G0 G1 G m
... ... ... ...

et les Gi sont des matrices binaires k n.


cours n 8: Codes convolutifs

Codeur convolutif Description alg


ebrique

Matrice de transfert :
G(D) =

m
X

i=1

i
Gi D =

g1,1(D) g1,n(D)

..
..
...

gk,1(D) gk,n(D)

lordre du codeur est d


efini par m = max deg gi,j (D).
i,j

Entr
ee : k s
eries formelles
Sortie : n s
eries formelles


(1)
(k)
u (D), . . . , u (D) .

j {1, . . . , n},


(1)
(n)
v (D), . . . , v (D) .

v (j)(D) =

k
X

u(i)(D)gi,j (D)

i=1

cours n 8: Codes convolutifs

Exemples
Codeur convolutif binaire (2, 1, 3)
G(D) =

1 + D2 + D3 1 + D + D2 + D3

b
*
 K
A


A
6


A


A
#
A
s s
? Ab -

XX

XXX

HH
H
XXX
XX HH 
?
XXXH
j
H
X
z
b
-



Codeur convolutif binaire (3, 2, 1)

G(D) =

1+D D 1+D
D
1
1

cours n 8: Codes convolutifs

b










b
 K
A
7 
A

A
 
A
 
A
s

A
CS 
A
CS 
A
C S
#
A
C  S
w
J
C
? Ab b
:

J

C 
J   C
J
 C
J 
C
Js
C
J
C
J C
J C
JJ
CW
^
b

-

Codage
(i)

Pour t < 0, les ut


codeur est 0).
entr
ees
(1)

ut
..

(k)

ut

ancien
etat
(1)

(1)

(1)

(1)

(k)

(k)

ut1 utm

(1)

vt

vt

sorties

ut1 utm
..
..

sont tous nuls (autrement dit l


etat initial du

(n)

, . . . , vt

cours n 8: Codes convolutifs

(n)

, . . . , vt

vt
..
..

(n)
vt

nouvel
etat
(1)

utm+1
..

(k)

utm+1

ut
..
ut

(1)

(k)


m 
X
(1)
(k)
=
utl , . . . , utl Gl
l=0


(1)
(k)
(1)
(k)
ut , . . . , ut , . . . , utm, . . . , utm

G0
..

Gm
4

Diagramme d
etat Exemple pour un codeur (2, 1, 3)
` chaque
etat du codeur
A
#
#
correspond un sommet du
1/01
- 111  !
110
graphe.
"!
"!
 6 @
@
Chaque ar
ete du graphe
@
0/10
@
1/01
0/01
@
repr
esente
une
transition
@
1/10
@
?
@
#
possible dun
etat `
a un
@#
1/11 R

011
1/00  101
autre avec comme
etiquette
"!
"!
#
#
ee/sortie
corresponlentr
0/01
- 010 0/10
100
dante.
"!
"!
#

1/10

@
@
6 I

1/11
#

#
000 

1/00
@

0/11
"!
6
"!


a
K
AA
*
6

A

A

A
r r
?Aa -

0/00

0/11

?
@#

001

"!

0/00

cours n 8: Codes convolutifs

r -

r -

XXX

XX

HH
XXX HH
XXXH 
?
j
H
Xz
X
a


Distance libre

D
efinition La distance libre dun codeur convolutif est la plus petite
distance de Hamming entre deux mots de code distincts.
Comme les codeurs convolutifs sont lin
eaires, la distance libre est
aussi
egale au poids de Hamming minimal dune s
equence cod
ee.

cours n 8: Codes convolutifs

Distance libre Exemple


1
#

110

111

 !

La distance libre est le


poids #
mini#

"!
"!
 6 @
@
@
@ 1
1
1
@
@
@
?
@
#
R
@#
2
101 
011

"!
"!

mal dun chemin de

1
0
#

100

"!
@
@
6 I
@
@ 0
@
2
@
@
#

#
000 

"!2
6
"!

010

2
@

?
@#

001

"!

000

`
a

Les
chemins
minimaux
d
eterminent
les
plus
petits
motifs derreurs conduisant `
a un
mauvais d
ecodage.

cours n 8: Codes convolutifs

Ici la distance libre vaut 6. On notera que le chemin de poids minimal nest pas le plus court.

"!

000

"! "!

Codeur (non) catastrophique

Certains codeurs ont la propri


et
e suivante :
Une s
equence dinformation de poids infini est cod
ee en une
s
equence de poids fini.
Par exemple u = (1, 1, . . . ) et


G(D) = 1 + D 1 + D

La s
equence cod
ee sera v = (1, 1, 0, 1, 0, 0, . . . ). Si au cours de la
transmission les 2 premiers bits sont modifi
es, un d
ecodeur `
a vraisemblance maximale d
ecodera la s
equence en u
= (0, 0, . . . ), donc
commettra un nombre infini derreurs (dans linformation).
On parle alors de codeur catastrophique. Il existe des conditions
n
ecessaires et suffisantes pour quun codeur ne soit pas catastrophique.
cours n 8: Codes convolutifs

Treillis de codage

Le treillis de codage est obtenu en


etendant le diagramme d
etat dans
le temps.
Il poss`
ede les propri
et
es suivantes :
a un
etat du codeur.
Chaque sommet correspond `
Chaque ar
ete correspond `
a une transition et a pour
etiquette la
sortie correspondante du codeur.
a une s
equence cod
ee, obtenue en concat
enant
Tout chemin correspond `
les
etiquettes.

cours n 8: Codes convolutifs

Treillis de codage

001

11


001

11


001

11


001

11


001

11



11

...

C
C
C
C
C
 
 
 
 
 
 
C
C
C
C
C






C 110
C 110
C 110
C 110
C 110






C
C
C
C
C






C
C
C
C
C






C
C
C
C
C






C 
C 
C 
C 
C 

C 
C 
C 
C 
C 

C
C
C
C
C

010 
010  C
010  C
010  C
010  C
010  C
 C
 C
 C
 C
 C

C
C
C
C
C













C
C
C
C
C






01 A
01 A
01 A
01 A
01 A
01 A
01
C
C
C
C
C
 
 
 
 
 
 
 
C
C
C
A
A
C
C
A
A
A
A







C 
C 
C 
A
A
C 
C 
A
A
A
A


101 A
101 A C   101 A C   101 A C   101 A C   101 A C  


A C 
A C 
A C 
A C 
A C 
A


A  C
A  C
A  C
A  C
A  C
A


A C
A C
A
A C
A
A 
 C

 C



A 
 A C
 A C
 A C
 A C
 A C

A
 A C
 A C
 A C
 A C
 A C


A
100   A C 100   A C 100   A C 100   A C 100   A C



 AC



 A
 AC
 AC
 AC
 AC
AC 
AC 
AC 
AC 
AC 
A 












AC 10 
AC 10 
AC 10 
AC 10 
AC 10
A 10 







A
A
A
A
A













A
A
A
A
A







A 
A 
A 
A 
A 


011 A 
011 A 
011 A 
011 A 
011 A 


A
A
A
A





A
 A


 A
 A
 A
 A
 A


 A
 A
 A
 A
A
A
A
A
A







A
A
A
A
A







A
A
A
A
A







A
A
A
A
A







A 
A 
A 
A 
A 
 111
 111
 111
 111
 111
 111
 111



A
A
A 00
A
A







00
00
00
00
00
00
00









...

...

000

t=0

000

000

cours n 8: Codes convolutifs

000

000

000

...

000

7
10

Algorithme de Viterbi
Soit la s
equence binaire re
cue

(1)
(n) (1)
(n)

y=
y 0 , . . . , y 0 , y 1 , . . . , y 1 , . . .

{z
y0

} |

{z
y1

Nous noterons e f lar`


ete du graphe allant de l
etat e `
a l
etat f et
efinit pour t 0
sef la sortie du codeur correspondante. On d


wt+1(f ) = min wt(e) + dH (yt , sef )


ef

predt+1 (f ) = e tel que wt(e) + dH (yt, sef ) = wt+1(f )


avec w0(0) = 0 et pour e 6= 0, w0 (e) = +.
equence
Lentier wt(e) est la plus petite distance de Hamming entre la s
re
cue et une s
equence cod
ee `
a l
etat e au temps t. Les pr
ed
ecesseurs
ealisant
predt (e) permettent de reconstituer pour tout e un chemin r
ce minimum, appel
e chemin survivant.
cours n 8: Codes convolutifs

11

Impl
ementation avec une m
emoire born
ee Reconvergence
` chaque
A
etape de lalgorithme de Viterbi, il existe un chemin survivant par
etat du codeur. Ces chemins finissent par reconverger.
La longueur de reconvergence est le nombre dunit
es de temps pour
que tous les chemins survivants soit confondus (5 dans lexemple cidessous).
plusieurs chemins
un seul chemin


-

u



u
u




u







u
u

u
u

u
A
A
A
u A
A
u
u

A
A

A
Au
@
u

u
@

@
@u



u








u
@
 @
u
u

u
u
@

u
u
@
 @

@


@
@u 
u
@ 
@

 @
@
u

@u

u
A
A

A
u A

u
u
A 
A 

A
 A
 Au

@
@u
@ 
@

 @
@
u

@u

Dans un canal binaire sym


etrique de probabilit
e derreur > 0 donn
ee, la
longueur de reconvergence nest pas born
ee. Dans les impl
ementations
(en particulier en hardware), on borne la longueur de reconvergence.
Sil existe encore plusieurs chemins survivants, on choisit le meilleur.
cours n 8: Codes convolutifs

12

D
ecodage s
equentiel

Lautre grande technique de d


ecodage des codes convolutifs est le
d
ecodage s
equentiel. Comme pour lagorithme de Viterbi, on cherche
un parcours optimal dans un graphe orient
e sans cycles.
La principale diff
erence est que lon parcourt un unique chemin tant
quil parait bon (depth first) plut
ot qu
evaluer la qualit
e de tous les
chemins `
a une profondeur donn
ee (breadth first).

cours n 8: Codes convolutifs

13

Viterbi exemple
3

1
11
C
 

4

2
11
C
 
 3 C
1

5

2
11
C
 
 7 C
1

7

1
11
C
 
 6 C
2

7

0
11
C
 
 4 C
3

4

11 . . .
 
 8

C 2
C
C
C
C





C
C
C
C
C





C
C
C
C
C






C
C
C
C
C






C 
C 
C 
C 
C 

C 
C 
C 
C 
C 

C
C
C
C
C

2 C
1 C
2 C
2 C
2
1 C
 C
 C
 C
 C
 C

2
1
5
4
6
6
7
C
C
C
C
C













C
C
C
C
C






01 A
01 A
01 A
01 A
01 A
01 A
01
C
C
C
C
C
 
 
 
 
 
 
 
C
C
C
A
A
C
C
A
A
A
A


 6
 3
 7
 4
 8
C 
C 
C 
A
A
C 
C 
A
A
A
A


1 A C 
2 A C 
1 A C 
1 A C 
1A
2 A C 


A C 
A C 
A C 
A C 
A C 
A


A  C
A  C
A  C
A  C
A  C
A


A C
A C
A
A C
A
A 
 C

 C



A 
 A C
 A C
 A C
 A C
 A C

A
 A C
 A C
 A C
 A C
 A C


A
2  A C
1  A C
2  A C
0  A C
3  A C



 AC



 A
 AC
 AC
 AC
 AC
AC 4
AC 8
AC 5
AC 6
AC 7
A 2


















AC 10 
AC 10 
AC 10 
AC 10 
AC 10
A 10 







A
A
A
A
A













A



4 A 
6 A 
5 A 
5 A 
7
A 
A 
A 
A 
A 


1 A
2 A
1 A
3 A
0 A


A
A
A
A





A
 A


 A
 A
 A
 A
 A


 A
 A
 A
 A
A
A
A
A
A







A
A
A
A
A







A
A
A
A
A







A
A
A
A
A
 1
 1
 0
 2
 0
 3
 2
0
2
5
A 2
A 5
A 6
A 7
A 7















A
A
A
A
A







00
00
00
00
00
00
00
00











...

...

re
cu :

110

111

011

cours n 8: Codes convolutifs

100

111

000

...

001
14









0
 111


00











000

re
cu : 110
d
ecod
e : 111 ?

1

01
 

2

00







0



00











re
cu : 110
d
ecod
e : 111
000













010 

1


01 A
 
A
A

101 A




A
A




3

11
 




2

01
 


A 
A
A
 A
A 2


A 10






2
 111


00


000

111
101 ?
111 ?

5

00


3

001
11
C
 

4

11
 
 3

C 110

C

C


C


C 

C 

C

010 
010  C

 C
1
2
5
C





C


01
01
01
C
A
A
 
 
 
C
A
A


 6
C 
A
A


101 A
101 A C  


A C 
A


A  C
A


A
A 
 C

A 
 A C

A
 A C


A
100   A C


 A
 AC
AC 5
A 2






AC 10
A 10 



A





A



4
A 


011 A 


A





 A


 A
A



A



A



A



0
2
5
A 2

 111
 111




A 00



00
00
00







000

re
cu : 110
d
ecod
e : 111
000

111
101 ?
111 ?

000

011






0



00











re
cu : 110
d
ecod
e : 111
000













010 

1


01 A
 
101 A









2



01
A
 
A
A

A
A

 
 3

11

A
A

3

11
 












5

01
 


A 
A


A 
 A
A
 A
A

A
A

 A
A 
A 2



A 10
A 10 

A



A

4
A

A

A

A

A

A

A

A

A

2
5
A 2
 111



A 00

00
00



A
A

000

111
101 ?
111 ?

011



 
 3

11






0



00











re
cu : 110
d
ecod
e : 111




1

01 A
 
A
A

A
A







2



01
A
 
A
A

A
A













5

01
 


A 
A


A 
 A
A
 A
A

A
A

 A
A 
A 2



A 10
A 10 

A



A

4
A

A

A

A

A

A

A

A

A

2
A 2



A 00

00


A
A

111
101

011
011 ?


001

5

11
 
 7

C
 
 3 C
C 110


C


C


C


C 

C 

C


010  C

 C
1
2
5
4
C






C


01
01
01
01
C
A
A
A
 
 
 
 
C
A
A
A



 4
C 
A
A
A



101 A C  
A
A



A 
A C 
A


A 
A  C
A


A
A
A 

 C

A 
 A
 A C

A
 A
 A C

A


A
100   A C
A



 A
 AC
A 
AC 4
A 2







A 10 
AC 10
A 10 



A
A






A


4 A 
6
A 
A


011 A 
A


A
A



A


 A
A


 A
A
A



A
A



A
A



A
A



0
2
A 7
A 2


 111




A 00
A



00
00
00





11

000

re
cu : 110
d
ecod
e : 111

111
101

011
011 ?

100



C
 
 3 C
C

C

C

C

C

C


5

11


11









0



00











re
cu : 110
d
ecod
e : 111




1

01 A
 
A
A

A
A






2



00


A
A





2


01 
 


A 
A
A
 A
A 2


A 10

A


A

A

A

A


111
101

A
A

A
A

A
A

011
011






A 2


A 00 


C
C






C
C




C 
C
C
C
 C




C
C

 

01
4

C4

C 10


100
000 ?




00
3



C
 
 3 C
C

C

C

C

C

C


11

5

001
11
C


7

11
 
 6

C
C 110

C

C

C

C 
C 
C
C


C

010  C
C

 C
1
2
6
C
C






C
C


01
01
01
01
C
C
A
A
 
 
 
 
C
C
A
A


4
 3
C
C 
A
A



101 A C  
C 
A


C 
A C 
A


A  C
A
C


A C
A 
C


A 
 A C

C
A
 A C

 C

A
 C
100   A C
C


 A

 AC
AC 6
A 2
C4








AC 10
A 10
C 10 




A
A







A
A




5
A 
A



011 A 
A



A
A




A



 A
A



 A
A
A




A
A




A
A




A
A




0
2
A 5
A 2



 111





A 00
A




00
00
00
00






re
cu : 110
d
ecod
e : 111

111
101

011
011

100
000 ?

000

111



C
 
 3 C
C

C

C

C

C

C




11






0



00











re
cu : 110
d
ecod
e : 111




1

01 A
 
A
A

A
A






2



00


A
A







111
101

11

2



01
 


A 
A
A
 A
A 2


A 10

A


A

A

A

A


A
A

A
A

A
A

011
011






A 2


A 00 


 
 6

C
C




C
C




C 
C
C
C
 C

100
000






01
A
 
A
4
A

A


C
C












A
A




 

01
3


A 
A
A
 A
A 

A 10




C4

C 10
A

A

5
A 
A
A

 A
 A
A

A

A

A

A 5



A 00

00



111
111 ?




001

C
 
 3 C
C

C

C

C

C

C


7

11
 
 4

C
 
 6 C
C 110


C


C


C


C 

C 

C
C



C


010  C
C

 C

1
2
6
C
C








C
C



01
01
01
01
01
C
C
A
A
A
 
 
 
 
 
C
C
A
A
A


4
3
 8
C
C 
A
A
A




101 A C  
C 
A
A



C 
A C 
A
A



A  C
C
A
A



A
C
A 
A 
 C

A 
A 
 A C

C
A
A
 A C

 C

A
 C
A
100   A C
C


 A

 A
 AC
AC 8
C4
A 2
A 









AC 10
C 10
A 10
A 10 





A
A
A









A
A




5 A 
5
A 
A
A 



011 A 
A
A



A
A
A





A



 A
 A
A



 A
 A
A
A
A





A
A
A





A
A
A





A
A
A





0
2
A 7
A 2
A 5




 111






A 00
A
A





00
00
00
00
00







11

re
cu : 110
d
ecod
e : 111

11

000

111
101

011
011

100
000

111
111 ?

000



C
 
 3 C
C

C

C

C

C

C




11









0



00











re
cu : 110
d
ecod
e : 111




1

01 A
 
A
A

A
A






2



00


A
A




111
101

11


2


01 
 


A 
A
A
 A
A 2


A 10

A


A

A

A

A


A
A

A
A

A
A

011
011






A 2


A 00 


 
 4

C
C






A
 
A
4
A

A


01

C
C




C 
C
C
C
 C

100
000

C
C

A
A






01
A
 
A
3
A

A



A 
A

A

 A
A 


A 10 




C4

C 10
A

A

5
A 
A
A

 A
 A
A

A

A

A

A 5



A 00

00









A 
A 
A

 A
 A







A
A

6

01
 

A 
A 10


111
111

000
010 ?




00
5




001

C
 
 3 C
C

C

C

C

C

C


4

11
 
 8

C
 
 4 C
C 110


C


C


C


C 

C 

C
C



C


010  C
C


 C
1
2
6
7
C
C









C
C



01
01
01
01
01
01
C
C
A
A
A
A
 
 
 
 
 
 
C
C
A
A
A
A


4
3

 7
C
C 
A
A
A
A





101 A C  
C 
A
A
A




C 
A C 
A
A 
A



A  C
C
A
A 
A



A
C
A 
A
A 

 C

A 
A 
 A
 A C

C
A
A
 A
 A C

 C
A


A
 C
A
100   A C
C
A



 A

 A
 AC
AC 7
C4
A 2
A 
A 










AC 10
C 10
A 10
A 10 
A 10 





A
A
A










A
A




5
5 A 
7
A 
A
A 



011 A 
A
A



A
A
A





A



 A
 A
A



 A
 A
A
A
A





A
A
A





A
A
A





A
A
A





0
2
A 6
A 2
A 5




 111







A 00
A
A





00
00
00
00
00
00








11

re
cu : 110
d
ecod
e : 111

11

111
101

011
011

100
000

111
111

000
010 ?

000

001



C
 
 4 C
C

C

C

C

C

C

C


4

11


11







0


00 











re
cu : 110
d
ecod
e : 111




1

01 A
 
A
A

A
A

A
A

A
A

A
A

111
101

A 2

A 10
A

A
A
A
A

A
A

A
A

A
A

011
011

A 2

A 00


100
000







00 
















01
A
 
A
3
A

A


A
A

A
A

A
A

111
111

000
010



A 

A 10 
A

5 A
A
A

C
C




C
C

C
C
 C
 C

7

01
 

C
C

C 
C 10


A
A

A
A

A
A

A 6

A 00


001
001 ?

Viterbi exemple Survivants



001

11















A
A

A
A

A
A

A 
A 10
A

A
A
A
A






00


re
cu : 110
d
ecod
e : 111

11

...

C
 

C

C 110

C

C

C

C

C

C

C
010 
C

C



C

01
01
A
C
 
 
A
C


A
C 

101 A
C

A
C

A
 C

A
 C

A

C

A

C

A
C

100 
A

C

A 

C 

A 10 
C 10

A



A

A

011 A

A

A

A

A

A

A

A

A 


A 00

00



...

01

A
 
A

A

A

A




111
101

cours n 8: Codes convolutifs

...

A
A

A
A

A
A

011
011

A 
A 00


100
000

...

111
111

000
???

001
???
15

Vous aimerez peut-être aussi