Vous êtes sur la page 1sur 78

Communication Num´erique

Communication Num´erique

Codes correcteurs d’erreurs

Yoann Morel

Num´erique Codes correcteurs d’erreurs Yoann Morel http://xymaths.free.fr/Signal/Communication-Numerique-cours-TP.php

Communication Num´erique

1 Introduction D´efinition Position du probl`eme Exemples

2 G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3 Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4 Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique

Introduction

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique

Introduction

D´efinition

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique

Introduction

D´efinition

Introduction

Num´erique Introduction D´efinition Introduction D´efinition Un code correcteur d’erreurs est une

D´efinition Un code correcteur d’erreurs est une technique de codage bas´ee sur la redondance de l’information, destin´ee `a d´etecter, voire corriger, les erreurs qui peuvent-ˆetre g´en´er´ees par un canal de communication peu fiable.

`a d´etecter, voire corriger, les erreurs qui peuvent-ˆetre g´en´er´ees par un canal de communication peu fiable.
`a d´etecter, voire corriger, les erreurs qui peuvent-ˆetre g´en´er´ees par un canal de communication peu fiable.

Communication Num´erique

Introduction

D´efinition

Introduction

Num´erique Introduction D´efinition Introduction D´efinition Un code correcteur d’erreurs est une

D´efinition Un code correcteur d’erreurs est une technique de codage bas´ee sur la redondance de l’information, destin´ee `a d´etecter, voire corriger, les erreurs qui peuvent-ˆetre g´en´er´ees par un canal de communication peu fiable.

g´en´er´ees par un canal de communication peu fiable. La d´etection d’une erreur dans un message peut

La d´etection d’une erreur dans un message peut sembler naturelle ; sa localisation pr´ecise et sa correction sont quant `a elles moins ´evidentes.

dans un message peut sembler naturelle ; sa localisation pr´ecise et sa correction sont quant `a

Communication Num´erique

Introduction

D´efinition

Introduction

Num´erique Introduction D´efinition Introduction D´efinition Un code correcteur d’erreurs est une

D´efinition Un code correcteur d’erreurs est une technique de codage bas´ee sur la redondance de l’information, destin´ee `a d´etecter, voire corriger, les erreurs qui peuvent-ˆetre g´en´er´ees par un canal de communication peu fiable.

g´en´er´ees par un canal de communication peu fiable. La d´etection d’une erreur dans un message peut

La d´etection d’une erreur dans un message peut sembler naturelle ; sa localisation pr´ecise et sa correction sont quant `a elles moins ´evidentes. L’origine de la th´eorie des codes peut-ˆetre situ´ee en 1947 par Richard W. Hamming, utilisant un ordinateur d´evelopp´e 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 can’t it locate the position of the error and correct it ?””

“Damn it, if the machine can detect an error, why can’t it locate the position of

Communication Num´erique Introduction Position du probl`eme

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique Introduction Position du probl`eme

Introduction

Le rˆole du correcteur d’erreurs peut-ˆetre limit´e `a la simple

d´etection (et localisation

La correction s’effectue alors par une nouvelle requˆete de transmission du message, ou seulement des parties erron´ees.

.) d’erreurs.

Cas du protocole TCP

sommes de contrˆole (checksum)

Cela peut se r´ev´eler insuffisant, ou inadapt´e suivant le contexte (GSM par exemple)

de contrˆole (checksum) • Cela peut se r´ev´eler insuffisant, ou inadapt´e suivant le contexte (GSM par

Communication Num´erique Introduction Position du probl`eme

Introduction

Deux situations principales peuvent se pr´esenter :

Pr´esence de petites erreurs relativement fr´equentes et isol´ees.

Ex : T´el´ecommunication, communication perturb´ee par un bruit additif al´eatoire

Pr´esence d’erreurs peu fr´equentes, mais plus volumineuses

Ex : CD : norme Philips permet de corriger jusqu’`a 4096 bits erron´es cons´ecutifs (rayure de environ 1 mm de large)

Effacement de caract`ere(s) : un bit n’est pas alt´er´e, mais simplement supprim´e.

de environ 1 mm de large) • Effacement de caract`ere(s) : un bit n’est pas alt´er´e,

Communication Num´erique

Introduction

Exemples

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique

Introduction

Exemples

1 er exemple : Code `a r´ep´etitions

Il s’agit de la mani`ere la plus “na¨ıve” d’aborder le probl`eme :

si la transmission d’un mot peut-ˆetre entach´ee d’erreur(s), il n’y a qu’`a le transmettre directement plusieurs fois !

Supposons que l’on ait 4 messages `a envoyer : 00, 01, 10 et 11 (ou que l’on ait pr´ealablement d´ecoup´e le message initial en blocs de 2 bits).

Pour augmenter nos chances de recevoir un message correct, on peut encoder nos 4 mots suivant :

mot original

mot cod´e

00

00

00 00

01

01

01 01

10

10

10 10

11

11

11 11

 
 
original mot cod´e 00 00 00 00 01 01 01 01 10 10 10 10 11

Communication Num´erique

Introduction

Exemples

1 er exemple : Code `a r´ep´etitions

S’il survient une erreur dans la transmission, elle n’affectera pas les trois couples formant le mot du code.

Le d´ecodage peut donc se faire par vote majoritaire sur les 3 couples de bits.

Pour ce code `a r´ep´etition, le taux d’information est seulement 33 % (33 % des bits transmis correspondent `a de l’information), tandis que 66 % ont pour seul but la protection de cette information.

