LE CODEUR DE HAMMING



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.

codeur de Hamming 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.
Le 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] ?