Τι είναι ο κώδικας Hamming: Ιστορία, εργασία και οι εφαρμογές του

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Στα ψηφιακά συστήματα, τα μεταδιδόμενα δεδομένα για επικοινωνία μπορεί να καταστραφεί λόγω εξωτερικού θορύβου και άλλων φυσικών βλαβών. Εάν τα μεταδιδόμενα δεδομένα δεν ταιριάζουν με τα δεδομένα δεδομένα εισόδου, τότε ονομάζεται «σφάλμα». Τα σφάλματα δεδομένων μπορούν να διαγράψουν ζωτικά δεδομένα σε ψηφιακά συστήματα. Η μεταφορά δεδομένων θα έχει τη μορφή δυαδικών ψηφίων (0 και 1) σε ψηφιακά συστήματα. Εάν κάποιος από το bit αλλάξει, τότε η απόδοση ολόκληρου του συστήματος μπορεί να επηρεαστεί. Εάν το bit «1» αλλάξει στο bit «0» ή το αντίστροφο, τότε ονομάζεται bit error. Υπάρχουν διαφορετικά τύποι σφαλμάτων όπως σφάλματα ενός bit, πολλαπλά σφάλματα και σφάλματα ριπής. Σε αυτό το άρθρο, συζητάμε τη διόρθωση σφαλμάτων και τον εντοπισμό, καθώς και τον κώδικα σφυρηλάτησης.

Τι είναι η ανίχνευση σφαλμάτων και η διόρθωση;

Στην ψηφιακή επικοινωνία, τα δεδομένα θα χαθούν εάν υπάρχει σφάλμα κατά τη μεταφορά πληροφοριών από ένα σύστημα / δίκτυο σε άλλο σύστημα / δίκτυο. Επομένως, είναι σημαντικό να βρείτε και να διορθώσετε σφάλματα. Κάποιο σφάλμα ανίχνευση και μέθοδοι διόρθωσης χρησιμοποιούνται για τον εντοπισμό και τη διόρθωση των σφαλμάτων για αποτελεσματική επικοινωνία. Εάν χρησιμοποιούνται αυτές οι μέθοδοι, τότε τα δεδομένα μπορούν να μεταφερθούν με μεγαλύτερη ακρίβεια.




Η ανίχνευση σφαλμάτων ορίζεται ως, η μέθοδος που χρησιμοποιείται για τον εντοπισμό των σφαλμάτων που μεταδίδονται από πομπό / αποστολέα στον δέκτη σε ψηφιακά συστήματα. Οι κωδικοί πλεονασμού προστίθενται στα δεδομένα κατά τη μετάδοση για να εντοπιστούν τα σφάλματα. Αυτοί ονομάζονται κωδικοί ανίχνευσης σφαλμάτων.

Η διόρθωση σφάλματος είναι η διόρθωση των δεδομένων που μεταδίδονται από πομπό σε δέκτη. Η διόρθωση σφαλμάτων μπορεί να γίνει σε δύο τύπους.



Διόρθωση σφάλματος προς τα πίσω

Σε αυτόν τον τύπο διόρθωσης σφαλμάτων, ο παραλήπτης ζητά από τον αποστολέα να αναμεταδώσει τα δεδομένα εάν ο παραλήπτης εντοπίσει το σφάλμα.

Διόρθωση σφαλμάτων προς τα εμπρός

Εάν τα δεδομένα που λαμβάνονται από τον παραλήπτη εντοπίσουν το σφάλμα, τότε εκτελεί τους κωδικούς διόρθωσης σφαλμάτων, για να διορθώσουν και να ανακτήσουν τα δεδομένα αυτόματα.


Εάν υπάρχουν «m» αριθ. Bit δεδομένων και «r» αριθ. Από περιττά bit, τότε οι συνδυασμοί πληροφοριών θα είναι 2r.

2r> = m + r + 1

Τύποι κωδικών ανίχνευσης σφαλμάτων

Τα σφάλματα στα ληφθέντα δεδομένα μπορούν να εντοπιστούν χρησιμοποιώντας 3 τύπους κωδικών ανίχνευσης σφαλμάτων. Είναι, έλεγχος ισοτιμίας, έλεγχος κυκλικού πλεονασμού (CRC) και έλεγχος διαμήκους πλεονασμού.

Έλεγχος ισοτιμίας

