Εργαστηριακή Ασκηση 2- Κυκλικοί Κώδικες



Σχετικά έγγραφα
Τεχνικές διόρθωσης και ανίχνευσης σφαλµάτων

ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΙΟΡΘΩΣΗ ΣΦΑΛΜΑΤΩΝ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Θεωρία Πληροφορίας. Διάλεξη 7: Κωδικοποίηση καναλιού με γραμμικούς κώδικες block. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Μέθοδοι Ελέγχου Σφαλμάτων

Δίκτυα Απευθείας Ζεύξης

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

Απαντήσεις σε απορίες

Καναλιού. Καναλιού. Προχωρημένα Θέματα Τηλεπικοινωνιών. Κατηγορίες Κωδικών Καναλιού. Τι πετυχαίνει η Κωδ. Καναλιού. Κωδικοποίηση Καναλιού.

ΚΥΚΛΩΜΑ ΥΠΟΛΟΓΙΣΜΟΥ ΣΥΝΔΡΟΜΟΥ. ΠΑΡΑΔΕΙΓΜΑ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗΣ BCC (1) (Υπολογισμός Συνδρόμου)

4.1. Πολυώνυμα. Η έννοια του πολυωνύμου

ΚΩΔΙΚΟΠΟΙΗΣΗ ΕΛΕΓΧΟΥ ΣΦΑΛΜΑΤΟΣ (2)

Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

4.1. Πολυώνυμα. Η έννοια του πολυωνύμου

ΕΙΣΑΓΩΓΗ ΣΤΑ ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Λύσεις 1 ης Σειράς Ασκήσεων

Εισαγωγή στην επιστήμη των υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών

Μάθημα Εισαγωγή στις Τηλεπικοινωνίες Κωδικοποίηση πηγής- καναλιού Μάθημα 9o

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

Εισαγωγή στους Η/Υ. Ενότητα 8: Μετάδοση Δεδομένων. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Βασικές λειτουργίες Ανίχνευση πλαισίων Τι κάνει το επίπεδο ζεύξης Χρησιμοποιεί τις υπηρεσίες του φυσικού επιπέδου, ήτοι την (ανασφαλή) μεταφορά δεδομέ

Μέρος Β - Δίκτυα. Ασκήσεις I. Ποιος ο ρόλος του πομπού και του δέκτη στο μοντέλο επικοινωνίας που α- πεικονίζεται στο σχήμα που ακολουθεί; Μ Δεδομένα

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

9 Πολυώνυμα Διαίρεση πολυωνύμων

Θεωρία Πληροφορίας. Διάλεξη 10: Κωδικοποίηση καναλιού με συνελικτικούς κώδικες. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι.

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Αρχιτεκτονική Μηχανής. Αποθήκευση εδοµένων

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

Στρώμα Ζεύξης Δεδομένων και Πρωτόκολλα αναμετάδοσης. Εισαγωγή στα Δίκτυα Επικοινωνιών 2008 Στρώμα ζεύξης δεδομένων Μ.Ε. Θεολόγου

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

4.1 Θεωρητική εισαγωγή

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

3/40. (acknowledged connectionless), (acknowledged connection oriented) 4/40

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

//009 Βασικές εργασίες του επιπέδου ζεύξης ηµιουργία πλαισίων Έλεγχος σφαλµάτων Έλεγχος ροής Σχέση µεταξύ πακέτων (επιπέδου δικτύου) και πλαισίων (επι

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Ενότητα 3. Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet

Τηλεπικοινωνιακά Συστήματα ΙΙ

2ογελ ΣΥΚΕΩΝ 2ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ

Σ ή. : υαδικά. Ε ό. ή Ενότητα

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Ψηφιακή Λογική Σχεδίαση

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Εισαγωγή στους Υπολογιστές

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Δ/νση Β /θµιας Εκπ/σης Φλώρινας Κέντρο ΠΛΗ.ΝΕ.Τ. Πολυώνυµα ΠΟΛΥΩΝΥΜΑ ΑΚΕΡΑΙΑ ΠΟΛΥΩΝΥΜΑ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ

1.7 ΙΑΙΡΕΣΗ ΠΟΛΥΩΝΥΜΩΝ

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

Δ = δπ + υ με υ < δ. (Ταυτότητα της Ευκλείδειας διαίρεσης),

Πολυμέσα πάνω από κινητά δίκτυα

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Θέµατα ( ικαιολογείστε πλήρως όλες τις απαντήσεις σας)

Ψηφιακά Συστήματα. 1. Συστήματα Αριθμών

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 4 : Πράξεις με bits. Δρ. Γκόγκος Χρήστος

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

7 η Θεµατική Ενότητα : Καταχωρητές, Μετρητές και Μονάδες Μνήµης

Τρίτη Σειρά Ασκήσεων ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 1 ΛΥΣΗ ΑΣΚΗΣΗ 2

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

(x) = δ(x) π(x) + υ(x)

4.2 ΔΙΑΙΡΕΣΗ ΠΟΛΥΩΝΥΜΩΝ

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών

Προβλήµατα. 1st International Olympiad in Informatics Held in Pravetz, Bulgaria May 16-19, 1989.

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή

1.1 A. ΟΙ ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ ΚΑΙ ΟΙ

ΠΡΑΞΕΙΣ ΜΕ ΕΚΑ ΙΚΟΥΣ

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Αριθμητική Ανάλυση & Εφαρμογές

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

Μοντέλο Επικοινωνίας Δεδομένων. Επικοινωνίες Δεδομένων Μάθημα 6 ο

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Αριθμητικά Συστήματα. Επιμέλεια Διαφανειών: Δ.

