Codes convolutifs, graphes factoriels et turbo-codes.
Jean-Marc Brossier
Janvier 2006
2
Chapitre 1
Codes convolutifs
Sommaire
1.1 Rappel sur les codes en bloc lin´eaire . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 Matrice en´eratrice d’un code convolutif . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Equation de convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Mise en œuvre par registre `a d´ecalage et repr´esentation polynomiale . . . . . 11
1.5 Le codeur est un automate fini . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6 Diagramme en treillis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6.1 Chemin dans le treillis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 Algorithme de Viterbi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.1 D´etection optimale et mod`ele de canal . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.2 Mise en œuvre efficace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figures
1.1 Exemple de code convolutif mis en œuvre `a l’aide de registres `a d´ecalage. Param`etres :
k= 1, n = 2, K =M+ 1 = 4. G0= [11],G1= [11],G2= [10],G3= [11]. Polynˆomes :
P(D) = 1 + D+D2+D3et Q(D) = 1 + D+D3. ...................... 12
1.2 Repr´esentation alternative `a celle de la figure (1.1). Exemple de code convolutif mis en
œuvre `a l’aide de registres `a d´ecalage. Param`etres : k= 1, n = 2, K =M+ 1 = 4.
G0= [11],G1= [11],G2= [10],G3= [11]. Polynˆomes : P(D) = 1 + D+D2+D3et
Q(D) = 1 + D+D3........................................ 13
1.3 R´ealisation d’un code convolutif de rendement 2/3 ...................... 13
1.4 Code convolutif de rendement 1/2 (k= 1, n=2)........................ 14
1.5 Evolution de l’´etat qjdu registre `a d´ecalage sous l’action de l’entr´ee ej. . . . . . . . . . . 15
1.6 Le nouvel ´etat qj+1 et la nouvelle sortie Cj+1 sont calcul´es en fonction de l’´etat pr´esent qj
et de la valeur entrante Ij..................................... 15
1.7 Machine `a ´etat fini associ´ee au code convolutif de la figure (1.4). . . . . . . . . . . . . . . 15
1.8 Couches jet j+ 1 du treillis associ´e au code de la figure (1.4). . . . . . . . . . . . . . . . 15
1.9 Treillis du code de la figure (1.4) pour une s´equence d’entr´ee d´ebutant en finissant en l’´etat
neutre s0=00. .......................................... 17
1.10 Illustration du fonctionnement de l’algorithme de Viterbi. . . . . . . . . . . . . . . . . . . 21
Tables
1.1 Codage par la machine `a ´etat fini. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3
41.2 Matrice g´en´eratrice d’un code convolutif
1.2 D´ecodage par l’algorithme de Viterbi. Les branches de transition sont index´ees par des couples
(entr´ee,sortie). Les m´etriques des branches sont encercl´ees, les m´etriques des chemins sont plac´ees
sur les branches, le label d’un nœud correspond `a la plus petite m´etrique de chemin jusqu’`a ce
nœud. Chaque colonne d´ecrit les phases de l’algorithme pour l’entr´ee d’une donn´ee. Les lignes
correspondent au message re¸cu : 10 01 11 (01 11) ......................... 19
1.3 D´ecodage par l’algorithme de Viterbi. Suite ... . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.1 Rappel sur les codes en bloc lin´eaire
Un code bloc lin´eaire transforme des paquets de k < n bits informatifs en paquets de nbits cod´es.
L’ensemble des mots du code forme un sous espace vectoriel de dimension kdans l’espace de dimension n.
La r´epartition des mots du code dans cet espace de dimension n, et plus particuli`erement la distribution
des distances entre mots (le spectre des distances) conditionnent les performances du code. La distance
minimale entre les mots (distance minimale du code) est particuli`erement importante.
1.2 Matrice g´en´eratrice d’un code convolutif
La matrice g´en´eratrice Gd’un code convolutif est infinie :
G=
G0G1· · · GM0k×n· · ·
0k×nG0· · · GM1GM
.
.
........
.
..
.
....
.
.
.0k×nG0G1
.
.
....G0...
.
.
.0k×n
...
...
Elle d´epend de K=M+ 1 matrices k×nnot´ees {Gi}i=0..M .Kest appel´e la ”longueur de contrainte
du code”.
Notons Ij= (Ij1· · · Ijk) le j`eme paquet de kbits informatifs et Cj= (Cj1· · · Cjn) un paquet de nbits
cod´es.
L’op´eration de codage d’une suite infinie de bits informatifs I= (I0I1· · · ) s’´ecrit C=IG. Elle produit
une suite infinie de bits cod´es C= (C0C1· · · ). D’apr`es la forme matricielle C=IG :
C0=I0G0
C1=I0G1+I1G0
.
.
.
CM=I0GM+I1GM1+· · · +IMG0
.
.
.
Cj=IjMGM+· · · +IjG0pour jM
.
.
.
1.3 Equation de convolution 5
1.3 Equation de convolution
Avec la convention Ii= 0 pour i < 0, il devient clair que la relation d’encodage C=IG est une
convolution :
Cj=
M
X
l=0
IjlGl.(1.1)
Pour un bloc Ide bits informatifs de taille finie, seuls L < +paquets de kbits sont non nuls :
I= (I0· · · IL1) et C= (C0· · · CL1+M). Cette s´equence cod´ee tronqu´ee est g´en´er´ee par un code en
bloc lin´eaire dont la matrice g´en´eratrice est la sous matrice kL ×n(L+M) des ´el´ements situ´es en haut `a
gauche de G1.
1.4 Mise en œuvre par registre `a d´ecalage et repr´esentation polyno-
miale
Notons g(l)
αβ l’´el´ement g´en´erique de la matrice Gl. En explicitant les ncomposantes Cj1,· · · , Cjn de Cj
dans la relation Cj=PM
l=0 IjlGl, nous pouvons ´ecrire :
Cj= [Cj1,· · · , Cjn] = "M
X
l=0
k
X
α=1
Ijl,αg(l)
α1,· · · ,
M
X
l=0
k
X
α=1
Ijl,αg(l)
αn#
Le bit cod´e Cjβ =Pk
α=1 PM
l=0 Ijl,αg(l)
αβ ne d´epend que de l’entr´ee pr´esente Ijet des Mvaleurs
pass´ees de l’entr´ee Ij1,· · · ,IjM. Ainsi, le calcul des bits cod´es Cjβ peut ˆetre r´ealis´e pratiquement en
m´emorisant Mvaleurs pass´ees de l’entr´ee dans des registres `a d´ecalage (un registre α1· · · kpar bit du
mot de longueur kpr´esent en entr´ee). Pour le registre αd’une telle construction, seules sont connect´ees `a
l’additioneur β1· · · nles cases m´emoire pour lesquelles g(l)
αβ = 1.
Exemple 1.4.1 La figure (1.1) illustre la mise en œuvre d’un code convolutif simple `a l’aide de registres
`a d´ecalage. Pour cet exemple, le rendement du code vaut 1/2(k= 1, n = 2). La relation de convolu-
tion vectorielle (1.1) peut-ˆetre d´ecompos´ee en convolutions scalaires ; chacune d’elle correspond `a un filtre
lin´eaire `a r´eponse impulsionnelle finie qui peut ˆetre repr´esent´e par sa fonction de transfert polynomiale.
Les polynˆomes du code pr´esent valent P(D) = 1 + D+D2+D3et Q(D) = 1 + D+D3. La figure (1.2)
indique une autre mani`ere de repr´esenter le codeur, cette repr´esentation sera utilis´ee dans la suite de ce
document.
Exemple 1.4.2 La figure (1.3) repr´esente l’implantation d’un code convolutif de rendement 2/3avec
k= 2,n= 3,K= 2 et :
G0=101
010
G1=001
001
Nous illustrerons la suite de l’expos´e `a l’aide du code repr´esent´e figure (1.4). Ce code de rendement
1/2 (k= 1, n= 2) est d´efini par G0=1 1 ,G1=0 1 et G2=1 1 .
1Bien que cette troncature r´eduise le rendement `a r0=rL
L+M, le rendement est pratiquement tr`es voisin de r=k
ndu fait
que Lest grand devant M. Nous appelerons toujours rendement le rapport r=k
n.
1 / 16 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !