Le code de Hamming (7,4) ajoute 3 bits de parité à 4 bits de données, aux positions 1, 2 et 4 (puissances de 2). Le syndrome identifie la position du bit erroné et permet de corriger une erreur d'1 bit.
1. Encoder — écrivez vos bits de données et obtenez le mot de code avec la parité déjà intercalée ; cliquez sur un bit pour simuler une erreur.
2. Détecter et corriger — collez un mot de code (avec ou sans erreur) et vous verrez le syndrome, le bit erroné et le mot corrigé.
3. Simulateur — envoie le même mot des milliers de fois via un canal bruité et mesure combien sont corrigés, détectés ou en échec.
L'interrupteur SECDED et le menu Exemples sont présents dans les trois onglets. Tout se recalcule automatiquement à la saisie (sans bouton).
Dans Encoder vous avez deux modes :
• Bits — uniquement les caractères 0 et 1 (les données, sans bits de parité : ils s'ajoutent seuls).
• Texte — texte ASCII/Latin-1 ; chaque caractère est converti en 8 bits (les caractères hors de cette plage ne sont pas acceptés).
Dans Détecter et corriger, vous collez le mot de code complet (données + parité), également en 0 et 1. Tout autre caractère marque le champ en rouge. Il n'y a pas de limite de longueur : plus il y a de bits de données, plus le code est efficace (moins de parité par bit).
Saisissez une séquence de bits de données (sans bits de parité) et le mot de code de Hamming est calculé avec les bits de parité intercalés.
À la réception du mot, chaque parité est revérifiée avec un XOR. Le syndrome est la somme des positions de parité en échec et, de par la façon dont elles ont été placées, correspond exactement à la position du bit erroné : syndrome 0 = pas d'erreur ; syndrome 5 (= 101 en binaire) = le bit 5 est erroné, et il est inversé pour le corriger.
Attention : Hamming suppose toujours une seule erreur. S'il y a 2 bits erronés, le syndrome désigne un troisième bit innocent et le « corrige » à tort → échec silencieux (données erronées sans avertissement). C'est justement à cela que sert SECDED.
En activant SECDED, on ajoute un bit de parité global sur tout le mot : la distance monte à 4, de sorte qu'on peut corriger 1 erreur et en détecter 2 (sans les corriger). C'est ce qu'utilise la mémoire ECC.
Après le codage, clique sur n'importe quel bit du mot pour le "corrompre" et observe comment le syndrome localise l'erreur et la corrige instantanément.