Cest une technique de codage qui permet à la fois la détection et la correction d'erreurs dans les données transmises. Il fonctionne en ajoutant des bits de parité aux données d'origine, ce qui permet de repérer les erreurs et de les corriger si nécessaire. Dans ce cours, nous allons explorer la structure d'un mot de code de Hamming, comment détecter les erreurs, et comment corriger ces erreurs en utilisant un exemple concret.
Structure d'un mot de code de Hamming :
Un mot de code de Hamming est composé de deux parties : les m bits du message d'origine à transmettre et les n bits de contrôle de parité. La longueur totale du mot de code est donnée par 2^n - 1, tandis que la longueur du message est m = (2^n - 1) - n. On parle donc de code x - y où x = n + m et y = m.
Exemple de code de Hamming :
Prenons quelques exemples pour illustrer cela :
Un mot de code 7 - 4 a un coefficient d'efficacité de 4/7, soit 57%.
Un mot de code 15 - 11 a un coefficient d'efficacité de 11/15, soit 73%.
Un mot de code 31 - 26 a un coefficient d'efficacité de 26/31, soit 83%.
Les bits de contrôle de parité, notés Ci, sont placés en position 2^i pour i = 0, 1, 2, ... Les bits du message, notés Dj, occupent le reste du message.
Détecter et corriger les erreurs :
Pour détecter et corriger les erreurs dans un mot de code de Hamming, nous devons vérifier les bits de contrôle de parité C'2, C'1, et C'0 à la réception.
Si C'0 vaut 1, les valeurs possibles de C'2C'1C'0 sont 001, 011, 101, 111, ce qui correspond aux positions 1, 3, 5, 7.
Si C'1 vaut 1, les valeurs possibles de C'2C'1C'0 sont 010, 011, 110, 111, ce qui correspond aux positions 2, 3, 6, 7.
Si C'2 vaut 1, les valeurs possibles de C'2C'1C'0 sont 100, 101, 110, 111, ce qui correspond aux positions 4, 5, 6, 7.
Exercice : Déterminons s'il y a une erreur dans le mot suivant : 1 0 1 0 1 1 0
Correction de l'exercice :
C'2 vaut 1 + 0 + 1 + 0 = 0 (bits d'indice 7, 6, 5 et 4).
C'1 vaut 1 + 0 + 1 + 1 = 1 (bits d'indice 7, 6, 3 et 2).
C'0 vaut 1 + 1 + 1 + 0 = 1 (bits d'indice 7, 5, 3 et 1).
C'2C'1C'0 vaut 011, soit 3 en base 10. Il y a donc une erreur à l'indice 3 du mot. Le mot correct est donc 1 0 0 0 1 1 0.
Le code de Hamming est un moyen efficace de détecter et de corriger les erreurs de transmission dans les données. Il est basé sur l'ajout de bits de parité aux données d'origine et permet de localiser et de résoudre les erreurs, ce qui en fait une technique précieuse dans les communications modernes.