Académique Documents
Professionnel Documents
Culture Documents
Théorie de l’information et codage La figure suivante représente un dispositif permettant de coder la transmission
d’un message sur un canal.
Ce canal peut recevoir directement la séquence binaire du message d’entrée ou
son codage issu d’un codeur.
Ce dernier introduit une redondance systématique dans le flux de données
sous la forme de bits complémentaires qui permettent de détecter et/ou de
corriger les bits erronés au niveau du récepteur.
Chapitre 4 :
Exemples:
Sans codage: Avec codage:
- Si q=2 (code binaire), alors les mots de code sont constitués D=1/T, Du=1/T D=n/(kT), Du=1/T
de 0 et 1.
T ... T T ... T
- Si q>2 (code non binaire), alors les mots de code sont
k bits d’information pendant kT n bits pendant kT avec (n-k)
constitués de 0, 1,…,q-1.
bits de redondance
Rendement du code : R=k/n
8
Codage par blocs Codage avec contrôle d’erreur
1ère étape : Comment savoir si un flux de données comporte des erreurs ?
Les n-k bits de la seconde partie du mot codé sont des bits de contrôle de
Détecter les erreurs.
parité.
2ème étape : Que faire lorsque le flux de données à traiter est erroné ?
Dans ce cas, le codeur effectue l’opération de conversion suivante :
Corriger les erreurs (protocoles de la couche 1). Puis, solliciter
T:UV
l’émission de nouvelles données (protocoles a partir de la couche 2). Enfin,
où U est un ensemble de mots binaires de longueur k et V est un ensemble de
interpoler entre les données précédentes et les données suivantes (applications).
mots binaires de longueur n avec n>k.
Chacun des 2k mots de données est associé de façon biunivoque à un mot
Les codes utilisés en communication peuvent corriger ou simplement détecter
codé.
les erreurs de transmission, suivant le taux de redondance des bits de contrôle
Le rapport R=k/n est appelé Taux de remplissage du code ou Rendement du
de parité.
code.
Il existe donc des codes correcteurs d’erreur de types très divers, tels que les
Opération de décodage: retrouver les blocs de k bits à partir des blocs de n bits.
codes à contrôle de parité linéaire, les codes cycliques et les codes convolutifs.
Nous allons parler ici des codes à contrôle de parité linéaire.
9 10
Détecter les erreurs. de taille q = ps, noté Fq. L’ensemble (Fq)n de tous les n-uples formés
2ème étape : Que faire lorsque le flux de données à traiter est erroné ? d’éléments de Fq est un espace vectoriel sur Fq.
Corriger les erreurs (protocoles de la couche 1). Puis, solliciter Définition 1. L est un code linéaire si L est un sous-espace vectoriel de (Fq)n.
l’émission de nouvelles données (protocoles a partir de la couche 2). Enfin, On dit que L est un [n, k]-code si dim(L) = k.
interpoler entre les données précédentes et les données suivantes (applications). Si la distance minimale de L est d, on parle de [n, k, d]-code.
Les codes utilisés en communication peuvent corriger ou simplement détecter Définition 2. Le poids ω(x) du mot x de (Fq)n est le nombre de composantes
les erreurs de transmission, suivant le taux de redondance des bits de contrôle non nulles de x.
de parité. Le poids minimal ω(L) du code L est le minimum des poids de tous les
Il existe donc des codes correcteurs d’erreur de types très divers, tels que les vecteurs non nuls de L.
codes à contrôle de parité linéaire, les codes cycliques et les codes convolutifs. Exemple: ω(1101) = 3
Nous allons parler ici des codes à contrôle de parité linéaire.
11 L = {00000, 10111, 11010, 01101} → ω(L) = 3 12
Principe: Poids d’un code linéaire Codes à contrôle de parité linéaire
La relation (Eq.1) peut s’écrire sous la forme matricielle suivante:
Théorème 1.
Eq. 2
Soit L un code linéaire. On a : d(L) = ω(L).
où l’on a :
Eq. 3
Théorème 2. En utilisant la règle de décodage par distance minimale, un code
linéaire peut détecter jusqu’à t erreurs, avec t = ω(L) − 1. Dans la relation (Eq.3) Ik est la matrice unité d’ordre k et PT est la matrice
De plus, il en corrige jusqu’à t’, avec ω(L) = 2t’ + 1 ou 2t’ + 2. transposée de la matrice des coefficients P ayant pour expression :
Exemple
Eq. 4
L = {00000, 10111, 11010, 01101} est 2-détecteur et 1-correcteur
La matrice G de dimensions k x n est appelée matrice génératrice.
Le code (ensemble complet des mots codés) engendré par la relation (Eq.1) ou
13 14
(Eq.2) est appelé code à contrôle de parité linéaire.
contrôle d'erreur.
Pour toute matrice G de taille (k×n), il existe une matrice H, de taille (n - k, n),
Eq. 7
où l’on a reconnu dans ‘0’ la matrice nulle de dimension k x m.
Une post-multiplication par H des deux membres de la relation (Eq.2) et
l’utilisation de la relation (Eq.7) permet d’obtenir:
Les mots du code L
ainsi que leur poids
Eq. 8 sont donnés par :
La matrice H est appelée matrice de contrôle de parité du code considéré et la
relation (Eq.8) est appelée relation de parité,
H est une matrice génératrice de 𝐿⊥. Cette matrice sera utilisée par la suite pour
17 18
le décodage.
position i
19 20
Décodage syndromique DÉTECTION ET CORRECTION D’ERREUR
Sous décodage syndromique, un (n,k) bloc de code linéaire peut corriger Etant donné deux vecteurs codes ci et cj de même dimension (nombre
jusqu’à t erreurs par mot de code si n et k respectent la limite de Hamming. d’éléments), on définit une distance de Hamming d(ci,cj) entre ces vecteurs
égale au nombre de positions où leurs éléments sont différents.
On définit également le poids de Hamming w(ci) d’un vecteur code ci égal au
Eq. 9 nombre de 1 de ci.
w(ci) = nombre de ‘1’ dans ci.
On peut ainsi dire que le poids de Hamming de ci est sa distance de Hamming
par rapport au vecteur ‘0’, c’est-à-dire :.
Un codage par blocs qui satisfait à l’égalité de l’Eq. 9 est appelé code
w(ci)= d(ci,0)
parfait.
où ‘0’ est le vecteur code dont tous les éléments sont nuls.
Les codes parfaits capables de corriger une seule erreur sont appelés
On peut aussi exprimer la distance de Hamming en fonction du poids de
codes de Hamming.
Hamming :
d(ci,cj) = w(ci⨁cj)
21 22
Pouvoir de détection:
THÉORÈME
La distance minimale d’un codage par blocs linéaire est égale au nombre de d min 1
lignes de la matrice HT dont la somme est égale à 0.
Pouvoir de correction: (E[.] est la partie entière)
d 1
t E min
2
23 24