II.2.3. Décodage des codes convolutifs
En pratique, il est possible de tirer un meilleur parti des
possibilités de détection et de correction des codes convolutifs
en faisant appel à des méthodes probabilistes [19], dont la plus
connue est l'algorithme de Viterbi, qui est un algorithme de décodage au
maximum de vraisemblance sur tout canal sans mémoire.
? Pricipe de l'algorithme de viterbi
L'algorithme de viterbi [15] permet à partir de
n'importe quelle séquence binaire (tronquée) de déterminer
la séquence d'information produisant la séquence codée qui
lui est la plus probable. Cette propriété d'optimalité est
vraie même lorsque la séquence fournie au codeur est
accompagnée d'une information de fiabilité (décodage
souple). En particulier, pour le décodage d'un code convolutif
poinçonné, les symboles décimés sont
réintroduits dans le décodeur, avec une valeur quelconque et une
fiabilité nulle. Le décodeur prendra automatiquement en compte,
et de façon optimale, cette information.
La complexité par bit d'information du décodeur
de Viterbi est proportionnelle à 2k+m. Ce
caractère exponentiel est la raison principale pour laquelle les codes
retenus pour les applications ont
souvent une seule entrée (k=1) et une longueur de
contrainte faible (m < 10).
L'algorithme de décodage de Viterbi consiste à
trouver le chemin minimum dans un treillis de codage (graphe orienté
sans cycle).
|