bits transmis correspondent `a de l’information), tandis que 66 % ont pour seul but la protection

Communication Num´erique

Introduction

Exemples

2 `eme exemple : Code `a r´ep´etition am´elior´e

Un autre exemple de codage est le suivant :

mot original

mot cod´e

00

00

000

01

01

101

10

10

110

11

11

011

le suivant : mot original mot cod´e 00 00 000 01 01 101 10 10 110

Communication Num´erique

Introduction

Exemples

2 `eme exemple : Code `a r´ep´etition am´elior´e

Un autre exemple de codage est le suivant :

Supposons que le mot re¸cu soit y = 01001.

mot original

mot cod´e

00

00

000

01

01

101

10

10

110

11

11

011

y = 01001 . mot original mot cod´e 00 00 000 01 01 101 10 10

Communication Num´erique

Introduction

Exemples

2 `eme exemple : Code `a r´ep´etition am´elior´e

Un autre exemple de codage est le suivant :

Supposons que le mot re¸cu soit y = 01001.

mot original

mot cod´e

00

00

000

01

01

101

10

10

110

11

11

011

Ce mot ne correspond `a aucun mot du code :

il comporte donc une, ou plusieurs, erreurs.

10 110 11 11 011 Ce mot ne correspond `a aucun mot du code : il

Communication Num´erique

Introduction

Exemples

2 `eme exemple : Code `a r´ep´etition am´elior´e

Un autre exemple de codage est le suivant :

Supposons que le mot re¸cu soit y = 01001.

mot original

mot cod´e

00

00

000

01

01

101

10

10

110

11

11

011

Ce mot ne correspond `a aucun mot du code :

il comporte donc une, ou plusieurs, erreurs. L’id´ee de la correction est de rechercher parmi tous les mots du code celui qui est le “plus proche” :

Ecart mot re¸cu/mot du code

Poids de l’erreur

y

00 000 = 01001

2

y

01 101 = 00100

1

y

10 110 = 11111

5

y

11 011 = 10010

2

00 000 = 01001 2 y − 01 101 = 00100 1 y − 10 110

= 01 101, donc et

choisit

yˆ On donc lestimation =

xˆ 01

Communication Num´erique

Introduction

Exemples

2 `eme exemple : Code `a r´ep´etition am´elior´e

Un autre exemple de codage est le suivant :

Supposons que le mot re¸cu soit y = 01001.

mot original

mot cod´e

00

00

000

01

01

101

10

10

110

11

11

011

Ce mot ne correspond `a aucun mot du code :

il comporte donc une, ou plusieurs, erreurs. L’id´ee de la correction est de rechercher parmi tous les mots du code celui qui est le “plus proche” :

Ecart mot re¸cu/mot du code

Poids de l’erreur

y

00 000 = 01001

2

y

01 101 = 00100

1

y

10 110 = 11111

5

y

11 011 = 10010

2

00 000 = 01001 2 y − 01 101 = 00100 1 y − 10 110

Communication Num´erique

Introduction

Exemples

2 `eme exemple : Code `a r´ep´etition am´elior´e

Remarques :

Si on avait eu 2, ou plus, erreurs de mˆeme poids, on n’aurait pas ´et´e en mesure de d´eterminer le mot le plus proche.

En regardant d’un peu plus pr`es, tous les mots du code diff`erent d’au moins 3 bits, et ce code permet donc de corriger de mani`ere certaine une erreur unique.

On ne peut pas corriger avec ce code des mots contenant 2 erreurs, et encore moins 3 erreurs (qui peuvent alors n’ˆetre mˆeme pas d´etect´ees !)

