suivant: Notions sur les turbocodes
monter: Codes convolutionnels, algorithme de
précédent: Codes convolutionnels, algorithme de
  Table des matières
Le fonctionnement de cet automate est décrit dans la figure
44 sous la forme d'un registre à décalage
mémorisant les données
à émettre et générant par des
fonctions ``ou exclusif'' les signaux
et
.
Figure 44:
Schéma de la génération des données émises dans un exemple simple de code convolutionnel
 |
On
peut aussi représenter ce fonctionnement sous la forme d'un graphe
de transition (figure 45.
Figure 45:
Automate représentant le fonctionnement du codeur
 |
On peut en représenter le
fonctionnement au cours du temps sous la forme d'un treillis
(figure 46. Dans ce treillis, les états de
l'automate sont représentés en abscisse et le temps en ordonnée.
Une transition en fonction d'une entrée
est décrite par une
branche indiquant la transition d'état sur laquelle on a aussi
indiqué les sorties émises sous la forme
. Dans
cette représentation on donne l'état initial de l'automate qui
sera unique et a priori connu du récepteur.
Figure 46:
Réprésentation du fonctionnement sous la forme d'un treillis
 |
Fonctionnement du récepteur
Le récepteur possède un automate identique à celui de l'émetteur.
L'objectif à atteindre est d'engendrer par cet automate une
séquence aussi proche que possible (au sens de la distance de
Hamming)
de la séquence reçue.
Figure 47:
Principe du décodage par le récepteur
 |
Nous décrivons le fonctionnement sur un exemple. Supposons que la
séquence émise
était
 |
(75) |
et que la séquence reçue est
 |
(76) |
(les deux premiers bits sont erronnés). Au début du décodage, l'automate du récepteur est dans le même état initial que celui de
l'émetteur. A chaque instant
, il génère deux hypothèses possibles pour l'entrée: (
et
, et pour chaque état possible, il produit deux sorties
. On compare ces deux sorties à la séquence reçue
et on calcule la distance de Hamming entre ces deux signaux.
A l'instant
, il y a un seul état possible
.
Pour
, on génère
. La distance au signal reçu est égale à
.
Pour
, on génère
. La distance au signal reçu est égale à
.
A l'instant
, il y a deux états possibles (
et
).
Dans l'état
, pour
, on génère
. La distance au signal reçu :
.
Dans l'état
, pour
, on génère
. La distance au signal reçu :
.
Dans l'état
, pour
, on génère
. La distance au signal reçu :
.
Dans l'état
, pour
, on génère
. La distance au signal reçu :
.
La distance de Hamming porte sur les messages à partir de leur début et jusqu'à l'instant
.
La distance de Hamming à l'instant
est égale à la distance de
Hamming à l'instant
à laquelle on ajoute la distance entre
et
.
A l'instant
, il y a quatre états possibles (
et
).
On effectue les mêmes calculs que précédemment pour ces quatre états, ce qui produit huit sorties
possibles.
état
, pour
, on génère
. La distance au signal reçu :
.
état
, pour
, on génère
. La distance au signal reçu :
.
état
, pour
, on génère
. La distance au signal reçu :
.
état
, pour
, on génère
. La distance au signal reçu :
.
état
, pour
, on génère
. La distance au signal reçu :
.
état
, pour
, on génère
. La distance au signal reçu :
.
état
, pour
, on génère
. La distance au signal reçu :
.
état
, pour
, on génère
. La distance au signal reçu :
.
On remarque qu'à l'instant
, l'automate est maintenant dans son régime
permanent. Chaque état peut être atteint par deux entrées
différentes. Par exemple, on peut atteindre
l'état
à partir de l'état
avec l'entrée
, la distance calculée pour ce chemin est
l'état
à partir de l'état
avec l'entrée
, la distance calculée pour ce chemin est
.
A ces deux chemins sont associés des distances en général
différentes. Le principe de Viterbi est de ne retenir parmi ces
deux chemins que celui qui correspond à la distance de Hamming la
plus petite. Par exemple pour l'état
, on ne retient que le
chemin provenant de l'état
car il correspond à une distance
de Hamming de
, l'autre chemin correspondant à une distance de
Hamming de
.
On sélectionne ainsi pour chacun des état un seul chemin entrant.
On réitère l'opération jusqu'à la fin du message. En principe, il
faut que la fin du message soit une séquence bien définie pour que
l'état final de l'automate d'émission soit un état connu du
récepteur.
On compare alors les distances de Hamming entre séquences retenues
pour chacun des états à l'instant final
(une séquence par
état) et on considère que le message émis était celui qui
correspond à la distance la plus petite. La séquence ainsi retenue
dans l'exemple est bien la séquence émise, malgré les deux erreurs
dans le message reçu. La distance de Hamming entre le message reçu
et le message qui est généré par la séquence d'entrées retenue est
bien égale à
.
L'intérêt majeur de cet algorithme est dû esssentiellement au
résultat important de Viterbi: le chemin sélectionné par cette
méthode permet de trouver la séquence d'entrée la plus
vraisemblable lorsque le canal est sans mémoire (pas
d'interférences entre données successives). Il donne la séquence
qui maximise la fonction de vraisemblance
![\begin{displaymath}
\sum_{t=0}^{T}\log_2 p[s''_1(t),s''_2(t)/e'(t)]
\end{displaymath}](img328.gif) |
(77) |
où
est la probabilité d'avoir reçu
lorsque
a été émis.
Les codes convolutionnels sont bien adaptés à la correction
d'erreurs isolées alors que les codes en blocs (Reed Solomon par
exemple) sont mieux adaptés à la correction de paquets d'erreurs.
En général, on associe les deux techniques comme dans le téléphone
mobile GSM.
Figure 48:
Sélection des chemins dans le treillis: parmi les deux chemins
entrant dans un état, on sélectionne celui qui correspond à la distance de Hamming la plus petite
 |
Sous-sections
suivant: Notions sur les turbocodes
monter: Codes convolutionnels, algorithme de
précédent: Codes convolutionnels, algorithme de
  Table des matières
Leroux Joel
2001-02-08