Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

2010 Codes Num JLR Cours2 Introcode

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 8

Parie I - correction d’erreurs ?

•! Dans les systèmes électroniques digitaux, l’information est


représentée en format binaire : uniquement par des 0 et des 1 (bits)

•! Transfert d’information d’un point à un autre : il y a toujours une


chance pour qu’un bit soit mal interprété (1 au lieu de 0 et vice versa)
Cela peut avoir de multiples causes, par exemple :
–! Bruit parasite
–! Défauts au niveau des composants
–! Mauvaise connexion
–! Détérioration due au vieillissement …

•! La correction d’erreurs est le procédé utilisé pour :


–! détecter automatiquement et corriger automatiquement ces bits erronés.

!! Au niveau logiciel ou au niveau matériel (pour le haut débit).

Taux d’erreur = Nombre de bits erronés


sur le total des bits transférés

•! Disquette magnétique : 1 bit erroné tous les milliards de bits


transférés
–! Un million de bits/s (125 Ko/s) : 1 bit erroné toutes les 16.6 minutes
–! Lecteurs actuels (5 Mo/s) : 1 bit erroné toutes les 25 secondes

•! CD-ROM optique : 1 bit erroné tous les 100 000 bits (12.5 Ko)
transférés ! 6300 erreurs dans un disque

•! Audio DAT : 10-5 bits faux (à 48kHz) ! 2 erreurs chaque seconde

•! Ligne téléphonique : 10-4 à 10-6 bits erronés

•! Communicateurs par fibres optiques : 10-9 bits erronés

•! Mémoires à semi-conducteurs : < 10-9


Plan du cours

•! Introduction : taux d’erreur


•! Notion de Code
•! Concepts de base de la correction
•! Exemples introductifs
–! Commande automatique d’un bras de robot
–! Contrôle de parité
–! Parité longitudinale et transversale
•! Généralisation : Code linéaire
–! Exemple : la parité
–! Code de Hamming
–! Codes cycliques et Reed-Solomon
•! Autres codes et applications

Notion de Code

•! Le code doit répondre à différents critères :


–! Sécurité de l’information : cryptage + authentification
–! Rentabilité : compression des données
–! Tolérance aux fautes : correction/détection d’erreurs
Concepts de base de la correction

•! Un groupe de bits dans un ordinateur est un « mot ».


•! Chaque bit est considéré comme étant une « lettre ».

•! La langue française nous permet une analogie :


–! Toutes les combinaisons possibles de l'alphabet ne sont pas des mots de
la langue. Les seuls mots autorisés sont ceux énumérés dans un
dictionnaire.
–! Des erreurs qui se produisent en transmettant ou en stockant des mots
français peuvent être détectées en déterminant si le mot reçu est dans le
dictionnaire.
–! S'il ne l'est pas, des erreurs peuvent être corrigées en déterminant quel
mot français existant est le plus proche du mot reçu.

!! Idée pour la correction d’erreurs :


–! Ajouter des lettres supplémentaires (redondantes).
–! Ces lettres supplémentaires donnent une structure à chaque mot.
–! Si cette structure est changée par des erreurs, les changements peuvent
être détectés et corrigés.

Commande automatique d’un bras de robot

Code Haut Bas Droite Gauche

C2 00 10 01 11

•! C2 : économique
!! Impossible de détecter une erreur :
"! Si 00 est envoyé et 01 reçu, « droite » est interprété au
lieu de « haut »
Commande automatique d’un bras de robot

Code Haut Bas Droite Gauche

C2 00 10 01 11

C3 000 110 011 101

•! C3 : détecte si 1 seul bit est faux car 2 mots distincts


diffèrent d’au moins 2 bits (distance de Hamming)
#! Si 000 est envoyé et 001 est reçu : erreur
!! Pas de correction : si 001 est reçu, avec une seule erreur il peut
tout aussi bien provenir de 000 que 011 ou encore 101 !!!

Commande automatique d’un bras de robot

Code Haut Bas Droite Gauche

C2 00 10 01 11

C3 000 110 011 101

C6 000000 111000 001110 110011

•! C6 : distance minimale entre deux mots : 3


!!Détecte 2 erreurs
#!Corrige 1 erreur :
"! Avec au plus un bit erroné, on choisit le mot de code (du dictionnaire) le
plus proche
"! Ex: 000001 est reçu, alors 000000 est le mot admissible le plus proche
Définition - Notation

•! V = alphabet = ensemble fini de symboles.


Ex1: V= {0,1} Ex2: V={octets}

•! Code de longueur n sur V = sous ensemble de Vn.


–! Les éléments du code sont appelés mots de code.

•! Codage par blocs de source de taille k (k < n)


!! " : Vk --> Vn : fonction de codage, injective
!! "(x1, …, xk) = y1, …, yk, …, yn
–! r = n – k = nombre de symboles de redondance
–! Rendement: R = k/n (0< R !1)

•! Code(n, k) sur V = sous-ensemble de Vn de cardinal |V|k.

Lien avec entropie: capacité de canal


X Y

•! # = { Distributions sur l’entrée X } = { (pi) i=1..|V| avec (pi) distribution}

•! pi|k = Prob ( Y = si | X=sk ) : caractérise les probabilités d’erreurs lors de la