Le coˆut de ce code est de 3/5 = 60 % d’occupation `a la protection de l’information (le taux d’information est de 2/5 = 40 %)

est de 3 / 5 = 60 % d’occupation `a la protection de l’information (le taux

Communication Num´erique

Introduction

Exemples

3 `eme exemple : Code de parit´e

Supposons que l’on ait des mots de 7 bits `a envoyer (code ASCII par exemple), et que l’on s’int´eresse simplement `a la d´etection d’une erreur.

Un moyen et de coder chacun des mots sur 8 bits, en ajoutant un 8 `eme bit, appel´e bit de parit´e, de telle sorte que dans tous les mots le nombre de 1 soit pair.

Par exemple,

1011001

0110100

est cod´e 10110010

est cod´e 01101001

que dans tous les mots le nombre de 1 soit pair. Par exemple, 1011001 0110100 est

Communication Num´erique

Introduction

Exemples

3 `eme exemple : Code de parit´e

Supposons que l’on ait des mots de 7 bits `a envoyer (code ASCII par exemple), et que l’on s’int´eresse simplement `a la d´etection d’une erreur.

Un moyen et de coder chacun des mots sur 8 bits, en ajoutant un 8 `eme bit, appel´e bit de parit´e, de telle sorte que dans tous les mots le nombre de 1 soit pair.

Par exemple,

1011001

0110100

est cod´e 10110010

est cod´e 01101001

D’une mani`ere g´en´erale, un mot du code est de la forme

x = [u 1 u 2 u 3 u 4 u 5 u 6 u 7 p]

o`u

ou encore

u i = u 1 + u 2 + u 3 + u 4 + u 5 + u 6 + u 7 + p 0 [2]

p u i [2]

i = u 1 + u 2 + u 3 + u 4 + u 5

Communication Num´erique

Introduction

Exemples

3 `eme exemple : Code de parit´e

Supposons que l’on ait des mots de 7 bits `a envoyer (code ASCII par exemple), et que l’on s’int´eresse simplement `a la d´etection d’une erreur.

Un moyen et de coder chacun des mots sur 8 bits, en ajoutant un 8 `eme bit, appel´e bit de parit´e, de telle sorte que dans tous les mots le nombre de 1 soit pair.

Par exemple,

1011001

0110100

est cod´e 10110010

est cod´e 01101001

Ce code permet de d´etecter une erreur, ou 3 erreurs ou 5 erreurs, ou 7 erreurs, mais pas 2, 4 ou 6 erreurs.

De plus, ce code ne permet pas la localisation de l’erreur, et donc pas sa correction.

Par contre, ce code permet de r´etablir un caract`ere effac´e !

de l’erreur, et donc pas sa correction. • Par contre, ce code permet de r´etablir un

Communication Num´erique

Introduction

Exemples

4 `eme exemple : Code ISBN

Le code ISBN (International Standard Book Number) est un code permettant d’identifier un livre.

Il utilise l’alphabet {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; X}

Seuls les 9 premiers caract`eres permettent d’identifier le livre, le

10 `eme servant `a contrˆoler la validit´e du code (de mˆeme que la cl´e d’un RIB, o`u les 2 derniers chiffres d’un num´ero de s´ecurit´e sociale,

ou encore pour un num´ero de carte bancaire

Par exemple, le premier caract`ere permet d’identifier la langue de

l’ouvrage (0 pour l’anglais, 2 pour le fran¸cais deux num´eros suivants identifient l’´editeur.

.)

.), tandis que les

(0 pour l’anglais, 2 pour le fran¸cais deux num´eros suivants identifient l’´editeur. .) .), tandis que

Communication Num´erique

Introduction

Exemples

4 `eme exemple : Code ISBN

Le 10 `eme caract`ere se d´etermine suivant :

c 10

9

i=1

i c i [11]

Le code ISBN permet de :

ou encore,

10

i=1

i c i 0 [11]

d´etecter s’il y a au moins une erreur dans le num´ero

retrouver un num´ero effacer

d´etecter une transposition de 2 caract`eres

moins une erreur dans le num´ero • retrouver un num´ero effacer • d´etecter une transposition de

Communication Num´erique

Introduction

Exemples

4 `eme exemple : Code ISBN

Le 10 `eme caract`ere se d´etermine suivant :

c 10

9

i=1

i c i [11]

Le code ISBN permet de :

ou encore,

10

i=1

i c i 0 [11]

d´etecter s’il y a au moins une erreur dans le num´ero

retrouver un num´ero effacer

d´etecter une transposition de 2 caract`eres

Ex : Le num´ero ISBN suivant est-il valide ? 2 - 70 - 42 1030 - 6

Ex : Retrouver le chiffre manquant : 0 - 201 - 1 ? - 502 - 7

ISBN suivant est-il valide ? 2 - 70 - 42 1030 - 6 Ex : Retrouver

Communication Num´erique

Introduction

Exemples

4 `eme exemple : Code ISBN

Le 10 `eme caract`ere se d´etermine suivant :

c 10

9

i=1

i c i [11]

Le code ISBN permet de :

ou encore,

10

i=1

i c i 0 [11]

d´etecter s’il y a au moins une erreur dans le num´ero

retrouver un num´ero effacer

d´etecter une transposition de 2 caract`eres

Ex : Le num´ero ISBN suivant est-il valide ? 2 - 70 - 42 1030 - 6

Ex : Retrouver le chiffre manquant : 0 - 201 - 1 3 - 502 - 7

ISBN suivant est-il valide ? 2 - 70 - 42 1030 - 6 Ex : Retrouver

Communication Num´erique G´en´eralit´es sur les codes

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire

Canal binaire sym´etrique sans m´emoire

Bruit AGB

Codage ❄ X k ✲ ✲ h(t)
Codage
X k
✲ h(t)

Filtre adapt´e

kT

D´ecision

✲ h ( − t )

h(t)

h ( − t )
✲ h ( − t )
✲ h ( − t )
Y k ✲ ✲
Y
k

X k et Y k prennent leurs valeurs dans l’alphabet {0, 1}

La probabilit´e d’erreurs est :

p = P(Y k = 1|X k = 0) = P (Y k = 0|X k = 1) = erfc

1 | X k = 0) = P ( Y k = 0 | X k

N 0

ε

b

N 0 ε b

La probabilt´e d’erreur ne d´epend pas de l’instant k d’utilisation du canal : le canal est dit sans m´emoire

La probabilt´e d’erreur ne d´epend pas de l’instant k d’utilisation du canal : le canal est

Communication Num´erique G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire

Canal binaire sym´etrique sans m´emoire

On peut alors repr´esenter la chaˆıne de transmission entre X k et Y k par le sch´ema :

1 p

X

k

✟✯

❍ ❍ ❍❥

✟ ✟

p

1 p

Y

k

Tout se passe comme si X k ´etait soumis `a un bruit additif et que l’observation Y k s’´ecrivait :

Y k = X k B k

o`u d´esigne l’addition modulo 2 (ou exclusif) et B k est une suite de variables al´eatoires `a valeurs dans {0, 1}, ind´ependantes et identiquement distribu´ees avec,

P(B k = 1) = p

al´eatoires `a valeurs dans { 0 , 1 } , ind´ependantes et identiquement distribu´ees avec, P

Communication Num´erique G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire

Probabilit´e d’erreur. Distance

Notons c = [c 1 c 2 re¸cu, alors

c n ] le mot transmis, et y = [y 1 y 2 .

y n ] le mot

n

Prob (y|c) = i=1

Prob (y i |c i )

= (1

p) card{i/y i =c i } p card{i/y i =c i }

= (1 p) n

1 p card{i/y i

p

=c i }

Un d´ecodeur par maximum de vraisemblance doit choisir de

renvoyer le mot cˆ qui maximise la fonction : c

Comme p/(1 p) < 1, maximiser cette probabilit´e revient `a

Prob (y|c).

minimiser le nombre d’erreurs : card {i/y i = c i }

cette probabilit´e revient `a Prob ( y | c ) . minimiser le nombre d’erreurs :

Communication Num´erique G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire

Distance et poids de Hamming

Soit x = [x 1 x 2 longueur n.

x n ] et y = [y 1 y 2

y n ] sont deux messages de

] et y = [ y 1 y 2 y n ] sont deux messages de

D´efinition La distance de Hamming entre x et y est le nombre d(x, y) de composantes o`u x et y diff`erent. Le poids de Hamming de x est le nombre w(x) de composantes non nulles de x.

x est le nombre w ( x ) de composantes non nulles de x . Ex

Ex : Si x = 10110 et y = 00101, alors d(x, y) = 4 et w(x) = 3 et w(y) = 2.

non nulles de x . Ex : Si x = 10110 et y = 00101 ,

Communication Num´erique G´en´eralit´es sur les codes Param`etres d’un code

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique G´en´eralit´es sur les codes Param`etres d’un code

Codeur : Dispositif qui associe `a une suite de k bits d’information une suite de n bits. Code : Un code est un ensemble de mots de n bits.

Distance et poids d’un code : Soit C un code :

la distance minimum de C est le nombre

d = Min {d(x, y)/x, y ∈ C, x

= y}

le poids minimum de C est le nombre :

w = Min {w(x)/x ∈ C, x

= 0}

y ) /x, y ∈ C , x = y } • le poids minimum de

