EN218 L`algorithme de Viterbi

publicité
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
Téléchargement