encoder | décoder | compresser

> hamming | (7,4) | ecc <

// Code de Hamming – Code de correction d’erreurs pour une transmission fiable des données

[CORRECTION]

Correction d’erreurs

Détecte et corrige automatiquement les erreurs d’un seul bit dans les données.

[DÉTECTION]

Détection de doubles erreurs

Peut détecter (mais pas corriger) les erreurs de deux bits dans chaque bloc.

[EFFICACE]

Surcharge minimale

Seulement 3 bits de parité pour 4 bits de données (75 % d’efficacité).

>> informations techniques

Comment fonctionne le code de Hamming:

Le code Hamming(7,4) ajoute 3 bits de parité à chaque groupe de 4 bits de données pour former des blocs de 7 bits. Les bits de parité sont placés aux positions puissances de 2 (1, 2, 4). En cas d’erreur, le syndrome (résultat du contrôle de parité) indique directement la position du bit fautif.

Structure Hamming(7,4):

Données : 1011 (4 bits) Positions : P1 P2 D1 P3 D2 D3 D4 Hamming : 1 0 1 1 0 1 1 P1 = D1 ⊕ D2 ⊕ D4 = 1 ⊕ 0 ⊕ 1 = 0 P2 = D1 ⊕ D3 ⊕ D4 = 1 ⊕ 1 ⊕ 1 = 1 P3 = D2 ⊕ D3 ⊕ D4 = 0 ⊕ 1 ⊕ 1 = 0

Pourquoi utiliser le code de Hamming:

  • >Correction d’erreurs mémoire
  • >Communication par satellite
  • >Systèmes de stockage de données
  • >Transmission réseau
  • >Matrices RAID

>> questions fréquentes

Qu’est-ce que le code de Hamming ?

Le code de Hamming est un code de correction d’erreurs inventé par Richard Hamming en 1950. Il ajoute des bits de parité aux données pour permettre la détection et la correction automatiques des erreurs d’un seul bit.

Que signifie (7,4) ?

Hamming(7,4) signifie 7 bits au total : 4 bits de données et 3 bits de parité. Il peut corriger toute erreur d’un seul bit dans le bloc de 7 bits. D’autres variantes existent, comme (15,11) ou (31,26).

Comment fonctionne la correction d’erreurs ?

À la réception, les bits de parité sont recalculés. S’ils ne correspondent pas, le syndrome (la différence) indique directement quel bit est erroné. L’erreur est corrigée en inversant ce bit.

Hamming vs autres codes ECC ?

Le code de Hamming est simple et efficace pour les erreurs d’un seul bit. Des codes plus complexes comme Reed-Solomon peuvent corriger plusieurs erreurs, mais avec un surcoût plus élevé. Hamming est idéal pour les canaux à faible bruit.

// Aide-mémoire

Posbitcovered by
1p1p1
2p2p2
3d1p1 p2
4p3p3
5d2p1 p3
6d3p2 p3
7d4p1 p2 p3

// Exemple détaillé

Data 1011 -> positions 3,5,6,7 = 1,0,1,1
p1 = d3^d5^d7 = 1^0^1 = 0     p2 = d3^d6^d7 = 1^1^1 = 1     p3 = d5^d6^d7 = 0^1^1 = 0
Codeword (pos 1..7)  0110011
Received 0110111 (bit 5 flipped)
Syndrome s3 s2 s1 = 1 0 1 = 5   ->  flip bit 5  ->  0110011 corrected

>> Autres questions

Q : Que signifie (7,4) pour le code de Hamming ?

R : 4 bits de données sont complétés par 3 bits de parité pour former un mot de 7 bits. Les bits de parité occupent les positions puissances de 2 : 1, 2 et 4. La distance minimale est 3 : une erreur est corrigée, deux erreurs sont détectées mais pas corrigées.

Q : Comment le syndrome indique-t-il la position de l’erreur ?

R : Chaque bit de parité contrôle les positions dont le numéro a le bit correspondant à 1. Les trois résultats forment en binaire la position du bit erroné (0 = aucune erreur). Dans l’exemple, 101 désigne la position 5.

Q : Qu’est-ce que le Hamming étendu (SECDED) ?

R : Un bit de parité globale transforme le (7,4) en (8,4) : corrige 1 erreur et en détecte 2. La mémoire ECC applique le même principe, généralement en (72,64) avec 8 bits de contrôle pour 64 bits de données.

Autres langues