Communication Num´erique G´en´eralit´es sur les codes Param`etres d’un code

Codeur : Dispositif qui associe `a une suite de k bits d’information une suite de n bits. Code : Un code est un ensemble de mots de n bits.

Distance et poids d’un code : Soit C un code :

la distance minimum de C est le nombre

 

d = Min {d(x, y)/x, y ∈ C, x

= y}

le poids minimum de C est le nombre :

 

w = Min {w(x)/x ∈ C, x

= 0}

mot original

mot cod´e

 

00

00

000

n = 5 ; k = 2 d = 3 w = 3

Ex :

01

01

101

10

10

110

11

11

011

 
= 5 ; k = 2 d ∗ = 3 w ∗ = 3 Ex :

Communication Num´erique G´en´eralit´es sur les codes Param`etres d’un code

Le taux d’information d’un code est le nombre r = k/n.

r

< 1 : ajout d’information

r

= 1 : pas d’information suppl´ementaire

r

> 1 : compression de donn´ee

Un code est dit t-correcteur si il permet de corriger toute erreur de au plus t caract`eres.

On a la caract´erisation :

C est t-correcteur ⇐⇒ d 2t + 1

ou encore, comme d = w ,

t = E d 1

2

= E w ∗ − 1 2
= E w ∗ − 1
2

Communication Num´erique G´en´eralit´es sur les codes Param`etres d’un code

 

mot original

mot cod´e

 

00

00

000

n = 5 ; k = 2 d = 3 w = 3

Ex :

01

01

101

10

10

110

11

11

011

 

On dit que le code C est de param`etres (5, 2, 3). Un tel code a :

un taux d’information : r = 2/5 (ou un taux de redondance de 3/5).

