Beruflich Dokumente
Kultur Dokumente
erique
Communication Numerique
Codes correcteurs derreurs
Yoann Morel
http://xymaths.free.fr/Signal/Communication-Numerique-cours-TP.php
Communication Num
erique
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Introduction
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Introduction
D
efinition
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Introduction
D
efinition
Introduction
Definition
Un code correcteur derreurs est une technique de codage basee
sur la redondance de linformation, destinee `a detecter, voire
corriger, les erreurs qui peuvent-etre generees par un canal de
communication peu fiable.
Communication Num
erique
Introduction
D
efinition
Introduction
Definition
Un code correcteur derreurs est une technique de codage basee
sur la redondance de linformation, destinee `a detecter, voire
corriger, les erreurs qui peuvent-etre generees par un canal de
communication peu fiable.
La detection dune erreur dans un message peut sembler naturelle ; sa
localisation precise et sa correction sont quant `a elles moins evidentes.
Communication Num
erique
Introduction
D
efinition
Introduction
Definition
Un code correcteur derreurs est une technique de codage basee
sur la redondance de linformation, destinee `a detecter, voire
corriger, les erreurs qui peuvent-etre generees par un canal de
communication peu fiable.
La detection dune erreur dans un message peut sembler naturelle ; sa
localisation precise et sa correction sont quant `a elles moins evidentes.
Lorigine de la theorie des codes peut-etre situee en 1947 par Richard
W. Hamming, utilisant un ordinateur developpe aux laboratoires Bell,
Two weekends in a row I came in and found that all my stuff had been
dumped and nothing was done. I was really aroused and annoyed because I
wanted those answers and two weeks had been lost. And so I said,
Damn it, if the machine can detect an error, why cant it locate the
position of the error and correct it ?
Communication Num
erique
Introduction
Position du probl`
eme
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Introduction
Position du probl`
eme
Introduction
Communication Num
erique
Introduction
Position du probl`
eme
Introduction
Deux situations principales peuvent se presenter :
Presence de petites erreurs relativement frequentes et isolees.
Communication Num
erique
Introduction
Exemples
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Introduction
Exemples
mot code
00 00 00
01 01 01
10 10 10
11 11 11
Communication Num
erique
Introduction
Exemples
Sil survient une erreur dans la transmission, elle naffectera pas les
trois couples formant le mot du code.
Le decodage peut donc se faire par vote majoritaire sur les 3
couples de bits.
Pour ce code `a repetition, le taux dinformation est seulement 33 %
(33 % des bits transmis correspondent `a de linformation), tandis
que 66 % ont pour seul but la protection de cette information.
Communication Num
erique
Introduction
Exemples
mot original
00
01
10
11
mot code
00 000
01 101
10 110
11 011
Communication Num
erique
Introduction
Exemples
mot original
00
01
10
11
mot code
00 000
01 101
10 110
11 011
Communication Num
erique
Introduction
Exemples
mot original
00
01
10
11
mot code
00 000
01 101
10 110
11 011
Communication Num
erique
Introduction
Exemples
mot original
00
01
10
11
mot code
00 000
01 101
10 110
11 011
Poids de lerreur
2
1
5
2
Communication Num
erique
Introduction
Exemples
mot original
00
01
10
11
mot code
00 000
01 101
10 110
11 011
x
y nc
y 11 011 = 10010
2
do
Communication Num
erique
Introduction
Exemples
Communication Num
erique
Introduction
Exemples
Communication Num
erique
Introduction
Exemples
ui = u1 + u2 + u3 + u4 + u5 + u6 + u7 + p 0 [2]
X
ou encore
p
ui [2]
o`
u
Communication Num
erique
Introduction
Exemples
Communication Num
erique
Introduction
Exemples
Communication Num
erique
Introduction
Exemples
9
X
i ci [11] ou encore,
i=1
10
X
i ci 0 [11]
i=1
Communication Num
erique
Introduction
Exemples
9
X
i ci [11] ou encore,
i=1
10
X
i ci 0 [11]
i=1
Communication Num
erique
Introduction
Exemples
9
X
i ci [11] ou encore,
i=1
10
X
i ci 0 [11]
i=1
Communication Num
erique
G
en
eralit
es sur les codes
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire
Filtre adapte
kT
Decision
?
- h(t)
- h(t)
Yk
@
@ -
b
N0
Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire
1p
Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire
Qn
Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire
Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code
Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code
Ex :
mot original
00
01
10
11
mot code
00 000
01 101
10 110
11 011
n=5; k=2
d = 3
w = 3
Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code
Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code
Ex :
mot original
00
01
10
11
mot code
00 000
01 101
10 110
11 011
n=5; k=2
d = 3
w = 3
Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code
3
= 75 %.
4
Communication Num
erique
Codes en bloc lin
eaires
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Codes en bloc lin
eaires
D
efinition
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Codes en bloc lin
eaires
D
efinition
Codes lineaires
Code lin
eaire : si c1 et c2 designent les mots codes respectifs des
deux suites dinformation de k bits d1 et d2 , alors `a la suite
dinformation de k bits d1 d2 est associe le mot code c1 c2 .
(
d1 c1
alors , d1 d2 c1 c2
d2 c2
o`
u est laddition bit `a bit modulo 2.
Communication Num
erique
Codes en bloc lin
eaires
D
efinition
Codes en blocs
Code en bloc : Dans un code en bloc, les n elements binaires des
mots code sont calcules uniquement avec les k bits dinformation
du bloc courant.
[ d1 d2 . . . dk ] [ c1 c2 . . . cn ]
Au besoin, le message initial est decoupe en paquets, ou blocs, de
taille k.
Communication Num
erique
Codes en bloc lin
eaires
D
efinition
Codes en blocs
Code en bloc : Dans un code en bloc, les n elements binaires des
mots code sont calcules uniquement avec les k bits dinformation
du bloc courant.
[ d1 d2 . . . dk ] [ c1 c2 . . . cn ]
Au besoin, le message initial est decoupe en paquets, ou blocs, de
taille k.
Pour un code en bloc lineaire, le mot code c sobtient `a partir du
mot dinformation d par une expression matricielle de la forme :
c=dG
o`
u, d est un vecteur ligne de taille 1 k, c est un vecteur ligne de
taille 1 n et G est une matrice de taille k n appelee
matrice generatrice du code.
Communication Num
erique
Codes en bloc lin
eaires
D
efinition
n1
, et sa matrice generatrice, de
n
G = In1
1
..
.
1
Communication Num
erique
Codes en bloc lin
eaires
D
efinition
n1
, et sa matrice generatrice, de
n
G = In1
1
..
.
1
1 0 0 1
Ex : Pour n = 3, on a un code (4,3,2),
G = 0 1 0 1 .
de matrice generatrice
0 0 1 1
Par exemple, le mot u = [101] est code par :
c = uG = [1012] [1010] [2]
Communication Num
erique
Codes en bloc lin
eaires
D
efinition
Communication Num
erique
Codes en bloc lin
eaires
D
efinition
Communication Num
erique
Codes en bloc lin
eaires
D
efinition
Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code
Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code
Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code
1 1 0
0 1 1
G=
0 0 1
0 0 0
0
0
0
1
1 0 0 0 1 1
0 1 0 0 0 1
e=
G
0 0 1 0 1 1
0 0 0 1 1 0
0
1
1
1
1
0
1
1
0
1
0
1
Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code
1
0
e=
G
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
p1 = c1 + c2 + c4
p2 = c1 + c2 + c3
p3 = c2 + c3 + c4
Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code
1
0
e=
G
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
p1 = c1 + c2 + c4
p2 = c1 + c2 + c3
p3 = c2 + c3 + c4
Tout se passe comme si, le codage consistait simplement en
lajout de (n k) bits de redondance.
Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code
1 0 ... 0
..
0 1
. Pk(nk)
e
G = Ik | Pk(nk) = .
..
..
. 0
0 ... 0 1
on peut denombrer au plus (n k + 1) zeros sur chaque ligne.
Ainsi d = w n k + 1, et on a la propriete :
La distance d dun code (n, k, d ) est majoree par n k + 1.
nk
Le pouvoir correcteur t dun tel code verifie donc t E
.
2
Communication Num
erique
Codes en bloc lin
eaires
Caract
erisation dun mot code
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Codes en bloc lin
eaires
Caract
erisation dun mot code
H dT = 0
Communication Num
erique
Codes en bloc lin
eaires
Caract
erisation dun mot code
(P T )(nk)k | Ink
Communication Num
erique
Codes en bloc lin
eaires
Caract
erisation dun mot code
1
0
1
1
1
1
1
0
(P T )(nk)k | Ink
Ex :
1
0
G=
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1 0 1 1 1 0 0
1
et, H = 1 1 1 0 0 0 1
1
0 1 1 1 0 0 1
1
Communication Num
erique
Codes en bloc lin
eaires
D
ecodage par le syndr
ome
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Codes en bloc lin
eaires
D
ecodage par le syndr
ome
Communication Num
erique
Codes en bloc lin
eaires
D
ecodage par le syndr
ome
Communication Num
erique
Codes en bloc lin
eaires
D
ecodage par le syndr
ome
Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming
Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming
Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming
Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :
Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming
Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :
Sil ny a aucune erreur le syndrome est nul.
Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming
Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :
Sil ny a aucune erreur le syndrome est nul.
Si une unique erreur sest produite sur les sept premiers bits,
le syndrome donne la position de lerreur. Lexistence dun
nombre derreur impair est confirmee par le huiti`eme bit.
Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming
Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :
Sil ny a aucune erreur le syndrome est nul.
Si une unique erreur sest produite sur les sept premiers bits,
le syndrome donne la position de lerreur. Lexistence dun
nombre derreur impair est confirmee par le huiti`eme bit.
Si deux erreurs se sont produites, le syndrome nest pas nul.
Le huiti`eme bit indique une parite exact, signal dun nombre
pair derreurs. Une retransmission est necessaire.
Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming
Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :
Sil ny a aucune erreur le syndrome est nul.
Si une unique erreur sest produite sur les sept premiers bits,
le syndrome donne la position de lerreur. Lexistence dun
nombre derreur impair est confirmee par le huiti`eme bit.
Si deux erreurs se sont produites, le syndrome nest pas nul.
Le huiti`eme bit indique une parite exact, signal dun nombre
pair derreurs. Une retransmission est necessaire.
Si une erreur sest produite sur le huiti`eme bit, labsence
derreur indique par le syndrome permet de localiser lerreur et
le message est valide.
Communication Num
erique
Autres codes
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Autres codes
Codes cycliques
Introduction
Definition
Position du probl`eme
Exemples
Autres codes
Codes cycliques
Communication Num
erique
Autres codes
Codes cycliques
Code cyclique
Les codes cycliques forment une sous-classe des codes lineaires.
Un code C est dit cyclique si
a = [a1 a2 . . . an ] C a0 = [an a1 . . . an1 ] C
Les codes cycliques sont des codes dont lalgorithme dencodage
est facile `a implanter grace `a des registres `a decalages.
Lalgorithme de decodage est quant-`a lui plus difficile `a mettre en
uvre.
Lencodage et le decodage de codes cycliques reposent sur la
notion de polynomes sur un corps fini, dont la theorie
mathematique depasse largement lambition de ce cours.
Communication Num
erique
Autres codes
Codes cycliques
Code cyclique
Les codes cycliques les plus utilises `a lheure actuelle sont les codes
de Reed-Solomon.
Ces codes sont optimums, dans le sens o`
u ils necessitent un
nombre minimum de redondance (n k) pour obtenir une distance
minimale donnee, et donc un nombre maximum derreurs qui
nk
peuvent etre corrigees : t =
2
Pour les modems ADSL, le code utilise est RS(240,224,8)
Communication Num
erique
Autres codes
Codes cycliques
Communication Num
erique
Autres codes
Codes cycliques
Communication Num
erique
Autres codes
Codes cycliques