Qu'est-ce que Hamming Code: histoire, fonctionnement et ses applications

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans les systèmes numériques, les données transmises pour la communication peut être corrompu en raison de bruits externes et de toute autre défaillance physique. Si les données transmises ne correspondent pas aux données d’entrée données, cela s’appelle une «erreur». Les erreurs de données peuvent supprimer des données vitales dans les systèmes numériques. Le transfert de données se fera sous forme de bits (0 et 1) dans les systèmes numériques. Si une partie du bit est modifiée, les performances du système dans son ensemble peuvent être affectées. Si le bit «1» est remplacé par le bit «0» ou vice versa, on parle alors d’erreur de bit. Ils sont différents types d'erreurs comme les erreurs sur un seul bit, les erreurs multiples et les erreurs en rafale. Dans cet article, nous abordons la correction et la détection d'erreurs, ainsi que le code de martelage.

Qu'est-ce que la détection et la correction d'erreur?

Dans la communication numérique, les données seront perdues s'il y a une erreur dans le transfert d'informations d'un système / réseau à un autre système / réseau. Il est donc important de trouver et de corriger les erreurs. Une erreur détection et des méthodes de correction sont utilisées pour détecter et corriger les erreurs pour une communication efficace. Si ces méthodes sont utilisées, les données peuvent être transférées avec une plus grande précision.




La détection d'erreur est définie comme la méthode utilisée pour détecter les erreurs transmises de l'émetteur / expéditeur au récepteur dans les systèmes numériques. Des codes de redondance sont ajoutés aux données lors de la transmission pour trouver les erreurs. Ceux-ci sont appelés codes de détection d'erreur.

La correction d'erreur est la correction des données transmises de l'émetteur au récepteur. La correction d'erreur peut être effectuée de deux manières.



Correction d'erreur en arrière

Dans ce type de correction d'erreur, le récepteur demande à l'expéditeur de retransmettre les données si le récepteur détecte l'erreur.

Correction d'erreur directe

si les données reçues par le récepteur trouvent l'erreur, alors il exécute les codes de correction d'erreur, pour corriger et récupérer les données automatiquement.


S'il existe un nombre «m» de bits de données et un nombre «r» de bits redondants, alors les combinaisons d'informations seront 2r.

2r> = m + r + 1

Types de codes de détection d'erreur

Les erreurs dans les données reçues peuvent être détectées en utilisant 3 types de codes de détection d'erreur. Ce sont le contrôle de parité, le contrôle de redondance cyclique (CRC) et le contrôle de redondance longitudinale.

Contrôle de parité

Le bit redondant appelé bit de parité est ajouté pour rendre le nombre de bits pair ou impair en cas de parité paire ou impaire. Le récepteur compte le nombre de bits (1) dans une trame pour ajouter le bit de parité. C'est ce qu'on appelle le contrôle de parité. Si le nombre de 1 dans une image est pair, la parité paire est utilisée en ajoutant le bit «1» avec une valeur nulle. De même, le nombre de 1 est impair, alors la parité impaire est utilisée en ajoutant le bit avec la valeur «1».

Détection d

détection d'erreur

Par conséquent, il est utilisé pour garantir que la trame / date reçue par le récepteur de la source n'est pas corrompue. Dans ce type de détection d'erreur, le nombre de 1 doit être égal dans la trame reçue. Il est très moins cher parmi tous les types de détection d'erreur.

Contrôle de redondance longitudinale (LRC)

uand l'ensemble / bloc de bits est organisé, la méthode LRC peut être utilisée pour vérifier le bit de parité dans chaque trame. Il aide à envoyer l'ensemble de bits de parité avec les données d'origine et vérifie la redondance.

Contrôle de redondance cyclique

son type est utilisé pour détecter les données / trame reçues de la source est valide ou non. Il implique la division binaire des données à envoyer et utilise des polynômes (pour générer un diviseur). Avant que la transmission , une opération de division est effectuée par l'expéditeur sur les données / bits / trame pour calculer le reste.

Contrôle de redondance cyclique

contrôle de redondance cyclique

Lors de la transmission des données réelles de l'expéditeur, il ajoute le reste à la fin des données réelles. La combinaison des données réelles et du reste est appelée un mot de code. Les données sont transmises sous forme de mots de passe. Dans ce processus, si les données sont corrompues, les données seront rejetées par le récepteur, sinon elles seront acceptées.

Qu'est-ce que le code Hamming?

Le code de Hamming est défini comme un code linéaire qui est utilisé dans le processus de détection d'erreur jusqu'à 2 erreurs intermédiaires. Il est également capable de détecter les erreurs sur un seul bit. Dans cette méthode, les bits redondants sont ajoutés aux données / message par l'expéditeur pour coder les données. Afin de faire la détection et la correction d'erreur, ces bits redondants sont ajoutés à certaines positions pour le processus de correction d'erreur.

Code de Hamming

code de martelage

Histoire des codes de hamming

En 1950, Richard W. Hamming a inventé des codes de Hamming pour détecter et corriger les erreurs dans les données. Après l'évolution des ordinateurs avec une plus grande fiabilité, il a introduit des codes de martelage pour les codes de correction à 1 erreur et plus tard il a étendu jusqu'à 2 codes de détection d'erreurs. Les codes de Hamming sont créés parce que le contrôle de parité ne peut pas détecter et corriger les erreurs dans les données. Les codes de Hamming sont insérés dans n'importe quelle longueur de bloc de données entre les données réelles et les bits de redondance. Il a développé une panoplie d'algorithmes pour travailler sur les problèmes des méthodes de correction d'erreur et ces codes sont largement utilisés dans la mémoire ECC.

