(Code de communication 10 [Mode de compatibilité])

Transcription

(Code de communication 10 [Mode de compatibilité])
Chapitre 3
Notion sur les codes de
communication
1001001
Emetteur
02.02.12
CANAL DE
COMMUNICATION
1001001
Récepteur
1
Chapitre 3 : Généralités
Il s’agit de représenter des données ou messages, par des combinaisons de
chiffres ou de mots. Une telle combinaison est donc utilisée comme un moyen
d’identifier un message. Un message peut être de plusieurs natures :
• numérique, alphanumérique,
• signe typographique,
• ordre de commande pour une machine (imprimante,…).
On s’intéresse ici aux codes qui utilisent des combinaisons de n digits, n étant
constant. Ce sont des « codes de blocs ». Avec n chiffres de la base B, il est
possible de former Bn combinaisons (Mots) différentes permettant de
constituer (Bn)! codes différents. En effet, si il y a autant de messages que de
codes, il y a Bn façons de coder M1, ensuite Bn-1 façon de coder M2, …
Rq : Si le nombre de message est inférieur au nombre de code il est possible
d’utiliser les codes en trop pour détecter les erreurs de transmissions.
02.02.12
2
Chapitre 3 : Codage
Les codes adjacents :
Dans un système de base B, deux mots sont dit adjacents s’il
diffèrent d’une unité modulo B. Ainsi deux mots consécutifs sont
dit adjacents (0 et B-1). Pour un nombre de n mots, il existe 2.n
mots adjacents. Par exemple les six mots adjacents au mots 395
(codé en décimal) sont :
295
02.02.12
495
385
305
394
396
3
Chapitre 3 : Codage
Naturel
Code naturel et Code réfléchi :
Les codes réfléchis sont caractérisés
par le fait que deux nombres
consécutifs ne diffèrent que d’un seul
digit (adjacence).
On qualifie un code d’adjacent
cyclique si en plus le dernier code
et adjacent au premier :
02.02.12
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Réfléchi:Gray53
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
4
Chapitre 3 : Codage
Application du code binaire réfléchi : codeur de position angulaire
Code naturel
Passage de 011 à 100
111
000
1
LSB
0
110
001
MSB
LSB
t
1
0
t
101
010
1
MSB
0
100
011
t
011
100
001
Commutation de plusieurs
contacts électriques à la fois
02.02.12
000
Loupe
temporelle
5
Chapitre 3 : Codage
Application du code binaire réfléchi : codeur de position angulaire
Code de Gray
100
000
101
001
Deux portions voisines du codeurs
donnent deux codes adjacents
111
011
110
010
Commutation d’un seul
contact électrique à la fois
02.02.12
6
Chapitre 3 : Codage
Application du code de Gray : codeur de position angulaire 8 bits
MSB
02.02.12
LSB
7
Chapitre 3 : Codage
Les codes pondérés décimaux :
Les codes pondérés décimaux sont des
codes où chaque digit de la
représentation décimale du nombre est
codé sur n bits (n>=4).
Le Code Décimal Codé Binaire
(Binary-Coded-Decimal) :
8421
0
1
2
3
4
5
6
7
8
9
10 (A)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
0001 0000
11 (B)
12 (C)
0001 0001
0001 0010
13 (D)
0001 0011
14 (E)
0001 0100
0001 0101
15 (F)
02.02.12
8
Chapitre 3 : Généralités
BRUIT
1001001
Emetteur
1000001
CANAL DE
COMMUNICATION
REEL
Récepteur
• Comment le récepteur peut-il détecter l’erreur ?
• Comment le récepteur peut-il localiser une erreur ?
• Comment le récepteur peut-il corriger une erreur ?
02.02.12
9
Chapitre 3 : Généralités
Approche Naïve : la répétition
BRUIT
1001001
1001001
1000001
1001001
Emetteur
Récepteur
Échantillons différents :
détection d’une erreur
Correction de l’erreur impossible
Pour corriger l’erreur : envoi de trois exemplaires, les deux identiques
identifie le bon message…
02.02.12
10
Chapitre 3 : Généralités
Remarques :
• La détection et la correction des erreurs entraînent une augmentation de la
longueur du code à transmettre. (REDONDANCE D’INFORMATION)
• Certaines erreurs ne peuvent pas être détectées
• Certaines erreurs détectées ne peuvent pas être corrigées
• La répétition du message n’est pas une bonne solution (trop coûteuse en
longueur de code). En se limitant à la détection et en redemandant une
émission en cas d’erreur, on limite cet inconvénient.
• Les codes détecteurs sont plus souvent utilisés que les codes correcteurs mais :
lorsque le canal est unidirectionnel
lorsque la distance est élevée (satellite)
lorsque les erreurs sont isolées
les codes correcteurs peuvent (ou doivent) être utilisés.
02.02.12
11
Chapitre 3 : Codage
Les codes détecteurs d’erreurs : Code avec contrôle de parité.
On ajoute au message un digit de parité tel que le nombre total de 1 du message
complet soit par exemple toujours impair ou pair.
Si la donnée à transmettre est :
•
•
Bit de parité
1 0 1 1 0 on transmettra pour avoir une parité impaire 1 0 1 1 0 0
1 0 1 1 0 on transmettra pour avoir une parité paire
101101
A la réception, la présence d’un nombre pair ou impair de 1 décèlera
une erreur. Ce code est utilisé dans les transmissions série (RS232).
02.02.12
12
Chapitre 3 : Codage
Codes détecteurs d’erreurs.
Le Code N parmi P :
Code 2 parmi 5
Code pondéré (63210)
Décimal détecteur d’erreur
Il a la particularité de toujours avoir 2 bits à 1 par code. On
remarque que seul le code zéro ne respecte pas les
pondérations assignée à chaque bit.
02.02.12
0
00110
1
00011
2
00101
3
01001
4
01010
5
01100
6
10001
7
10010
8
10100
9
11000
13
Chapitre 3 : Codage
Exemple de code détecteur d’erreur : Les codes à barres qui utilisent un
codage N parmi P
L’un des codes les plus répandus dans l’industrie est le code ‘3 parmi 9, encore
appelé ‘39’. Dans ce code, chaque barre et chaque intervalle peut être soit large
soit étroit. Large est associé à la valeur binaire 1 et étroit à 0.
1 1 1
02.02.12
14
Chapitre 3 : Codage
Chaque chiffre ou lettre est codé par un ensemble de 5 barres et 4 intervalles,
soit 9 digits qui forme un mot de 5 digits correspondant au codage de la largeur
des barres et un mots de 4 digits correspondant au codage de la largeur des
intervalles.
Barres : 01001
Intervalles : 0010
B
Dans le code barre ‘3 parmi 9’, on dénombre 3 éléments larges exactement (barre
ou intervalle), soient 3 valeurs 1 parmi 9. Le code ‘39’ de toutes les valeurs
alphanumériques est donné dans le transparent suivant. Les différentes variables
alphanumériques codées sont listées dans le tableau donné dans le transparent
suivant :
02.02.12
15
Chapitre 3 : Codage
Caractère
1
2
3
4
5
6
7
8
9
0
A
B
C
D
E
F
G
H
I
J
K
L
Code des
barres
10001
01001
11000
00101
10100
01100
00011
10010
01010
00110
10001
01001
11000
00101
10100
01100
00011
10010
01010
00110
10001
01001
02.02.12
Code des
intervalles
0100
0100
0100
0100
0100
0100
0100
0100
0100
0100
0010
0010
0010
0010
0010
0010
0010
0010
0010
0010
0001
0001
Code
d’erreur
1
2
3
4
5
6
7
8
9
0
10
11
12
13
14
15
16
17
18
19
20
21
Caractère
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
.
Espace
*
$
/
+
%
Code des
barres
11000
00101
10100
01100
00011
10010
01010
00110
10001
01001
11000
00101
10100
01100
00011
10010
01010
00110
00000
00000
00000
00000
Code des
intervalles
0001
0001
0001
0001
0001
0001
0001
0001
1000
1000
1000
1000
1000
1000
1000
1000
1000
1000
1110
1101
1011
0111
Code
d’erreur
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
16
Chapitre 3 : Codage
Le codage à barre d’une pièce consiste à lui affecter un code alphanumérique
appelé message, BK5 par exemple, puis à le transformer en une succession de
barres et d’intervalles conformément à l’état binaire associé à chacune des valeurs
B, K, 5 pour notre exemple.
Ce code souvent complété par un caractère de contrôle égal à la somme modulo 43
de la valeur du message. La valeur de contrôle de chaque chiffre ou lettre est
donnée dans les colonnes 4 et 8 du tableau (code d’erreur).
B
K
5
contrôle
-
La valeur de la somme de B,K et 5 correspond à l’addition suivante : 11 + 20 + 5
=36. On retrouve bien sur ces 5 dernières barres le code correspondant au tiret
dont la valeur de contrôle est égale à 36.
02.02.12
17
Chapitre 3 : Codage
Autre exemple : le code postal
Opération de reconnaissance optique
de caractères par traitement OCR, puis
traduction en code à barres sous la
forme
de
bâtonnets
fluorescents
imprimés sur le courrier postal.
Le code est un 3 parmi 5 :
séparateur
02.02.12
11010
18
Chapitre 3 : Codage
Autres codes :
Code numérique très dense, mais dont la moins bonne fiabilité
intrinsèque oblige à l'utiliser soit en longueur fixe, soit avec une clé de
contrôle. Le code 2 parmi 5 entrelacé utilise la même codification des
caractères que le code 2 parmi 5, mais en entrelaçant les caractères
deux par deux. Le premier caractère est codé avec les barres, tandis que
le deuxième utilise les espaces de la même zone, et ainsi de suite. Les
chiffres de rang impair sont donc codés avec les barres, tandis que les
chiffres de rang pair sont codés avec les espaces. La conséquence est
que le code 2 parmi 5 entrelacé encode toujours un nombre pair de
caractères. Ce code utilise pour chaque caractère cinq éléments, dont 2
sont larges, d'où son nom.
Code numérique très dense spécifié par le GENCOD pour les
applications de la grande distribution. Les symboles EAN codent 12
ou 8 chiffres, le cas le plus normal étant 12 caractères (toujours
numériques). En plus de ces caractères, est toujours encodée une clé
de contrôle. Pour certaines applications particulière de ce code, des
caractères supplémentaires sont ajoutés à la droite du symbole de
base, séparés de celui ci par un espace (identification des journaux et
magazines).
02.02.12
19
Chapitre 3 : Codage
Le Code ASCII (American Standard Code for Information Interchange).
Code utilisé pour un ensemble de caractères utilisés en bureautique (lettre
minuscules, majuscules, chiffres) ainsi que des caractères spéciaux. C’est le code
retenu pour stocker les données d’un fichier texte (*.txt).
Initialement codé sur 7 bits, le code ASCII étendu est utilisé maintenant sur 8 bits
pour prendre en compte plus de caractères utilisés (en particulier les caractères
accentués).
Les codes de 0 à 31 ne sont pas des caractères mais des codes de contrôle (retour à
la ligne,…..);
Les codes de 65 à 90 représentent les minuscules et les majuscules de 97 à 122 (+32
ou modification du 5ème bit));
Pour couvrir
tous les alphabets, il faut utiliser d’autre code : unicode (16 bits).
02.02.12
20
Chapitre 3 : Codage
02.02.12
21
Chapitre 3 : Codage
Les codes détecteur/correcteurs d’erreurs : Code de Hamming
Ce code permet de détecter et de corriger, certaines erreurs affectant leur transmission. La
structure d’un mot codé avec un code (n,k) est la suivante :
b0
b1
..
bn-k-1
m0
m1
..
..
..
mk-1
Contrôle sur n-k bits B=[b0 b1 …bn-k-1] Message sur k bits M=[m0 m1 …mk-1]
Pour obtenir la partie contrôle, il faut utiliser une matrice génératrice de code :
G = [ Pk ,n − k | I k ,k ]
tel que C=(MG)(2)
I k ,k
: matrice identité de rang k qui assure la recopie de M dans C
Pn − k , k : matrice dite de parité qui sert à générer les bits de contrôle.
02.02.12
22
Chapitre 3 : Codage
Exemple du code de Hamming (7,4) : le mot complet de code n =7 bits et le message de k
=4 bits, le contrôle se fait sur n-k=3 bits. Ce code permet de détecter et corriger des erreurs
simples (erreur sur 1 bit).
1 1 0 1 0 0 0


