Circuits Logiques ELE1300 Objectifs Introduction au code de Gray

Transcription

Circuits Logiques ELE1300 Objectifs Introduction au code de Gray
Objectifs
• Connaître
Circuits Logiques
ELE1300
des formes d’encodage de l’information en
binaire
Le concept de distance entre des mots binaires
• Être capable de
Codes et contrôle des erreurs
Passer d’un format d’encodage à un autre
Coder, détecter et corriger des erreurs de
transmission
JP David
Circuits logiques - JP David
9 avril 2013
Introduction au code de Gray
2
Le code de Gray
(CAS IDÉAL)
v2(t)
0
0
0
0
1
1
1
1
v1(t)
0
0
1
1
0
0
1
1
v0(t)
0
1
0
1
0
1
0
1
Nombre observé :
000
001
010
011
100
101
110
111
t
v2(t)
t
v1(t)
t
(CAS RÉEL)
v2(t)
v1(t)
v0(t)
Nombre observé :
v0(t)
0
0
0
0
0
1
0
1
0
000
001
010
011
9 avril 2013
0
1
1
1
0
1
0
1
0
1
0
011
100
101
110
101
Circuits logiques - JP David
0
0
0
1
1
1
1
t
0
0
1
1
1
1
0
0
t
0
1
1
000
001
011
0
0
1
1
010
110
111
101
0
1
1
111
0
1
1
111
Nombre observé :
t
100
t
t
t
111
3
9 avril 2013
Circuits logiques - JP David
4
Décimal Codé Binaire (BCD)
Construction du code de Gray
Il est possible de construire la séquence du code de Gray
de façon itérative jusqu’au nombre de bits désiré.
Début
Itération 1
résultat
précédent
des 0
00
01
11
10
0
1
Itération 2
résultat
précédent
des 0
0 00
0 01
0 11
0 10
1 10
1 11
1 01
1 00
mirroir
des 1
mirroir
…
• Quand on veut afficher la valeur 13h27 (par
exemple sur un four à micro-ondes), il faut
afficher 4 chiffres décimaux. On peut alors
utiliser un codage binaire pour chaque
chiffre plutôt que pour le nombre lui-même.
• 1327 = 1|3|2|7 = 0001 | 0011 | 0010 | 0111
• On utilise donc 4 bits pour coder la valeur
de chaque chiffre
des 1
Circuits logiques - JP David
9 avril 2013
5
Circuits logiques - JP David
9 avril 2013
Le texte (codage ASCII)
D’où viennent les erreurs ?
L\H
0
1
2
3
4
5
6
0
NUL
DLE
SP
0
@
P
`
p
1
SOH
DC1
!
1
A
Q
a
q
2
STX
DC2
"
2
B
R
b
r
3
ETX
DC3
#
3
C
S
c
s
4
EOT
DC4
$
4
D
T
d
t
5
ENQ
NAK
%
5
E
U
e
u
6
ACK
SYN
&
6
F
V
f
v
7
BEL
ETB
'
7
G
W
g
w
8
BS
CAN
(
8
H
X
h
x
9
HT
EM
)
9
I
Y
i
y
A
LF
SUB
*
:
J
Z
j
z
7
B
VT
ESC
+
;
K
[
k
{
C
FF
FS
,
<
L
\
l
|
D
CR
GS
−
=
M
]
m
}
E
SO
RS
.
>
N
^
n
~
F
SI
US
/
?
O
_
o
DEL
Illustration de la problématique :
f {v(t)} + BRUIT
v(t)
ÉMETTEUR
CANAL
RÉCEPTEUR
DISTORSION
BRUIT
COUPURES
BITS ÉMIS
1
0
1
0
0
1
Circuits logiques - JP David
0
1
0
0
v(t)
t
f {v(t)} + BRUIT
BITS REÇUS
t
1
0
1
0
1
1
ERREUR
9 avril 2013
6
7
9 avril 2013
Circuits logiques - JP David
0
0
0
0
ERREUR
8
La distance Hamming
Exemple : le bit de parité
• Définition :
bn
Nombre d’inversion de bits entre 2 mots :
• Exemple : A = 11100000 et B = 10100011
• A XOR B = 01000011, soit une distance de 3
Le bit p est tel que :
ou
ou
le nombre de bits 0 est impair
9
9 avril 2013
Circuits logiques - JP David
Aucune détection
d’erreur possible
10
Exemple : le bit de parité (suite)
110
111
100
000
BITS ÉMIS :
1100
1111
1001
0000
BITS REÇUS :
1110
1111
0101
0001
INFORMATION À TRANSMETTRE :
Distance minimale
observée : 1 bit
codage le plus utilisé
le nombre de bits 1 est impair
Exemple : le bit de parité (suite)
0000
0011
0101
0110
1001
1010
1100
1111
bit de parité (ou d’imparité)
ou
Circuits logiques - JP David
000
001
010
011
100
101
110
111
p
le nombre de bits 0 est pair
• Soit 8 combinaisons licites/16 et la distance de Hamming
minimale entre deux mots vaut 2
MOT DE
CODE
b1
le nombre de bits 1 est pair
Pour des mots de 3 bits, on peut ajouter un bit de parité :
NOMBRE
BINAIRE
b2
n bits d’information
• Le principe de la détection d’erreur consiste à
augmenter artificiellement la distance entre 2
quelconques mots de données en ajoutant des bits
supplémentaires
9 avril 2013
bn −1 b3
Distance minimale
observée : 2 bits
Une erreur dans un
mot de code est
détectable.
PARITÉ NON VÉRIFIÉE
L’ERREUR EST DÉTECTÉE
PARITÉ VÉRIFIÉE
Capacité de détection :
1 erreur par mot de
code
PARITÉ VÉRIFIÉE
LES ERREURS NE SONT PAS DÉTECTÉES
PARITÉ NON VÉRIFIÉE
L’ERREUR EST DÉTECTÉE
9 avril 2013
Circuits logiques - JP David
11
9 avril 2013
Circuits logiques - JP David
12
La correction d’erreurs
La parité orthogonale
• Pour détecter des changements sur n bits, il faut
une distance de Hamming de n+1 entre tous les
mots licites.
• Pour détecter et corriger des changements sur n
bits, il faut une distance de Hamming de 2n+1 entre
tous les mots licites.
Ex, n=5, D=11
Si un mot subit 5 inversions de bit, il sera à une distance
5 du mot d’origine et minimum 6 de tous les autres. On
peut donc le retrouver en cherchant le seul et unique mot
donc la distance est inférieure ou égale à 5.
Circuits logiques - JP David
9 avril 2013
13
INFORMATION :
BITS ÉMIS :
9 avril 2013
La parité orthogonale (suite)
BITS ÉMIS :
1100
1111
1001
0000
1010
BITS REÇUS :
1100
1011
1001
0000
1010
L’ERREUR EST
CORRIGIBLE
0
1 0 1
1
1 0 0
1
0 0 0
0
1 0 1
0
111
1 1 0
0
1 1 1
1
1 0 0
1
0 0 0
0
1 0 1
0
1100
1111
100
000
1001
0000
1010
Circuits logiques - JP David
14
Le code de Hamming
• Soit un mot de N bits numérotés b0..bN-1
• On crée un nouveau mot de N+P bits
numérotés H0..HN+P-1
• Hx est un bit de parité pour x = 2j (1,2,4 …)
• Hi est un bit de donnée bk sinon.
• Soit B(i), l’expression binaire de i
Vérification :
1 1 0
110
PARITÉ NON VÉRIFIÉE
Hi participe au codage de parité de Hx si et
seulement si B(i) a un ‘1’ commun avec B(x)
PARITÉ NON VÉRIFIÉE
9 avril 2013
Circuits logiques - JP David
15
9 avril 2013
Circuits logiques - JP David
16
Le code de Hamming (suite)
A
Le code de Hamming (suite)
A
B
Parité A
Parité B
b1
b2
b3
Parité A
=?
b0
En parité paire, le
nombre de ‘1’ doit
être pair.
Parité A = 0
C
Circuits logiques - JP David
17
?
?
1
?
0
0
1
?
0
0
1
1
1
1
0
?
1
1
0
0
1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
• Le bit 4 se code en binaire : 00100, il sert donc à calculer la
parité de :00101 (5), 00110 (6), 00111 (7),01100 (12), 01101
(13), 01110 (14), 01111 (15),10100 (20), 10101 (21)
Circuits logiques - JP David
0
C
Circuits logiques - JP David
18
Le code de Hamming (suite)
• Encoder le nombre : 1001001111 0110 01
9 avril 2013
1
Parité C
=?
9 avril 2013
Le code de Hamming (suite)
Parité B
=?
0
1
Parité C
9 avril 2013
B
19
0
1
0
0
0
0
1
2
0
0
0
1
0
1
3
0
0
0
1
1
4
0
0
1
0
0
0
5
0
0
1
0
1
0
6
0
0
1
1
0
1
7
0
0
1
1
1
8
0
1
0
0
0
0
9
0
1
0
0
1
0
10
0
1
0
1
0
1
11
0
1
0
1
1
1
12
0
1
1
0
0
1
13
0
1
1
0
1
1
14
0
1
1
1
0
0
15
0
1
1
1
1
16
1
0
0
0
0
1
17
1
0
0
0
1
1
18
1
0
0
1
0
0
19
1
0
0
1
1
0
20
1
0
1
0
0
1
21
1
0
1
0
1
0
1
0
0
0
0
1
1
2
0
0
0
1
0
1
3
0
0
0
1
1
4
0
0
1
0
0
0
5
0
0
1
0
1
0
6
0
0
1
1
0
1
7
0
0
1
1
1
8
0
1
0
0
0
0
9
0
1
0
0
1
0
10
0
1
0
1
0
1
11
0
1
0
1
1
1
12
0
1
1
0
0
1
13
0
1
1
0
1
1
14
0
1
1
1
0
0
15
0
1
1
1
1
16
1
0
0
0
0
1
17
1
0
0
0
1
1
18
1
0
0
1
0
0
19
1
0
0
1
1
0
20
1
0
1
0
0
1
21
1
0
1
0
1
0
1
0
0
0
0
1
1
2
0
0
0
1
0
1
3
0
0
0
1
1
1
4
0
0
1
0
0
0
5
0
0
1
0
1
0
6
0
0
1
1
0
1
7
0
0
1
1
1
8
0
1
0
0
0
0
9
0
1
0
0
1
0
10
0
1
0
1
0
1
11
0
1
0
1
1
1
12
0
1
1
0
0
1
13
0
1
1
0
1
1
14
0
1
1
1
0
0
15
0
1
1
1
1
16
1
0
0
0
0
1
17
1
0
0
0
1
1
18
1
0
0
1
0
0
19
1
0
0
1
1
0
20
1
0
1
0
0
1
21
1
0
1
0
1
0
1
0
0
0
0
1
1
2
0
0
0
1
0
1
3
0
0
0
1
1
1
4
0
0
1
0
0
0
5
0
0
1
0
1
0
6
0
0
1
1
0
1
7
0
0
1
1
1
0
8
0
1
0
0
0
0
9
0
1
0
0
1
0
10
0
1
0
1
0
1
11
0
1
0
1
1
1
12
0
1
1
0
0
1
13
0
1
1
0
1
1
14
0
1
1
1
0
0
15
0
1
1
1
1
16
1
0
0
0
0
1
17
1
0
0
0
1
1
18
1
0
0
1
0
0
19
1
0
0
1
1
0
20
1
0
1
0
0
1
21
1
0
1
0
1
0
1
0
0
0
0
1
1
2
0
0
0
1
0
1
3
0
0
0
1
1
1
4
0
0
1
0
0
0
5
0
0
1
0
1
0
6
0
0
1
1
0
1
7
0
0
1
1
1
0
8
0
1
0
0
0
0
9
0
1
0
0
1
0
10
0
1
0
1
0
1
11
0
1
0
1
1
1
12
0
1
1
0
0
1
13
0
1
1
0
1
1
14
0
1
1
1
0
0
15
0
1
1
1
1
1
16
1
0
0
0
0
1
17
1
0
0
0
1
1
18
1
0
0
1
0
0
19
1
0
0
1
1
0
20
1
0
1
0
0
1
21
1
0
1
0
1
9 avril 2013
Circuits logiques - JP David
20