transmission sur le canal sans mémoire.
–! Canal sans erreur ssi (pi,i=1 et pi,k"i=0)

•! P(Y=si) = $k=1..|V| pk.pi|k

•! Déf: Capacité de canal : C = Maxp \in # H(X) – H(X | Y)


–! i.e. ce qu’il reste à découvrir de l’entrée X du canal lorsqu’on connait la sortie Y.

•! On a aussi: C = Max H(Y) – H(Y | X). Cas extrêmes:


–! H(Y)=H(Y|X) : sortie indépendante de l’entrée.
–! H(Y | X) = 0 : canal sans erreur.
Deuxième théorème de Shannon

•! Théorème: Soit un canal de capacité C. Alors pour tout %>0:


& un code(n, k) de probabilité d’erreur <% ssi 0 ! k/n < C.

i.e. la capacité de canal C est une limite supérieure au rendement..

•! Exemple : canal binaire symétrique (BSC).


–! CBSC = 1 + p.log2 p + (1-p).log2(1-p)
–! Si p = 0.5 => CBSC = 0 : pas de code correcteur possible.
–! Si p " 0.5 => il existe un code permettant de communiquer sans erreur
•! Mais son rendement est borné par C.

•! Problème fondamental du codage:


–! Construire des codes de rendement maximal pour une longueur n fixée.

PREMIERS EXEMPLES
Codes de Parité
Contrôle de parité

•! Une technique de base pour construire un code détecteur


1.! Découper le message en mots de 7 bits m=[x0,…, x6]
2.! Ajouter aux mots leur parité : f(m)=[x0,…, x6, p]
•! Le nombre de 1 dans le mot est soit pair (p = 0) soit impair (p = 1)
•! Calculée par : x7 = p = $i=0..6 xi mod 2

•! Standard n°5 du Comité Consultatif International Télégraphique et


Téléphonique (CCITT 5) : le plus populaire, utilisé par exemple aux USA.

Lettre Codage de base Mot de code avec


sur 7 bits bit de parité

a 1000 001 1000 0010


e 1010 001 1010 0011
u 0110 101 0110 1010
#! Permet de détecter tout nombre impair d’erreurs

Parité longitudinale et transversale

a00 a01 a02 a03 a04 a05 a06 P0


1.! Mots sur 3*7 = 21 bits
a10 a11 a12 a13 a14 a15 a16 P1
2.! Parité par ligne : Pi
a20 a21 a22 a23 a24 a25 a26 P3 3.! Parité par colonne : Cj
C0 C1 C2 C3 C4 C5 C6 N 4.! Parité globale : N

•! Détecte 2 ou tout nombre impair d’erreurs


•! Corrige 1 erreur
–! Un des aij est faux : le recalcul de Pi et Cj donne l’emplacement ij
–! Pi, Cj et N sont recalculés
•! Détecte si il y a 2 erreurs, mais ne permet pas de corriger
Rendement
•! Nombre de bits de message / Nombre de bits transmis
–! Parité : Rendement = 7/8 = 87.5 %
–! Parité long. & transv. : Rendement = 21/32 ' 65 %
«!Parités!» usuelles pour la simple
détection d’erreur

•! LUHN10 pour les cartes bleues


–! Doubler un chiffre sur deux du n° de carte bleue
–! Ajouter les autres chiffres et les (doubles modulo 9) obtenus
–! Le résultat doit être 0 modulo 10 pour une carte valide

•! Clefs (sécurité sociale, RIB, etc.)


•! Sécu : clef calculée pour le numéro + la clef soit nul modulo 97
•! RIB : clef calculée pour que (numéro||clef)5+5+11+2 chiffres soit nul modulo 97
–! IBAN : lettres + 9 et la somme doit faire 1 modulo 99

•! De 1972 à 2077: Code ISBN sur les livres sur 10 chiffres :


–! $i=1..10 i ! ai " 0 modulo 11

Code barre EAN-13


•! EAN-13 (European Article Numbering)
•! Numéro sur 13 chiffres + motif graphique barres noires/blanches
c12 - c11 .. c6 - c5 .. c0
•! c0 chiffre de parité calculé comme suit:
–! Soient a = mod 10
et b = c11 + c9 + c7 + c5 + c3 + c1 mod 10
–! Alors c0 = 10 - (a+3b mod 10)
–! Exemple: a= 3+9+1+3+5+7 mod 10 = 8 ; b= 2+9+2+4+6+8 mod 10 = 2; c0 = 10 - (a+3b mod 10) = 10 - 4 = 6

•! Le code barre graphique code le même numéro:


–! chaque colonne de 2,31mm code un seul chiffre, par 4 barres de largeur différentes
chaque colonne est divisée en 7 barres N/B de largeur élémentaire 0,33 mm
•! EAN13 permet de détecter des erreurs mais pas de corriger.
•! Depuis 2007: Code ISBN sur les livres=EAN-13: c12c11c10c9c8c7c6c5c4c3c2c1c0
–! Avec pour les livres: c12c11c10=978
•! Ex: 978-2-10-050692-7
c0=10-[ 9+8+1+0+0+9+3x(7+2+0+5+6+2) mod 10]=10- 3 = 7
•! Extensions: code barre bidimensionnel PDF417:
permet de coder jusqu’à 2725 caractères, grâce à
un code correcteur de Reed-Solomon

Vous aimerez peut-être aussi