Αριθμητικά Συστήματα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (ΠΜΣ) ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ Ι ΑΚΤΙΚΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΜΑΘΗΜΑΤΙΚΑ - Γ ΓΥΜΝΑΣΙΟΥ

Ελίνα Μακρή

Nέες Τεχνολογίες. στις Επικοινωνίες

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

EE728 (22Α004) - Προχωρημένα Θέματα Θεωρίας Πληροφορίας 3η σειρά ασκήσεων Διακριτά και Συνεχή Κανάλια. Παράδοση: Έως 22/6/2015

Ψηφιακοί Υπολογιστές

ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΝΑΛΙΟΥ (CHANNEL CODING)

Οδηγός Εξαγωγής Συγκεντρωτικών Καταστάσεων. ΚΕΠΥΟ και Ηλεκτρονικού Ισοζυγίου. στο InnovEra 3 R2 για τον RTC client

Ο μαθητής που έχει μελετήσει το κεφάλαιο αυτό θα πρέπει:

Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΑΣΚΗΣΕΙΣ ΕΠΑΝΑΛΗΨΗΣ 2 η ΕΚΑ Α

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

Κινητές Επικοινωνίες & Τηλεπικοινωνιακά Δίκτυα

ΠΟΛΥΩΝΥΜΑ ΠΟΛΥΩΝΥΜΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

2.2 ιαίρεση Πολυωνύμων

Ψηφιακή Μετάδοση Αναλογικών Σηµάτων

Εφαρμοσμένη Κρυπτογραφία Ι

Transcript:

Εργαστηριακή άσκηση 2 Θεωρία ΚΩ ΙΚΕΣ ΑΝΙΧΝΕΥΣΗΣ ΣΦΑΛΜΑΤΩΝ Οι κώδικες διόρθωσης σφαλµάτων χρησιµοποιούνται µερικές φορές για µετάδοση δεδοµένων, για παράδειγµα, όταν το κανάλι είναι µονόδροµο (simplex) και άρα δεν µπορούν να ζητηθούν επαναµεταδόσεις, όµως τις περισσότερες φορές προτιµάται η ανίχνευση σφαλµάτων ακολουθούµενη από επαναµετάδοση επειδή είναι περισσότερο αποδοτική. Σαν ένα απλό παράδειγµα, ας θεωρήσουµε ένα κανάλι στο οποίο τα σφάλµατα είναι αποµονωµένα και ο ρυθµός εµφάνισης σφαλµάτων είναι 10-6 σφάλµατα ανά bit. Ας υποθέσουµε ότι το µέγεθος της οµάδας είναι 1000 bits. Για τη διόρθωση σφαλµάτων σε οµάδα των 1000 bit απαιτούνται 10 bits ελέγχου, ένα εκατοµµύριο bits (1 megabit) δεδοµένων θα απαιτούσε 10000 bits ελέγχου. Για την ανίχνευση απλώς µίας λανθασµένης οµάδας, αρκεί ένα µόνο bit ισοτιµίας ανά οµάδα. Μία φορά κάθε 1000 οµάδες θα πρέπει να µεταδίδεται µία επιπλέον οµάδα (1001 bits). Η συνολική επιβάρυνση µε τη µέθοδο ανίχνευσης + επαναµετάδοσης σφάλµατος είναι µόνο 2001 bits ανά megabit δεδοµένων, αντί για 10000 bits για ένα κώδικα Hamming. Εάν ένα µόνο bit ισοτιµίας προστεθεί σε µία οµάδα και η οµάδα "χτυπηθεί" από ένα µεγάλο σφάλµα καταιγισµού, η πιθανότητα ανίχνευσης του σφάλµατος είναι µόλις 0.5, η οποία είναι πολύ δύσκολα αποδεκτή. Η κατάσταση µπορεί να βελτιωθεί σηµαντικά, θεωρώντας ότι κάθε οµάδα στέλνεται σαν ένας ορθογώνιος πίνακας πλάτους n bits και ύψους k bits. Ενα bit ισοτιµίας υπολογίζεται ξεχωριστά για κάθε στήλη και προσαρτάται στον πίνακα σαν η τελευταία σειρά. Ο πίνακας µεταδίδεται έπειτα µε µία στήλη τη φορά. Οταν η οµάδα ληφθεί, ο δέκτης ελέγχει όλα τα bits ισοτιµίας. Εαν κάποιο απ' αυτά είναι λανθασµένο, ζητάει την επαναµετάδοση της οµάδας. Αυτή η µέθοδος µπορεί να ανιχνεύσει έναν µόνο καταιγισµό µήκους n από τη στιγµή που θ' αλλαχθεί µόνο 1 bit ανά στήλη. Ενας καταιγισµός µήκους n+1 θα περάσει, ωστόσο, χωρίς να ανιχνευθεί εάν το πρώτο bit είναι αντεστραµµένο, και όλα τα άλλα bits είναι σωστά. (Ενας καταιγισµός σφαλµάτων δεν σηµαίνει ότι όλα τα bits είναι λανθασµένα, δηλώνει απλά ότι τουλάχιστον το πρώτο και το τελευταίο bit είναι λάθος). Εάν η οµάδα έχει "χτυπηθεί" από έναν µεγάλο καταιγισµό ή από πολλούς µικρότερους καταιγισµούς, η πιθανότητα οποιαδήποτε από τις n στήλες να έχει συµπτωµατικά τη σωστή ισοτιµία είναι 0.5, οπότε η πιθανότητα µία λανθασµένη οµάδα να γίνει αποδεκτή, όταν δεν πρέπει, είναι 2 -n. Παρόλο που το παραπάνω σχήµα µπορεί µερικές φορές να είναι επαρκές, στην πράξη χρησιµοποιείται ευρέως µία άλλη µέθοδος : ο πολυωνιµικός κώδικας (polynomial code), επίσης γνώστος και σαν κυκλικός κώδικας πλεονασµού (cyclic redundancy code ή κώδικας CRC). Οι πολυωνυµικοί κώδικες στηρίζονται πάνω στη χρησιµοποίηση ακολουθιών από bits σαν πολυωνυµικές παραστάσεις µε συντελεστές 0 και 1 µόνο. Ενα πλαίσιο των k-bit θεωρείται ως η λίστα των συντελεστών για ένα πολυώνυµο µε κ όρους, από x k-1 ως x 0. Ενα τέτοιο πολυώνυµο λέµε ότι είναι βαθµού κ-1. Το περισσότερο σηµαντικό (το πιο αριστερό) bit είναι ο συντελεστής του x k-1. Το επόµενο bit είναι είναι ο συντελεστής του x k-2 κ.λ.π. Για παράδειγµα, το 110001 έχει 6 bits κι έτσι αναπαριστά ένα πολυώνυµο 6 όρων µε συντελεστές 1, 1, 0, 0, 0 και 1, δηλ το : x 5 +x 4 +x 0. Οι πράξεις στα πολυώνυµα γίνονται modulo-2, σύµφωνα µε τους κανόνες της άλγεβρας. εν υπάρχουν κρατούµενα στην πρόσθεση και δανεικά στην αφαίρεση. Και η πρόσθεση και η αφαίρεση είναι ταυτόσηµες µε το ΑΠΟΚΛΕΙΣΤΙΚΟ OR. Για παράδειγµα: + 10011011 11001010 01010001 + 00110011 11001101 11111110-11110000 10100110 010110110-01010101 10101111 11111010 Η διαίρεση γίνεται µε τον ίδιο τρόπο, όπως και η δυαδική, µόνο που η αφαίρεση γίνεται modulo 2, όπως παραπάνω. Ενας διαιρέτης λέµε ότι "χωράει" σ' ένα διαιρετέο όταν ο διαιρετέος έχει τόσα bits όσα έχει κι ο διαιρέτης. Οταν χρησιµοποιείται η µέθοδος του πολυωνυµικού κώδικα, ο ποµπός και ο δέκτης πρέπει να συµφωνήσουν πάνω σ' ένα πολυώνυµο γεννήτορα (generator polynomial), G(x), εκ των προτέρων. Τόσο το περισσότερο σηµαντικό bit, όσο και το λιγότερο σηµαντικό bit του πολυωνύµου γεννήτορα πρέπει να είναι 1. Για τον υπολογισµό του αθροίσµατος ελέγχου (checksum) για µερικά πλαίσια των m bits, που αντιστοιχούν στο 11

