1. Fonctionnement du codeur :
Le code de Hamming nous permet d’identifier la position d’un bit de donnée erroné. Le codeur [H] génère ses bits de contrôle selon la technique
suivante :
1. Les positions des bits à la sortie du codeur sont organisées selon le protocole ci-dessous :
a. Les positions 2k avec k =0,1,2…. k étant le rang ou l’ordre du bit est un bit de contrôle [H]. Par exemple la position
22 = 4 est un bit de contrôle nommé H4.
b. Les autres positions seront des bits de données [D]. Par exemple la position 12, si jamais elle existe, sera un bit de donnée D12
car il n’y a pas un nombre entier k tel que 2k = 12. La figure ci-dessous illustre une trame de sortie du codeur [H] avec les
positions correspondantes des bits de contrôle et les bits de données.
2- Calcul des bits de contrôle [H] : 2. Les valeurs des bits [H] sont calculées selon le protocole suivant :
On écrit la position d’un bit de donnée [D] en fonction des positions des bits de contrôle [H] correspondant, la seule contrainte est
que la position de [H] ne peut se présenter qu’une seule fois dans notre calcul . Par exemple la position du bit de donnée D6,
le chiffre 6 est 2+4 et non 2+2+2 ou 1+1+2+2. Selon notre exemple de la figure ci-dessus on a les positions des bits D3,D5,
D6,D7,D9 et D10 selon le suivant :
3 = 2+1, 5 = 4+1, 6 = 4+2, 7 = 4+2+1, 9 = 8+1 et 10 = 8+2.
La dernière étape est de trouver les valeurs des bits [H] = [H8,H4,H2,H1]. Ces valeurs sont
calculées suite à une opération OU-EX ‘⊕’ des valeurs des bits de données :
H1 = D3⊕D5⊕D7⊕D9,
H2 = D3⊕D6⊕D7⊕D10,
H4 = D5⊕D6⊕D7 et
H8 = D9⊕D10.
Le transmetteur envoie la trame [D|H] au récepteur.
LE DÉCODEUR DE HAMMING
3. Détection et correction de l’erreur :Le schéma bloc ci-dessous nous montre les opérations de détection d’un bit de donnée en erreur
exécutées au niveau du récepteur ou du décodeur de Hamming.
3.1 Fonctionnement du décodeur : Le récepteur reçoit la trame [D’|H] du transmetteur elle a un bit D'7 en erreur.
Il sépare les bits [D’] des bits de contrôle [H].
Il code de nouveau les bits de données reçues et recalcule leur code [H’] selon [D’].
Le transmetteur envoie la trame [D|H] au récepteur.
Il effectue une comparaison entre les bits [H] reçues et les bits [H’] calculées. Cette opération s’appelle l’évaluation du syndrome [E] de
la trame et il est calculé avec un OU-EX ‘⊕’ tel que : [E] = [H]⊕[H’].
Si [E] = [0] le récepteur déduit que [D] = [D’] donc aucune erreur de transmission.
Si [E] ≠ [0] alors la valeur de [E] à base 10 lui indique la position du bit en erreur. Dans notre exemple la valeur du syndrome [E] est
égale à [0 1 1 1] = 710 donc D’7 est en erreur et le récepteur le corrige.
assignmentEXERCICES : HAMMING
assignment
1- Calculez le nombre des bits de Hamming [H] nécessaires pour coder 1 kbits de données [D].
2- Quelle est la plus grande taille d'une trame [D] codée avec 14 bits de contrôle [H] ?
3- Quelle est la position du bit [D] en erreur si [H] = [1 0 0 1 0 1 1] et celui calculé au décodeur [H'] = [1 1 0 0 1 1 0] ?