Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi EN218 L’algorithme de Viterbi Thibaud Tonnellier 16 novembre 2015 Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 1 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Plan 1 Introduction 2 Code convolutif 3 Chaîne de communication numérique 4 Le décodeur de Viterbi Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 2 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi • L’algorithme de Viterbi sert à décoder des codes convolutifs. • Ces derniers sont une catégorie de codes correcteurs d’erreurs. • Les codes correcteurs sont basés sur la redondance de l’information. • Ils sont nécessaires pour assurer une bonne QoS des communications numériques. • L’algorithme de Viterbi peut aussi servir à d’autres applications comme la reconnaissance de la parole. Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 3 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Plan 1 Introduction 2 Code convolutif 3 Chaîne de communication numérique 4 Le décodeur de Viterbi Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 4 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Présentation • Introduits par Elias en 1954 • Utilisés dans de nombreux standards : communication sans fils terrestre, satellitaire, spatiale... • Structure : • Plusieurs bascules D connectées (=registre à décalage), • Sorties obtenues via XOR entre sorties de ces bascules et entrée Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 5 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Représentation schématique y1 y2 Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 6 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Représentation FSM • Il peut être vu comme une machine à états finis : Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 7 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Représentation FSM • Il peut être vu comme une machine à états finis : 0 4 1 2 5 6 3 7 : 0 émis : 1 émis • Mais cette représentation est quelques peu inutile pour le décodage à la différence du treillis.. Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 7 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Représentation treillis Thibaud Tonnellier EN218 L’algorithme de Viterbi 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 : 0 émis : 1 émis [email protected] 8 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Représentation treillis 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 : 0 émis : 1 émis 7 Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 8 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Représentation treillis Définitions Les états du codeur sont appelés nœuds du treillis. Les transitions entre deux nœuds sont appelées branches du treillis. Si ν est le nombre de mémoires (=bascules D), alors il y a 2ν nœuds. Si le codeur est binaire, le treillis dénombre 2 × 2ν branches. La suite des bits à transmettre peut se caractériser par un chemin dans le treillis représentant les états successifs du codeur. Décodage Il suffit alors au recepteur de reconstituer le chemin dans le treillis pour déterminer la suite des bits transmis. Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 8 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Signature d’une transition • Le codeur calcule une caractéristique des transitions sur un ou plusieurs bits (= les sorties du codeur). • C’est cette caractéristique qui est transmise via le canal bruité. • Dans notre cas, à chaque transition (= pour chaque bit d’information) le codeur transmet la caractéristique de transition sur 2 bits (= information redondante). • Le rendement de ce codeur vaut donc Thibaud Tonnellier EN218 L’algorithme de Viterbi 1 2 [email protected] 9 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Signature d’une transition – Visualisation sur treillis 11 01 1 2 3 01 3 7 00 6 4 01 5 01 10 11 4 10 2 10 00 1 0 00 11 0 10 00 5 6 7 : 0 émis : 1 émis XX : caratéristique Thibaud Tonnellier EN218 L’algorithme de Viterbi 11 [email protected] 10 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Plan 1 Introduction 2 Code convolutif 3 Chaîne de communication numérique 4 Le décodeur de Viterbi Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 11 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Représentation Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 12 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Démodulation Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 13 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Distance Y01 Y11 y˜2 Y00 Thibaud Tonnellier EN218 L’algorithme de Viterbi y˜1 Y10 [email protected] 14 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Plan 1 Introduction 2 Code convolutif 3 Chaîne de communication numérique 4 Le décodeur de Viterbi Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 15 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Principe • Le principe du décodeur de Viterbi est de réussir à identifier le chemin dans le treillis qu’à pris l’encodeur. • Pour ce faire, pour chaque symbole reçu, il calcule les chemins les plus probables permettant d’arriver a chacun des noeuds. • Ainsi, a chaque étape de Viterbi, il existe un chemin survivant par état du codeur. • Ces chemins finissent par converger (normalement...). En effet cette longueur de reconvergence n’est pas bornée mais on la borne en pratique. Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 16 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Métrique de branche • Pour chaque symbole reçu, le décodeur calcule les métriques de branches. • Elles correspondent à la distance entre le symbole reçu et les 4 caractéristiques émises possibles : d(y˜1 y˜2 , Y00 ) = q y˜1 2 + y˜2 2 d(y˜1 y˜2 , Y01 ) = q d(y˜1 y˜2 , Y10 ) = q d(y˜1 y˜2 , Y11 ) = q y˜1 2 + (7 − y˜2 )2 (7 − y˜1 )2 + y˜2 2 (7 − y˜1 )2 + (7 − y˜2 )2 Ainsi, plus un symbole est probable, plus sa métrique est faible. Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 17 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Métrique de nœud • La métrique de nœud représente la probabilité cumulée pour chaque nœud de faire partie de la séquence. • Ce résultat est obtenu en effectuant un ACS (Add Compare Select) : Mi di,n d j,n Mn Mn = min(Mi + di,n , Mj + dj,n ) Mj • Il est nécessaire de sauvegarder la décision prise (haute ou basse) Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 18 / 19 Introduction Code convolutif Chaîne de communication numérique Le décodeur de Viterbi Chemin survivant Le chemin survivant d’un nœud est le chemin du treillis le plus probable permettant d’accéder au nœud. • Les chemins survivants convergent vers un chemin unique avec une très grande probabilité. • Il faut effectuer une remontée du treillis suffisante pour maximiser cette convergence. • Pour le codeur considéré, une profondeur de 20 est un bon choix. Thibaud Tonnellier EN218 L’algorithme de Viterbi [email protected] 19 / 19