• Aucun résultat trouvé

Communication Num´erique

N/A
N/A
Protected

Academic year: 2022

Partager "Communication Num´erique"

Copied!
78
0
0

Texte intégral

(1)

Communication Num´ erique

Codes correcteurs d’erreurs

Yoann Morel

http://xymaths.free.fr/Signal/Communication-Numerique-cours-TP.php

(2)

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

(3)

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

(4)

Communication Num´erique Introduction

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

(5)

Communication Num´erique Introduction

efinition

Introduction

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.

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 ?””

(6)

Communication Num´erique Introduction

efinition

Introduction

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.

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 ?””

(7)

Introduction

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.

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 ?””

(8)

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

(9)

Introduction

Le rˆole du correcteur d’erreurs peut-ˆetre limit´e `a lasimple d´etection (et localisation . . .) d’erreurs.

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

• 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)

(10)

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.

(11)

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

(12)

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 blocsde 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

(13)

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.

(14)

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

Supposons que le mot re¸cu soity= 01001.

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

On choisit

donc

l’estimation yˆ = 01

101, et

donc xˆ=01

(15)

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

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

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

On choisit

donc

l’estimation yˆ = 01

101, et

donc xˆ=01

(16)

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

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

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

On choisit

donc

l’estimation yˆ = 01

101, et

donc xˆ=01

(17)

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

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

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

On choisit

l’estimation yˆ = 01

101, et

donc xˆ=01

(18)

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

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

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

On choisit

donc

l’estimation yˆ = 01

101, et

donc xˆ=01

(19)

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 lemot 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 de3/5 = 60 %d’occupation `a la protection de l’information

(le taux d’information est de 2/5 = 40 %)

(20)

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 est cod´e 10110010 0110100 est cod´e 01101001

D’une mani`ere g´en´erale, un mot du code est de la forme x= [u1u2u3u4u5u6u7p]

o`u X

ui=u1+u2+u3+u4+u5+u6+u7+p≡0 [2]

ou encore p≡X

ui [2]

(21)

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 est cod´e 10110010 0110100 est cod´e 01101001

D’une mani`ere g´en´erale, un mot du code est de la forme x= [u1u2u3u4u5u6u7p]

o`u X

ui=u1+u2+u3+u4+u5+u6+u7+p≡0 [2]

ou encore p≡X

ui [2]

(22)

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 est cod´e 10110010 0110100 est cod´e 01101001

D’une mani`ere g´en´erale, un mot du code est de la forme x= [u1u2u3u4u5u6u7p]

o`u X

ui=u1+u2+u3+u4+u5+u6+u7+p≡0 [2]

ou encore p≡X

ui [2]

• 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 !

(23)

4

`eme

exemple : Code ISBN

Le code ISBN (InternationalStandardBook 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 . . .), tandis que les deux num´eros suivants identifient l’´editeur.

(24)

Communication Num´erique Introduction

Exemples

4

`eme

exemple : Code ISBN

Le10`eme caract`ere se d´etermine suivant :

c10

9

X

i=1

i ci [11] ou encore,

10

X

i=1

i ci≡0 [11]

Le code ISBN permet de :

• 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

(25)

4

`eme

exemple : Code ISBN

Le10`eme caract`ere se d´etermine suivant :

c10

9

X

i=1

i ci [11] ou encore,

10

X

i=1

i ci≡0 [11]

Le code ISBN permet de :

• 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

(26)

Communication Num´erique Introduction

Exemples

4

`eme

exemple : Code ISBN

Le10`eme caract`ere se d´etermine suivant :

c10

9

X

i=1

i ci [11] ou encore,

10

X

i=1

i ci≡0 [11]

Le code ISBN permet de :

• 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 - 13- 502 - 7

(27)

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

(28)

Communication Num´erique 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

(29)

Canal binaire sym´ etrique sans m´ emoire

- Xk

Codage

h(t) -

L

?

Bruit AGB

-

Filtre adapt´e

h(−t) @@ -

