Bonjour,
Je savais pas trop où mettre ce sujet donc je l'ai mis dans la partie algorithmes.
J'aurais une ou deux petites questions donc au sujet du codage de Hamming.
Supposons qu'on ait un message de 4 bits que l'on nomme ABCD = 0010. (Pour la numérotation des bits, on considère qu'on part de la droite vers la gauche ici).
On calcule les 3 bits de contrôle de ce message à transmettre de la façon suivante :
P0 = A XOR C XOR D
P1 = A XOR B XOR D
P2 = A XOR B XOR C
Donc avec mon exemple, on a : P0 = 1, P1 = 0 et P2 = 1
Le message envoye sera donc de la forme A B C P2 D P1 P0
Le bit de controle Pi etant place a la position 2^i.
Avec mon exemple, on aura : 0011001 comme message envoye.
Supposons maintenant que durant l'envoie 2 erreurs viennent se mettre sur le message. Ainsi, a la réception on recoit la suite de bits suivante : 0010000.
Donc pour pouvoir détecter la présence d'erreurs on utilise les formules suivantes :
Q0 = P0 XOR A XOR C XOR D
Q1 = P1 XOR A XOR B XOR D
Q2 = P2 XOR A XOR B XOR C
Ici ces 3 bits de diagnostic valent : Q0 = 1, Q1 = 0, Q2 = 1.
Comme ces 3 bits ne sont pas tous nuls, on détecte la présence d'erreur dans le message recu. La position de cette erreur serait sur le bit Q2Q1Q0 exactement (s'il n'y avait qu'une erreur mais ça on peut pas encore le savoir).
Ainsi ici, on obtient que l'erreur se trouve sur le bit 5 du mot recu.
On change ce bit, et on répète cette opération.
Le mot sur lequel on répète cette opération est donc : 0000000.
Il est clair que sur ce mot on aura bien pour tout i, les Qi = 0.
L'erreur sera donc considérée comme corrigée et le message qui devait être transmis valant : 0000.
Ceci est faux puisqu'on voulait transmettre 0010 au début.
Ma question est donc la suivante : est ce normal qu'avec cet exemple, le code de Hamming ne fonctionne pas puisque le message reconstitué au final est différent de celui ayant été envoyé à l'origine ?
Je pense que ça doit venir du fait que pour une taille donnéé du mot à transmettre il est limité en nombre d'erreurs détectables et dans le cas ou il y en aurait trop il passerait au travers, mais si quelqu'un pouvait m'expliquer plus précisément la raison pour laquelle ça se passe comme ça ça serait sympa.
Merci d'avance de votre aide.
Partager