un pouvoir de correction de 1 bit, on dit qu’il est

1-correcteur.

= 2 / 5 (ou un taux de redondance de 3 / 5 ). • un

Communication Num´erique G´en´eralit´es sur les codes Param`etres d’un code

Autre exemple : Code de parit´e

Ce code ajoute un bit, appel´e bit

de parit´e, `a une suite de k bits d’information de fa¸con `a ce que le nombre total de 1 du mot code ainsi form´e soit pair.

Ex : Pour k = 3, on a n = 4 et, par exemple :

000

0000

010

0101

111

1111

C’est un code (4, 3) dont le taux d’information est r = 3 4 = 75 %.

On a d = w = 2, et donc t = 0 :

Ce code ne permet aucune correction.

est r = 3 4 = 75 % . On a d ∗ = w ∗

Communication Num´erique Codes en bloc lin´eaires

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique Codes en bloc lin´eaires D´efinition

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique Codes en bloc lin´eaires D´efinition

Codes lin´eaires

Code lin´eaire : si c 1 et c 2 d´esignent les mots codes respectifs des deux suites d’information de k bits d 1 et d 2 , alors `a la suite d’information de k bits d 1 d 2 est associ´e le mot code c 1 c 2 .

d 1 c 1

d 2 c 2

alors ,

d 1 d 2 c 1 c 2

o`u est l’addition bit `a bit modulo 2.

c 1 d 2 → c 2 alors , d 1 ⊕ d 2 → c

Communication Num´erique Codes en bloc lin´eaires D´efinition

Codes en blocs

Code en bloc : Dans un code en bloc, les n ´el´ements binaires des mots code sont calcul´es uniquement avec les k bits d’information du bloc courant.

[ d 1 d 2

.

.

.

d k ]

[ c 1 c 2

.

.

.

c n ]

Au besoin, le message initial est d´ecoup´e en paquets, ou blocs, de taille k.

] → [ c 1 c 2 . . . c n ] Au besoin, le

Communication Num´erique Codes en bloc lin´eaires D´efinition

Codes en blocs

Code en bloc : Dans un code en bloc, les n ´el´ements binaires des mots code sont calcul´es uniquement avec les k bits d’information du bloc courant.

[ d 1 d 2

.

.

.

d k ]

[ c 1 c 2

.

.

.

c n ]

Au besoin, le message initial est d´ecoup´e en paquets, ou blocs, de taille k.

Pour un code en bloc lin´eaire, le mot code c s’obtient `a partir du mot d’information d par une expression matricielle de la forme :

c = d G

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 appel´ee matrice g´en´eratrice du code.

vecteur ligne de taille 1 × n et G est une matrice de taille k ×

Communication Num´erique Codes en bloc lin´eaires D´efinition

Exemple du code parit´e :

Le taux d’information est r = n 1 , et sa matrice g´en´eratrice, de

taille (n 1) × n est :

n

G =  

I n1

1

.

.

.

1

avec I n1 la matrice identit´e de taille n 1.

: n G =    I n − 1 1 . . . 1

Communication Num´erique Codes en bloc lin´eaires D´efinition

Exemple du code parit´e :

Le taux d’information est r = n 1 , et sa matrice g´en´eratrice, de

taille (n 1) × n est :

n

G =  

I n1

1

.

.

.

1

avec I n1 la matrice identit´e de taille n 1.

Ex : Pour n = 3, on a un code (4,3,2), de matrice g´en´eratrice

G =

1

0

0

0

1

0

0

0

1

1

1

1

.

Par exemple, le mot u = [101] est cod´e par :

c = uG = [1012] [1010] [2]

0 0 0 1 0 0 0 1 1 1 1   . Par exemple,

Communication Num´erique Codes en bloc lin´eaires D´efinition

Code `a r´ep´etition : Ce code associe `a k = 1 bit d’information les

mots code :

d

d

= 0

= 1

c =

c =

00

0

n

11

1

n

: Ce code associe `a k = 1 bit d’information les mots code : d d

Communication Num´erique Codes en bloc lin´eaires D´efinition

Code `a r´ep´etition : Ce code associe `a k = 1 bit d’information les

mots code :

d

= 0

c =

00

0

n

d

= 1

c =

11

1

n

Le code `a r´ep´etition est donc un code (n, 1, n). Son taux

d’information est r =

1

n . Sa distance est n : il peut corriger jusqu’`a

t

= E n 1 erreurs.

2

est r = 1 n . Sa distance est n : il peut corriger jusqu’`a t

Communication Num´erique Codes en bloc lin´eaires D´efinition

Code `a r´ep´etition : Ce code associe `a k = 1 bit d’information les

mots code :

d

= 0

c =

00

0

n

d

= 1

c =

11

1

n

Le code `a r´ep´etition est donc un code (n, 1, n). Son taux

d’information est r =

1