Το περιττό bit που ονομάζεται bit ισοτιμίας προστίθεται για να κάνει το αριθ. Bit bit ομοιόμορφο ή μονό σε περίπτωση ομοιόμορφης ισοτιμίας ή περίεργης ισοτιμίας. Ο δέκτης μετρά τα αριθ. Bit (1) σε ένα πλαίσιο για να προσθέσει το bit ισοτιμίας. Αυτό ονομάζεται έλεγχος ισοτιμίας. Εάν το no.of 1 σε ένα πλαίσιο είναι ομοιόμορφο, τότε η ισοτιμία χρησιμοποιείται με την προσθήκη του bit «1» με μηδενική τιμή. Παρομοίως, το no.of 1 είναι περίεργο, τότε η μονή ισοτιμία χρησιμοποιείται προσθέτοντας το bit με την τιμή «1».

Εντοπισμός σφαλμάτων

εντοπισμός σφαλμάτων

Ως εκ τούτου, χρησιμοποιείται για να διασφαλιστεί ότι το πλαίσιο / ημερομηνία που λαμβάνεται από τον παραλήπτη από την πηγή δεν είναι κατεστραμμένο. Σε αυτόν τον τύπο ανίχνευσης σφαλμάτων, οι αριθμοί 1 πρέπει να βρίσκονται ακόμη και στο λαμβανόμενο πλαίσιο. Είναι πολύ λιγότερο ακριβό μεταξύ όλων των τύπων εντοπισμού σφαλμάτων.

Έλεγχος διαμήκους πλεονασμού (LRC)

Όταν το σύνολο / μπλοκ των bit είναι οργανωμένο, τότε η μέθοδος LRC μπορεί να χρησιμοποιηθεί για τον έλεγχο του bit ισοτιμίας σε κάθε πλαίσιο. Βοηθά να στείλετε το σύνολο των bit ισοτιμίας μαζί με τα αρχικά δεδομένα και να ελέγξετε τον πλεονασμό.

Κυκλικός έλεγχος απόρριψης

ο τύπος του χρησιμοποιείται για την ανίχνευση των δεδομένων / πλαισίων που λαμβάνονται από την πηγή είναι έγκυρα ή όχι. Περιλαμβάνει στη δυαδική διαίρεση των δεδομένων που πρέπει να αποστέλλονται και χρησιμοποιεί πολυώνυμα (για τη δημιουργία διαιρέτη). Πριν η μετάδοση , εκτελείται μια λειτουργία διαίρεσης από τον αποστολέα στα δεδομένα / bit / πλαίσιο για τον υπολογισμό του υπολοίπου.

Κυκλικός έλεγχος απόρριψης

κυκλικός έλεγχος απόρριψης

Κατά τη διαβίβαση των πραγματικών δεδομένων από τον αποστολέα, προσθέτει τα υπόλοιπα στο τέλος των πραγματικών δεδομένων. Ο συνδυασμός των πραγματικών δεδομένων και των υπόλοιπων ονομάζεται κωδικός κωδικός. Τα δεδομένα μεταδίδονται με τη μορφή κωδικών λέξεων. Σε αυτήν τη διαδικασία, εάν τα δεδομένα είναι κατεστραμμένα, τότε τα δεδομένα θα απορριφθούν από τον παραλήπτη, διαφορετικά θα γίνουν αποδεκτά.

Τι είναι ο κωδικός Hamming;

Ο κωδικός Hamming ορίζεται ως, ένας γραμμικός κώδικας που χρησιμοποιείται στη διαδικασία εντοπισμού σφαλμάτων έως και 2-ενδιάμεσων σφαλμάτων. Είναι επίσης ικανό να εντοπίσει σφάλματα ενός bit. Σε αυτήν τη μέθοδο, τα περιττά bit προστίθενται στα δεδομένα / μήνυμα από τον αποστολέα για την κωδικοποίηση των δεδομένων. Προκειμένου να γίνει ανίχνευση σφαλμάτων και διόρθωση, αυτά τα περιττά bit προστίθενται σε ορισμένες θέσεις για τη διαδικασία διόρθωσης σφαλμάτων.

Κωδικός σφυρηλάτησης

κωδικός σφυρηλάτησης

Ιστορία κωδικών Hamming

