de l’algorithme de Viterbi Fonctionnement de l’algorithme de Viterbi J. Le Roux leroux@essi.fr http://www.essi.fr/~leroux
Émission des donnees dans un codeur convolutionnel avec un registre a decalage et des ou exclusifs s (t) 1 xor e(t-1) e(t- 2) e(t) xor s (t) 2
Représentation de l ’émetteur sous la forme d ’un automate 0 0 0 s s Les états sont les valeurs de et-1, et-2 1 2 s s e 1 1 1 1 2 10 00 e 1 0 0 s s 1 2 e 0 1 1 s s 1 2 e 1 0 1 s s 1 2 e 0 1 0 s s 1 2 01 11 e 0 0 1 s s 1 2 s s e 1 1 0 1 2
s s e vaut 0 e vaut 1 treillis de l’algorithme de décodage de Viterbi 0 0 1 2 00 00 00 00 00 11 10 10 11 10 10 10 10 État de l’automate 01 01 01 01 01 00 01 01 11 11 11 11 11 10 temps
Correction des codes convolutionnels Erreurs de transmission Message à coder Codeur de l’émetteur Message reçu Comparaison Message reconstitué Codeur du récepteur Critère : réduction de l ’écart entre le message reçu et le message reconstitué Algorithme de génération de message
‘‘idées sous jacentes’’ le récepteur génère un message e(t) de sorte que la sortie que l’automate produit avec cette entrée soit la plus proche possible de la séquence bruitée qu’il a reçue Message reçu Message reconstitué Codeur du récepteur Comparaison processus itératif : à l’instant t génération des e(t) possibles et élimination des séquences les plus pénalisées Algorithme de génération de message
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00, , , , , , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 00 10 01 11 Éléments du treillis que va parcourir la représentation du message en cours de décodage
calcul des sorties S1 et S2 pour cet état et e =0 Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00, , , , , , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 t=0, hypothèse : e=0 00 calcul des sorties S1 et S2 pour cet état et e =0 calcul de la distance avec les données reçues 10 01 11 Choix d’une première hypothèse et comparaison aux données reçues
calcul des sorties S1 et S2 pour cet état et e =1 Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00, , , , , , , , , s 1 2 États : 00 10 01 10 11 01 10 01 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 t=0, hypothèse e=1 00 2 calcul des sorties S1 et S2 pour cet état et e =1 calcul de la distance avec les données reçues 10 01 11 Choix d’une deuxième hypothèse et comparaison aux données reçues
distance entre la chaîne reçue et la chaîne générée Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10, , , , , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 incrémentation du temps : t=1 00 1 2 nouveaux calcul de distance entre la chaîne reçue et la chaîne générée 1 10 01 11 Itération du processus pour les deuxièmes données
distance entre la chaîne reçue et la chaîne générée Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10, , , , , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 calculs similaires pour l’autre état atteint à t=0 00 1 2 1 10 2 01 nouveaux calcul de distance entre la chaîne reçue et la chaîne générée 4 11 Itération du processus pour les deuxièmes données
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00, , , , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 incrémentation du temps t=2 4 00 1 3 10 2 01 2 11 Itération du processus pour les troisièmes données
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00, , , , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 calculs similaire pour tous les états atteints 4 00 1 4 3 10 2 2 01 5 2 11 5 Itération du processus pour les troisièmes données
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00, , , , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 4 00 1 4 En régime stationnaire il y a deux entrées par nœud du treillis : on choisit de retenir celle qui correspond à la distance la plus faible au message reçu pour chaque nœud, on n’accepte qu’une seule entrée 3 10 2 2 01 5 2 11 5
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00, , , , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 choix similaire pour tous les nœuds 4 00 1 4 3 10 2 2 01 5 2 11 5 Choix similaires pour tous les nœuds du treillis
Itération en temps du processus : calcul des distances Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01, , , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 4 3 Itération en temps du processus : calcul des distances pour les différentes hypothèses à partir de chacun des états ; puis sélection des chemins entrants les moins coûteux pour les nouveaux états 3 2 10 2 3 2 4 01 5 2 2 2 11 5 4
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01, , , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 3 3 3 2 3 10 2 3 3 2 4 4 01 5 2 2 2 2 2 11 5 4 4 Itération du processus : calcul des distances pour les différentes hypothèses à partir de chacun des états ; puis sélection des chemins entrants les moins coûteux pour les nouveaux états
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00, , , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 3 4 3 3 4 3 2 3 5 10 2 3 3 2 2 4 4 4 01 5 2 2 3 2 2 2 4 11 5 4 4 3 Itération du processus : calcul des distances pour les différentes hypothèses à partir de chacun des états ; puis sélection des chemins entrants les moins coûteux pour les nouveaux états
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10, , , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 4 3 3 3 4 3 2 3 5 4 10 2 3 3 2 4 2 4 4 4 2 01 5 2 2 3 5 2 2 2 3 4 11 5 4 4 4 3 Itération du processus : calcul des distances pour les différentes hypothèses à partir de chacun des états ; puis sélection des chemins entrants les moins coûteux pour les nouveaux états
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11, , s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 6 4 3 3 3 4 2 3 2 3 5 4 4 10 10 2 3 3 2 4 4 2 4 4 4 2 5 01 01 5 2 2 3 5 4 2 2 2 3 4 5 11 5 4 4 4 3 4 Itération du processus : calcul des distances pour les différentes hypothèses à partir de chacun des états ; puis sélection des chemins entrants les moins coûteux pour les nouveaux états
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11,00, s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 6 2 4 3 3 3 4 2 4 3 2 3 5 4 4 10 2 3 3 2 4 4 2 4 4 4 2 5 5 01 5 2 2 3 5 4 5 2 2 2 3 4 5 11 5 4 4 4 3 4 Les deux dernières entrées sont telles que l’état final est bien défini (ici l ’état 00)
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11,00,00 s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 6 2 2 4 3 3 3 4 2 4 7 3 2 3 5 4 4 10 2 3 3 2 4 4 2 4 4 4 2 5 5 01 5 2 2 3 5 4 5 2 2 2 3 4 5 11 5 4 4 4 3 4 Les deux dernières entrées sont telles que l’état final est bien défini (ici l ’état 00)
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11,00,00 s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 6 2 2 4 3 3 3 4 2 4 7 3 2 3 5 4 4 10 2 3 3 2 4 4 2 4 4 4 2 5 5 01 5 2 2 3 5 4 5 2 2 2 3 4 5 11 5 4 4 4 3 4 Traits continus : chemins autorisés; traits pointillés : chemins interdits
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11,00,00 s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 6 2 2 4 3 3 3 4 2 4 7 3 2 3 5 4 4 10 2 3 3 2 4 4 2 4 4 4 2 5 5 01 5 2 2 3 5 4 5 2 2 2 3 4 5 11 5 4 4 4 3 4 Parcours du graphe en remontant à partir de la fin
il y a une seule entrée par nœud, il n’y a qu’un seul chemin Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11,00,00 s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 6 2 2 4 3 3 3 4 2 4 7 3 2 3 5 4 4 10 2 3 3 2 4 4 2 4 4 4 2 5 5 01 5 2 2 3 5 4 5 2 2 2 3 4 5 11 5 4 4 4 3 4 il y a une seule entrée par nœud, il n’y a qu’un seul chemin
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11,00,00 s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 6 2 2 4 3 3 3 4 2 4 7 3 2 3 5 4 4 10 2 3 3 2 4 4 2 4 4 4 2 5 5 01 5 2 2 3 5 4 5 2 2 2 3 4 5 11 5 4 4 4 3 4
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11,00,00 s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 6 2 2 4 3 3 3 4 2 4 7 3 2 3 5 4 4 10 2 3 3 2 4 4 2 4 4 4 2 5 5 01 5 2 2 3 5 4 5 2 2 2 3 4 5 11 5 4 4 4 3 4
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11,00,00 s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée de l ’automate du récepteur (algorithme de Viterbi) 4 00 1 2 3 4 4 6 2 2 4 3 3 3 4 2 4 7 3 2 3 5 4 4 10 2 3 3 2 4 4 2 4 4 4 2 5 5 01 5 2 2 3 5 4 5 2 2 2 3 4 5 11 5 4 4 4 3 4
Émis :11,10,00,01,01,00,10,11,00,00 Reçus :00,10,00,01,01,00,10,11,00,00 s 1 2 États : 00 01 10 01 11 10 01 10 00 00 00 e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 message retrouvé 1 0 1 1 0 1 0 0 0 0 00 1 1 2 3 4 4 6 2 2 4 3 3 3 4 2 4 7 2 1 3 2 3 5 4 4 10 2 3 3 2 4 4 2 2 4 4 4 2 5 5 01 5 2 2 3 5 4 5 4 2 2 2 3 4 5 11 5 4 4 4 3 4 Malgré l ’erreur sur les deux premières données, le chemin retrouvé correspond bien au message émis (s’il n’y a pas trop d’erreurs)