kT D´ecision - Yk

Xk et Yk prennent leurs valeurs dans l’alphabet {0,1}

La probabilit´e d’erreurs est :

p=P(Yk = 1|Xk= 0) =P(Yk= 0|Xk= 1) =erfc r εb

N0

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

(30)

Communication Num´erique 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 entreXk etYk par le sch´ema :

Xk

- -

* HH

HH HHj

p 1−p

1−p Yk

Tout se passe comme siXk ´etait soumis `a un bruit additif et que l’observationYk s’´ecrivait :

Yk =Xk⊕Bk

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

P(Bk= 1) =p

(31)

Probabilit´ e d’erreur. Distance

Notonsc= [c1c2. . . cn]le mot transmis, ety= [y1y2. . . yn]le mot re¸cu, alors

Prob(y|c) =Qn

i=1Prob(yi|ci) = (1−p)card{i/yi=ci}pcard{i/yi6=ci}

= (1−p)n p

1−p

card{i/yi6=ci}

Un d´ecodeur parmaximum de vraisemblance doit choisir de renvoyer le motˆcqui maximise la fonction : c7→Prob(y|c).

Commep/(1−p)<1, maximiser cette probabilit´e revient `a minimiser le nombre d’erreurs : card{i/yi6=ci}

(32)

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

Canal binaire sym´etrique sans m´emoire

Distance et poids de Hamming

Soitx= [x1x2. . . xn]et y= [y1y2. . . yn]sont deux messages de longueurn.

D´efinition

La distance de Hamming entrex et y est le nombred(x, y) de composantes o`u xet y diff`erent.

Le poids de Hamming dex est le nombrew(x) de composantes non nulles dex.

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

(33)

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

(34)

Communication Num´erique 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 denbits.

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, x6=y}

• le poids minimum deC est le nombre :

w =Min{w(x)/x∈ C, x6= 0}

Ex :

mot original mot cod´e

00 00 000

01 01 101

10 10 110

11 11 011

n= 5 ; k= 2 d = 3

w= 3

(35)

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 denbits.

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, x6=y}

• le poids minimum deC est le nombre :

w =Min{w(x)/x∈ C, x6= 0}

Ex :

mot original mot cod´e

00 00 000

01 01 101

10 10 110

11 11 011

n= 5 ; k= 2 d = 3

w= 3

(36)

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

Param`etres d’un code

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

r <1 : ajout d’information

r = 1 : pas d’information suppl´ementaire r >1 : compression de donn´ee . . .

Un code est ditt-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, commed =w,

t=E

d−1 2

=E

w−1 2

(37)

Ex :

mot original mot cod´e

00 00 000

01 01 101

10 10 110

11 11 011

n= 5 ; k= 2 d = 3

w= 3

On dit que le codeC 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.

(38)

Communication Num´erique 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 kbits d’information de fa¸con `a ce que le nombre total de 1 du mot code ainsi form´e soit pair.

Ex : Pourk= 3, on an= 4 et, par exemple : 000→0000

010→0101 111→1111

C’est un code(4,3)dont le taux d’information estr = 3

4 = 75 %.

On ad =w = 2, et donc t= 0 :

Ce code ne permet aucune correction.

(39)

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

(40)

Communication Num´erique Codes en bloc lin´eaires

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

(41)

Codes lin´ eaires

Code lin´eaire :sic1 et c2 d´esignent les mots codes respectifs des deux suites d’information dekbitsd1 et d2, alors `a la suite d’information dek bitsd1⊕d2 est associ´e le mot codec1⊕c2.

( d1 →c1

d2 →c2 alors , d1⊕d2 →c1⊕c2

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

(42)

Communication Num´erique Codes en bloc lin´eaires

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 kbits d’information du bloc courant.

[d1 d2 . . . dk ] → [c1 c2 . . . cn ]

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

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

c=d G

o`u,dest un vecteur ligne de taille 1×k,c est un vecteur ligne de taille1×net Gest une matrice de taillek×n appel´ee

matrice g´en´eratrice du code.

(43)

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 kbits d’information du bloc courant.

[d1 d2 . . . dk ] → [c1 c2 . . . cn ]

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

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

c=d G

o`u,dest un vecteur ligne de taille 1×k,c est un vecteur ligne de taille1×net Gest une matrice de taillek×n appel´ee

matrice g´en´eratrice du code.

(44)

Communication Num´erique Codes en bloc lin´eaires

efinition

Exemple du code parit´e :

Le taux d’information estr= n−1

n , et sa matrice g´en´eratrice, de taille(n−1)×n est :

G=

 In−1

1 ... 1

avecIn−1 la matrice identit´e de taillen−1.

Ex : Pourn = 3, on a un code (4,3,2),

de matrice g´en´eratrice G=

1 0 0 1 0 1 0 1 0 0 1 1

.

Par exemple, le motu= [101]est cod´e par : c=uG= [1012]≡[1010] [2]

(45)

Exemple du code parit´e :

Le taux d’information estr= n−1

n , et sa matrice g´en´eratrice, de taille(n−1)×n est :

G=

 In−1

1 ... 1

avecIn−1 la matrice identit´e de taillen−1.

Ex : Pourn = 3, on a un code (4,3,2),

de matrice g´en´eratrice G=

1 0 0 1 0 1 0 1 0 0 1 1

.

Par exemple, le motu= [101]est cod´e par : c=uG= [1012]≡[1010] [2]

(46)

Communication Num´erique Codes en bloc lin´eaires

efinition

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

d= 0 → c= 0 0 . . .0

| {z } n d= 1 → c= 1 1 . . .1

| {z } n

Le code `a r´ep´etition est donc un code(n,1, n). Son taux d’information estr = 1

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

n−1 2

erreurs.

Sa matrice g´en´eratrice est : G= h

1 1 . . .1

| {z } i

n

(47)

Communication Num´erique Codes en bloc lin´eaires

efinition

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

d= 0 → c= 0 0 . . .0

| {z } n d= 1 → c= 1 1 . . .1

| {z } n

Le code `a r´ep´etition est donc un code(n,1, n). Son taux d’information estr = 1

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

n−1 2

erreurs.

n

(48)

Communication Num´erique Codes en bloc lin´eaires

efinition

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

d= 0 → c= 0 0 . . .0

| {z } n d= 1 → c= 1 1 . . .1

| {z } n

Le code `a r´ep´etition est donc un code(n,1, n). Son taux d’information estr = 1

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

n−1 2

erreurs.

Sa matrice g´en´eratrice est : G= h

1 1 . . .1

| {z } i

n

(49)

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

(50)

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´eratriceG.

Les vecteurs-ligne deGsont eux-mˆeme des mots-code, et sont suppos´es lin´eairement ind´ependants.

Cela revient `a imposer que :

sid16=d2, alors c1 =d1G6=c2 =d2G : des mots d’information diff´erents ne peuvent pas ˆetre identiquement cod´es.

En d’autres termes, la matriceGest de rang k.

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

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

(51)

Forme syst´ ematique d’un code

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

Ge=

Ik|Pk×(n−k)

o`uIk est la matrice identit´e de taille k, et la matriceP est appel´ee la matrice de parit´e du code.

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

si d= [d1d2. . . dk]alors,

c=d G= [d1 d2 . . . dk p1 p2 . . . pn−k ]

(52)

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 :

G=

1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1

peut se mettre sous la forme syst´ematique :

Ge=

1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1

(53)

Communication Num´erique Codes en bloc lin´eaires

Forme syst´ematique d’un code

Ge=

1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1

Ainsi, si un blocc= [c1c2c3c4], est cod´e en d=cG= [c1c2c3c4p1p2p3] o`u,

p1 =c1+c2+c4

p2 =c1+c2+c3

p3 =c2+c3+c4

(54)

Communication Num´erique Codes en bloc lin´eaires

Forme syst´ematique d’un code

Ge=

1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1

Ainsi, si un blocc= [c1c2c3c4], est cod´e en d=cG= [c1c2c3c4p1p2p3] o`u,

p1 =c1+c2+c4

p2 =c1+c2+c3

p3 =c2+c3+c4

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

(55)

Majoration de la distance d’un code :

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

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

Ge=

Ik |Pk×(n−k)

=

1 0 . . . 0

0 1 ... Pk×(n−k) ... . .. 0

0 . . . 0 1

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

Ainsid =w ≤n−k+ 1, et on a la propri´et´e :

La distanced d’un code (n, k, d) est major´ee par n−k+ 1.

Le pouvoir correcteurt d’un tel code v´erifie donc t≤E

n−k 2

.

(56)

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

(57)

Caract´ erisation d’un mot code

Matrice de contrˆole de parit´e : On consid`ere un code lin´eaireC de matrice g´en´eratriceG.

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

H GT = 0

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

H dT =H (c G)T =H GT cT = H GT

cT = 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 H dT = 0

(58)

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 matriceG est mise sous forme syst´ematique

G=

Ik |Pk×(n−k)

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

(PT)(n−k)×k |In−k

Ex :

G=

1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1

et, H=

1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1

(59)

Construction d’une matrice de contrˆole de parit´e :Soit un code lin´eaire dont la matriceG est mise sous forme syst´ematique

G=

Ik |Pk×(n−k)

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

(PT)(n−k)×k |In−k Ex :

G=

1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1

et, H=

1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1

(60)

Communication Num´erique Codes en bloc lin´eaires

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

(61)

Communication Num´erique Codes en bloc lin´eaires

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+ble mot re¸cu.

Alors, on a :HyT =H(c+b)T =HcT +Hbt=HbT

Ainsi, le vecteurs=H yT, ne d´epend que du bruit et non pas du mot envoy´e.

On l’appelle le syndrˆome associ´e `ay.

contrˆole de parit´e, et ne d´epend que du bruit et non pas du mot code ´emis.

A partir de la connaissance deH et de y, on peut donc esp´erer d´eterminer le bruit b, cars=HyT =HbT.

Une fois le bruit connu,cse d´eduit simplement parc=y⊕b.

(62)

Communication Num´erique Codes en bloc lin´eaires

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+ble mot re¸cu.

Alors, on a :HyT =H(c+b)T =HcT +Hbt=HbT

Ainsi, le vecteurs=H yT, ne d´epend que du bruit et non pas du mot envoy´e.

On l’appelle le syndrˆome associ´e `ay.

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 deH et de y, on peut donc esp´erer d´eterminer le bruit b, cars=HyT =HbT.

Une fois le bruit connu,cse d´eduit simplement parc=y⊕b.

(63)

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 erreurese soit effectivement gliss´ee dans la transmission d’un motc, cod´e par le mot d=cG, et receptionn´e selony=d+e.

L’erreur ´ecrit alorse= [0. . .0 1 0. . .0], le 1 ´etant `a la j`eme position. Le syndrˆome est

s=HyT =H(y+e)T =HdT +HeT =HeT =Hj, o`u Hj est laj`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.

(64)

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

(65)

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 entierm, les param`etres d’un code de Hamming sont de la forme(2m−1,2m−m−1,3).

Par exemple,

• (7,4,3)pourm= 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.

elle aussi erron´ee...

(66)

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 entierm, les param`etres d’un code de Hamming sont de la forme(2m−1,2m−m−1,3).

Par exemple,

• (7,4,3)pourm= 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...

(67)

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 :

• 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.

(68)

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.

(69)

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.

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.

(70)

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.

(71)

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.

(72)

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

(73)

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

(74)

Communication Num´erique Autres codes

Codes cycliques

Code cyclique

Les codes cycliques forment une sous-classe des codes lin´eaires.

Un codeC est dit cyclique si

a= [a1a2 . . . an]∈ C ⇐⇒a0 = [ana1 . . . an−1]∈ C

Les codes cycliques sont des codes dont l’algorithme d’encodage est facile `a implanter grˆace `a des registres `a d´ecalages.

L’algorithme de d´ecodage est quant-`a lui plus difficile `a mettre en œuvre.

L’encodage et le d´ecodage de codes cycliques reposent sur la notion de polynˆomes sur un corps fini, dont la th´eorie

math´ematique d´epasse largement l’ambition de ce cours.

(75)

Code cyclique

Les codes cycliques les plus utilis´es `a l’heure actuelle sont les codes deReed-Solomon.

Ces codes sont optimums, dans le sens o`u ils n´ecessitent un nombre minimum de redondance(n−k)pour obtenir une distance minimale donn´ee, et donc un nombre maximum d’erreurs qui peuvent ˆetre corrig´ees :t= n−k

2

Pour les modems ADSL, le code utilis´e est RS(240,224,8)

(76)

Communication Num´erique Autres codes

Codes cycliques

Ces codes peuvent-ˆetres utilis´es comme base de codes entrelac´es : les CIRC(Cross-InterleavedReed Solomon Code), utilis´es

notamment sur les supports d’enregistrement du type CD ou DVD) L’entrelacement consiste `a m´elanger les blocs afin de “diluer”

l’information. Cette proc´edure permet en particulier de minimiser l’effet d’une bouff´ee d’erreurs (rayure sur un CD . . .).

(77)

Communication Num´erique Autres codes

Codes cycliques

Codage avec un code CIRC :

L’id´ee du codage CIRC est de coder avec un premier code C1, puis d’entrelacer les blocs, et enfin, de coder dans la foul´ee avec un deuxi`eme codeC2.

D´ecodage d’un code CIRC :

Pour d´ecoder, on peut alors s’appuyer sur le double codage : on d´ecode avec C2, on d´esentrelace, puis on d´ecode avec C1.

L’apport important de ce code r´eside dans le traitement it´eratif du d´ecodage :

C1 permet de corriger certaines erreurs,C2 ensuite en corrige d’autres. Le message peut alors `a nouveau ˆetre d´ecod´e par C1 . . .

(78)

Communication Num´erique Autres codes

Codes cycliques

Codage avec un code CIRC :

L’id´ee du codage CIRC est de coder avec un premier code C1, puis d’entrelacer les blocs, et enfin, de coder dans la foul´ee avec un deuxi`eme codeC2.

D´ecodage d’un code CIRC :

Pour d´ecoder, on peut alors s’appuyer sur le double codage : on d´ecode avec C2, on d´esentrelace, puis on d´ecode avec C1.

L’apport important de ce code r´eside dans le traitement it´eratif du d´ecodage :

C1 permet de corriger certaines erreurs,C2 ensuite en corrige d’autres. Le message peut alors `a nouveau ˆetre d´ecod´e par C1 . . .

Voir aussi `a ce sujet lesturbo codes. . .

Références

Documents relatifs

Source Code correcteur Encodage. Codage

[r]

Le groupe sym´ etrique S n est engendr´ e par les transpositions, c’est-` a-dire que toute permutation est un produit de

On est parfois amen´ e, pour des raisons de stabilit´ e num´ erique, ` a effectuer des ´ echanges de lignes mˆ eme si le test (3) est n´ egatif (c’est ` a dire que le pivot est

Input: 50k point set P Output: estimated edges and directions I Application of the witnessed k-distance to curvature estimation and edge recovery.. [Cuel, Lachaud, M.,

Cette simulation est bas´ee sur une discr´etisation num´erique du probl`eme `a l’aide des ´ el´ ements finis de Lagrange..

Fast diffusion equations on the Euclidean space (without weights) B Euclidean space: R´enyi entropy powers.. B Euclidean space: self-similar variables and relative entropies B The

B Entropy and Caffarelli-Kohn-Nirenberg inequalities B Large time asymptotics and spectral gaps.. B