Το 1950, ο Richard W. hamming εφηύρε κωδικούς Hamming για να εντοπίσει και να διορθώσει τα σφάλματα στα δεδομένα. Μετά την εξέλιξη των υπολογιστών με μεγαλύτερη αξιοπιστία, εισήγαγε κωδικούς σφυρηλάτησης για κωδικούς διόρθωσης 1-σφάλματος και αργότερα επέκτεινε έως και κωδικούς ανίχνευσης 2 σφαλμάτων. Οι κωδικοί σφυρηλάτησης δημιουργούνται επειδή ο έλεγχος ισοτιμίας δεν μπορεί να εντοπίσει και να διορθώσει τα σφάλματα στα δεδομένα. Οι κωδικοί Hamming εισάγονται σε οποιοδήποτε μήκος δεδομένων μεταξύ πραγματικών δεδομένων και bit πλεονασμού. Ανέπτυξε μια σειρά αλγορίθμων για να εργαστεί στα προβλήματα των μεθόδων διόρθωσης σφαλμάτων και αυτοί οι κωδικοί χρησιμοποιούνται ευρέως στη μνήμη ECC.

Διαδικασία κωδικοποίησης ενός μηνύματος χρησιμοποιώντας κώδικα Hamming

Η διαδικασία κωδικοποίησης ενός μηνύματος χρησιμοποιώντας έναν κωδικό σφυρηλάτησης από τον αποστολέα περιλαμβάνει 3 βήματα.

Βήμα 1: Το πρώτο βήμα είναι να υπολογίσετε τον αριθμό των περιττών bits σε ένα μήνυμα

  • Για παράδειγμα, εάν ένα μήνυμα περιέχει 'n' no.of bits και 'p' no. Of redundant bits προστίθενται στο μήνυμα, τότε το 'np' δείχνει (n + p + 1) διαφορετικές καταστάσεις.
  • Όπου (n + p) αντιπροσωπεύει τη θέση ενός σφάλματος σε κάθε θέση bit
  • 1 (επιπλέον κατάσταση) δεν αντιπροσωπεύει κανένα σφάλμα.
  • Δεδομένου ότι το «p» υποδεικνύει καταστάσεις 2 ^ p (2p), οι οποίες είναι ίσες με τις καταστάσεις (n + p + 1).

Βήμα 2: Τοποθετήστε τα περιττά κομμάτια στην ακριβή / σωστή θέση

Τα 'p' bits εισάγονται στις θέσεις bit που έχουν ισχύ 2 όπως 1, 2, 4, 8, 16, κλπ. Αυτές οι θέσεις bit επισημαίνονται ως p1 (θέση 1), p2 (θέση 2), p3 (θέση 4) κ.λπ.

Βήμα 3: Υπολογίστε τις τιμές των περιττών bits

  • Εδώ χρησιμοποιούνται bits ισοτιμίας για τον υπολογισμό των τιμών των περιττών bit.
  • Οι ισοτιμίες μπορούν να κάνουν το νούμερο 1 σε ένα μήνυμα είτε ζυγό ή μονό.
  • Εάν το σύνολο των αριθμών 1 σε ένα μήνυμα είναι ομοιόμορφο, τότε χρησιμοποιείται ακόμη και ισοτιμία
  • Εάν το σύνολο των αριθμών 1 του μηνύματος είναι περίεργο, τότε χρησιμοποιείται περίεργη ισοτιμία.

Διαδικασία αποκρυπτογράφησης μηνύματος σε κώδικα Hamming

Η διαδικασία αποκρυπτογράφησης ενός μηνύματος που λαμβάνεται από τον αποστολέα από τον παραλήπτη χρησιμοποιώντας τον κωδικό σφυρηλάτησης περιλαμβάνει τα ακόλουθα βήματα. Αυτή η διαδικασία δεν είναι παρά ο επανυπολογισμός για τον εντοπισμό και τη διόρθωση των σφαλμάτων σε ένα μήνυμα.

Βήμα 1: Μετρήστε τα νούμερα των περιττών bits

Ο τύπος για την κωδικοποίηση του μηνύματος χρησιμοποιώντας περιττά bit είναι,

2p≥ n + p + 1

Βήμα 2: διορθώστε τις θέσεις όλων των περιττών bits

«P» no.of περιττών bit τοποθετούνται σε θέσεις bit ισχύος 2 όπως 1,2,4,8,16,32 κ.λπ.

Βήμα 3: έλεγχος ισοτιμίας (περίεργη ισοτιμία και ισοτιμία)

Τα δυαδικά ψηφία υπολογίζονται με βάση τα νούμερα 1 στα bit δεδομένων και τα περιττά bit.

Για παράδειγμα

Η ισοτιμία του p1 θα ήταν 1, 3, 5, 7, 9, 11,…

Η ισοτιμία του p2 θα είναι 2, 3, 6, 7, 10, 11,…

Η ισοτιμία του p3 θα είναι 4-7, 12-15, 20-23,…

Πλεονεκτήματα του κώδικα Hamming