n . Sa distance est n : il peut corriger jusqu’`a

t

= E n 1 erreurs.

2

Sa matrice g´en´eratrice est :

G = 1 1 . . . 1 n
G =
1 1
.
.
.
1
n

Communication Num´erique Codes en bloc lin´eaires Forme syst´ematique d’un code

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes cycliques

Communication Num´erique Codes en bloc lin´eaires Forme syst´ematique d’un code

Forme syst´ematique d’un code

Un code est enti`erement d´etermin´e par sa matrice g´en´eratrice G. Les vecteurs-ligne de G sont eux-mˆeme des mots-code, et sont suppos´es lin´eairement ind´ependants. Cela revient `a imposer que :

si d 1 = d 2 , alors c 1 = d 1 G

= c 2 = d 2 G :

des mots d’information diff´erents ne peuvent pas ˆetre identiquement cod´es.

En d’autres termes, la matrice G est de rang k.

On montre de plus que les combinaisons lin´eaires sur les lignes de G ainsi que les permutations sur les colonnes de G laissent inchang´ees la probabilit´e d’erreur par mot code :

la distance (ou le poids) du code est inchang´e.

de G laissent inchang´ees la probabilit´e d’erreur par mot code : la distance (ou le poids)

Communication Num´erique Codes en bloc lin´eaires Forme syst´ematique d’un code

Forme syst´ematique d’un code

D’apr`es ces propri´et´es, la matrice g´en´eratrice G peut s’´ecrire sous la forme (Pivot de Gauss) :

G = I k |P k×(nk)

o`u I k est la matrice identit´e de taille k, et la matrice P est appel´ee la matrice de parit´e du code.

Lorsque G est sous sa forme syst´ematique, les mots code commencent par k bits d’information et sont compl´et´es par (n k) bits de redondance :

si d = [d 1 d 2

d k ] alors,

c = d G = [d 1 d 2

d k p 1 p 2

p nk ]

redondance : si d = [ d 1 d 2 d k ] alors, c =

Communication Num´erique Codes en bloc lin´eaires Forme syst´ematique d’un code

Par exemple, le code lin´eaire (7, 4) d´efini par sa matrice g´en´eratrice :

0

0

1

0

peut se mettre sous la forme syst´ematique :

1

0

0

0

1

1

0

0

0

1

1

0

1

0

1

1

0

1

0

1

0

0

0

1

G

=

G

=

1

0

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

1 0 0 0 1     G = G =   

Communication Num´erique Codes en bloc lin´eaires Forme syst´ematique d’un code

G =

1

0

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

Ainsi, si un bloc c = [c 1 c 2 c 3 c 4 ], est cod´e en

o`u,

d = cG

= [c 1 c 2 c 3 c 4 p 1 p 2 p 3 ]


p 1 =

p 2 = c 1 + c 2 + c 3

p 3 = c 2 + c 3 + c 4

c 1 + c 2 + c 4

  p 1 = p 2 = c 1 + c 2 + c 3

Communication Num´erique Codes en bloc lin´eaires Forme syst´ematique d’un code

G =

1

0

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

Ainsi, si un bloc c = [c 1 c 2 c 3 c 4 ], est cod´e en

o`u,

d = cG

= [c 1 c 2 c 3 c 4 p 1 p 2 p 3 ]


p 1 =

p 2 = c 1 + c 2 + c 3

p 3 = c 2 + c 3 + c 4

c 1 + c 2 + c 4

Tout se passe comme si, le codage consistait simplement en l’ajout de (n k) bits de redondance.

2 + c 4 Tout se passe comme si, le codage consistait simplement en l’ajout de

Communication Num´erique Codes en bloc lin´eaires Forme syst´ematique d’un code

Majoration de la distance d’un code :

On a vu que la distance d’un code d est aussi ´egale au poids de ce code w .

Une fois la matrice g´en´eratrice du code mise sous forme syst´ematique,

G = I k | P k×(nk) =

1

0

.

.

.

0

.

0

1

.

.

.

.

.

.

0

.

.

0

.

0

1

P

k×(nk)

on peut d´enombrer au plus (n k + 1) z´eros sur chaque ligne.

Ainsi d = w n k + 1, et on a la propri´et´e :

La distance d ∗ d’un code (n, k, d ∗ ) est major´ee par n
La distance d ∗ d’un code (n, k, d ∗ ) est major´ee par n − k + 1.
Le pouvoir correcteur t d’un tel code v´erifie donc
t ≤ E n − k .
2

Communication Num´erique Codes en bloc lin´eaires Caract´erisation d’un mot code

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes cycliques

Communication Num´erique Codes en bloc lin´eaires Caract´erisation d’un mot code

Caract´erisation d’un mot code

Matrice de contrˆole de parit´e : On consid`ere un code lin´eaire C

de matrice g´en´eratrice G.

On appelle matrice de contrˆole de parit´e une matrice H de dimension (n k) × n et de rang (n k) qui v´erifie :

H G T = 0

Caract´erisation d’un mot code : Si c est un bloc, de mot code d = cG, alors, on doit avoir :

H d T = H (c G) T = H G T c T = H G T c T = 0

On a ainsi la propri´et´e : le bloc d re¸cu est un mot code (donc jug´e

non erron´e) si et seulement si