Processus d'encodage d'un message à l'aide du code Hamming

Le processus de codage d'un message à l'aide d'un code martelé par l'expéditeur comprend 3 étapes.

Étape 1: La première étape consiste à calculer le nombre de bits redondants dans un message

  • Par exemple, si un message contient «n» nombre de bits et que «p» nombre de bits redondants sont ajoutés au message, alors «np» indique (n + p + 1) différents états.
  • Où (n + p) représente l'emplacement d'une erreur dans chaque position de bit
  • 1 (état supplémentaire) ne représente aucune erreur.
  • Puisque «p» indique 2 ^ p (2p) états, qui sont égaux à (n + p + 1) états.

Étape 2: Placez les bits redondants en position exacte / correcte

Les bits 'p' sont insérés dans les positions de bit qui sont la puissance de 2 comme 1, 2, 4, 8, 16, etc. Ces positions de bit sont indiquées comme p1 (position 1), p2 (position 2), p3 (position 4), etc.

Étape 3: Calculer les valeurs des bits redondants

  • Ici, les bits de parité sont utilisés pour calculer les valeurs des bits redondants.
  • Les bits de parité peuvent rendre le nombre de 1 dans un message pair ou impair.
  • Si le nombre total de 1 dans un message est pair, la parité paire est utilisée
  • Si le nombre total de 1 dans un message est impair, la parité impaire est utilisée.

Processus de déchiffrement d'un message dans le code de Hamming

Le processus de déchiffrement d'un message reçu de l'expéditeur par le récepteur à l'aide du code de martelage comprend les étapes suivantes. Ce processus n'est rien d'autre qu'un recalcul pour détecter et corriger les erreurs dans un message.

Étape 1: Compter le nombre de bits redondants

La formule pour encoder le message à l'aide de bits redondants est,

2p ≥ n + p + 1

Étape 2: corriger les positions de tous les bits redondants

«P» le nombre de bits redondants sont placés dans des positions de bits de puissance de 2 comme 1,2,4,8,16,32 etc.

Étape 3: contrôle de parité (parité impaire et parité paire)

Les bits de parité sont calculés sur la base du nombre de 1 dans les bits de données et les bits redondants.

Par exemple

La parité de p1 serait 1, 3, 5, 7, 9, 11,…

La parité de p2 serait 2, 3, 6, 7, 10, 11,…

La parité de p3 serait 4-7, 12-15, 20-23,…

Avantages du code Hamming

Le principal avantage de l'utilisation d'un code de martelage est rentable si un flux de données contient des erreurs sur un seul bit.

  • Il peut fournir une détection d'erreur et indique également le bit qui contient une erreur à corriger.
  • Les codes de Hamming sont très faciles et meilleurs à utiliser dans la mémoire de l'ordinateur et la correction et la détection d'erreurs sur un seul bit.

Inconvénients du code de Hamming

  • Il est préférable uniquement pour la correction et la détection d'erreurs sur un seul bit. En cas d'erreur de plusieurs bits, l'ensemble peut être corrompu.
  • L'algorithme de code de Hamming ne peut résoudre que des erreurs d'un seul bit.

Applications des codes de hamming

Les codes de Hamming sont utilisés dans,

  • L'informatique
  • Télécommunications
  • Compression de données
  • Résoudre des énigmes et des codes turbo
  • Satellites
  • Plasma CAM
  • Fils blindés
  • Modems
  • Mémoire d'ordinateur
  • Connecteurs ouverts
  • Systèmes embarqués et processeur

FAQ

1). Le code de Hamming peut-il détecter des erreurs de 2 bits?

Les codes de Hamming peuvent détecter et corriger des erreurs jusqu'à 2 bits dans un flux de données

2). Comment corrigez-vous le code Hamming?

Les codes de Hamming sont placés dans n'importe quelle longueur de données entre les données réelles et les bits redondants. Ces codes sont des endroits avec une distance minimale de 3 bits

3). Quel est le code de parité?

Le code de parité ou le bit de parité ajoute un bit à la trame reçue (les données contiennent des 1 et des 0) pour rendre le nombre total de bits (1) pair ou impair.

4). Quelle est la distance de Hamming entre les données?

La distance de frappe entre les deux flux de données différents de longueur égale n’est pas de 1.

La distance de martelage entre deux chaînes de données de longueur égale peut être calculée à l'aide de l'opération XOR.

Par exemple, a = 11011001

b = 10011101

La distance de Hamming peut être calculée comme suit:

11011001 ⊕ 10011101 = 01000100 (le nombre de 1 bits est égal à 2)

La distance de frappe indique le nombre de 1 dans le flux de données résultant

Donc, d (11011001, 10011101) = 2

De même, 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Le code de Hamming est-il cyclique?

Oui, les codes de martelage sont équivalents aux codes cycliques qui peuvent être utilisés comme codes de détection d'erreur.

Il s'agit donc de correction et de détection d'erreurs, de types de détection d'erreurs, codes de martelage , le processus de cryptage et de décryptage du message en utilisant des codes de martelage, des applications de codes de martelage, des avantages et des inconvénients des codes de Hamming. Voici une question pour vous, 'Quelles sont les applications de la détection et de la correction des erreurs?'