Вы находитесь на странице: 1из 19

Dtection et correction derreurs

au sein de la couche 2 : liaison de donnes

ASR4 - Mars 2006 Notions de codes 1


Introduction

Les erreurs de transmission sont :


rares sur des supports numriques (fibre optique),
beaucoup plus frquentes sur les boucles locales du RTC (paires
torsades analogiques) ou les rseaux sans fil.
Ces erreurs se produisent la plupart du temps en rafale :
Avantage (par rapport aux erreurs isoles, ie 1 seul bit) : en
moyenne, moins de blocs de bits sont affects. Exemple :
Soit la taille des blocs = 1000 bits, le taux derreur = 1/1000
Erreurs isoles : la plupart des blocs contiennent 1 erreur
Erreurs en rafale de 100 ou plus : 1 ou 2 blocs sur 100 seulement
Inconvnient : beaucoup plus difficiles dtecter et corriger

ASR4 - Mars 2006 Notions de codes 2


Il faut donc apprendre vivre avec les erreurs

Deux stratgies ont t dveloppes. Lmetteur inclut


dans le bloc de donnes :
1. suffisamment de redondance pour que le rcepteur puisse
reconstituer les donnes originales.
utilise des codes correcteurs derreur
plutt pour des canaux non fiables comme le sans fil

2. juste assez de redondance pour que le rcepteur puisse dtecter les


erreurs et demander une retransmission.
utilise des codes dtecteurs derreur
plutt pour des canaux fiables comme la fibre optique

ASR4 - Mars 2006 Notions de codes 3


Principe

On souhaite envoyer m bits de donnes.


On y rajoute r bits de redondance selon un certain
algorithme ou codage .
Ainsi, la longueur de la trame envoye est n = m + r.
(cette squence de n bits un mot du code)

A la rception, en fonction du codage , on pourra


dtecter (2.) et/ou corriger (1.) des erreurs.
En gnral, lapproche (1.) induit davantage de
redondance, ce qui diminue le dbit utile du canal

ASR4 - Mars 2006 Notions de codes 4


Gnralits sur les codes

Un code C de longueur n est un ensemble de mots


(squences) de n bits.
Ex : n = 3, C = { 110, 101, 011 }

Parmi toutes les squences possibles de n bits (2n) :


celles qui appartiennent C sont valides.
celles qui nappartiennent pas C sont invalides.

Ex : 111 est invalide


101 est valide

ASR4 - Mars 2006 Notions de codes 5


A la rception dune squence S de n bits

Soit S est invalide (nappartient pas au code C).


Il y a forcment eu une (ou plusieurs) erreur de transmission.
Le rcepteur corrige (1.) ou demande une retransmission (2.).

Soit S est valide (appartient au code C).


La squence S est considre comme correcte et accepte par
le rcepteur.
Remarque : considre seulement, car
si lmetteur envoie 011 et le rcepteur reoit 101,
aucun moyen de dtecter quil y a eu des erreurs (2 ici)
car 101 est valide !

ASR4 - Mars 2006 Notions de codes 6


Distance de Hamming dun code
Cest le critre qui permet dvaluer le pouvoir dtecteur
dun code ainsi que son pouvoir correcteur.

Distance de Hamming entre 2 mots (not dh)


= nbre de positions qui ont des valeurs distinctes.
Ex : dh ( 110011, 101010 ) = 3
(Astuce = nbre de 1 du OU exclusif)

Distance de Hamming dun code C (not DH(C))


= le minimum des distances entre 2 mots du code
Ex : DH ( {110, 101, 011} ) = 2
DH ( {0011, 0101, 1001, 0110, 1010, 1100 } ) = 2

ASR4 - Mars 2006 Notions de codes 7


Reprsentation graphique

Sommets : ts les mots de n bits


001 011
Liens : entre les mots tq dh = 1
101
111
DH(C) = longueur du plus court
chemin entre 2 mots valides
000 010

100 110

ASR4 - Mars 2006 Notions de codes 8


Pouvoir dtecteur dun code

Df : On parle derreur dordre k lorsquun mot mis u


diffre par k bits du mot reu v, ie dh(u,v) = k.

Pour dtecter une erreur dordre 1, quelle doit tre la


distance de Hamming du code ?
Rponse : DH(C) = 2
en effet, dans ce cas, 1 erreur simple ne peut pas changer
un mot du code en un autre mot du code.
Mme question pour une erreur dordre k ?
Rponse : DH(C) = k+1

ASR4 - Mars 2006 Notions de codes 9


