Français
Électrotechnique

code de Hamming

Anglais: Hamming code

Toute famille de codes correcteurs d'erreurs linéaires qui généralisent le code Hamming(7,4) inventé par Richard Hamming en 1950.

Code de Hamming : détection d'erreurs intégrée aux données

Un code de Hamming est une méthode d'encodage de données avec des bits supplémentaires afin que les erreurs sur un seul bit puissent être détectées et corrigées automatiquement. La variante pratique la plus courante, Hamming(7,4), prend 4 bits de données réelles et ajoute 3 bits de parité, produisant un mot de code de 7 bits. Lorsque ce bloc de 7 bits transite par des composants électroniques ou un stockage bruyants, tout basculement d'un seul bit peut être localisé précisément par le récepteur et rétabli dans son état d'origine, le tout sans demander de retransmission.

L'élégance des codes de Hamming réside dans leur structure systématique. Chaque bit de parité couvre un sous-ensemble spécifique des bits de données, positionnés aux puissances de deux (positions 1, 2, 4 dans un mot de 7 bits). En vérifiant quels bits de parité échouent, le décodeur calcule une adresse binaire pointant directement vers le bit basculé. C'est pourquoi Hamming(7,4) peut corriger toute erreur unique dans un bloc de 7 bits : les trois bits de parité créent 2^3 = 8 valeurs de syndrome possibles, suffisantes pour identifier l'une des sept positions plus un état sans erreur.

Les codes de Hamming étendus ajoutent un bit de parité supplémentaire sur l'ensemble du mot de code, permettant la détection (mais pas la correction) des erreurs sur deux bits. Hamming(8,4) est la version étendue de Hamming(7,4). Des variantes plus grandes comme Hamming(15,11) et Hamming(31,26) regroupent plus de bits de données avec la même capacité de correction, améliorant l'efficacité ; elles suivent le modèle selon lequel tout code Hamming(2^m - 1, 2^m - m - 1) peut corriger des erreurs uniques en utilisant m bits de parité.

Les codes de Hamming sont utilisés dans les premières mémoires d'ordinateur (la correction d'erreurs sur un seul bit dans la DRAM était courante dans les anciens systèmes), les équipements de télécommunications et les systèmes embarqués où la surcharge de calcul pour le décodage est minimale. Ils sont insuffisants pour les canaux très bruyants où les erreurs sur plusieurs bits dominent, cédant la place à des familles plus robustes comme les codes de Reed-Solomon ou LDPC. Pour le stockage et les liaisons courtes distances avec de faibles taux d'erreur, cependant, les codes de Hamming restent efficaces car leur surcharge est modeste et le décodage est rapide.

Le compromis est rigide : la puissance de correction est liée à la longueur du code. On ne peut pas simplement ajouter plus de bits de parité à un Hamming(7,4) pour corriger des erreurs doubles ; il faut passer à une famille différente. Cela limite la flexibilité d'adaptation aux conditions changeantes du canal. Les applications modernes préfèrent souvent les codes turbo ou les codes convolutionnels pour leur adaptabilité, mais les codes de Hamming restent la référence pédagogique pour la correction d'erreurs et continuent d'apparaître dans les systèmes hérités et les conceptions embarquées critiques pour la sécurité où la simplicité et la prévisibilité sont importantes.

Sources

Entrée IG208218/10/2012

Autres termes : Électrotechnique

Tout voir

Recevez le mot du jour

Un terme industriel chaque jour, avec le métier auquel il appartient et pourquoi il mérite d'être connu. Sans publicité.