Académique Documents
Professionnel Documents
Culture Documents
Codes Convolutionnels:
2
Protection contre les erreurs
Lors de la transmission d'un train de bits, des erreurs peuvent se produire, c'est à dire
qu'un "1" peut être transformé en un "0" ou réciproquement. On définit le taux d'erreur
par le rapport :
Suivant le type d'application, une erreur peut avoir des conséquences importantes et c'est
pourquoi il convient souvent de mettre en œuvre des dispositifs permettant de détecter les
erreurs et si possible de les corriger.
Il convient de noter à ce sujet que le taux d'erreur dépend de la qualité du support de
transmission (notamment son immunité au bruit).
Les statistiques indiquent que 90% des erreurs proviennent d'un seul bit erroné, c'est à dire
que ce bit erroné est entouré de bits corrects ; 10% des erreurs proviennent de deux bits
adjacents erronés.
On voit donc que le problème prioritaire à résoudre est la détection d'un seul bit erroné
et, si possible, sa correction automatique.
3
Protection contre les erreurs
4
Protection contre les erreurs
● codes en bloc : Si le bloc est composé de deux partie distinctes (information utile et
information de contrôle) le code est dit systématique.
5
Protection contre les erreurs
Une notion importante dans la recherche de codes détecteurs ou correcteurs est celle de
distance de Hamming.
•Considérons une information utile constituée de mots de m bits : on peut donc construire 2m
mots distincts au total.
•Définissons l'information de contrôle sous la forme de r bits déduis de manière unique à partir
des m bits utiles . L'information "habillée" en résultant est constituée de n=m+r bits.
•Cependant, avec n bits, on peut avoir 2n mots différents. La différence 2n-2m indique le nombre
de mots erronés.
6
Protection contre les erreurs
La distance de Hamming de deux mots : d(m1, m2) est le nombre de bits différents de
même rang
2 mots de code seront d'autant moins confondus que leur distance de Hamming sera
plus grande ; on peut définir une distance minimum dmin ; si d(m1, m2) > dmin, alors
m2 est une copie erronée de m1.
7
Protection contre les erreurs
Intéressons-nous maintenant à la correction des erreurs jusqu'à un ordre q ; chaque mot
de code et ses copies "admissibles" doivent être dans des sphères non sécantes :
8
Protection contre les erreurs
Exemples simples de codes par bloc
1). Le contrôle de parité
Parité paire (impaire) : le poids de Hamming des mots du code est pair
(impair)
C’est un code systématique (m, m+1) dans lequel un bit (le bit de parité)
est ajouté au mot initial pour assurer la parité. Son rendement est faible
lorsque m est petit.
Remarque:
Le poids de Hamming d’un mot est le nombre de bits à 1 qu’il contient.
- Exemple : poids_de_Hamming(01001100) = 3
9
Protection contre les erreurs
Exemple :
Transmission de caractères utilisant un code de représentation
(le code ASCII sur 7 bits).
Lettre Code ASCII Mot Codé Mot Codé
(Parité Paire) (Parité Impaire
)
A 01000001 010000010 010000011
10
Protection contre les erreurs
2). Parité longitudinale et transversale
Association d’un double codage de la parité :
- LRC : “Longitudinal Redundancy Check” et VRC : “Vertical …”
Le bloc de données est disposé sous une forme matricielle (m=a.b). On applique la
parité (uniquement paire) sur chaque ligne et chaque colonne. On obtient une matrice
(a+1, b+1).
11
Protection contre les erreurs
• Capacité de détection et d’autocorrection
– Principe : Une erreur simple modifie simultanément la parité
d’une ligne et d’une colonne.
– Correction : inverser le bit situé à l’intersection de la ligne et
de la colonne ayant une parité incorrecte.
1 0 1 0 0 0 1 1
0 1 1 0 1 0 1 0
1 0 0 0 1 0 1 0
0 1 0 0 1 0 1 1
12
Protection contre les erreurs
bloc
Attention : une erreur triple peut faire croire à une erreur simple et sa correction
sera inadaptée !
Exemple :
10100011
01101010
10001010
01001011
13
Protection contre les erreurs
3).Les codes linéaires
Les codes linéaires sont des codes dont chaque mot du code (noté c) est obtenu après
transformation linéaire des bits du mot initial (noté i).
Ces codes sont caractérisés par leur matrice G(m, n) (appelée matrice génératrice)
telle que :
i . G =c 101 1
10 1 010 1 = 011 0
Exemple : .
110 1
14
Protection contre les erreurs
Si un code linéaire est systématique, sa matrice génératrice s’écrit :
- G(m, n) = [Id(m), P(m, n-m)]
alors sa matrice de contrôle s’écrit : H(n-m, n) = [PT , Id ]
(n-m,m) (n-m)
Exemples :
10001 0
. Soit le code C1(4, 6) de matrice G1 = 01000 1 .
00101 0
00000 1
15
Protection contre les erreurs
16
Protection contre les erreurs
17
Protection contre les erreurs
18
Protection contre les erreurs
19
Protection contre les erreurs
20
Protection contre les erreurs
21
Protection contre les erreurs
22
Protection contre les erreurs
23
Protection contre les erreurs
4) Codes de Hamming
24
Protection contre les erreurs
Exemple :
111010 0
- Code de Hamming C4(4, 7) tel que sa matrice de contrôle H 4(3, 7) = 011101 0 .
101100 1
T 0 0 1
c2. H4 = 00 1 --> erreur sur le dernier bit --> i2 = 001 0
T
c3. H4 = 10 0 --> erreur sur le 5ème bit --> i3 = 000 1
25
Protection contre les erreurs
5)Les codes cycliques
Un code cyclique (m, n) est un code linéaire (m, n) tel que toute permutation circulaire d’un mot
du code est encore un mot du code.
Exemple :
• Un code cyclique (1, 2) possède les mots de code suivants : {01, 10} ou {00, 11}, mais pas {01,
11}.
• Un code cyclique (1, 3) possède les mots de code suivants : {000, 111}.
On appelle période du polynôme H(x) le plus petit entier u tel que H(x) divise xu+1.
Un polynôme est irréductible s’il ne possède aucun diviseur de degré supérieur à zéro.
Si la période d’un polynôme irréductible est égale à n-m alors le polynôme est dit primitif.
26
Protection contre les erreurs
Propriétés/autocorrection
Un code cyclique (m, n) est un code polynômial dont le polynôme générateur divise xn + 1. Les
Les codes cycliques sont principalement utilisés pour leur capacité de correction.
Les codes cycliques (m, n) dont le polynôme générateur est primitif et tel que n=2n-m+ 1, sont des
codes de Hamming.
Les codes RS (Reed-Solomon) sont des codes correcteurs très puissants. Ils peuvent être présentés
comme des codes BCH dans lequel chaque bit des mots du code est remplacé par un entier défini mo-
dulo 2v (avec n=2v-1). La distance d’un code RS(m, n) est égale à n-m+1.
27
Protection contre les erreurs
6)Autres techniques de correction d’erreurs
Entrelacement
On peut illustrer le principe qui sous-tend l’entrelacement par une technique simple. L’idée est de
répartir les bits consécutifs des blocs formant le message à transmettre dans des paquets différents.
Ainsi grâce à cet entrelacement, un groupe d’erreurs (affectant un paquet) affecte uniquement
quelques bits dans plusieurs blocs. La technique de protection contre les erreurs appliquée aux blocs
est à même de corriger indépendamment ces quelques bits erronés dans chacun de ces blocs.
28
Protection contre les erreurs
7)Techniques de contrôle d’erreur par retransmission
Techniques de détection des erreurs
L’écho permet de s’assurer que le récepteur a reçu correctement les informations émises.
Exemple : technique utilisée sur les liaisons (asynchrones) entre les ordinateurs et les périphéri-
ques par caractères !
écran
alphanumérique
écho
clavier
ordinateur
caractère
Les informations à transmettre sont répétés plusieurs fois. Au moins un des exemplaires (redon-
dants) sera correctement reçu.
29
Protection contre les erreurs
Technique de correction par retransmission
Principe de fonctionnement
- L’émetteur conserve une copie des données qu’il envoie.
- Le récepteur détecte les erreurs grâce à la présence d’un champ de contrôle d’erreur (code
polynômial) dans les paquets de données.
- Le récepteur informe l’émetteur de la bonne (resp. mauvaise) réception en lui retournant un
paquet spécifique :
. acquittement positif (resp. négatif) souvent appelé ACK (resp. NACK)
- Dans le cas d’un acquittement négatif, l’émetteur doit réémettre le paquet erroné.
- Sinon il peut émettre le prochain paquet.
Un temporisateur bornant la durée d’attente des acquittements est nécessaire pour assurer la cor-
rection du mécanisme lors des pertes de paquets de données.
L’identification des paquets (de données et d’acquittement) est nécessaire pour assurer la correc-
tion du mécanisme lors des pertes d’acquittement : au moins numérotation modulo 2.
30
Protection contre les erreurs
Exemple de fonctionnement
<ack,1> <ack,1>
<données, 1> <données, 1>
! temporisateur !
<(n)ack,1> erreur ! <(n)ack,1> perte!
retransmission <données, 1>
retransmission <données, 1>
<ack,0>
<ack,0>
temps temps
Communication bidirectionnelle : x 2 !
31