c T = 0 On a ainsi la propri´et´e : le bloc d re¸cu est un
c T = 0 On a ainsi la propri´et´e : le bloc d re¸cu est un

Communication Num´erique Codes en bloc lin´eaires Caract´erisation d’un mot code

Construction d’une matrice de contrˆole de parit´e : Soit un

code lin´eaire dont la matrice G est mise sous forme syst´ematique

G =

I k | P k×(nk)

Alors, la matrice de contrˆole de parit´e a pour expression :

H = (P T ) (nk)×k

| I nk

la matrice de contrˆole de parit´e a pour expression : H = ( P T )

Communication Num´erique Codes en bloc lin´eaires Caract´erisation d’un mot code

Construction d’une matrice de contrˆole de parit´e : Soit un

code lin´eaire dont la matrice G est mise sous forme syst´ematique

G =

I k | P k×(nk)

Alors, la matrice de contrˆole de parit´e a pour expression :

Ex :

G =

1

0

0

0

0

1

0

0

0

0

1

0

0

0

0

1

H = (P T ) (nk)×k

| I nk

1

0

1

1

1

1

1

0

0

1

1

1

et,

H =

 1 0 1 1 1 0 0  1 1 1 0 0 0
1 0
1
1
1
0
0
1
1
1
0
0
0
1
0 1
1
1
0
0
1

Communication Num´erique Codes en bloc lin´eaires D´ecodage par le syndrˆome

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes cycliques

Communication Num´erique Codes en bloc lin´eaires D´ecodage par le syndrˆome

D´ecodage par le syndrˆome

Syndrˆome : Soit un code lin´eaire de matrice de contrˆole de parit´e

H, c un mot envoy´e, et y = c + b le mot re¸cu.

Alors, on a : Hy T =