πολυώνυµο Μ(x), το πλαίσιο πρέπει να είναι µεγαλύτερο από το πολυώνυµο γεννήτορα. Η βασική ιδέα είναι να προσαρτηθεί ένα άθροισµα στο τέλος του πλαισίου, έτσι ώστε το πολυώνυµο που παριστάνεται από το πλαίσιο µαζί µε το άθροισµα ελέγχου να διαιρείται µε το G(x). Οταν ο δέκτης λάβει το πλαίσιο µαζί µε το άθροισµα ελέγχου, προσπαθεί να το διαιρέσει µε το G(x). Εαν υπάρχει υπόλοιπο σηµαίνει ότι υπήρξε σφάλµα µετάδοσης. Ο αλγόριθµος για τον υπολογισµό του αθροίσµατος ελέγχου είναι ο ακόλουθος: 1. Εστω r ο βαθµός του G(x). Προσάρτησε r µηδενικά bits στο λιγότερο σηµαντικό άκρο του πλαισίου, έτσι ώστε να περιέχει m+r bits και να αντιστοιχεί στο πολυώνυµο x r *M(x) χρησιµοποιώντας διαίρεση modulo 2. 2. ιαίρεσε την ακολουθία των bits που αντιστοιχεί στο G(x) µε την ακολουθία των bits που αντιστοιχεί στο x r *M(x) χρησιµοποιώντας διαίρεση modulo 2. 3. Αφαίρεσε το υπόλοιπο (που είναι πάντα r ή λιγότερα bits που αντιστοιχεί στο x r *M(x), χρησιµοποιώντας αφαίρεση modulo 2. Το αποτέλεσµα είναι το πλαίσιο µαζί µε το άθροισµα ελέγχου που θα µεταδοθεί. Ονόµασε το πολυώνυµο του Τ(x). Στην συνέχεια απεικονίζεται ο υπολογισµός για ένα πλαίσιο 1101011011 και για G(x)=x 4 +x+1. Θα έπρεπε να είναι σαφές ότι το T(x) διαιρείται (κατά modulo 2) µε το G(x). Σε οποιοδήποτε πρόβληµα διαίρεσης, εάν αφαιρέσει κανείς το υπόλοιπο από τον διαιρετέο, το αποτέλεσµα διαιρείται µε τον διαιρέτη. Για παράδειγµα, στη βάση 10, εάν διαιρέσουµε το 210278 µε το 10941, το υπόλοιπο είναι 2399. Αφαιρώντας το 2399 από το 210278, το αποτέλεσµα (207879) διαιρείται µε το 10941. Ας αναλύσουµε τώρα την ισχύ αυτής της µεθόδου. Τι είδους σφάλµατα θα ανιχνευθούν; Φαντασθείτε ότι συµβαίνει ένα σφάλµα µετάδοσης, οπότε αντί να φτάσει το πολυώνυµο Τ(x), φτάνει το Τ(x)+E(x). Κάθε bit 1 στο Ε(x) αντιστοιχεί σ' ένα bit το οποίο έχει αντιστραφεί. Εαν υπάρχουν k bits 1 στο Ε(x) έχουν συµβεί k σφάλµατα ενός bit. Ενα µονό σφάλµα καταιγισµού χαρακτηρίζεται από ένα αρχικό 1, ένα µείγµα από 0 και 1 και ένα τελικό 1, µε όλα τα άλλα bits να είναι 0. Με τη λήψη του πλαισίου µε το άθροισµα ελέγχου, ο δέκτης το διαιρεί µε το G(x) δηλαδή κάνει την πράξη [T(x)+E(x)]/G(x). Το T(x)/G(x) είναι πάντοτε 0, οπότε το αποτέλεσµα της πράξης είναι απλά E(x)/G(x). Εκείνα τα σφάλµατα που έτυχε να αντιστοιχούν σε πολυώνυµα, τα οποία περιέχουν το G(x) σαν παράγοντα, θα περάσουν απαρατήρητα, όµως όλα τα άλλα σφάλµατα θα συλληφθούν. Εάν υπάρχει ένα σφάλµα ενός bit, τότε E(x)=x i, όπου το i καθορίζει ποιό bit είναι λάθος. Εάν το G(x) περιέχει δύο ή περισσότερους όρους, δε θα διαιρεί ποτέ το E(x), οπότε όλα τα σφάλµατα ενός bit θα ανιχνευθούν. Εάν υπάρχουν δύο αποµονωµένα σφάλµατα ενός bit, τότε Ε(x)=x i +x j, όπου ι>j. Εναλλακτικά αυτό µπορεί να γραφεί ως Ε(x)=x j (x i-j +1). Εάν θεωρήσουµε ότι το G(x) δεν διαιρείται µε το x, τότε µία ικανοποιητική συνθήκη για την ανίχνευση των όλων των διπλών σφαλµάτων είναι ότι το G(x) δεν διαιρεί το x k +1 για οποιοδήποτε k µέχρι τη µέγιστη τιµή i-j (δηλ. µέχρι το µέγιστο µήκος πλαισίου). Απλά, χαµηλού βαθµού πολυώνυµα, που δίνουν προστασία σε µεγάλα πλαίσια, είναι γνωστά. Για παράδειγµα, το x 15 +x 14 +1 δεν θα διαιρεί το x k +1 για οποιοδήποτε k µικρότερο του 32768. Πλαίσιο : 1101011011 Πολυώνυµο γεννήτορας : 10011 Μήνυµα µετά την προσάρτηση 4 µηδενικών bits : 11010110110000 Σύµφωνα µε τον αλγόριθµο για τον υπολογισµό του αθροίσµατος ελέγχου του πολυωνυµικού κώδικα που αναφέρθηκε παραπάνω ισχύει : 12

1100001010 _ 10011 11010110110000 10011 10011 10011 00001 00000 000 10 000 00 00 101 00 000 _ 0 1011 0 0000 10110 10011 01010 00000 10100 10011 01110 00000 1110 Υπόλοιπο Άρα το πλαίσιο που µεταδίδεται είναι το 11010110111110 Εάν υπάρχει περιττός αριθµός λανθασµένων bits, το E(x) περιέχει έναν περιττό αριθµό όρων (π.χ. x 5 +x 2 +1, αλλά όχι x 2 +1). Αρκετά ενδιαφέρον είναι ότι δεν υπάρχει πολυώνυµο µε περιττό αριθµό όρων που να έχει το x+1 σαν παράγοντα στο σύστηµα modulo 2. Κάνοντας το x+1 παράγοντα του G(x), µπορούµε να συλλάβουµε όλα τα σφάλµατα που αποτελούνται από περιττό αριθµό αντεστραµµένων bits. Για να καταλάβουµε ότι κανένα πολυώνυµο µε περιττό αριθµό όρων δεν διαιρείται µε το x+1, ας θεωρήσουµε ότι το E(x) έχει περιττό αριθµό όρων και διαιρείται µε το x+1. ηλαδή το E(x) γράφεται σαν (x+1)*q(x). Τώρα υπολογίζουµε το Ε(1) = (1+1) * Q(1). Εφόσον 1+1=0 (modulo 2), το Ε(1) πρέπει να είναι 0. Εάν το Ε(x) έχει περιττό αριθµό όρων, αντικαθιστώντας το x µε 1 οπουδήποτε θα έχουµε το αποτέλεσµα 1. Ετσι λοιπόν κανένα πολυώνυµο µε περιττό αριθµό όρων δεν διαιρείται µε το x+1. Τέλος, το πιο σηµαντικό, είναι ότι ένας πολυωνυµικός κώδικας µε r bits ελέγχου θα ανιχνεύει όλα τα σφάλµατα καταιγισµού µήκους r. Ενα σφάλµα καταιγισµού µήκους k µπορεί να αναπαρασταθεί µε x i * (x k- 1 +...+1), όπου το i προσδιορίζει το πόσο µακριά από το δεξιό άκρο του ληφθέντος πλαισίου εντοπίζεται ο καταιγισµός. Εάν το G(x) περιέχει ένα όρο x 0, δεν θα έχει σαν παράγοντα το x i, οπότε εάν ο βαθµός της έκφρασης σε παρένθεση είναι µικρότερος από το βαθµό του G(x), το υπόλοιπο δεν µπορεί ποτέ να είναι µηδέν. Εάν το µήκος του καταιγισµού είναι r+1, το υπόλοιπο της διαίρεσης µε το G(x) θα είναι 0, εάν και µόνο εάν ο καταιγισµός ταυτίζεται µε το G(x). Εξ ορισµού στον καταιγισµό, το πρώτο και το τελευταίο bit πρέπει να είναι 1, οπότε το αν ταυτίζεται µε το G(x) εξαρτάται από το r-1 ενδιάµεσα bits. Εάν όλοι οι συνδυασµοί θεωρήθει ότι έχουν ίση πιθανότητα εµφάνισης, τότε η πιθανότητα να γίνει αποδεκτό ένα τέτοιο λανθασµένο πλαίσιο σαν έγκυρο είναι 1/2 r-1. Μπορεί επίσης να αποδειχθεί ότι εάν συµβεί ένας καταιγισµός σφαλµάτων µεγαλύτερος από r+1 bits, ή εάν συµβούν πολλοί µικρότεροι καταιγισµοί, η πιθανότητα ένα λανθασµένο πλαίσιο να περάσει απαρατήρητο είναι 1/2 r, θεωρώντας ότι όλοι οι συνδυασµοί (pattern) των bits έχουν την ίδια πιθανότητα εµφάνισης. 13

Τρία πολυώνυµα έχουν γίνει διεθνή πρότυπα: CRC-12 = x 12 +x 11 +x 3 +x 2 +x 1 +1 CRC-16 = x 16 +x 15 +x 2 +1 CRC-CCITT = x 16 +x 12 +x 7 +1 Και τα τρία περιέχουν το x+1 σαν κύριο παράγοντα. Το CRC-12 χρησιµοποείται όταν το µήκος χαρακτήρα είναι 6 bits. Τα άλλα δύο χρησιµοποιούνται για χαρακτήρες των 8 bits. Ενα άθροισµα ελέγχου 16 bit, όπως το CRC-16 ή το CRC-CCITT, συλλαµβάνει όλα τα µονά και διπλά σφάλµατα, όλα τα σφάλµατα µε περιττό αριθµό bits, όλα τα σφάλµατα καταιγισµού µε µήκος 16 bits ή µικρότερο, το 99,997% των σφαλµάτων καταιγισµού µε 17 bits και το 99,998% των καταιγισµών των 18 bits και µεγαλυτέρων. Παρόλο που ο υπολογισµός που απαιτείται για το άθροισµα ελέγχου πιθανώς να φαίνεται πολύπλοκος, οι Peterson και Brown (1961) έδειξαν ότι ένα απλό κύκλωµα καταχωρητή ολίσθησης (shift register) µπορεί να κατασκευαστεί µε υλικό (Hardware) για τον υπολογισµό και την επιβεβαίωση των αθροισµάτων ελέγχου. Στη πράξη, αυτό το υλικό χρησιµοποιείται σχεδόν πάντοτε. Στην συνέχεια θα παρουσιαστεί ένα παράδειγµα για την καλύτερη κατανόηση του κυκλικού κώδικα. Υποθέτουµε ότι το µήνυµα που εκπέµπεται περιλαµβάνει τα ακόλουθα bits : 1101 0011 0111 Η βασική προσέγγιση είναι η αναπαράσταση των bits σαν πολυώνυµο του x όπου τα bits είναι οι συντελεστές. Συνεπώς το µήνυµα πολυώνυµο Μ(x) είναι: Μ(x) = 1101 0011 0111 = 1x 11 +1x 10 +0x 9 +1x 8 +0x 7 +0x 6 +1x 5 +1x 4 +0x 3 +1x 2 +1x 1 +1 = x 11 +x 10 +x 8 +x 5 +x 4 +x 2 +x+1 Με χρήση του πολυωνύµου γεννήτορα P(x) για το πολυώνυµο Μ(x) ισχύει: M( x) x Px ( ) p Rx ( ) = Q(x) + Px ( ) Το M(x)x p προσθέτει p µηδενικά του M(x) στο λιγότερο σηµαντικό άκρο του πλαισίου. Η διαίρεση από το P(x) εκτελείται µε χρήση αριθµητικής modulo-2 (ή αποκλειστικής OR) χωρίς κρατούµενα. Ετσι : 0+0 = 0 0*0 = 0 0+1 = 1 0*1 = 0 1+0 = 1 1*0 = 0 1+1 = 0 1*1 = 1 Είναι γνωστό ότι όταν χρησιµοποιείται ο κυκλικός κώδικας, ο ποµπός και ο δέκτης πρέπει να συµφωνήσουν πάνω σ' ένα πολυώνυµο γεννήτορα, P(x), εκ των προτέρων. Στο συγκεκριµένο παράδειγµα έχει επιλεγεί το πολυώνυµο P(x) = (x+1) * (x 4 +x+1) = x 5 +x 4 +x 2 +1 = 110101 Στη συγκεκριµένη διαίρεση ενδιαφέρει το υπόλοιπο R(x) και το µήνυµα M(x)x p που αποτελούν το εκπεµπόµενο µήνυµα Τ(x)=M(x)x p + R(x) Στο συγκεκριµένο παράδειγµα είναι: Μ(x)x p = 1101 0011 0111 00000 (p=5 σύµφωνα µε το βαθµό του πολυωνύµου) Η διαίρεση που πραγµατοποιείται µεταξύ του µηνύµατος (της πληροφορίας των 12 bits και των πέντε επιπλέον µηδενικών) και του πολυωνύµου γεννήτορα είναι η ακόλουθη : 14

100 0010 1 0 1 0 1 = Q(x) P(x) = 110 101 1101 0011 0111 0 0 0 0 0 = M(x)x p 1101 01 111 011 110 101 _ 1 1101 0 1 1010 1 _ 111 100 110 101 _ 1 00100 1 10101 _ 10001 = R(x) Αρα το εκπεµπόµενο µήνυµα είναι Τ(x) = 1101 0011 0111 10001. Το R(x) είναι το σύνδροµο και προστίθεται στο λιγότερο σηµαντικό άκρο της πληροφορίας που δώσατε. Στον δέκτη, το λαµβανόµενο µήνυµα διαιρείται από το ίδιο πολυώνυµο γεννήτορα G(x) G(x) = (x+1) * (x 4 +x+1) = x 5 +x 4 +x 2 +1 = 110101 και αν δεν υπάρχουν λάθη στην εκποµπή, το υπόλοιπο πρέπει να είναι µηδέν: T( x) Px ( ) = [M(x)x+R(x)]/P(x) = Q* (x) + µηδέν υπόλοιπο Αν το κανάλι επικοινωνίας µεταξύ ποµπού και δέκτη παρουσιάζει θόρυβο τότε το εκπεµπόµενο µήνυµα φτάνει στο δέκτη µε ένα ή περισσότερα σφάλµατα. Αν λοιπόν αυτό ή αυτά τα σφάλµατα παρασταθούν από ένα πολυώνυµο Ε(x) παρόµοιο µε το T(x) και T(x)+E(x) θα είναι το λαµβανόµενο µήνυµα που περιέχει σφάλµατα, στον δέκτη θα είναι: T ( x ) E ( x ) [T(x)+E(x)]/P(x) = Px ( ) + Px ( ) Εάν Ε(x)/P(x) δώσει υπόλοιπο µη µηδενικό τότε έχει ανιχνευθεί ένα σφάλµα. Γι αυτό το παράδειγµα που εξετάζουµε, ισχύει: E(x)= 0000 1 111 1000 00000 T(x)= 1101 0 011 0111 10001 T(x)+E(x)= 1101 1 100 1111 10001 Συνεπώς η διαίρεση που πραγµατοποιείται µεταξύ του λανθασµένου µηνύµατος και του πολυωνύµου γεννήτορα χρησιµοποιώντας είτε modulo 2 είτε αποκλειστική OR είναι η ακόλουθη : 15

100 0111 0 0 1 1 1 = Q * (x) G(x) = 110 101 1101 1100 1111 1 0 0 0 1 = T(x) + E(x) 1 101 01 _ 1000 11 1101 01 _ 101 101 110 101 _ 11 0001 11 0101 _ 100 1 0 0 110 1 0 1 10 0 0 1 0 11 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 = R(x) Αφού το R(x) δεν είναι µηδέν σηµαίνει ότι το µήνυµα είναι λανθασµένο. Ετσι επιτεύχθηκε η ανίχνευση σφαλµάτων µέσω του κυκλικού κώδικα. To υπόλοιπο R(x) που δηµιουργείται από την παραπάνω διαδικασία προστίθεται στο µήνυµα και ονοµάζεται χαρακτήρας CRC. Αρκετά απλά κυκλώµατα φαίνονται στο σχήµα 1.2 και αυτά εκτελούν διαιρέσεις. Συσκευές όπως η Motorola Universal Polynomial Generator, που φαίνεται στο σχήµα 1.3, διατίθενται στο εµπόριο µε επιλογή των πολυωνύµων γεννητόρων. Η µορφή του πολυωνύµου γεννήτορα είναι σηµαντική σ αυτή τη µέθοδο. Γενικά, ένα πολυώνυµο γεννήτορας θα ανιχνεύσει όλα τα λάθη καταιγισµού όταν το µήκος των bits είναι λιγότερο από τον αριθµό των bits του πολυωνύµου γεννήτορα. Στο παραπάνω παράδειγµα, το πολύ τέσσερα bits είναι ανιχνεύσιµα. Ενα λάθος καταιγισµού αναφέρεται σε µία οµάδα λανθασµένων bits µέσα σ ένα µπλοκ µηνύµατος. Το µήκος ενός σφάλµατος καταιγισµού είναι ο αριθµός των bits σε µία οµάδα που έχει τουλάχιστον λανθασµένα το πρώτο και το τελευταίο bit. Σηµείωση: Για την εγκατάσταση των δύο προγραµµάτων (ασκ. 1 και 2) στον υπολογιστή σας απαιτείται αρχικά να δηµιουργήσετε ένα directory µε το όνοµα vb στο δίσκο C. Οταν τοποθετήσετε την πρώτη δισκέτα του εκάστοτε προγράµµατος στο drive Α του υπολογιστή σας τότε επιλέγετε το αρχείο setup.exe και πατάτε διπλό click πάνω σ αυτό. Αρχίζει λοιπόν η εγκατάσταση του προγράµµατος. Στην ερώτηση σε ποιο directory επιθυµείτε να τοποθετήσετε το πρόγραµµα γράφετε c:/vb. Ετσι συνεχίζεται κανονικά η εγκατάσταση µέχρι που ολοκληρώνεται. 16

Εργαστηριακό µέρος ΚΥΚΛΙΚΟΣ ΠΛΕΟΝΑΣΜATIKOΣ ΕΛΕΓΧΟΣ (CRC) Το εκπαιδευτικό πρόγραµµα που θα περιγραφεί έχει ως σκοπό την εκµάθηση του Κυκλικού Πλεονασµατικού Ελέγχου. Κατά την εκτέλεση του εµφανίζεται µια αρχική οθόνη, η οποία αποτελεί την εισαγωγή στο πρόγραµµα. Και προσφέρει τη δυνατότητα µελέτης της θεωρίας που αφορά τον Κυκλικό Κώδικα Πλεονασµού. Τα scroll bars επιτρέπουν στο χρήστη να µελετήσει εύκολα το κείµενο. Αν επιθυµεί να βγεί από το πρόγραµµα µπορεί να πατήσει το αριστερό πλήκτρο του ποντικιού πάνω στο µενού Ελεγχος ιαδικασίας και να επιλέξει Έξοδος. Επίσης από το ίδιο µενού µπορεί να επιλέξει Παράδειγµα και να µελετήσει το παράδειγµα που προσφέρει το πρόγραµµα για την κατανόηση του Κυκλικού Κώδικα Πλεονασµού. Εφόσον ο χρήστης επιλέξει Παράδειγµα µπορεί να παρακολουθήσει πρακτικά τη λειτουργία του κυκλικού κώδικα πλεονασµού. Αρχικά πρέπει να τοποθετήσει µία πληροφορία σε δυαδική µορφή των 12 bits στο πλαίσιο που βρίσκεται κάτω από τον ποµπό. Η εκτέλεση του προγράµµατος δεν συνεχίζει και εµφανίζεται προειδοποιητικό µήνυµα αν ο χρήστης δεν εισάγει έγκυρη πληροφορία σύµφωνα µε τις οδηγίες που του παρέχονται. Στην παρακάτω οθόνη υπάρχουν δύο µενού : Έλεγχος ιαδικασίας και Θεωρητική Υποστήριξη. Από το πρώτο µενού ο χρήστης µπορεί να βγεί από το πρόγραµµα επιλέγοντας Εξοδος ή να πραγµατοποιήσει επανάληψη του προγράµµατος επιλέγοντας Επανάληψη Κώδικα. Από το δεύτερο µενού ο χρήστης έχει τη δυνατότητα να µελετήσει τις διαδικασίες κωδικοποίησης και αποκωδικοποίησης όπως θα δείτε σε µία από τις ακόλουθες οθόνες. Αν ο χρήστης πληκτρολογήσει έγκυρη πληροφορία τότε ενεργοποιείται το µπουτόν Συνεχίστε όπως φαίνεται παρακάτω. Αν πατήσει το µπουτόν Συνεχίστε τότε η πληροφορία οδηγείται στον κωδικοποιητή και στο λιγότερο σηµαντικό άκρο της προστίθενται πέντε µηδενικά αφού το πολυώνυµο γεννήτορας που χρησιµοποιείται στο συγκεκριµένο παράδειγµα είναι πέµπτου βαθµού και είναι το G(x) = (x+1) (x 4 +x+1) = x 5 + x 4 + x 2 + 1 = 110101. Ταυτόχρονα ενεργοποιείται το µπουτόν Κωδικοποίηση. 17

Αν πατήσει το µπουτόν Κωδικοποίηση τότε τα πέντε µηδενικά που είχαν προστεθεί στο λιγότερο σηµαντικό άκρο του µηνύµατος αντικαθίστανται από το σύνδροµο (όπως λέγεται το υπόλοιπο της διαίρεσης που πραγµατοποιείται µεταξύ του πολυωνύµου γεννήτορα και του µηνύµατος) που βρίσκεται µετά από την κωδικοποίηση. To µενού Θεωρητική υποστήριξη επιτρέπει τη µελέτη τη διαδικασίας κωδικοποίησης και αποκωδικοποίησης εφόσον το επιθυµήσει ο χρήστης όπως φαίνεται στην οθόνη που ακολουθεί. Τα µπουτόν Εκποµπή/0, Εκποµπή/1 και Εκποµπή/2 είναι ενεργοποιηµένα και ο χρήστης µπορεί να επιλέξει κάποιο απ αυτά ανάλογα αν επιθυµεί να δηµιουργήσει στο µήνυµα 0, 1 ή 2 σφάλµατα αντίστοιχα. Έστω ότι ο χρήστης επιλέγει το µήνυµα να φτάσει στον δέκτη χωρίς σφάλµατα τότε πατάει το µπουτόν Εκποµπή/0, το µήνυµα παραµένει όπως ακριβώς το µετέδωσε ο ποµπός και επιπλέον ενεργοποιείται το µπουτόν Αποκωδικοποίηση. 18

Αν πατήσει το µπουτόν Αποκωδικοποίηση τότε ανιχνεύεται η απουσία σφάλµατος αφού το υπόλοιπο της διαίρεσης µεταξύ του µηνύµατος και του πολυωνύµου γεννήτορα είναι µηδέν και έτσι το µήνυµα φτάνει σωστό στο δέκτη. Ο χρήστης έχει τη δυνατότητα να µελετήσει πάλι τον κώδικα, να µελετήσει ένα πραγµατικό παράδειγµα (µε χρήση πραγµατικού πολυωνύµου γεννήτορα) που ακολουθεί στην επόµενη οθόνη ή να βγεί από το πρόγραµµα µε τις αντίστοιχες επιλογές από το µενού Έλεγχος ιαδικασίας. Αν ο χρήστης αποφασίσει να δηµιουργήσει ένα σφάλµα στο µήνυµα τότε επιλέγει Εκποµπή/1 και το µήνυµα φτάνει στον δέκτη µε ένα λανθασµένο bit. Ταυτόχρονα ενεργοποιείται το µπουτόν Αποκωδικοποίηση. Αν πατήσει το µπουτόν Αποκωδικοποίηση τότε ανιχνεύεται η παρουσία σφάλµατος αφού το υπόλοιπο της διαίρεσης µεταξύ του µηνύµατος και του πολυωνύµου γεννήτορα δεν είναι µηδέν και έτσι το µήνυµα φτάνει λανθασµένο στο δέκτη ο οποίος ζητά αναµετάδοση του από τον ποµπό. Ο χρήστης έχει τη δυνατότητα να µελετήσει πάλι τον κώδικα, να µελετήσει ένα πραγµατικό παράδειγµα (µε χρήση πραγµατικού πολυωνύµου γεννήτορα) που ακολουθεί στην επόµενη οθόνη ή να βγεί από το πρόγραµµα µε τις αντίστοιχες επιλογές από το µενού Έλεγχος ιαδικασίας. Αν ο χρήστης επιθυµεί να δηµιουργήσει δύο σφάλµατα τότε επιλέγει Εκποµπή/2 και συγχρόνως µε την εκποµπή πραγµατοποιείται και ενεργοποίηση του µπουτόν Αποκωδικοποίηση. Αν πατήσει το µπουτόν Αποκωδικοποίηση τότε ανιχνεύεται η παρουσία σφάλµατος αφού το υπόλοιπο της διαίρεσης µεταξύ του µηνύµατος και του πολυωνύµου γεννήτορα δεν είναι µηδέν και έτσι το µήνυµα φτάνει λανθασµένο στο δέκτη ο οποίος µε τη σειρά του ζητά αναµετάδοση του µηνύµατος. Ο χρήστης έχει τη δυνατότητα να µελετήσει πάλι τον κώδικα, να µελετήσει ένα πραγµατικό παράδειγµα (µε χρήση πραγµατικού πολυωνύµου γεννήτορα) που ακολουθεί στην επόµενη οθόνη ή να βγεί από το πρόγραµµα µε τις αντίστοιχες επιλογές από το µενού Έλεγχος ιαδικασίας. Ο χρήστης έχει τη δυνατότητα να επιστρέψει στην οθόνη όπου πραγµατοποιείται η ανίχνευση των σφαλµάτων πατώντας το αριστερό πλήκτρο του ποντικιού αφού οδηγηθεί ο δείκτης του πάνω στην επιλογή Επιστροφή. Στην συνέχεια παρουσιάζεται ένα πραγµατικό παράδειγµα το οποίο υλοποιείται µε το διεθνές πολυώνυµο CRC-12 που έχει την εξής δυαδική µορφή: 1100000001111. Η λειτουργία του κώδικα στο πραγµατικό παράδειγµα είναι ίδια µε αυτή που παρουσιάστηκε στο προηγούµενο παράδειγµα µε την 19

µόνη διαφορά ότι η κωδικοποίηση και αποκωδικοποίηση του µηνύµατος πραγµατοποιείται µε το πολυώνυµο γεννήτορα CRC-12. Στην συνέχεια η πληροφορία φτάνει στον κωδικοποιητή και προστίθενται 12 µηδενικά στο λιγότερο σηµαντικό της άκρο λόγω του 12ου βαθµού πολυωνύµου γεννήτορα που χρησιµοποιείται. Αφού πραγµατοποιηθεί η κωδικοποίηση του µηνύµατος, ο χρήστης έχει τη δυνατότητα να δηµιουργήσει 0, 1ή 2 σφάλµατα. Αν επιλέξει να µη δηµιουργήσει σφάλµα τότε το µήνυµα φτάνει σωστό στο δέκτη και η αποκωδικοποίηση αποδεικνύει την απουσία σφάλµατος όπως φαίνεται στις δύο παρακάτω οθόνες. Επίσης ο χρήστης επιτρέπεται να βγεί από το πρόγραµµα, να µελετήσει πάλι το πραγµατικό παράδειγµα ή να επαναλάβει τον κυκλικό κώδικα πλεονασµού από το µενού Έλεγχος ιαδικασίας. Στην περίπτωση που ο χρήστης επιλέξει να δηµιουργήσει ένα σφάλµα τότε το µήνυµα φτάνει λανθασµένο στο δέκτη και η αποκωδικοποίηση αποδεικνύει την παρουσία σφάλµατος και ο δέκτης ζητάει αναµετάδοση του µηνύµατος από τον ποµπό όπως φαίνεται στις δύο παρακάτω οθόνες. Επίσης ο χρήστης επιτρέπεται να βγεί από το πρόγραµµα, να µελετήσει πάλι το πραγµατικό παράδειγµα ή να επαναλάβει τον κυκλικό κώδικα πλεονασµού από το µενού Έλεγχος ιαδικασίας. 20

Στην περίπτωση που ο χρήστης επιλέξει να δηµιουργήσει δύο σφάλµατα τότε το µήνυµα φτάνει λανθασµένο στο δέκτη και η αποκωδικοποίηση αποδεικνύει την παρουσία σφάλµατος και ο δέκτης ζητάει αναµετάδοση του µηνύµατος από τον ποµπό όπως φαίνεται στις δύο παρακάτω οθόνες. Επίσης ο χρήστης επιτρέπεται να βγεί από το πρόγραµµα, να µελετήσει πάλι το πραγµατικό παράδειγµα ή να επαναλάβει τον κυκλικό κώδικα πλεονασµού από το µενού Έλεγχος ιαδικασίας. 21