Outil pour détecter et corriger les erreurs dans les transmissions de messages binaires via les codes correcteurs de Hamming.
Code Correcteur de Hamming - dCode
Catégorie(s) : Informatique
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Les codes de Hamming sont une série de codes/algorithmes permettant de corriger automatiquement des messages binaires si un bit (0 ou 1) altéré/erroné est transmis. La correction se fait grâce à une redondance de données minime ce qui est pratique pour corriger les erreurs de transmission dans les communications numériques.
L'algorithme proposé par Richard Hamming, fait accompagner un message binaire (composé de bits 0 et 1) de quelques bits supplémentaires codant des informations sur le nombre et la positions des bits à 1 dans le message.
Exemple : Le code de Hamming 7,4 propose de transmettre 4 bits de données, via un message de 7 bits, comportant donc 3 bits redondantes. Le code de Hamming 255,247 n'utilise que 8 bits redondantes (3% d'augmentation de taille)
Les bits supplémentaires codent la parité d'une série de bits du message original. La parité consiste à calculer si le nombre de bits à 1 est pair ou impair.
Les séries de bits du message original sont sélectionnées de manière à quadriller l'intégralité du message.
Le premier bit supplémentaire compte la parité des bits en positions 1,3,5,7,9,11,13,… il est stocké en position 1
Le second bit supplémentaire compte la parité des bits en positions 2,3,6,7,10,11,14,15,… il est stocké en position 2
Le troisième bit supplémentaire compte la parité des bits en positions 4,5,6,7,12,13,14,15… il est stocké en position 4
En croisant les informations de ces bits, il est possible de retrouver la position de l'erreur.
Exemple : Dans un code de Hamming 7,4, le deuxième bit détecte une erreur : il indique que le message devrait avoir une parité paire des bits en positions 2,3,6,7 or ce n'est pas le cas. Les autres bits n'indiquent pas d'erreur, donc il n'y a pas de problème sur les bits en position 1,3,5,7 et 4,5,6,7 donc l'erreur est en position 2. Remplacer la valeur du bit 2 (mettre un 1 à la place d'un 0 ou inversement) permet de corriger l'erreur.
Le code de Hamming ne permet de détecter qu'une seule altération dans le message, un seul changement de 1 ou 0.
Exemple : Le message 1100 (original) se code 0111100, le message original étant codé sur les bits ..1.100, reste à calculer le premier bit (en position 1) qui indique le nombre de 1 (modulo 2) parmi les positions 3,5,7 soit 0 (car 2 = 0 modulo 2), puis le second bit (en position 2) indiquant le nombre de 1 (modulo 2) parmi les positions 3,6,7 soit 1 et le troisième bit (position 4) indiquant le nombre de 1 (modulo 2) parmi les positions 5,6,7 soit 1. Le message codé par Hamming 7,4 est donc 0111100.
En informatique, il est pratique d'utiliser des séries de 8 bits (2^3), or les codes de Hamming sont pratiques pour des messages codés sur 2^n-1 bits. Ajouter un bit supplémentaire permet d'améliorer la redondance des données pour un faible coût d'espace mémoire.
Le dernier bit ajouté enregistre la parité de la totalité du message, il est généralement stocké en position 1.
Difficile de parler de décodage a proprement parler, mais plutot de correction d'erreur dans un code reçu.
— Calculer les bits supplémentaires (parfois appelé vecteur).
— Retrouver la position de l'erreur dans le mot de code en fonction des valeurs du vecteur.
— Corriger l'erreur : inverser le bit à la position correspondante.
Le message est binaire, généralement codé avec des blocs de 2^n-1 ou 2^n bits.
Toute notion d'erreur, d'altération, d'information erronée, etc. est un indice.
Le Code Correcteur de Hamming peut détecter et corriger un nombre limité d'erreurs de transmission. S'il y a trop d'erreurs, le code ne pourra pas les corriger et la transmission sera considérée comme un échec.
dCode se réserve la propriété du code source pour "Code Correcteur de Hamming". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Code Correcteur de Hamming", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "Code Correcteur de Hamming" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "Code Correcteur de Hamming" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "Code Correcteur de Hamming" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Code Correcteur de Hamming sur dCode.fr [site web en ligne], consulté le 22/12/2024,