1. Année 2011 - 2012
Transmission de l’information :
Les codes convolutifs
(A. Migan), S. Argentieri
2. Les codes convolutifs
I. Principe du codage convolutif
Les codes convolutifs forment une classe extrêmement souple et efficace de
codes correcteurs d’erreur.
Ce sont les codes les plus utilisés dans les communications fixes et mobiles.
Les codes convolutifs ont les mêmes caractéristiques que les codes en bloc
sauf qu’ils s’appliquent à des séquences infinies de symboles d’information
et génèrent des séquences infinies de symboles de code.
Transmission de l’Information : les codes convolutifs 2/89
3. Les codes convolutifs
I. Principe du codage convolutif
I. 1. Encodeurs
Le codeur qui engendre un code convolutif comporte un effet de mémoire :
Le mot code ne dépend pas que du bloc de k symboles entrant, mais aussi
des m mots de code qui l’ont précédé, stockés dans un registre.
Entrée Registre à (m+1) k étages
Bloc de k
éléments
binaires
Convertisseur
Logique combinatoire Parallèle- Sortie
Bloc de n
Série éléments
binaires
Transmission de l’Information : les codes convolutifs 3/89
4. Les codes convolutifs
I. Principe du codage convolutif
I. 1. Encodeurs
Théorème fondamental du codage de canal
La complexité du codeur est nécessaire à l’obtention
de bonnes performances
Pour les codes en bloc : n et k doivent être grands
Pour les codes convolutifs : il suffit que m soit grand
Entrée Registre à (m+1) k étages
Bloc de k
éléments
binaires
Convertisseur
Logique combinatoire Parallèle- Sortie
Bloc de n
Série éléments
binaires
Transmission de l’Information : les codes convolutifs 4/89
5. Les codes convolutifs
I. Principe du codage convolutif
I. 2. Propriétés
k
Le rendement du code est : R
n
La longueur de contrainte du code est : m 1 k
Linéarité : les mots de code associés à une combinaison linéaire de
séquences d’entrée correspondent à la combinaison linéaire des mots de
code de chacune des ces séquences.
Stationnarité : Lorsqu’un message source, décalé dans le temps, est
envoyé sur l’encodeur, on doit retrouver à la sortie, le mot de code
correspondant décalé de la même manière dans le temps.
Code convolutif systématique :
Mot code : C = (X1 Y1 X2 Y2 … Xj Yj …)
1 2 k
Avec Xj = X j X j ... X j Information
Yj = Y1 Yj2 ... Yjk Contrôle
j
Transmission de l’Information : les codes convolutifs 5/89
6. Les codes convolutifs
I. Principe du codage convolutif
I. 3. Exemple
Exemple de codeur convolutif non systématique :
R = 1/2 ; m = 2 ; k = 1 ; n = 2
x1
j sj sj 2
A chaque pas de temps j :
On combine les valeurs de l’entrée et de
sj e1
j e2
j la mémoire pour calculer les sorties ;
Chaque registre à décalage est mis à
jour par la valeur qui figure à son entrée.
x2
j sj sj 1 sj 2
Transmission de l’Information : les codes convolutifs 6/89
7. Les codes convolutifs
I. Principe du codage convolutif
I. 4. Les distances dans les codes convolutifs
La distance libre est la borne inférieure des distances de Hamming
entre toutes les séquences de sortie du codeur.
La distance minimale est la plus petite distance entre des chemins
partant du même point et y revenant.
Transmission de l’Information : les codes convolutifs 7/89
8. Les codes convolutifs
II. Représentations des codes convolutifs
Représentations numériques :
Transformée en D ;
Matrice de transfert ;
Représentations graphiques :
Diagramme d’état ;
Arbre ;
Treillis.
Transmission de l’Information : les codes convolutifs 8/89
9. Les codes convolutifs
II. Représentations des codes convolutifs
II. 1. Représentations numériques : Transformée en D
Une séquence de symboles est représentée par une série formelle en
la variable D. Cette variable représente l’opérateur de retard unitaire :
s ( D) s 0 s1.D s 2 .D 2 ... s j .D j ...
x i (D) xi
0 x1.D x i2 .D 2 ... x ij .D j ...
i
La réponse impulsionnelle du ième module, hi(D), est la séquence de
sortie produite lorsque le message d’entrée est une suite commençant par le
symbole ‘1’ et se terminant par une suite de ‘0’ de longueur infinie :
xi(D) = hi(D).s(D)
Transmission de l’Information : les codes convolutifs 9/89
10. Les codes convolutifs
II. Représentations des codes convolutifs
II. 1. Représentations numériques : Transformée en D
x1
j sj sj 2
sj e1
j e2
j
x2
j sj sj 1 sj 2
e1(D) = D.s(D)
e2(D) = D.e1(D) = D2.s(D) HD 1 D2 1 D D2
x1(D) = s(D) + e2(D) = (1 + D2).s(D)
x2(D) = s(D) + e1(D) + e2(D) = (1 + D + D2).s(D)
Transmission de l’Information : les codes convolutifs 10/89
11. Les codes convolutifs
II. Représentations des codes convolutifs
II. 1. Représentations numériques : Transformée en D
k=1;n=2;m=3
x1(D) = s(D) + e2(D) + e3(D)
e1(D) = D.s(D)
x1(D) = (1 + D2 + D3).s(D)
e2(D) = D.e1(D) = D2.s(D)
x2(D) = s(D) + e1(D) + e2(D) + e2(D)
e3(D) = D.e2(D) = D3.s(D)
x2(D) = (1 + D + D2 + D3).s(D)
HD 1 D2 D3 1 D D2 D3
Transmission de l’Information : les codes convolutifs 11/89
12. Les codes convolutifs
II. Représentations des codes convolutifs
II. 1. Représentations numériques : Transformée en D
x1(D)
s1(D)
k=2;n=3;m=2
x2(D)
s2(D)
x1(D) = s1(D) + e12(D)
x1(D) = (1 + D2).s1(D) + 0.s2(D) x3(D)
x2(D) = e11(D) + e12(D) + e21(D)
x2(D) = (D + D2).s1(D) + D.s2(D) 1 D2 D D2 D
HD
0 D 1
x3(D) = e11(D) + s2(D)
x3(D) = D.s1(D) + 1.s2(D)
Transmission de l’Information : les codes convolutifs 12/89
13. Les codes convolutifs
II. Représentations des codes convolutifs
II. 2. Représentations numériques : Matrice de transfert
La matrice de transfert donne la relation entrée-sortie sous forme
matricielle. On l’écrit pour chaque étage de sortie.
Pour la kième sortie : j j 1 ...
La ième ligne donne la relation entre x k et s ij
j si ..... ..... .....
La (i + 1) ème ligne donne la relation entre x k et s i 1
j j
si 1
..... ..... .....
La colonne correspond à l’instant j,
1ère
... ..... ..... .....
La 2ème colonne correspond à l’instant (j – 1) …
La matrice de transfert globale est la concaténation des matrices
précédentes. Elle a k lignes et (m+1) n colonnes.
Transmission de l’Information : les codes convolutifs 13/89
14. Les codes convolutifs
II. Représentations des codes convolutifs
II. 2. Représentations numériques : Relations entrée/sortie :
Matrice de transfert x1 s1 s1 2
j j j
x2
j s1
j 1 s1
j 2 s2 1
j
x1
j
x3
j s1
j 1 s2
j
s1
j
Matrices de transfert intermédiaires :
1 0 1 5
x2
j
G1 0 0 0 0
0 1 1 3
s2
j G2 0 1 0 2
x3
j G3 0 1 0 2
1 0 0 4
k = 2, n = 3, m = 2 Matrices de transfert :
T 1 0 1 0 1 1 0 1 0
0 0 0 0 1 0 1 0 0
Transmission de l’Information : les codes convolutifs 14/89
15. Les codes convolutifs
II. Représentations des codes convolutifs
II. 3. Représentations graphiques
Chaque bloc de n éléments binaires en sortie du codeur dépend :
Du bloc de k éléments binaires présents à son entrée ;
Des m blocs de k éléments binaires contenus dans sa mémoire.
Ces m.k éléments binaires définissent l’état du codeur.
x1j s j s j 2
Les quatre états possibles
k=1 du codeur sont :
sj e1j e2
j n=2
m=2 ‘00’ ‘01’
‘10’ ‘11’
x2 s j s j
j 1 sj 2
Transmission de l’Information : les codes convolutifs 15/89
16. Les codes convolutifs
II. Représentations des codes convolutifs
II. 3. Représentations graphiques : Diagramme d’état
Les conventions adoptées :
Lorsque l’élément binaire d’entrée du codeur est égal à ‘0’ (resp. ‘1’),
le couple binaire en sortie du codeur est porté par la branche rouge
(resp. verte).
Seules deux (q) transitions sont possibles à partir de chacun des états.
Les étiquettes de chaque branche correspondent aux sorties du codeur.
Transmission de l’Information : les codes convolutifs 16/89
17. Les codes convolutifs
II. Représentations des codes convolutifs
00
II. 3. Représentations graphiques :
Instant j 0 Diagramme d’état
État a
État
‘00’
0
0 0
État État
0
‘10’ ‘01’
Instant j+1 ?
Instant j+1
j
État
0
0 0 ‘11’
Transmission de l’Information : les codes convolutifs 17/89
18. Les codes convolutifs
II. Représentations des codes convolutifs
00
II. 3. Représentations graphiques :
Instant j 1 Diagramme d’état
État a
État
‘00’
1 11
0 0
État État
1
‘10’ ‘01’
Instant j+1
j
État
1 0 ‘11’
Transmission de l’Information : les codes convolutifs 18/89
19. Les codes convolutifs
II. Représentations des codes convolutifs
00
II. 3. Représentations graphiques :
Instant j 1 Diagramme d’état
État
11 ‘00’ 11
0
0 1
État État
État b
1
‘10’ ‘01’
Instant j+1
j
État
0 0 ‘11’
Transmission de l’Information : les codes convolutifs 19/89
20. Les codes convolutifs
II. Représentations des codes convolutifs
00
II. 3. Représentations graphiques :
Instant j 0 Diagramme d’état
État
11 ‘00’ 11
1
0 1
État 00 État
État b
0
‘10’ ‘01’
Instant j+1
j
État
1 0 ‘11’
Transmission de l’Information : les codes convolutifs 20/89
21. Les codes convolutifs
II. Représentations des codes convolutifs
II. 3. Représentations graphiques : 00
Diagramme d’état
État
11 ‘00’ 11
10
État État
‘10’ ‘01’
00
10 10
État
‘11’
01
Transmission de l’Information : les codes convolutifs 21/89
22. Les codes convolutifs
II. Représentations des codes convolutifs
II. 3. Représentations graphiques : 00
Diagramme d’état
La distance minimale est le poids État
du chemin partant de ‘00’ et y 11 ‘00’ 11
revenant le plus vite possible :
10
Poids = 6 État État
‘10’ ‘01’
00
10 10
État
‘11’
01
Transmission de l’Information : les codes convolutifs 22/89
23. Les codes convolutifs
II. Représentations des codes convolutifs
II. 3. Représentations graphiques : 00
Diagramme d’état
La distance minimale est le poids État
du chemin partant de ‘00’ et y 11 ‘00’ 11
revenant le plus vite possible :
10
État État
‘10’ ‘01’
00
Poids = 5
dmin = 5 10 10
État
‘11’
01
Transmission de l’Information : les codes convolutifs 23/89
24. Les codes convolutifs
II. Représentation des codes convolutifs
II. 4. Représentations graphiques : Arbre
Développement du diagramme d’état en fonction du temps discrétisé
Les conventions adoptées :
Le temps s’écoule de la gauche vers la droite
Lorsque l’élément binaire d’entrée du codeur est égal à ‘0’ (resp. ‘1’),
le couple binaire en sortie du codeur est porté par la branche supérieure
(resp. inférieure).
Les branches se séparent en un point appelé nœud. Chaque nœud donne
naissance à 2k (qk) branches.
Quelque soit l’état initial du codeur, après (m + 1) décalages à l’entrée du
codeur, tous les états du codeur peuvent être atteints.
Transmission de l’Information : les codes convolutifs 24/89
25. Les codes convolutifs
II. Représentation des codes convolutifs
II. 4. Représentations graphiques : Arbre
Instant j
0 0
00
Instant j+1
Transmission de l’Information : les codes convolutifs 25/89
26. Les codes convolutifs
II. Représentation des codes convolutifs
II. 4. Représentations graphiques : Arbre
Instant j 0 00
00
0
0 0
00
0
Instant j+1
0 0
t = j+1
Transmission de l’Information : les codes convolutifs 26/89
27. Les codes convolutifs
II. Représentation des codes convolutifs
II. 4. Représentations graphiques : Arbre
Instant j 1 00
00
1
0 0
00
1
Instant j+1
11
10
1 0
t = j+1
Transmission de l’Information : les codes convolutifs 27/89
28. Les codes convolutifs
II. Représentation des codes convolutifs
II. 4. Représentations graphiques : Arbre 00
00
Instant j 0 00
00
0 11
0 0 10
00
0
Instant j+1
11
10
0 0
t = j+1 t = j+2
Transmission de l’Information : les codes convolutifs 28/89
29. Les codes convolutifs
II. Représentation des codes convolutifs
II. 4. Représentations graphiques : Arbre 00
00
Instant j 00
00
11
10
00
01
01
Instant j+1
11
10
10
11
t = j+1 t = j+2
Transmission de l’Information : les codes convolutifs 29/89
30. Les codes convolutifs
II. Représentation des codes convolutifs 00
00 00
00
II. 4. Représentations graphiques : Arbre 00
11
10
00 01
11 01
10 10
Instant j 00 11
00 11
01 00
01 00
11 10
10 10
10 01
11 01
11
00 00
11 00
00 11
01 10
01 01
Instant j+1 00 01
10 10
11 11
10 11
10 00
01 00
10 10
11 10
01 01
11 01
11
t = j+1 t = j+2 t = j+3 t = j+4
Transmission de l’Information : les codes convolutifs 30/89
31. Les codes convolutifs
II. Représentation des codes convolutifs 00
00 00
00
II. 4. Représentations graphiques : Arbre 00
11
10
00 01
11 01
10 10
00 11
Partant de l’état ‘00’ à l’instant t = j, il 00
01
11
00
existe deux chemins pour atteindre 11
01 00
10
l’état ‘00’ à l’instant t = j + 3 10
10
10
01
11 01
11
00 00
11 00
00 00 00 Chemin 1 00 11
01 10
01 01
00 01
10 10
11 11
10 11
10 00
01 00
10 10
11 10
01 01
11 01
11
t=j t = j+1 t = j+2 t = j+3 t = j+4
Transmission de l’Information : les codes convolutifs 31/89
32. Les codes convolutifs
II. Représentation des codes convolutifs 00
00 00
00
II. 4. Représentations graphiques : Arbre 00
11
10
00 01
11 01
10 10
00 11
Partant de l’état ‘00’ à l’instant t = j, 00
01
11
00
il existe deux chemins pour atteindre 11
01 00
10
l’état ‘00’ à l’instant t = j + 3 10
10
10
01
11 01
11
00 00
11 00
00 00 00 Chemin 1 00 11
01 10
01 01
11 01 11 Chemin 2 00 01
10 10
11 11
10 11
10 00
01 00
10 10
11 10
01 01
11 01
11
t=j t = j+1 t = j+2 t = j+3 t = j+4
Transmission de l’Information : les codes convolutifs 32/89
34. Les codes convolutifs
II. Représentation des codes convolutifs 00
00 00
00
II. 4. Représentations graphiques : Arbre 00
11
10
00 01
11 01
10 10
00 11
Si la séquence d’information est : 00
01
11
00
‘1001’ 11
01 00
10
10 10
10 01
11 01
11
00 00
1 0 0 1 11
11 00
00 11
11
01
01 10
00 10 01 00 10 01 01
00 01
11 01 11 11 11
10 10
11
11
10 11
10 00
01 00
10
Le mot de code associé à ‘1001’ 10
11 10
01
est ‘11011111’
01
11 01
11
t=j t = j+1 t = j+2 t = j+3 t = j+4
Transmission de l’Information : les codes convolutifs 34/89
35. Les codes convolutifs
II. Représentation des codes convolutifs
II. 5. Représentations graphiques : Treillis
Les conventions adoptées :
Lorsque l’élément binaire d’entrée du codeur est égal à ‘0’ (resp. ‘1’),
le couple binaire en sortie du codeur est porté par la branche rouge
(resp. verte).
De chaque nœud partent 2k (qk) branches.
En chaque nœud convergent 2k (qk) branches.
Les étiquettes de chaque branche correspondent aux sorties du codeur.
Transmission de l’Information : les codes convolutifs 35/89
36. Les codes convolutifs
II. Représentation des codes convolutifs
II. 5. Représentations graphiques : Treillis
Instant j 0
0 00
0 0 00
01
0
10
Instant j+1
11
0 0 t=j t = j+1
Transmission de l’Information : les codes convolutifs 36/89
37. Les codes convolutifs
II. Représentation des codes convolutifs
II. 5. Représentations graphiques : Treillis
Instant j 1
1 00
0 0 00
11
01
1
10
Instant j+1
11
1 0 t=j t = j+1 t = j+2
Transmission de l’Information : les codes convolutifs 37/89
38. Les codes convolutifs
II. Représentation des codes convolutifs
II. 5. Représentations graphiques : Treillis
Instant j 0
0 00 00
1 0 00
11 11
01
1
01
10
Instant j+1
11
0 1 t=j t = j+1 t = j+2
Transmission de l’Information : les codes convolutifs 38/89
39. Les codes convolutifs
II. Représentation des codes convolutifs
II. 5. Représentations graphiques : Treillis
Instant j 1
1 00 00
1 0 00
11 11
01
0
01
10
Instant j+1 10
11
1 1 t=j t = j+1 t = j+2
Transmission de l’Information : les codes convolutifs 39/89
40. Les codes convolutifs
II. Représentation des codes convolutifs
II. 5. Représentations graphiques : Treillis
00 00 00 00
00
11 11
01 11 11 11 11
00 00
01 01 01
10 10 10
10 10 10
11 01 01
t=j t = j+1 t = j+2 t = j+3 t = j+4
Après (m + 1) décalages, quelque soit l’état
initial du codeur, le motif du treillis se répète
Transmission de l’Information : les codes convolutifs 40/89
41. Les codes convolutifs
II. Représentation des codes convolutifs
II. 5. Représentations graphiques : Treillis
Comme pour le diagramme en arbre,
partant de l’état ‘00’ à l’instant t = j, 00 00 00 00
00
il existe deux chemins pour atteindre 11 11
l’état ‘00’ à l’instant t = j + 3 01 11 11 11 11
00 00
01 01 01
10 10 10
00 00 00 Chemin 1
10 10 10
11 01 11 Chemin 2 ; =5 11 01 01
t=j t = j+1 t = j+2 t = j+3 t = j+4
dmin = 5
Transmission de l’Information : les codes convolutifs 41/89
42. Les codes convolutifs
II. Représentation des codes convolutifs
II. 5. Représentations graphiques : Treillis
La séquence d’information est
‘1001’ 00 00 00 00
00
11 11
11 11 11 11
01 00 00
1 0 0 1 01 01 01
10 10 10
00 10 01 00 10
10 10 10
11 01 11 11 11 01 01
t=j t = j+1 t = j+2 t = j+3 t = j+4
Le mot de code associé à ‘1001’
est ‘11011111’
Transmission de l’Information : les codes convolutifs 42/89
43. Les codes convolutifs
III. Codes particuliers
III. 1. Les codes systématiques
Dédier une sortie aux bits d’information :
Treillis : Réponse impulsionnelle :
000 000
00 101 101 HD 1 1 D2 D D2
110 110
01 011 011
010 010
Matrice de transfert :
10 111 111 G = (4 5 3)octal
100 100
001 001
11
Transmission de l’Information : les codes convolutifs 43/89
44. Les codes convolutifs
III. Codes particuliers
III. 2. Les codes récursifs systématiques
Réponses impulsionnelles :
Boucle de retour :
x1 D sD
x1 sj x2 D sD e1 D
j
e1 D D sD e2 D e1 D
e1 D D sD D.e1 D e1 D
1 D D 2 .e1 D D.s D
D
e1 D 2
sD
s j e2
j e1
j
1 D D
x2
j e2
j sj e2
j e1
j D
x2 D sD sD
x2
j sj e1
j 1 D D 2
1 D2
HD 1
Transmission de l’Information : les codes convolutifs 1 D D2 44/89
45. Les codes convolutifs
III. Codes particuliers
III. 2. Les codes récursifs systématiques
Boucle de retour :
Réponses impulsionnelles :
1 D2
HD 1
1 D D2
Treillis :
00 00 00
11 11
11 11
01 00 00
10 10
10 01 01
01 01
10 10
11
Transmission de l’Information : les codes convolutifs 45/89
46. Les codes convolutifs
III. Codes particuliers
III. 3. Les codes catastrophiques
Un code catastrophique est un code qui génère un nombre infini d’erreurs
Une séquence d’information de poids infinie est codée par une séquence de
poids fini
Le décodeur, recevant une séquence de poids fini, estimera que la séquence
d’entrée était constituée d’un mot de poids fini suivi de zéros.
Transmission de l’Information : les codes convolutifs 46/89
47. Les codes convolutifs
III. Codes particuliers
III. 3. Les codes catastrophiques 00
État a
01 ‘00’ 11
10
État c État b
‘10’ ‘01’
10
11 01
État d
‘11’
00
Transmission de l’Information : les codes convolutifs 47/89
48. Les codes convolutifs
III. Codes particuliers
III. 3. Les codes catastrophiques
Appliquons à l’entrée de ce codeur
une séquence constituée d’un
nombre infini de ‘1’.
00 00 00 00
00
01 01
01 11 11 11 A la sortie, apparaîtra le mot ‘1101’
00 00
11 suivi d’un nombre infini de ‘0’
10 10 10
10 10 10
01 01 01
11 Le décodeur estimera que l’entrée
00 00
était constitué d’un mot de poids
fini (par exemple ‘1010’) suivi d’un
nombre infini de ‘0’
Transmission de l’Information : les codes convolutifs 48/89
49. Les codes convolutifs
III. Codes particuliers 00
III. 3. Les codes catastrophiques
État a
00
00 00 00 00
01 ‘00’ 11
01 01
01 11 11 11
00 00
11 10
10 10 10 État c État b
10 10 10
‘10’ ‘01’
01 01 01 10
11
00 00
11 01
Tous les codeurs catastrophiques ont : État d
‘11’
Dans leur représentation en treillis : un arc
horizontal produisant une sortie de poids nul, pour
une entrée de poids non nul 00
Dans leur diagramme d’état : une boule portant
l’étiquette ‘00’ pour une entrée égale à ‘1’
Transmission de l’Information : les codes convolutifs 49/89
50. Les codes convolutifs
IV. Décodage convolutif
Dans les canaux de communication sans mémoire, les systèmes utilisant
le codage convolutif sont parmi les plus intéressants tant du point de vue
de leurs performances (s’approchant le plus des performances ultimes
prévues par la théorie de Shannon) que du point de vue de leur réalisation
et implantation matérielle.
Les deux principales techniques de décodage des codes convolutifs sont
le décodage de Viterbi et le décodage séquentiel.
Chacune de ses techniques consiste à trouver un chemin particulier (le
message transmis), dans un graphe orienté où on assigne aux branches des
métriques ou valeurs de vraisemblance entre les données reçues et les
données qui auraient pu être transmises.
L’objectif général du décodeur se résume donc à déterminer avec la
plus grande fiabilité et le minimum d’efforts le chemin de métrique
minimale. Ce chemin est la séquence décodée.
Transmission de l’Information : les codes convolutifs 50/89
51. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
A chaque instant, deux branches appartenant à deux chemins différents,
convergent vers chaque noeud.
De ces deux chemins, l’un est plus vraisemblable, c’est-à-dire se trouve
à une distance plus petite de la séquence reçue, que l’autre chemin.
Les distances étant additives, il est possible de ne conserver en chaque
nœud que le chemin le plus vraisemblable, appelé survivant.
Si deux chemins sont aussi vraisemblables, un seul chemin est
arbitrairement conservé.
Transmission de l’Information : les codes convolutifs 51/89
52. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
Supposons que la séquence à l’entrée du codeur soit ‘1 0 0 1’.
Si le codeur est dans l’état ‘00’ à l’instant initial,
la séquence correspondante en sortie du codeur est ’11 01 11 11’.
Considérons un canal binaire symétrique introduisant une erreur en
position 4.
La séquence reçue à l’entrée du décodeur est ’11 00 11 11’.
Voici le déroulement de l’algorithme de Viterbi :
Transmission de l’Information : les codes convolutifs 52/89
53. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
00
00 (2)
11 A l’instant t = 0 :
01
Deux branches partent de l’état ‘00’. Elles sont
10 (0)
respectivement à la distance 2 et 0 du premier
couple binaire reçu. Reportons ces deux distances,
11
appelées métriques de branche sur le treillis.
t=0 t=1
Mot reçu : ‘11’
Transmission de l’Information : les codes convolutifs 53/89
54. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
A l’instant t = 1 :
00 (2) 00
00 (2)
Évaluons la distance entre le deuxième
11 11
(1)
couple binaire reçu et les quatre branches
01
01 qui partent des états ‘00’ et ‘10’, puis
(0)
10 (4) reportons ces quatre métriques sur le treillis.
10 En sommant les métriques de branches
11 (1)
appartenant à un même chemin, nous
obtenons les métriques cumulées.
t=0 t=1 t=2
Nous avons désormais quatre chemins qui
permettent d’accéder, en t = 2, aux quatre
Mot reçu : ‘11’ ‘00’ états possibles du codeur.
Transmission de l’Information : les codes convolutifs 54/89
55. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
A l’instant t = 2 :
00 (2) 00 (2) 00
00 11 Il existe désormais deux chemins qui
11 11 (1)
11 convergent vers chaque nœud du treillis.
01 00
01
(0) (4) 01
10 10
10 10
(1)
11 01
t=0 t=1 t=2 t=3
Mot reçu : ‘11’ ‘00’ ‘11’
Transmission de l’Information : les codes convolutifs 55/89
56. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
A l’instant t = 2 :
00 (2) 00 (2) 00 (4)
00 11 (1) Il existe désormais deux chemins qui
11 11 (1)
11 (5) convergent vers chaque nœud du treillis.
01 00 (2)
01
(0) (4) 01 (2) On va donc :
10 10 (3)
1. Calculer les métriques de branche.
10 10
(1) (5)
11 (2)
2. Calculer les métriques cumulées
01
pour chaque chemin atteignant en
t=0 t=1 t=2 t=3 t = 3, un nœud donné du treillis.
Mot reçu : ‘11’ ‘00’ ‘11’
Transmission de l’Information : les codes convolutifs 56/89
57. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
A l’instant t = 2 :
00 (2) 00 (2)
00 11
(1)
Il existe désormais deux chemins qui
11 11 (1)
11 (5) convergent vers chaque nœud du treillis.
01 00 (2)
01
(0) (4) 01 (2) On va donc :
10 10 (3)
1. Calculer les métriques de branche.
10 10
(1) (5)
11 (2)
2. Calculer les métriques cumulées
01
pour chaque chemin atteignant en
t=0 t=1 t=2 t=3 t = 3, un nœud donné du treillis.
3. En chaque nœud, ne retenir que le
survivant.
Mot reçu : ‘11’ ‘00’ ‘11’
Transmission de l’Information : les codes convolutifs 57/89
58. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
A l’instant t = 2 :
00 (2) 00 (2)
00 11
(1)
Il existe désormais deux chemins qui
11 11 (1)
11 (2) convergent vers chaque nœud du treillis.
01 00
01 On va donc :
(0) (4) (2)
10 10 (3)
1. Calculer les métriques de branche.
10 10
(1) (5)
11 (2)
2. Calculer les métriques cumulées
01
pour chaque chemin atteignant en
t=0 t=1 t=2 t=3 t = 3, un nœud donné du treillis.
3. En chaque nœud, ne retenir que le
survivant.
Mot reçu : ‘11’ ‘00’ ‘11’
Transmission de l’Information : les codes convolutifs 58/89
59. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
A l’instant t = 2 :
00 (2) 00 (2)
00 11
(1)
Il existe désormais deux chemins qui
11 11 (1)
11 (2) convergent vers chaque nœud du treillis.
01
01 On va donc :
(0) (4)
10 (2)
10 1. Calculer les métriques de branche.
10 10
(1) (5)
11 (2)
2. Calculer les métriques cumulées
01
pour chaque chemin atteignant en
t=0 t=1 t=2 t=3 t = 3, un nœud donné du treillis.
3. En chaque nœud, ne retenir que le
survivant.
Mot reçu : ‘11’ ‘00’ ‘11’
Transmission de l’Information : les codes convolutifs 59/89
60. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
A l’instant t = 2 :
00 (2) 00 (2)
00 11
(1)
Il existe désormais deux chemins qui
11 11 (1)
11 (2) convergent vers chaque nœud du treillis.
01
01 On va donc :
(0) (4)
10 (2)
10 1. Calculer les métriques de branche.
10
(1)
11 (2) 2. Calculer les métriques cumulées
01
pour chaque chemin atteignant en
t=0 t=1 t=2 t=3 t = 3, un nœud donné du treillis.
3. En chaque nœud, ne retenir que le
survivant.
Mot reçu : ‘11’ ‘00’ ‘11’
Transmission de l’Information : les codes convolutifs 60/89
61. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
00 (2) 00 (2) (1)
00 11 11
(2)
11 11 (1)
11 (2) 11 (3)
01
01 A l’instant t = 3 :
(0) (4) (2)
10 01 (1)
10 On procède de la même façon
10
(1) (2)
11 01 01
(3)
t=0 t=1 t=2 t=3 t=4
Mot reçu : ‘11’ ‘00’ ‘11’ ‘11’
Transmission de l’Information : les codes convolutifs 61/89
62. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
Finalement, le chemin le plus
vraisemblable est celui qui
(2) (2) (1)
00
00 00
11 11
(2) arrive en ‘10’.
11 11 (1)
11 (2) 11 (3)
01
01
(0) (4) (2)
10 01 (1)
10
10
(1) (2)
11 01 01
(3)
t=0 t=1 t=2 t=3 t=4
Transmission de l’Information : les codes convolutifs 62/89
63. Les codes convolutifs
IV. Décodage convolutif
IV. 1. Algorithme de Viterbi
Finalement, le chemin le plus
vraisemblable est celui qui
(2) (2) (1)
00
00 00
11 11
(2) arrive en ‘10’.
11 11 (1)
11 (2) 11 (3) En remontant le treillis de la
01
(0) 01 (4) (2)
droite vers la gauche, on voit
10 01 (1) que la séquence la plus
10
10
(1) (2)
vraisemblable est celle qui part
11 01 01
(3) de ‘00’ à t = 0 et qui arrive à
‘10’ à t = 4. Elle correspond au
t=0 t=1 t=2 t=3 t=4 code vraisemblablement émis :
‘11 01 11 11’.
Ce code correspond à une séquence sur l’entrée du codeur égale à ‘1001’.
L’erreur en position 4 est donc corrigée.
Transmission de l’Information : les codes convolutifs 63/89
64. Les codes convolutifs
IV. Décodage convolutif
IV. 2. Décodage séquentiel
Viterbi : complexité de calcul en 2m
Amélioration des codes convolutifs si m augmente
→ Décodage séquentiel
Recherche d’un parcours optimal dans un graphe :
Viterbi : Evaluer la qualité de tous les chemins
à une profondeur donnée
Séquentiel : Parcours d’un unique chemin tant
qu’il paraît bon
Transmission de l’Information : les codes convolutifs 64/89
65. Les codes convolutifs
IV. Décodage convolutif
IV. 2. Décodage séquentiel : Algorithme de Fano
Dans la structure d’arbre, à chaque nœud, on calcule les distances
correspondantes aux deux successeurs et l’on poursuit dans la direction
de celle qui conduit au chemin le plus court.
Si on choisit une mauvaise route (la distance observée dépasse un seuil
fixé) : on rebrousse chemin et on reprend dans une autre direction
Mais cela peut arriver de nouveau
Jusqu’où faut-il remonter dans l’arbre ?
Mémoire tampon importante
Transmission de l’Information : les codes convolutifs 65/89
66. Les codes convolutifs
IV. Décodage convolutif
IV. 2. Décodage séquentiel : Algorithme à piles
Algorithme de Fano utilisant un système de pile pour gérer plus
efficacement les retours en arrière. Le décodeur consiste en une pile
où sont stockés les chemins explorés :
Le stockage est effectué par ordre décroissant des valeurs de
leurs métriques.
Le sommet de la pile contient le chemin de métrique minimale
courant et sera donc prolongé en tous ses descendants sur une
profondeur égale à une branche.
Transmission de l’Information : les codes convolutifs 66/89
67. Comparaison des codes
VI. Codes cycliques – Codes convolutifs
Codes cycliques : Codes convolutifs :
Rendement élevé (0,9) Rendement faible mais
performances élevées grâce au
décodage à décision souple
Correction des paquets d’erreurs Correction des erreurs isolées
Modifications de codes
Associations de codes
Transmission de l’Information : les codes convolutifs 67/89