Codes Correcteurs d`Erreurs Le bit de parité Le Checksum Codes

Codes Correcteurs d’Erreurs
Information bits utiles
Codage calcul
Information+Redondance effectif
Bruit mod`ele
Information+Bruit erreur
D´ecodage d´etection
Information correction
Le bit de parit´e
Apr`es kbits on ajoute un bit de parit´e de fa¸con `a ce que la
somme des k+ 1 bits envoy´es soit paire.
On d´etecte une erreur sur k+ 1 bits envoy´es.
Le Checksum
On groupe les bits par paquets de nbits. Apr`es kpaquets on
envoie un k+ 1`eme paquet de fa¸con `a ce que les sommes des
j`eme bits des k+ 1 paquets soient paires.
On d´etecte une erreur sur un paquet de nbits sur k+ 1 paquets
envoy´es.
Codes produits
On combine le checksum et le bit de parit´e.
D´etection de 3 erreurs, correction d’une erreur.
le CRC
Cyclic Redundancy Check.
On interpr`ete les donn´ees comme des polynˆomes, on n’envoie
que des multiples d’un polynˆome de test.
Utilis´e par Ethernet, CdRom, DVD, Modems, . . .
Codes en bloc
Aun alphabet fini de symboles (A=F2ou Acorps fini).
Un code Cde longueur nest une partie de An. Les ´el´ements du
code sont des mots de Ade longueur n.
Pour deux mots uet vde An, la distance de Hamming de u`a v
est le nombre de lettres qui diff`erent entre uet v.
u=u1. . . un, ui∈ A
v=v1. . . vn, vi∈ A
d(u, v)=#{i, ui6=vi}
On a les propri´et´es de distance : d(u, v) = d(v, u),
d(u, v)d(u, w) + d(w, v).
La distance de Hamming mesure le nombre d’erreurs : u
correct, vincorrect, d(u, v) est le nombre d’erreurs.
La distance minimale d’un code est la plus petite distance entre
deux mots distincts du code :
d(C) = min
u,v∈Cu6=v(d(u, v))
La distance d’un mot u`a un code Cest la plus petite distance
de u`a un mot de C.
d(u, C) = min
c∈C (d(u, c))
Si d=d(C), c∈ C, la boule ouverte de centre cet de rayon d
B(c, d) = {u∈ An, d(c, u)< d}
ne rencontre aucun autre mot du code.
D´ecodage `a distance minimale
Pour un code C, d´ecoder un mot urevient `a chercher «le»mot c
de Cle plus proche de u.
c∈ C envoy´e, u∈ Anre¸cu, c0∈ C «le»plus proche de u.
Si c=c0, le d´ecodage est correct.
P(c=c0) une loi de probabilit´e.
Le d´ecodage `a maximum de vraisemblance (logique majoritaire)
maximise la probabilit´e de d´ecodage correct.
Si Pest une erreur «habituelle»c’est aussi le d´ecodage `a
distance minimale.
Cde distance minimale d, la capacit´e de d´etection de Cest
d1, la capacit´e de correction de Cest bd1
2c
Code lin´eaires
L’alphabet est un corps fini K. Un code Cest un sous espace
vectoriel de Kn.
Le poids d’un mot u,w(u) est le nombre de coordonn´ees non
nulles de u. C’est aussi la distance de Hamming u`a 0 (le
vecteur nul).
La distance de u`a vest le poids de uv:d(u, v) = w(uv).
Le poids minimal d’un code Cest le plus petit poids des mots
non nuls de C. C’est aussi la distance minimale de C.
La dimension d’un code Cest sa dimension en tant que sous
espace vectoriel de Kn.
Si kest la dimension de C, le taux d’information de Cest k/n.
Matrice G´en´eratrice
On ´ecrit les ´el´ements de Knen ligne ! u=u1. . . un.
Un code lin´eaire de dimension kest l’image (dans Kn) de Kk
par une application lin´eaire dont la matrice est G.
C=nc=uG, u Kko
Les lignes de Gsont les images (dans Kn) des vecteurs de base
de Kk. La matrice G`a klignes et ncolonnes !
u: information, Gmatrice g´en´eratrice (codage), c=uG mot du
code !
Exemple : 3 bits d’information + 1 bit parit´e paire, K=F2
G=
1 0 0 1
0 1 0 1
0 0 1 1
Les mots du code s’obtiennent en faisant toutes les combinaisons
lin´eaires possibles des lignes de la matrice g´en´eratrice.
Matrice de Contrˆole
Un code lin´eaire Cde dimension kpeut aussi se voir comme le
noyau d’une application lin´eaire de Kndans Knkdont la
matrice est Ht.
C=cKn, cHt= 0
La matrice Hest la matrice g´en´eratrice d’un code de longueur n
et de dimension nk. C’est le code Cdual (orthogonal) de C.
La matrice Htest la matrice de contrˆole de C.
Le syndrome d’un mot ude Knest le mot de longueur nk
s=uHt
Les mots du code sont les mots dont le syndrome est nul.
uKk, uGHt= 0 dans KnkGHt= 0 dans Kk×Knk
Exemple :
u1, u2, u3[u1u2u3]
1 0 0 1
0 1 0 1
0 0 1 1
[a, b, c, d] = 0
a=b=c=d= 1
H=1 1 1 1
Codage syst´ematique
Un code est sous forme syst´ematique si les bits d’information
sont au d´ebut du mot. La matrice g´en´eratrice d’un code Csous
forme syst´ematique `a la matrcice identit´e au d´ebut :
G= [Ik|| M]
Maklignes et nkcolonnes. On ´ecrit
GHt= [Ik|| M]"M
Ink#
et on a bien GHt= 0.
G= [Ik|| M]H=Mt|| Ink
Deux codes Cet C0de longueur nsont ´equivalents si on obtient
C0`a partir de Cen r´eordonnant les vecteurs de base de Kn.
Proposition : Tout code est ´equivalent `a un code sous forme
syst´ematique !
D´emonstration : m´ethode de Gauss pour inverser une matrice !
Information uKk
Codage c=uG Kn
Information+Redondance c∈ C
Bruit v6=c
Information+Bruit vKn
D´ecodage vHt= 0 ?
Information
Correction d’Erreurs
´
Etant donn´e un mot re¸cu u, on doit retrouver «le »mot c∈ C
du code le plus proche de u.
Il faut que la distance de u`a Csoit inf´erieure `a la capacit´e de
correction du code.
Classes Lat´erales
Cun K-code de longueur net de dimension k,uKn. La
classe lat´erale de uest l’ensemble des translat´es de upar C:
LC(u) = {u+c , u ∈ C}
Les classes lat´erales forment une partition de Knen sous
ensembles ayant |K|k´el´ements. Il y a donc |K|nkclasses
lat´erales.
On peut ´ecrire les |K|nen un tableau carr´e ayant 2nklignes
et 2kcolonnes.
0c1. . . c2k1les mots du code
u1u1+c1. . . u1+c2k1la classe lat´erale de u1/∈ C
on choisit un ´el´ement de Knnon encore ´enum´er´e
u2nku2nk+c1. . . u2nk+c2k1on a tous les mots du code
Tableau standard de d´ecodage
Tous les mots d’une mˆeme classe lat´erale ont le mˆeme
syndrome :
v1, v2∈ LC(u),(v1v2)Ht= 0
puisque v1v2∈ C.
Les syndromes des mots de poids 1 sont les lignes de la matrice
Hto`u Hest la matrice g´en´eratrice du code dual.
Le tableau standard de d´ecodage est obtenu en ´ecrivant un mot
de poids minimum d’une classe lat´erale de Cen tˆete de ligne.
On ´ecrit toutes les classes lat´erales ayant un mot de poids
inf´erieur `a la capacit´e de d´etection du code.
Deux mots de poids inf´erieur `a la capacit´e de d´etection ddu
code Csont dans des classes lat´erales diff´erentes (leur diff´erence
est de poids 2dau plus).
D´ecodage `a distance minimale
En pratique
Calculer les syndromes sides mots eide poids inf´erieurs `a
la capacit´e de correction cdu code.
On les stocke dans une table d’association [(si, ei)]i=c
i=1, les
syndrˆomes corrigeables.
Si on re¸coit un mot uKnde syndrome s=uHtnon nul,
il faut regarder si sest corrigeable.
soit sKnkun syndrome corrigeable et eKnle mot de
poids minimum produisant s. D´ecoder c=ue.
C’est le mot du code le plus proche du mot re¸cu : eest de poids
plus petit que cpuisque 0 est le mot du code le plus proche de e.
Si C Knest d-corecteur, il faut chercher dans une table de
taille
(|K| − 1)
i=d
X
i=1
{n
i
Codes Cycliques
Famille de codes utilis´es en pratique. Bonne propri´et´es.
Un code Cde longueur nest cyclique si pour tout mot
c=c1. . . cnde C,cnc1. . . cn1est encore un mot de C.
Toute permutation circulaire de mots du code est un mot du
code.
Interpr´etation polynomiale :
c=c1. . . cnKns’identifie `a C(X) = Pi=n1
i=0 ci+1XiK[X]
ou C(X) = Pi=n1
i=0 ci+1Xni1. Ce sont les polynˆomes de
degr´es strictement inf´erieurs `a n.
C(X)K[X] = c0+. . . +cn1Xn1, on d´ecompose :
cn1Xn=cn1(Xn1) + cn1
et
XC(X) = cn1+c0X+. . . cn2Xn1(mod Xn1)
Structure de K[X]/< Xn1>
On se place dans An=K[X]/< Xn1>, une permutation
circulaire d’un mot est la multiplication par Xdans
K[X]/< Xn1>(endomorphisme de Frobenius).
C(X)∈ C =XC(X)∈ C
Proposition :
Un code lin´eaire et cyclique est un id´eal de An:
c’est un sous groupe additif
il est stable par multiplication par λKet Xdonc par
multiplication par K(X)K[X] et donc par \
K(X)An.
Tout id´eal de Anest un code cyclique de longueur n:
Proposition :
Si P(X)K[X], l’anneau K[X]/< P (X)>est principal :
Iun id´eal de An,[
I(X) un ´el´ement de Itel que I(X) soit de
degr´e minimal. On peut prendre G(X) de degr´e minimal parmi
les I(X).
Dans K[X], un ´el´ement I(X) s’´ecrit :
I(X) = K(X)G(X) + R(X)
et R(X) = 0 puisque |G|est minimal. Dans Anon a bien :
[
I(X) = \
K(X)\
G(X)
et les ´el´ements de Isont multiples de \
G(X).
Matrice G´en´eratrice
On choisit un g´en´erateur G(X) de l’id´eal qui divise Xn1. Les
mots du codes sont les multiples de G(X). La matrice
g´en´eratrice peut s’´ecrire :
G=
g0. . . gk0. . . 0
0g0. . . gk0
. . .
0. . . 0g0. . . gk
=
G(X)
XG(X)
. . .
Xnk1G(X)
avec la base 1,X,...Xnkde An.
Le codage n’est pas syst´ematique.
Codage syst´ematique
G(X) de degr´e minimal kengendrant Cde dimension n.
u0. . . unk1, utile s’identifie `a
U(X) =
i=nk1
X
i=0
uiXnki
Gs’obtient en calculant les restes modulo G(X) des Xi:
G=
Ink
Xnmod G(X)
. . .
Xn+k+1imod G(X)
. . .
Xkmod G(X)
Codes BCH
Bose, Chaudhuri, Hocquenhem
K=Fq,Cun code cyclique engendr´e par G(X) sur Fqde
longueur npremier avec q. Soit kl’ordre de qmodulo n,Fqk
une extension de degr´e kde Fq
Comme qk= 1 mod n, tous les ´el´ements xnon nuls de Fqk
v´erifient xn= 1 et sont racines de G(X).
Th´eor`eme :
Si βest un g´en´erateur du groupe multiplicatif F
qket si G(X) a
βi, βi+1,...βi+d2parmi ses racines, alors Cest au moins d
correcteur.
1 / 6 100%

Codes Correcteurs d`Erreurs Le bit de parité Le Checksum Codes

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !