Vous êtes sur la page 1sur 24

INFO245 : Mathématiques pour l’Informatique

Séance 7 : Codage

M. L. BALDE

UFR SAT, L2INFO


Université Gaston Berger de Saint-Louis

2020 − 2021

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


M. L. BALDE INFO245 : Mathématiques pour l’Informatique
Codage par blocs

La technique du codage par blocs consiste :


Pour l’expéditeur :
1 A découper le paquet de bits à transmettre en blocs ayant
tous une certaine longueur fixée à l’avance.
2 A coder chaque bloc en lui ajoutant un nombre fixé de bits de
contrôle, dépendant du bloc, afin d’obtenir un mot de code.
3 A transmettre le mot de code.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Codage par blocs

La technique du codage par blocs consiste :


Pour le receveur :
1 A vérifier que le mot binaire reçu est bien un mot de code

(c’est la détection), ou bien à corriger le mot binaire reçu en


le remplaçant par le mot de code le plus vraisemblable (c’est
la correction).
2 A extraire le bloc du mot de code accepté ou corrigé, c’est le
décodage.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Codage par blocs

Définition
On appelle bloc de dimension k tout mot binaire de longueur k.

On code un bloc en lui adjoignant r bits supplémentaires appelés


bits de contrôle, ou encore bits de parité.

Les mots binaires de longueur n ainsi obtenus sont les mots de code
et l’ensemble des mots de code est le code.

La longueur n = k + r d’un mot de code s’appelle la longueur du


code. Un mot binaire de longueur n s’appellera un message.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Codage par blocs
Lorsqu’on place les bits de contrôle à la fin d’un bloc, on dit que
le codage est systématique. L’avantage est qu’on retrouve très
facilement le bloc à partir du mot de code, il suffit de ne garder
que les k premiers bits. Ces k premiers bits s’appellent les bits
d’information.

L’ensemble des blocs est Bk , l’ensemble des messages est Bn . Le


codage est l’application ϕ : Bk → Bn qui associe à un bloc son mot
de code.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Codage par blocs

Le rapport τ = k/n, qui mesure, parmi les bits transmis, la propor-


tion de ceux qui sont réellement porteurs d’information, s’appelle le
rendement (ou le taux) du code.

Plus τ est élevé plus on transmettra d’information dans un temps


donné.
Remarque
En quelque sorte le bloc constitue la marchandise à envoyer, et
les bits de contrôle l’emballage qui la protège; plus l’emballage est
résistant, plus le paquet est lourd et plus le prix à payer est élevé . . .
Les bons codages sont ceux qui augmentent la sécurité sans trop
diminuer la vitesse de transmission.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Codage par blocs

Tests de parité
On regroupe les bits par blocs de dimension 3 et on ajoute à la fin
de chaque bloc un quatrième bit choisi de sorte que le nombre de 1
dans les mots de code soit toujours pair; par exemple 001 est codé
en 0011. Pour ce code k = 3, r = 1, n = 4 et le rendement est de
3/4.

Les mots de code sont représentés par les gros points sur la figure
suivante.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Codage par blocs

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Codage par blocs

Codage par répétition


Cette fois les bits d’information sont transmis un par un, mais on les
triple pour donner une allure caractéristique aux messages envoyés;
autrement dit 1 est codé en 111 et 0 en 000.
Pour ce code k = 1, r = 2, n = 3 et le rendement est de 1/3.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Principe
Le destinataire fait le pari que l’erreur commise est l’erreur la plus
probable, donc celle qui correspond au vecteur d’erreur de plus petit
poids et il va remplacer le message reçu par le mot de code le plus
proche.

Méthode pratique pour corriger un message


1 Déterminer Γ(R) l’ensemble des vecteurs d’erreur pour R.
2 Déterminer le message de plus faible poids dans Γ(R).
3 Ajouter ce message à R pour obtenir le mot de code qui va
remplacer R.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Remarque
Sur le n-cube, cette méthode revient à repérer le sommet marqué
par un gros point qui est le plus proche de R et à remplacer R par
le mot de code associé à ce sommet.

Définition
On appelle distance minimale du code et on note d, la plus petite
distance séparant deux mots de code distincts.

La distance qui sépare deux mots de code distincts quelconques est


toujours supérieure ou égale à d et il arrive qu’elle soit égale à d
pour certains mots de code.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Exemple
d = 2 pour le test de parité et d = 3 pour le codage par répétition.

Théorème
Le receveur détecte de façon certaine tous ls messages faux tant
que le nombre d’erreurs N, vérifie 0 < N < d. Par contre certains
messages faux comportant d erreurs ou plus ne sont pas détectés.

En résumé, le receveur peut détecter de façon certaine jusqu’à


(d − 1) erreurs, mais il ne faut pas perdre de vue qu’il lui arrive de
détecter la présence d’erreurs quand il y en a davantage. C’est le
cas par exemple quand N n’est pas une distance séparant deux
mots de code.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

☞ Avec le test de parité,tous les messages faux comportant 1 ou


3 erreurs sont détectés, tous les messages faux comportant 2
ou 4 erreurs passent inaperçus.
☞ Avec le codage par répétition, tous les messages comportant 1
ou 2 erreurs sont détectés.

Théorème
Les messages sont bien corrigés tant que le nombre d’erreurs N
vérifie 0 ≤ N < d/2. Par contre les messages faux tels que d/2 ≤ N
ne sont pas forcément bien corrigés.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

☞ La figure de gauche représente deux mots de code C et D tels


que d(C , D) = d, et un message R qui sera mal corrigé parce
que d(R, C ) > d/2.
☞ La figure de droite montre un message R situé à égale
distance de C et D mais qui sera quand même mal corrigé si
l’on fait fait un mauvais choix.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Dans toute la suite, on note t le plus grand entier strictement


inférieur à d/2. On a :

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Tout message faux ayant t erreurs ou moins est corrigé de façon


parfaite et il existe des messages faux mal corrigés qui ont (t + 1)
erreurs; on dit que t est le nombre d’erreurs corrigées par le code,
mais il ne faut pas perdre de vue que la correction pourrait parfois
être bonne, mais il ne faut pas perdre de vue que la correction
pourrait parfois être bonne, même quand il y a davantage d’erreurs.

Notation
Les trois nombres : longueur, dimension et distance minimale jouent
un rôle fondamental dans la description d’un code; lorsqu’on veut
les mentionner on dit qu’on a affaire à un code [n, k, d].

Le test de parité est un code [4, 3, 2] alors que le codage par


répétition est un code [3, 1, 3].

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Notation
De façon formelle, si on ne précise pas la valeur de d, on dit simple-
ment qu’on a affaire à un code [n, k].

☞ Plus d est grand, plus le code détecte et corrige les erreurs


avec efficacité.
☞ Géométriquement cela demande que les mots de code soient
éloignés le plus possible les uns des autres.
☞ Si la dimension k du code est fixée, le nombre de mots de
code est fixé et pour augmenter d le plus simple consisterait à
augmenter le nombre de messages intercalés entre les mots de
code, ce qui reviendrait à augmenter n.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

☞ Toutefois, en procédant ainsi, le rendement k/n décroı̂t et la


vitesse de transmission de l’information diminue.
☞ Les bons codes sont ceux pour lesquels le rendement k/n et la
distance minimale d sont grands tous les deux.
Si l’on fixe k et r , l’ensemble Bn des messages est fixé ainsi que le
nombre de mots de code.
Problème
Comment marquer d’un gros point 2k sommets du n-cube de sorte
que les sommets marqués soient le plus possible éloignés les uns des
autres ?

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Pour k = 1 et r = 2, les figures suivantes représentent trois codes


correspondant respectivement à d = 1, d = 2 et d = 3.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Dés qu’on choisit la façon de calculer les bits de contrôle, les mots
de code sont déterminés, ainsi que leur distance minimale. On bien
d ≤ n, mais on peut obtenir une majoration plus fine.
Théorème
Les nombres n, r et t sont liés par l’inégalité de Hamming :

Cn0 + Cn1 + Cn2 + · · · + Cnt ≤ 2r

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Si l’on s’est fixé k, r et n, l’inégalité précédente permet de déterminer


un majorant de t et, par la même occasion, un majorant de d, qu’on
appelle la borne de Hamming.
Méthode pratique pour majorer t
1 Calculer, dans l’ordre :

u0 = Cn0 u1 = Cn0 + Cn1 u2 = Cn0 + Cn1 + Cn2

jusqu’à ce qu’on dépasse 2r pour la première fois.


2 Le premier m tel que um > 2r est un majorant strict de t.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Si M est un message et p un entier vérifiant 0 ≤ p ≤ n, il y a Cnp


messages situés exactement à la distance p de M car ces messages
s’obtiennent en modifiant p bits pris de façon quelconque parmi les
n bits de M.
Notons S(M, m) la sphère de centre M et de rayon m, c’est-à-dire
l’ensemble des messages situés à une distance inférieure ou égale à
m de M.
Propriété
On constate que les deux membres de l’inégalité de Hamming sont
égaux si et seulement si les 2k sphères S(C , t) forment une partition
de Bn (où C est un mot de code).

M. L. BALDE INFO245 : Mathématiques pour l’Informatique


Correction et détection

Définition
Un code qui possède cette propriété s’appelle un code parfait.

☞ Dans un code parfait, chaque message est situé à une distance


inférieure ou égale à t d’un mot de code.
☞ Si l’on expédie C et si l’on reçoit R, ou bien d(C , R) ≤ t et le
message est bien corrigé, ou bien d(C , R) > t et le message
est mal corrigé.
☞ Un code parfait ne corrige jamais plus que t erreurs.
Le code par répétition de notre exemple est un code parfait.

M. L. BALDE INFO245 : Mathématiques pour l’Informatique

Vous aimerez peut-être aussi