Académique Documents
Professionnel Documents
Culture Documents
1 Introduction
2 Généralités sur les codes
3 Codes en bloc linéaires
4 Code CRC
2
Partie 1
1 Introduction
Historique
Définition et principe
Exemples
3
Historique
4
Positionnement du codage correcteur dans
une chaîne de transmission générale
5
Codage de canal: Définition
Quelque soit la qualité des supports de communication et les
performances des techniques de transmission utilisées, des
perturbations vont se produire entraînant des erreurs sur les
données transmises.
D’où la nécessité d’une mise en œuvre de techniques de
protection contre les erreurs de transmission.
À l’émission, la séquence émise est remplacée par une autre
séquence plus longue, par ajout de symboles supplémentaires.
A la réception, une opération de détection ou/et correction des
erreurs est effectuée.
On dit qu’on fait le codage de canal (codage de protection).
6
Types du Codage
Codage de la source: Réduction de la redondance
Le codage de source contient en général le nombre minimal de symboles permettant
la transcription de tous les caractères possibles de la source.
Codage réversible (Hoffmann, …)
Codage irréversible (compression avec perte,…)
8
Principe (2)
En pratique, les messages sont transmis sur un canal sous la
forme d’une suite de bits (des 0 et de 1).
Les canaux de transmission imparfaits entraînent des erreurs
lors des échanges de données (un zéro qui devient un 1 ou
inversement).
Exemple:
la probabilité d’erreur sur une ligne téléphonique est de
l’ordre 10-6.
Avec un tel taux d’erreur et une connexion à 1 Mo/s, en
moyenne 8 bits erronés sont transmis chaque seconde.
9
Principe (3)
10
Stratégie de codage correction d’erreur
Selon la nature du canal ainsi que les considérations de coût,
diverses stratégie peuvent être envisagées protection pour la
détection ou la correction des erreurs.
11
1er exemple : Code à répétitions
12
1er exemple : Code à répétitions
13
2eme exemple : Code de parité
14
Application
Coder les lettres suivantes en utilisant le code de parité:
15
2eme exemple : Code de parité
16
4eme exemple: Code à parité entrelacée
17
4eme exemple: Code à parité entrelacée
18
Application
Coder le mot en utilisant le code de parité entrelacé:
19
Familles de codes correcteurs
Deux grandes familles de codes :
Les codes en bloc (linéaires, cycliques ou non) : le
codage/décodage d’un bloc dépend uniquement des
informations de ce bloc.
Les codes en treillis (convolutifs, récursifs ou non) : le
codage/décodage d’un bloc dépend des informations
d’autres blocs (généralement de blocs précédemment
transmis).
On préfère généralement le codage par bloc dans les
applications téléinformatiques classiques : le
codage/décodage est plus simple et il y a moins de délai.
20
Familles de codes correcteurs
Il existe deux catégories de codes :
les codes détecteurs d’erreurs,
les codes correcteurs d’erreurs.
Dans ce chapitre, nous allons nous intéresser principalement
aux codes blocs suivants:
Le code de Hamming : un code détecteur et correcteur
d’erreurs.
Le CRC (Cycle Redundancy Check) : uniquement un code
détecteur d’erreurs mais extrêmement fiable.
21
Partie 2
22
Distance et poids de Hamming
23
Application
Déterminer:
Poids_de_Hamming(01001100)
Distance_de_Hamming(01001100, 01010101)
Distance_de_Hamming({01001100, 01010101, 00000000})
24
Paramètres d'un code
Déterminer n, k, d, w
25
Paramètres d'un code
26
Théorème de Hamming
Si on veut :
Détecter p erreurs isolées alors il faut d >=p+1.
Corriger t erreurs isolées alors il faut d > =2t+1.
27
Paramètres d'un code
28
Paramètres d'un code
29
Partie 3
30
Codes linéaires
31
Application
32
Codes en blocs
33
Exemple de matrice génératrice (1)
34
Application
35
Application
36
Code systématique / non systématique
37
Forme systématique d'un code
38
Remarque
39
Application
40
Forme systématique d'un code
41
Matrice de contrôle de parité
42
Matrice de contrôle de parité
43
Exemple
44
Décodage par le syndrome
45
Application
On considère le code de matrice génératrice suivante:
46
Code de Hamming (Principe)
47
Principe du codage
48
Détection d’erreur
49
Détection d’erreur
Pour connaitre quels bits sont vérifiés par chacun des bits de
contrôle de parité, il est utile de construire un tableau où: les
lignes sont numérotées dans la dernières colonne de 1 à 2n-k-1,
chaque nombre est converti en binaire et l’on écrit chaque bit
dans les colonnes de gauche.
50
Détection d’erreur
On colorie de la couleur de Ci les
nombres de droite s’il y a un 1 dans la
colonne Ci.
Par exemple, 5 sera annoté en vert et en
rouge, car sur la ligne du 5, il y a un 1
dans les colonnes C2 et C0.
Les bits de contrôle d’une couleur
donnée vérifient les bits du message qui
portent la même couleur.
Chaque bit de données est coloré d’une
manière différente ce qui permet de
retrouver la position d’une erreur
51
Correction d’erreur
Ainsi, si l’on souhaite envoyer 1010, le calcul des bits de parité
amène à envoyer le message 1010010. Si le message effectivement
reçu est 0010010:
C0 a la mauvaise valeur, car 1+1+0+1 est impair, donc il y a une
erreur en position 7,5,3, ou 1.
C1 a la mauvaise valeur car 0+0+0+1 est impair, donc il y a une
erreur en position 7,6,3 ou 2.
C2 a la mauvaise valeur car 0+0+1+0 est impair, donc il y a une
erreur en position 7,6,5 ou 4.
On écrit le nombre binaire C2C1C0 ou Ci vaut 0 si le bit de
contrôle Ci a la bonne valeur et 1 sinon. On obtient alors 111, ce
qui correspond à 7 en binaire.
Le bit erroné est le numéro 7.
52
Correction d’erreur
53
Exercice 1
54
Exercice 2
55
Partie 4
56
Introduction
Le code CRC (Cyclic Redundancy Check) est utilisé pour la
détection des erreurs dans des longues séquences binaires.
Un CRC est une courte séquence binaire de taille fixe,
comme valeur de test. Elle est ajoutée à la fin d'une séquence
de données. L'ensemble donne un mot de code.
A la réception d'un mot de code, on effectue le calcul de
CRC sur le mot de code et on compare le résultat avec une
constante.
Si on trouve une correspondance la transmission est sans
erreur.
57
étude du code CRC
Représentation sous forme polynomiale des suites de bits à
transmettre:
Le mot: M=m1m2…mn
Peut être représenté par le polynôme :
I(x)=mn+mn-1x+….+m1xn-1
Exemple:
La suite 1100101 est représentée par le polynôme:
x6+x5+0x4+0x3+x2+0x+1=x6+x5+x2+1
58
étude du code CRC
59
Polynômes générateurs
60
Principe d’émission d’un mot code CRC
61
Principe d’émission d’un mot code CRC
62
Exemple: calcul du code CRC
Le message à encoder:
11010011101100
Supposons que le polynôme générateur du code utilisé est:
x3+x +1
Ce message doit être complété par n zéros où n est le
longueur code CRC (ici 3 bits). :
63
Exemple: calcul du code CRC
64
Calcul du code CRC
65
Exemple
66
Exemple: Réception d’un mot
67
Exercice
68