Ainsi, le vecteur s = H y T , ne d´epend que du bruit et non pas du mot envoy´e. On l’appelle le syndrˆome associ´e `a y.

H(c + b) T = Hc T + Hb t = Hb T

pas du mot envoy´e. On l’appelle le syndrˆome associ´e `a y . H ( c +

Communication Num´erique Codes en bloc lin´eaires D´ecodage par le syndrˆome

D´ecodage par le syndrˆome

Syndrˆome : Soit un code lin´eaire de matrice de contrˆole de parit´e

H, c un mot envoy´e, et y = c + b le mot re¸cu.

Alors, on a : Hy T =

Ainsi, le vecteur s = H y T , ne d´epend que du bruit et non pas du mot envoy´e. On l’appelle le syndrˆome associ´e `a y.

H(c + b) T = Hc T + Hb t = Hb T

Le syndrˆome se calcule `a partir du mot re¸cu et de la matrice de contrˆole de parit´e, et ne d´epend que du bruit et non pas du mot code ´emis.

A partir de la connaissance de H et de y, on peut donc esp´erer d´eterminer le bruit b, car s = Hy T = Hb T .

Une fois le bruit connu, c se d´eduit simplement par c = y b.

le bruit b , car s = Hy T = Hb T . Une fois le

Communication Num´erique Codes en bloc lin´eaires D´ecodage par le syndrˆome

D´ecodage par le syndrˆome

Dans l’exemple pr´ec´edent, le code est 1-correcteur : il ne peut corriger qu’une seule erreur.

Supposons qu’une erreur e se soit effectivement gliss´ee dans la transmission d’un mot c, cod´e par le mot d = cG, et receptionn´e selon y = d + e.

L’erreur ´ecrit alors e = [0 position. Le syndrˆome est

s = Hy T = H(y + e) T = Hd T + He T = He T = H j , o`u H j est la j `eme colonne de la matrice de contrˆole H.

On connaˆıt ainsi la position de l’erreur, et il n’y a plus qu’a corriger le mot re¸cu.

0 1 0

0], le 1 ´etant `a la j `eme

la position de l’erreur, et il n’y a plus qu’a corriger le mot re¸cu. 0 1

Communication Num´erique Codes en bloc lin´eaires Code de Hamming

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes cycliques

Communication Num´erique Codes en bloc lin´eaires Code de Hamming

Les codes de Hamming forment une classe particuli`ere de codes lin´eaires.

Pour un entier m, les param`etres d’un code de Hamming sont de

la forme (2 m

Par exemple,

1, 2 m m 1, 3).

(7, 4, 3) pour m = 3 (cf. TP)

(128, 120, 3) pour m = 7 (minitel).

Ces codes sont parfaits : pour tout mot re¸cu, il existe un mot du

code `a une distance stictement inf´erieure `a d/2. Autrement dit, tout mot re¸cu peut-ˆetre d´ecod´e.

un mot du code `a une distance stictement inf´erieure `a d/ 2 . Autrement dit, tout

Communication Num´erique Codes en bloc lin´eaires Code de Hamming

Les codes de Hamming forment une classe particuli`ere de codes lin´eaires.

Pour un entier m, les param`etres d’un code de Hamming sont de

la forme (2 m

Par exemple,

1, 2 m m 1, 3).

(7, 4, 3) pour m = 3 (cf. TP)

(128, 120, 3) pour m = 7 (minitel).

Ces codes sont parfaits : pour tout mot re¸cu, il existe un mot du

code `a une distance stictement inf´erieure `a d/2. Autrement dit, tout mot re¸cu peut-ˆetre d´ecod´e.

Malheureusement si 2, ou plus, erreurs se sont gliss´ees dans le message re¸cu, ce code propose toujours une correction qui va ˆetre elle aussi erron´ee

se sont gliss´ees dans le message re¸cu, ce code propose toujours une correction qui va ˆetre

Communication Num´erique Codes en bloc lin´eaires Code de Hamming

Code de Hamming ´etendu :

Pour palier cet inconv´enient, le code de Hamming est souvent ´etendu :

A chaque bloc de 4 bits est ajout´e les trois bits de redondance du code de Hamming. Ces 7 bits sont alors compl´et´es par un bit de parit´e. Ainsi, le d´ecodage se fait suivant :

du code de Hamming. Ces 7 bits sont alors compl´et´es par un bit de parit´e. Ainsi,

Communication Num´erique Codes en bloc lin´eaires Code de Hamming

Code de Hamming ´etendu :

Pour palier cet inconv´enient, le code de Hamming est souvent ´etendu :

A chaque bloc de 4 bits est ajout´e les trois bits de redondance du code de Hamming. Ces 7 bits sont alors compl´et´es par un bit de parit´e. Ainsi, le d´ecodage se fait suivant :

S’il n’y a aucune erreur le syndrome est nul.

par un bit de parit´e. Ainsi, le d´ecodage se fait suivant : • S’il n’y a

Communication Num´erique Codes en bloc lin´eaires Code de Hamming

Code de Hamming ´etendu :

Pour palier cet inconv´enient, le code de Hamming est souvent ´etendu :

A chaque bloc de 4 bits est ajout´e les trois bits de redondance du code de Hamming. Ces 7 bits sont alors compl´et´es par un bit de parit´e. Ainsi, le d´ecodage se fait suivant :

S’il n’y a aucune erreur le syndrome est nul.

Si une unique erreur s’est produite sur les sept premiers bits, le syndrome donne la position de l’erreur. L’existence d’un nombre d’erreur impair est confirm´ee par le huiti`eme bit.

donne la position de l’erreur. L’existence d’un nombre d’erreur impair est confirm´ee par le huiti`eme bit.

Communication Num´erique Codes en bloc lin´eaires Code de Hamming

Code de Hamming ´etendu :

Pour palier cet inconv´enient, le code de Hamming est souvent ´etendu :

A chaque bloc de 4 bits est ajout´e les trois bits de redondance du code de Hamming. Ces 7 bits sont alors compl´et´es par un bit de parit´e. Ainsi, le d´ecodage se fait suivant :

S’il n’y a aucune erreur le syndrome est nul.

Si une unique erreur s’est produite sur les sept premiers bits, le syndrome donne la position de l’erreur. L’existence d’un nombre d’erreur impair est confirm´ee par le huiti`eme bit.

Si deux erreurs se sont produites, le syndrome n’est pas nul. Le huiti`eme bit indique une parit´e exact, signal d’un nombre pair d’erreurs. Une retransmission est n´ecessaire.

Le huiti`eme bit indique une parit´e exact, signal d’un nombre pair d’erreurs. Une retransmission est n´ecessaire.

Communication Num´erique Codes en bloc lin´eaires Code de Hamming

Code de Hamming ´etendu :

Pour palier cet inconv´enient, le code de Hamming est souvent ´etendu :

A chaque bloc de 4 bits est ajout´e les trois bits de redondance du code de Hamming. Ces 7 bits sont alors compl´et´es par un bit de parit´e. Ainsi, le d´ecodage se fait suivant :

S’il n’y a aucune erreur le syndrome est nul.

Si une unique erreur s’est produite sur les sept premiers bits, le syndrome donne la position de l’erreur. L’existence d’un nombre d’erreur impair est confirm´ee par le huiti`eme bit.

Si deux erreurs se sont produites, le syndrome n’est pas nul. Le huiti`eme bit indique une parit´e exact, signal d’un nombre pair d’erreurs. Une retransmission est n´ecessaire.

Si une erreur s’est produite sur le huiti`eme bit, l’absence d’erreur indiqu´e par le syndrome permet de localiser l’erreur et le message est valid´e.

huiti`eme bit, l’absence d’erreur indiqu´e par le syndrome permet de localiser l’erreur et le message est

Communication Num´erique

Autres codes

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3

Codes en bloc lin´eaires D´efinition Forme syst´ematique d’un code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming

4

Autres codes Codes cycliques

code Caract´erisation d’un mot code D´ecodage par le syndrˆome Code de Hamming 4 Autres codes Codes

Communication Num´erique

Autres codes

Codes cycliques

1

Introduction D´efinition Position du probl`eme Exemples

2

G´en´eralit´es sur les codes Canal binaire sym´etrique sans m´emoire Param`etres d’un code

3