0
1
1
0
1
0
0

C= 1 0 0 1 0 1 1
G=
M= 1 0 1 1
1 1 1 0 0 1 0


1
0
1
0
0
0
1


Cette structure particulière permet de détecter les erreurs de transmissions. Pour cela, on
utilise une matrice de contrôle H tel que H soit orthogonale à G :
GH T = 0
La structure de la matrice H découle de celle de G : H =  I n − k | PkT,n − k 
1 0 0 1 0 1 1


H = 0 1 0 1 1 1 0
0 0 1 0 1 1 1


On peut remarquer que H est une matrice binaire à k lignes et n colonnes : les colonnes
contiennent les représentations binaires des entiers entre 1 et n.
02.02.12
23
Chapitre 3 : Codage
Avec la propriété d’orthogonalité, pour un mot de code C, on a :
CH T = MGH T = 0
A la réception d’un code erroné : Y= C+E, le résultat précédent devient :
YH T = MGH T + EH T = EH T = S
S est appelé syndrome de l’erreur. Ce syndrome peut être calculé et tabulé ce qui peut
permettre, au final de corriger, un certain nombre d’erreurs. Cette phase de correction
d’erreur se déroule de la manière suivante :
• Réception du message corrompu : Y,
• Calcul du syndrome : S,
• Identification de E,
• En sachant que (E ⊕ E)(2)=0, reconstruction de C= Y⊕ E.
02.02.12
24
Chapitre 3 : Codage
Exemple avec G et H définies précédemment:
a ] Compléter le tableau tabulant le syndrome S :
Erreur E
Syndrome S= E HT
000 0000
000
000 0001
101
000 0010
111
000 0100
110
000 1000
110
001 0000
110
010 0000
010
100 0000
001
b ] On veut envoyer le message suivant M = [1 0 0 1]. Construire le mot code C.
c ] Après transmission le message reçu est Y = [0 1 0 1 0 0 1]. Calculer le syndrome S.
d ] Reconstituer le message corrigé.
02.02.12
25