Το κύριο πλεονέκτημα της χρήσης κωδικού σφυρηλάτησης είναι οικονομικά αποδοτικό εάν μια ροή δεδομένων περιέχει σφάλματα ενός bit.

  • Μπορεί να παρέχει ανίχνευση σφαλμάτων και επίσης υποδεικνύει το bit που περιέχει σφάλμα για διόρθωση.
  • Οι κωδικοί σφυρηλάτησης είναι πολύ εύκολο και καλύτερο να χρησιμοποιηθούν στη μνήμη του υπολογιστή και στη διόρθωση και τον εντοπισμό σφαλμάτων ενός bit.

Μειονεκτήματα του κώδικα Hamming

  • Είναι καλύτερο μόνο για διόρθωση και εντοπισμό σφαλμάτων ενός bit. Εάν πολλά σφάλματα bits, τότε το σύνολο μπορεί να καταστραφεί.
  • Ο αλγόριθμος κώδικα Hamming μπορεί να επιλύσει μόνο σφάλματα ενός bit.

Εφαρμογές κωδικών Hamming

Οι κωδικοί σφυρηλάτησης χρησιμοποιούνται,

  • Χρήση υπολογιστή
  • Τηλεπικοινωνίες
  • Συμπίεση δεδομένων
  • Επίλυση παζλ και turbo κωδικούς
  • Δορυφόροι
  • CAM πλάσματος
  • Θωρακισμένα σύρματα
  • Μόντεμ
  • Μνήμη υπολογιστή
  • Ανοίξτε τις υποδοχές
  • Ενσωματωμένα συστήματα και επεξεργαστής

Συχνές ερωτήσεις

1). Μπορεί ο κωδικός Hamming να εντοπίσει σφάλματα 2-bit;

Οι κωδικοί σφυρηλάτησης μπορούν να ανιχνεύσουν και να διορθώσουν έως και 2-bit σφάλματα σε μια ροή δεδομένων

2). Πώς διορθώνετε τον κώδικα Hamming;

Οι κωδικοί σφυρηλάτησης τοποθετούνται σε οποιοδήποτε μήκος δεδομένων μεταξύ των πραγματικών δεδομένων και των περιττών bit. Αυτοί οι κωδικοί είναι μέρη με ελάχιστη απόσταση 3 bit

3). Ποιος είναι ο κωδικός ισοτιμίας;

Ο κώδικας ισοτιμίας ή το bit ισοτιμίας προσθέτει λίγο στο πλαίσιο λήψης (τα δεδομένα περιέχουν 1 και 0) για να κάνουν το συνολικό αριθμό των bit (1) ομοιόμορφο ή μονό.

4). Ποια είναι η απόσταση Hamming μεταξύ των δεδομένων;

Η απόσταση σφυρηλάτησης μεταξύ των δύο διαφορετικών ροών δεδομένων ίσου μήκους είναι αριθ. 1.

Η απόσταση σφυρηλάτησης μεταξύ δύο συμβολοσειρών δεδομένων ίσου μήκους μπορεί να υπολογιστεί χρησιμοποιώντας τη λειτουργία XOR.

Για παράδειγμα, a = 11011001

b = 10011101

Η απόσταση σφυρηλάτησης μπορεί να υπολογιστεί ως,

11011001 ⊕ 10011101 = 01000100 (αριθ. Από 1 bits είναι 2)

Η απόσταση σφυρηλάτησης υποδηλώνει το νούμερο 1 της ροής δεδομένων που προκύπτει

Έτσι, d (11011001, 10011101) = 2

Ομοίως, 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Είναι ο κωδικός Hamming κυκλικός;

Ναι, οι κωδικοί σφυρηλάτησης είναι ισοδύναμοι με τους κυκλικούς κωδικούς που μπορούν να χρησιμοποιηθούν ως κωδικοί ανίχνευσης σφαλμάτων.

Επομένως, όλα αυτά αφορούν τη διόρθωση και την ανίχνευση σφαλμάτων, τους τύπους ανίχνευσης σφαλμάτων, κωδικοί σφυρηλάτησης , η διαδικασία κρυπτογράφησης και αποκρυπτογράφησης του μηνύματος χρησιμοποιώντας κωδικούς σφυρηλάτησης, εφαρμογές κωδικών σφυρηλάτησης, πλεονεκτήματα και μειονεκτήματα των κωδικών σφυρηλάτησης. Εδώ είναι μια ερώτηση για εσάς, 'Ποιες είναι οι εφαρμογές εντοπισμού και διόρθωσης σφαλμάτων;'