Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
THEORIE DE L’INFORMATION
___
CODAGE DE CANAL
___
G.BINET MdC 61
T_info_b_linéaires p.1
UFR de Sciences Université de Caen
CODAGE DE CANAL
CODES DE BLOCS LINEAIRES
I. DEFINITIONS ET PROPRIETES DES CODES DE BLOC
LINEAIRES
I.1 Code binaire :
G.BINET MdC 61
T_info_b_linéaires p.2
UFR de Sciences Université de Caen
CODAGE DE CANAL
CODES DE BLOCS LINEAIRES
Pour approcher au mieux la capacité C du canal si, conformément au théorème de Shannon, l'entropie
de la source H(X) < C nous pouvons ajouter de la redondance dans le codage de la source afin de diminuer les
erreurs de transmission. C'est le problème du codage de canal. A côté des premiers codes empiriques (bit de
parité, répétition,…) deux grandes catégories de codes ont été développées et sont actuellement utilisées en
faisant l'objet permanent de perfectionnements :
Les codes de blocs linéaires.
Les codes de convolution.
Le codage de canal utilise les symboles d'une source pour construire des objets appelés mots de codes.
Pour une source discrète binaire nous utiliserons deux symboles. Pour un alphabet non binaire de q symboles
(source q-ary) si q = 2b, un code de longueur N peut se ramener à l'étude d'un code binaire de longueur b.N.
Nous pouvons aussi montrer que si q ≠ 2b il est possible de se rapporter à une telle étude. Pour ces raisons,
l'étude des codes binaires est une bonne introduction et nous nous contenterons de ce cas particulier.
L'information de la source est mise en trames de longueur fixe que nous devons transmettre : c'est le
message. Le codage de canal prend ce message pour en faire un mot de code :
message → codage de canal → mot de code
Le message est constitué de k caractères soit 2k messages possibles. Le mot de code utilisé sera lui aussi
de longueur fixe de n caractères soit 2n mots de code possibles. Avec n > k il y aura donc n-k caractères du mot
de code qui sont redondants et serviront à traiter les erreurs éventuelles. Par ailleurs, 2n > 2k donc un certain
nombre de mots de code ne correspondent pas à un message mais seulement à des erreurs de transmission.
On parle ainsi d'un code de bloc ( n , k ) et du rapport du code défini par Rc = k/n.
Un cas particulier des codes de blocs est celui des codes où le message apparaît explicitement sur ses k
caractères c'est à dire "en clair". A côté de ces k caractères seront donc ajoutés n-k caractères redondants. Nous
obtenons alors un code dit code systématique et c'est ce sous ensemble que nous étudierons.
Le poids d'un mot de code est par définition le nombre de caractères non nuls que contient ce mot.
11001000 est de poids 3 10011010 est de poids 4 00000000 est de poids nul
A l'ensemble des mots d'un code on associe l'ensemble des poids qui est la distribution de poids du
code. Un code est dit de poids fixe (ou poids constant) si tous les mots du code ont le même poids.
G.BINET MdC 61
T_info_b_linéaires p.3
UFR de Sciences Université de Caen
La distance de Hamming dij entre deux mots de code est le nombre de bits dont ils diffèrent.
11001000
et 10011010 ont une distance de 3.
La distance minimale du code est le minimum de l'ensemble des distances entre codes :
dmin = min { dij }
Conséquence : Si αi = αj = 0 ⇒ Ck = "0"
Un code linéaire contient le code "0".
Un code de poids fixe ne peut être un code linéaire.
Pour un code linéaire, la distance minimale est le plus petit poids du code, mot de code nul exclus.
min { dij } = min { wk } pour Ck ≠ "0"
G.BINET MdC 61
T_info_b_linéaires p.4
UFR de Sciences Université de Caen
G.BINET MdC 61
T_info_b_linéaires p.5
UFR de Sciences Université de Caen
1 0 1 1 0 0 0
1 1 1 0 1 0 0
G= ⇒ b0 = m0 + m1 + m2 b1 = m1 + m2 + m3 b2 = m0 + m1 + m3
1 1 0 0 0 1 0
0 1 1 0 0 0 1
H = [ In-k PT ]
En décomposant les matrices nous obtenons :
I
G.HT = [ P Ik ] n -k = P + P = 0
P
En effet P est constitué d'éléments binaires tels que : α + α = 0.
D'où la relation fondamentale : G.HT = 0
Avec l'exemple précédent :
1 0 0 1 1 1 0
H = 0 1 0 0 1 1 1
0 0 1 1 1 0 1
Syndrôme :
A partir de la relation précédente nous pouvons établir la relation servant de base à la détection d'erreur :
Sm = Ym.HT = Em.HT
Le syndrôme ne dépend que de l'erreur de transmission commise et non du mot de code.
Théorème :
Supposons deux syndrômes Si = Ei.HT et Sj = Ej.HT.
Si Si = Sj ⇒ ( Ei - Ej ).HT = 0 ⇒ ( Ei - Ej ) est un mot de code.
⇒ deux vecteurs d'erreur qui diffèrent d'un mot de code ont même syndrôme.
Ce théorème montre qu'il peut y avoir ambiguïté dans la détection des erreurs.
G.BINET MdC 61
T_info_b_linéaires p.6
UFR de Sciences Université de Caen
Chaque élément de la matrice M est : m j = ∑ ci h ji ce qui est une combinaison linéaire sur une ligne j de
i
tous les éléments des colonnes ⇒ M est une combinaison linéaire des colonnes de la matrice H et cette
combinaison linéaire est nulle.
⇒ les colonnes de H sont linéairement dépendantes.
Le nombre de colonnes intervenant dans la combinaison est égale au nombre de "1" du code Cm ce qui
est le poids de Hamming du mot de code.
La distance de Hamming du code étant le poids minimal de ce code ⇒ La distance minimale de Hamming
dmin d'un code est égale au nombre minimal de colonnes de la matrice H dont la somme est nulle.
Le nombre de colonnes de H linéairement indépendantes est dmin-1 et le rang maximal de cette matrice
est n-k ce qui établi la relation :
dmin ≤ n-k+1
Code étendu :
Pour améliorer la détection des erreurs, on ajoute des bits de parité aux colonnes de H ce qui créé à partir d'un
code ( n , k ) un code étendu ( n+1 , k ) tel que :
1 1 ← 1 1 → 1
0
↑ ↑
He = cela augmente la distance de Hamming dmin → dmin + 1
0 ← H →
↓ ↓
0
Erreurs détectables :
Le nombre minimal de bits changeant entre chaque code est dmin la distance minimale du code. Compte tenu du
théorème du chapitre précédent, eD le nombre maximal d'erreurs détectables est donc :
eD = dmin-1
G.BINET MdC 61
T_info_b_linéaires p.7
UFR de Sciences Université de Caen
S'il y a t erreurs de transmission, tous les mots de codes possibles correspondant à cette erreur sont situés dans
une sphère située autour du code réel transmis.
Soit deux codes Xi et Xj et t erreurs de transmission, si nous sommes dans la situation suivante :
t
t Xi Xj
Tout code appartenant à une sphère peut être sans ambiguïté attribué au code le plus proche ⇒ les erreurs
de transmission sont toutes corrigeables.
Une seconde situation:
t
Xj
Xi
t
Dans ce cas, les codes appartenant à l'intersection des sphères ne peuvent être attribués.
Pour éviter toute ambiguïté nous devrons donc respecter la condition :
2.t ≤ dmin-1
t étant un entier, eC le nombre maximum d'erreurs corrigeables sera :
eC = Int [ ½ (dmin-1 ) ]
Le nombre eDNC d'erreurs détectables et non corrigeables est tel que : eDNC + eC = eD. Compte tenu des relations
précédentes nous aurons aussi la relation : eDNC ≥ eC.
exemple :
dmin = 7 ⇒ erreurs détectables eD = 6.
erreurs corrigeables eC = 3.
Erreurs détectables non corrigeables eDNC = 3.
G.BINET MdC 61
T_info_b_linéaires p.8
UFR de Sciences Université de Caen
1 0 0 1 0
1 0 1 1 0
G= H = 0 1 0 0 1
0 1 1 0 1 0 0 1 1 1
5 erreurs simples possibles avec leurs syndrômes associés et ( 2(n-k) - 1 – n ) = 2 autres syndrômes.
Table des erreurs :
Dans cette table apparaissent les deux syndrômes non Syndrômes Erreurs
associés à une erreur simple. possibles Sm probables Em
Prenons le syndrôme 110. Il peut être associé à une erreur 000 00000 Pas d'erreur
double du type ( bit 0 + bit 1 ) soit 11000 mais aussi à une 001 00100 Erreur bit 2
erreur du type ( bit 3 + bit 4 ) soit 00011. Il y a ici 010 01000 Erreur bit 1
ambiguïté entre deux erreurs doubles. 011 00001 Erreur bit 4
Pour le syndrôme 001 associé à une erreur bit 2 il pourrait 100 10000 Erreur bit 0
être associé à une erreur type ( bit 1 +bit 4 ) mais ici 101 00010 Erreur bit 3
l'ambiguïté est entre une seule erreur simple et d'autres 110
erreurs doubles, triples,… 111
G.BINET MdC 61
T_info_b_linéaires p.9
UFR de Sciences Université de Caen
même. Qu'arrive-t-il pour des erreurs triples ? Au sens du critère, elles sont toujours systématiquement
confondues soit avec une erreur simple soit une erreur double, elles sont de ce fait non détectables et par là
même non corrigeables.
G.BINET MdC 61
T_info_b_linéaires p.10
UFR de Sciences Université de Caen
Les codes de Hamming sont des codes binaires qui ont la propriété :
( n , k ) = ( 2m-1 , 2m-1-m ) avec m entier.
m=2 code ( 3 , 1 ) peu d'intérêt, k = 1 on ne transmet qu'un bit de message.
m=3 code ( 7 , 4 )
m=4 code ( 15 , 11 )
……..
matrice de contrôle :
Elle est de dimensions ( n-k , n ) = ( m , 2m-1 ).
Une colonne est donc constituée de m éléments binaires et nous avons 2m-1 colonnes c'est-à-dire toutes les
combinaisons possibles moins une ( la combinaison "000…" ). Ceci nous permet pour ces codes de construire
très rapidement la matrice de contrôle H et d'en déduire la matrice de génération de code G. La procédure est la
suivante :
1. Commencer à remplir la matrice H en utilisant les combinaisons linéaires de m bits faisant apparaître la
matrice In-k.
2. Compléter cette matrice par les combinaisons de m bits non encore utilisées code "0" exclu. Il apparaît
dans cette opération que la solution n'est pas unique mais cela n'a aucune importance.
1 0 0 1 1 0 1
H = 0 1 0 1 0 1 1
0 0 1 014
124 1 31
1424 3
In-k PT
Nous en déduisons G :
1 1 0 1 0 0 0
1 0 1 0 1 0 0
G=
0 1 1 0 0 1 0
1 1 1 0 42
0 430 41
14243 1 4
P Ik
erreurs corrigeables :
Le nombre maximum de colonnes de H linéairement indépendantes est (n-k) = m= dmin.
⇒ eD = Int [ ½ (m-1) ]
m=3 eD = 1 ; m=4 eD = 1 ; m=5 eD = 2 ;……….
G.BINET MdC 61
T_info_b_linéaires p.11
UFR de Sciences Université de Caen
Les codes de Hamming sont très populaires de par leur simplicité cependant, ils exigent un grand nombre de bits
de contrôle pour corriger des erreurs multiples.
Les codes de Hadamard sont constitués par itération à partir de matrices telles que :
M Mn
M 2n = n où Mn désigne la matrice complémentaire 0 → 1 et 1 → 0.
Mn Mn
La matrice initiale est :
0 0 0 0
0 1
0 0 1 0
M2 = ⇒ M4 =
0 1 0 0 1 1
0 1 1 0
Les matrices Mn et Mn contiennent comme lignes ou colonnes les 2n mots du code. La structure de la matrice
permet donc de détecter des erreurs de transmission. Sans démonstration, on montre que dmin = ½ n.
G.BINET MdC 61
T_info_b_linéaires p.12