Académique Documents
Professionnel Documents
Culture Documents
Communications Numériques
AU: 2020/2021
Enjeu du codage de canal
AU 2020-2021 2
Enjeu du codage de canal
Le codage de canal rajoute de l’information pour permettre au récepteur
de détecter ou corriger les erreurs éventuellement apparues.
5V
0V
Message reconstitué 0 1 1 0 1 0 0 1 1 1
AU 2020-2021 3
Enjeu du codage de canal
D’où viennent les erreurs ?
Le signal est déformé sur le canal :
l’échantillonnage peut se faire sur
une perturbation.
Pic de bruit
A l’échantillonnage, le récepteur
interprète le niveau de tension
comme un 0.
AU 2020-2021 5
Rôle du codage de canal
AU 2020-2021 6
Canaux discrets
AU 2020-2021 7
Canaux discrets
AU 2020-2021 9
Canaux continus
AU 2020-2021 10
Canaux continus
L'étude des canaux discrets nous permettra donc de déduire des résultats sur
les canaux continus.
AU 2020-2021 11
Capacité d'un canal
AU 2020-2021 12
Définition du canal discret
Pour définir un canal de transmission, il est nécessaire de décrire l'ensemble
des entrées et des sorties possibles du canal, ainsi que le bruit qui perturbera
la transmission.
Le canal discret est le modèle le plus simple de canal de transmission.
L'ensemble des entrées comme celui des sorties seront des ensembles finis X
et Y et le bruit se modélisera par la donnée d'une loi de probabilité
conditionnelle de Y sachant X.
AU 2020-2021 13
Canal discret sans mémoire
Un canal discret sans mémoire est déni par la donnée de :
1. Un alphabet d'entrée X = {a1, . . . , aK},
2. Un alphabet de sortie Y = {b1, . . . , bJ},
3. Une loi de transition définies par les probabilités conditionnelles P(bj | ak).
La matrice K × J suivante:
est appelée matrice stochastique du canal. Nous parlerons d'un canal (X, Y, π).
AU 2020-2021 14
Canal discret sans mémoire
Exemple: Le canal binaire symétrique de probabilité de transition p représenté
par le diagramme:
P(0I0) P(1I0)
a pour matrice stochastique: =
P(0I1) P(1I1)
AU 2020-2021 15
Canal discret symétrique
Un canal discret est dit symétrique si les lignes de sa matrice stochastique sont
formées des mêmes éléments à l'ordre près.
Un canal symétrique n'a pas forcément le même nombre d'entrées et de
sorties.
AU 2020-2021 16
Canal discret symétrique
Exemple: Le canal binaire symétrique à effacement est déni par le diagramme:
p=probabilité de transition
p∞= probabilité d’effacement
AU 2020-2021 17
Capacité d'un canal
Soit un canal dont l'ensemble des entrées est X et l'ensemble des sorties Y . La
donnée du canal nous fourni également la loi de transition, c'est à dire la loi de
probabilité conditionnelle de Y sachant X. Cette loi sera notée P, pour tout x dans
X et tout y dans Y , nous connaissons P(y | x).
Si nous connaissons également la loi d'émission, c'est-à-dire la loi de probabilité
de X, alors nous sommes en mesure de calculer l'information mutuelle I(X; Y )
entre X et Y . En effet
et P(x, y) et P(y) peuvent être calculés et valent:
AU 2020-2021 18
Capacité d'un canal
La relation:
exprime alors que l'information transmise à travers le canal est égale à l'entropie
de X, H(X) diminuée de la quantité H(X | Y ) que l'on peut interpréter alors
comme la perte d'information due au bruit.
Pour un canal donné, seule la loi de transition est connue. La loi d'émission ne
dépend que de la source et du codeur de canal. La capacité du canal sera la
plus grande valeur que peut atteindre l'information mutuelle de X et Y .
AU 2020-2021 19
Définition
AU 2020-2021 20
Capacité d'un canal discret sans mémoire
AU 2020-2021 21
Définitions
AU 2020-2021 22
Capacité d'un canal symétrique
Pour un canal symétrique, la matrice stochastique:
est telle que ses lignes sont toutes égales à l'ordre près. On pose pour tout
couple (k, j), πk,j = P(bj | ak).
L'information mutuelle moyenne s'écrit: I(X; Y) = H(Y) − H(Y | X), où H(Y | X)
l'entropie conditionnelle de Y sachant X est égale à
AU 2020-2021 23
Capacité d'un canal symétrique
Par définition d'un canal symétrique, le terme
est indépendant de k. Notons le H(π). Nous avons alors
AU 2020-2021 24
Capacité d'un canal symétrique
Soit T un canal symétrique dont la décomposition en canaux fortement
symétrique s'écrit q1T1 + . . . + qLT . Sa capacité est atteinte lorsque la loi
d'émission est uniforme et vaut:
vaut:
AU 2020-2021 25
Théorème fondamental
Avant d'énoncer le second théorème de Shannon sur le codage des canaux
bruités, nous allons décrire les façons par lesquelles nous pouvons opérer ce
codage.
D'après les hypothèses que nous avons admises jusqu'à présent, l'entrée du
codeur de canal est égale à la sortie du codeur de source, c'est-à-dire qu'il s'agit
d'une séquence binaire.
Un codage d'un canal discret (X, Y, π) est une procédure qui associe à chaque
séquence binaire finie Y une séquence finie de lettres de X.
Bien évidemment, il est hautement désirable qu'après passage dans le canal la
séquence de lettres de Y reçue puisse être décodée pour retrouver la séquence
binaire, et ce avec une probabilité la plus élevée possible.
AU 2020-2021 26
Théorème fondamental
Un code en bloc d'un canal discret (X, Y, π) est une procédure qui associe à
chaque séquence binaire de longueur donnée k une séquence finie de n lettres
de X appelée mot de code. L'entier n est appelé longueur du code, 2k est le
cardinal du code.
Nous désignerons également par code l'ensemble des mots de codes pour tous
les k-uplets binaires possibles.
À tout codage, il faudra évidemment associer une procédure de décodage. Cette
procédure va pendre en entrée une séquence de lettres à la sortie du canal, et
donner en sortie une séquence binaire. Ce décodage devra se faire de façon à
maximiser la vraisemblance.
AU 2020-2021 27
Théorème fondamental
AU 2020-2021 28
Canal binaire symétrique
Théorème fondamental
Nous nous contenterons d'exposer le théorème fondamental de Shannon pour le
codage de canal dans le cas d'un canal binaire symétrique. Il est aisé de
généraliser au cas q-aire, c'est-à-dire lorsque les alphabet d'entrée et de sortie
du canal sont égaux et de cardinal q.
Comme nous l'avons déjà vu le canal binaire symétrique de probabilité de
transition p à pour capacité C = 1 + p log2 p + (1 − p) log2(1 − p).
Pour un tel canal, nous utiliserons des codes binaires, c'est-à-dire des sous
ensemble de {0, 1}n pour un certain entier n.
AU 2020-2021 29
Le second théorème de Shannon pour un CBS
Soit un canal binaire symétrique de capacité C. Pour tout R < C il existe une
suite Cn de codes de longueur n de taux Rn d'algorithme de décodage de taux
d'erreur résiduel Pen telle que:
Ce théorème signifie donc qu'il existe des codes en bloc permettant de réaliser
un code dont le taux est aussi proche qu'on le désire de la capacité du canal.
Il existe un autre résultat qui est le réciproque de ce théorème.
AU 2020-2021 30
Le second théorème de Shannon pour un CBS
Soit un canal binaire symétrique de capacité C. Soit un code de taux R > C alors
tout algorithme de décodage de ce code est tel que son taux d'erreur résiduel
Pe> K(R,C) > 0, où K(R,C) est une constante strictement positive ne dépendant
que de R et de C.
Ce résultat nous indique qu'il est inutile de chercher des codes de taux supérieur
à la capacité du canal. La capacité C est donc bien le taux de codage maximal
que l'on puisse atteindre pour faire transiter une information dans un canal
donné.
AU 2020-2021 31
Plus simplement
AU 2020-2021 32
Transmettre de l’information sans erreur ?
AU 2020-2021 33
Détection/correction d’erreur
AU 2020-2021 34
Métriques: Distances et poids de Hamming
AU 2020-2021 35
Métriques: le poids d’un code
AU 2020-2021 36
Métriques: la distance de Hamming
AU 2020-2021 37
Métriques: Distance de Hamming du code à répétition
AU 2020-2021 38
Métriques: code correcteur d’erreurs
AU 2020-2021 39
Ex: code de parité
AU 2020-2021 40
Métriques: paramètres d’un code (n,k)
AU 2020-2021 41
Classification des codes
détecteurs et correcteurs d’erreurs
AU 2020-2021 42
Codes de bloc linéaire
Codes de bloc Linéaires: Algo de codage
AU 2020-2021 44
Codes en blocs linéaires
Lemme : Un code linéaire de distance minimum d peut
détecter jusqu'à d-1 erreurs et en corriger jusqu'à t avec
d=2t+1 ou d=2t+2, si on utilise la règle de décodage à
distance minimum
d: nombre d’erreurs détectées
t: nombre d’erreurs corrigés
Notations
• Un code de dimension k de longueur n de distance
minimale d est noté C(n,k,d)
• Un code qui corrige jusqu'à t erreurs est appelé t-
correcteur
AU 2020-2021 45
Codes de bloc Linéaires: Algo de codage
AU 2020-2021 46
Exemple
a u = Ga
101
000 000000
011
001 110110 1
010
G= 010 011101 1
111 0
001 011 101011 0
G 0 =
110 100 100101 1
1
101 010011
1
0
110 111000
111 001110
AU 2020-2021 47
Exemple
101 u1
011
010 u2
G=
111
001
u3
110
u4
u5
u6
AU 2020-2021 48
Exemple
AU 2020-2021 51
Codes de bloc Linéaires: Algo de codage
Matrice
Matrice de
génératrice
controle Transposé de
Matrice
la Matrice de
de parité
parité
AU 2020-2021 52
Codes de bloc Linéaires: Algo de codage
On considère un code dont la matrice génératrice est :
AU 2020-2021 53
Codes de bloc Linéaires: Algo de codage
Proposition : Tout code linéaire C(n,k) est équivalent à un code linéaire
sous forme systématique C'(n,k) avec
Ik Pt
G' et H' càd matrice de contrôle P I n -k
P I n -k
Dem : par combinaisons linéaires des colonnes de G on peut trouver une matrice
identité d'ordre k (puisque le rang est k), ce qui ne change pas le sous-espace
vectoriel. Par une permutation des lignes on peut placer la matrice identité dans
les k premières colonnes. Les lignes de H' sont orthogonales aux lignes de G'.
Comme elles sont linéairement indépendantes alors H' peut être considéré
comme la matrice de contrôle de C'.
AU 2020-2021 54
Rappel: codage systématique
AU 2020-2021 55
Passage au code systématique
101 100
011 011
G=
010 1/ On remplace la troisième colonne G'= 0 1 0
111 par la somme de la 1ere et de la 3eme 110
001 001
110 111
100 011
010 Ik 111 Pt
001
G‘’= 0 1 1 H'= 1 0 1
100
P
110 010 In-k
111 001
AU 2020-2021 56
Codes de bloc Linéaires: le syndrome
AU 2020-2021 57
Codes de bloc Linéaires:
Lien entre distance minimale et matrice de parité
AU 2020-2021 58
Codes de bloc Linéaires:
Correction des erreurs et distance de Hamming (revisitée)
AU 2020-2021 59
Codes de bloc Linéaires:
Algorithme de Correction des erreurs par syndrome
AU 2020-2021 60
Codes de bloc Linéaires:
Exemple1
AU 2020-2021 61
Codes de bloc Linéaires:
Exemple1
AU 2020-2021 62
Codes de bloc Linéaires:
Exemple1
AU 2020-2021 63
Codes de bloc Linéaires:
Exemple2
AU 2020-2021 64
Codes de Hamming
Codes de Hamming (canaux bruités)
Code de Hamming (1948):
• code linéaire
Théorème
Propriétés
1/ distance minimale 3
2/ capacité de correction 1
3/ parfait c-à-d toute erreur à distance 1 (c-à-d une erreur sur un seul bit) d'un
code est corrigée
AU 2020-2021 66
Codes de Hamming (canaux bruités)
Rendement
H a donc pour colonnes tous les vecteurs de taille m sauf le vecteur nul
AU 2020-2021 67
Codes de Hamming (canaux bruités)
Ce sont des codes (n,k,d)=(2m-1, 2m-m-1,3) avec m = la redondance
• En pratique, on fixe la redondance m, ce qui donne k et n
On code donc chaque bloc de k=2m-m-1bits par un bloc de n=2m-1 bits
rem : la valeur de m est au moins 2 (si m=1, alors n=1, pas de sens)
m 2 3 4 5 6 7
n = 2m-1 3 7 15 31 63 127
k = n-m 1 4 11 26 57 120
codes H(3,1) H(7,4) H(15,11) H(31,26) H(63,57) H(127,120)
AU 2020-2021 68
Codes de Hamming : en pratique
Obtenus par la matrice de contrôle
H contient tous les vecteurs sauf le vecteurs nul
Par exemple la matrice de contrôle H de H(15,11) (m=4) est:
000000011111111
000111100001111
011001100110011
101010101010101
AU 2020-2021 69
Codes de Hamming : en pratique
Rappel : les codes de Hamming permettent de coder des mots de longueur 1= (22-1-2)
ou 4 (23-1-3) ou11 = (24-1-4) ou 26 = (25-1-5) ou 57 = (26-1-6) ou120 = (27-1-7),…
On effectue le codage sur la nouvelle forme, puis on fixe dans l'expression des bits de
code la valeur de v0 choisie.
AU 2020-2021 70
Codes de Hamming : en pratique
Par exemple, on fixe la valeur de v0 à 0 et on utilise un code de Hamming séparable
v0
v1
v1
v2
v2
v3
G.V'=C' = v3 C=
v0= 0 v1 + v2 + v3
v1 + v2 + v3
v2 + v3
v0 + v2 + v3
v1 + v3
v0 + v1 + v3
AU 2020-2021 71
Codes de Hamming : en pratique
En codage : la première colonne de G ajoute les termes en v0.
1 0 0 0 0
0
0 1 0 0 v1
v1
V :=
0 0 1 0 v2
v2
G := 0 0 0 1 v3
v3
0 1 1 1 v1 + v2 + v3
1 0 1 1 v2 + v3
1 1 0 1 v1 + v3
1 0 0 v1
0 1 0 v2
v1
G := 0 0 1 v3
V := v2
1 1 1 v1 + v2 + v3
v3
0 1 1 v2 + v3
1 0 1 v1 + v3
AU 2020-2021 72
Codes de Hamming : en pratique résumé
Pour des mots d'information de longueur k autre que 4,11,26, etc.., on considère
un codage de Hamming séparable pour des mots de longueur k' = 4,11, 26
immédiatement supérieure (on "ajoute" k'-k bits).
Le nombre de bits de redondance est le même que pour des mots d'information
de longueur k' :
- pour des mots de longueur 2 ou 3, on ajoute 3 bits comme pour des mots
de 4 bits
- pour des mots de longueur 5,6,7,8,9,10, on ajoute 4 bits comme pour des
mots de 11 bits
- etc…
AU 2020-2021 73