Pouvoir correcteur dun code

M
mot de code valide
point dans lespace 01101011101000

Distance = 1 bit
Code transmis = S
un point en M dimensions

S Au dcodeur:
(code reu S est toujours le mot de code
avec 1 erreur)
le plus prs du mot reu S
S on dcode sans erreur
(point transmis)

ASR4 - Mars 2006 Notions de codes 10


Pouvoir correcteur dun code

Pour pouvoir corriger une erreur dordre 1, une distance


de Hamming DH(C) = 2 est-elle suffisante ?
Rponse : non il faut DH(C) = 3
en effet, si DH(C) = 2, 1 erreur simple peut nous produire
un mot exactement au milieu de 2 mots du code,
distance 1 de chacun !
si DH(C) = 3, 1 erreur simple produit un mot qui reste le
plus proche du mot transmis : on peut donc le retrouver !
Pour corriger une erreur dordre k,
il faut DH(C) = 2k+1.

ASR4 - Mars 2006 Notions de codes 11


Rsum pouvoir dtecteur et correcteur

Un code C peut Distance Ordre Ordre


dtecter des erreurs dordre de maximal maximal
DH(C) 1 Hamming des erreurs des erreurs
corriger des erreurs dordre du code dtectables corrigibles
(DH(C) 1)/2 (partie entire)
1 - -
2 1 -
3 2 1
4 3 1
5 4 2
6 5 2

ASR4 - Mars 2006 Notions de codes 12


Exemples de codes dtecteurs

ASR4 - Mars 2006 Notions de codes 13


Dtection des erreurs

Permet de vrifier lintgrit dune trame au rcepteur


Retransmission des trames corrompues
Plus efficace que la correction
requiert moins de bits de redondance

Parit Verticale
Parit Horizontale
Parit Verticale et Horizontale
CRC : Cyclic Redundancy Code
codes de dtection couramment utiliss

ASR4 - Mars 2006 Notions de codes 14


Parit Verticale (Exo 2.1)

Exemple : envoi de 7 caractres de longueur 3 (m=3).


Info utile : 000 111 000 110 101 011 010
Info envoye : 0000 1111 0000 1100 1010 0110 0101

Proprits :
distance de Hamming est 2 : dtecte les erreurs simples
dtecte les erreurs qui sont d'ordre impair
ignore les erreurs doubles et toutes celles qui sont d'ordre pair

ASR4 - Mars 2006 Notions de codes 15


Parit Horizontale (Exo 2.2)

Exemple : envoi de 7 caractres de longueur 3 (m=3).


Info utile : 000 111 000 110 101 011 010
Info envoye : 000 111 000 110 101 011 010 010

ASR4 - Mars 2006 Notions de codes 16


Parit Verticale et Horizontale (Exo 2.3)
Exemple : envoi de 7 caractres de longueur 3 (m=3).
Info utile : 000 111 000 110 101 011 010
Info envoye : 0000 1111 0000 1100 1010 0110 0101 1010

0 1 0 1 1 0 0 1
0 1 0 1 0 1 1 0
0 1 0 0 1 1 0 1
0 1 0 0 0 0 1 0
Proprits :
dtecte les erreurs dordre 3 et corrige les erreurs simples
dtecte les erreurs qui sont d'ordre impair

ASR4 - Mars 2006 Notions de codes 17


Codes Polynomiaux : CRC

Codes de blocs particuliers


Facilement implmentables de faon matrielle
Excellents rsultats
Principe :
Toute squence de n bits peut tre reprsente par un polynme
coefficients binaires.
Oprations d'addition et de multiplication modulo 2.
G(X) un polynme de degr r appel polynme gnrateur.
Code polynomial CG,n :
Ensemble des squences de longueur n, dont le polynme associ est
multiple de G(X).

ASR4 - Mars 2006 Notions de codes 18


CRC: Proprits

Peut dtecter 1 erreur isole si G contient au moins 2 termes


Peut dtecter 2 erreurs (si G ne divise pas xk+1, avec k=fentre)
Peut dtecter tous les patrons derreurs impairs
si (x + 1) est un facteur de G(x)
Peut dtecter r erreurs conscutives sil est dordre r (bursts)

Trois polynmes standards :


CRC-12 : x12 + x11 + x3 + x2 + x + 1
CRC-16 : x16 + x15 + x2 + 1
CRC-CCITT : x16 + x12 + x5 + 1

ASR4 - Mars 2006 Notions de codes 19

Вам также может понравиться