IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Petite question au sujet du code Hamming


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Points : 503
    Points
    503
    Par défaut Petite question au sujet du code Hamming
    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.
    Développeur Java / Android.
    The Truth About Bitcoin : https://www.the-truth-about-bitcoin.com/
    In Bitcoin We Trust : https://inbitcoinwetrust.substack.com
    Retrouvez mes Apps Android : https://play.google.com/store/apps/d...01024188312025
    Tout sur le Bitcoin, la Blockchain et les Altcoins : https://www.toutsurlebitcoin.fr
    Devenez une meilleure de vous-même jour après jour : https://www.jedeviensmeilleur.fr

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    c'est tres simple, dans ton on ne peut decouvrir et corriger qu'une seule erreur....

    donc avec 2 erreurs on ne s'est pas faire

    regarde http://www.info.univ-angers.fr/pub/pn/poly/node13.html il ya ton exemple dedans

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est de la théorie de l'information et les codes correcteurs d'erreurs, il y a de bons livres à sujet.

  4. #4
    Membre confirmé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Points : 503
    Points
    503
    Par défaut
    Citation Envoyé par ookama
    c'est tres simple, dans ton on ne peut decouvrir et corriger qu'une seule erreur....

    donc avec 2 erreurs on ne s'est pas faire

    regarde http://www.info.univ-angers.fr/pub/pn/poly/node13.html il ya ton exemple dedans
    Oui, j'ai vu ça. Mais donc avec ce cas là, puisqu'on ne peut pas détecter qu'il y a 2 erreurs apparemment, e message sera considéré comme corrigé mais en fait ce ne sera pas le bon message.
    Donc en gros c'est à l'envoyeur de faire en sorte que le message soit suffisamment grand pour que le nombre d'erreurs pouvant se produire soit détecté c'est ça ?
    Développeur Java / Android.
    The Truth About Bitcoin : https://www.the-truth-about-bitcoin.com/
    In Bitcoin We Trust : https://inbitcoinwetrust.substack.com
    Retrouvez mes Apps Android : https://play.google.com/store/apps/d...01024188312025
    Tout sur le Bitcoin, la Blockchain et les Altcoins : https://www.toutsurlebitcoin.fr
    Devenez une meilleure de vous-même jour après jour : https://www.jedeviensmeilleur.fr

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Eh oui, c'est ça. En fait, le truc est de calculer la probabilité d'erreur du canal, et d'après la taille du message et un taux "acceptable" de messages faux - 0.01% par ex -, on calcule le nombre d'erreurs ou aussi d'effacements qui doivent être corrigées.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2005
    Messages : 186
    Points : 159
    Points
    159
    Par défaut
    Salut,

    J’ai mini projet a pour sujet codage de hamming, le travail qui est demandé est de développer un logiciel qui simule l'envoi d'un message non codé récupère ce massage et l'affiche et aussi le coder simuler la transmission le décode en le corrigeant et l'afficher.

    Merci de m'aider sur les étapes que je dois suivre à fin de réaliser le travail demandé et si vous avez le code qui est similaire a ce qui est demandé merci de me l'envoyer.

    D’avance merci

    j'ai fait un truc avec C++ en se basant sur l'algo de hamming.
    Merci.

Discussions similaires

  1. petite question sur bout de code aberrant ^^
    Par Gardyen dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2012, 14h13
  2. Réponses: 5
    Dernier message: 17/02/2008, 20h26
  3. [Séparer son code] quelques petites questions.
    Par echantillon dans le forum C
    Réponses: 33
    Dernier message: 07/03/2007, 17h29
  4. [ASP.NET VB.NET]Petite question au sujet du datagrid
    Par Azephel dans le forum ASP.NET
    Réponses: 11
    Dernier message: 06/03/2007, 17h38
  5. [XSD] petite question au sujet d'un schéma
    Par sylsau dans le forum Valider
    Réponses: 2
    Dernier message: 12/10/2006, 21h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo