Πανεπιστήµιο Πατρών Σχολή Επιστηµών Υγείας Τµήµα Ιατρικής Εθνικό Μετσόβιο Πολυτεχνείο Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Τµήµα Μηχανολόγων Μηχανικών ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗ ΒΙΟΪΑΤΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΘΕΜΑ Προσομοίωση Φυσικού Επιπέδου και Επιπέδου Σύνδεσης Δεδομένων Ασύρματου Δικτύου Ιατρικών Αισθητήρων ΚΑΡΚΑΝΗΣ ΧΑΡΑΛΑΜΠΟΣ ΑΜ: 4 ΑΘΗΝΑ 005
Πανεπιστήµιο Πατρών Σχολή Επιστηµών Υγείας Τµήµα Ιατρικής Εθνικό Μετσόβιο Πολυτεχνείο Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Τµήµα Μηχανολόγων Μηχανικών ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗ ΒΙΟΪΑΤΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΘΕΜΑ Προσομοίωση Φυσικού Επιπέδου και Επιπέδου Σύνδεσης Δεδομένων Ασύρματου Δικτύου Ιατρικών Αισθητήρων ΚΑΡΚΑΝΗΣ ΧΑΡΑΛΑΜΠΟΣ ΑΜ: 4 ΑΘΗΝΑ 005
Τριµελής Επιτροπή: ) Καθηγητής Κουτσούρης Δημήτριος ) Καθηγητής Τσανάκας Παναγιώτης 3) Αναπληρώτρια Καθηγήτρια Νικήτα Κωνσταντίνα
ΠΕΡΙΕΧΟΜΕΝΑ Σελίδα ΕΙΣΑΓΩΓΗ.. ΜΕΡΟΣ Α (Θεωρητικό υπόβαθρο) ΚΕΦΑΛΑΙΟ ο : Κωδικοποίηση και διόρθωση σφαλμάτων Γενικά...7. Είδη Κωδίκων...9. Block κώδικες. 9.. Γραμμικοί Block Κώδικες.4.. Γεννήτριες μήτρες και μήτρες ελέγχου ισοτιμίας (Generator matrix and parity check matrix).....5..3 Κώδικες Hamming. 8.3 Αποκωδικοποίηση και Επίδοση Γραμμικών Block Κωδίκων...9.3. Αποκωδικοποίηση ευέλικτης απόφασης..9.3. Αποκωδικοποίηση άκαμπτης απόφασης...3.3 Ανίχνευση και διόρθωση σφάλματος. 7.4 Κυκλικοί κώδικες..9.4. Διαδικασία κωδικοποίησης κυκλικού κώδικα..3.4. Εντοπισμός σφαλμάτων με κυκλικούς κώδικες. 36.4.3 Διαδικασία διόρθωσης λαθών..37.4.4 Shortened Cyclic Block Codes. 40.4.5 Burst-Error-correcting Cyclic Codes.. 43.4.6 Συνδυασμός Κωδίκων. 44
ΚΕΦΑΛΑΙΟ ο : Μετάδοση της ιατρικής πληροφορίας Γενικά....47. Εισαγωγή στην Μεταλλαγή Μετατόπισης Συχνότητας (Frequency Shift Keying, FSK).. 47. Αποδιαμόρφωση και ανίχνευση σημάτων FSK.50.3 Ο βέλτιστος ανιχνευτής για το δυαδικό FSK..53.4 Πιθανότητα σφάλματος για μη σύμφωνη ανίχνευση FSK.. 57.5 FSK συνεχούς φάσης (Continuous Phase FSK, CPFSK) 60.6 Φασματικά χαρακτηριστικά των σημάτων CPFSK..66 ΜΕΡΟΣ Β (Προσομοίωση - Αποτελέσματα) ΚΕΦΑΛΑΙΟ 3 ο : Περιγραφή της πειραματικής διάταξης και α- νάπτυξη προγραμμάτων σε Η/Υ Γενικά.... 7 3. Περιγραφή της πειραματικής διάταξης... 7 3. Δημιουργία της CRC λέξης.. 73 3.. Εισαγωγή στον Κυκλικό Έλεγχο Πλεονασμού (Cyclic Redundancy Check, CRC)...73 3.. Εφαρμογή του CRC στο block δεδομένων της ιατρικής πληροφορίας.75 3.3 Κωδικοποίηση Forward Error Correction (FEC) του block της ιατρικής πληροφορίας... 77 3.3. Εισαγωγή στο Forward Error Correction (FEC). 77 3.3. Εφαρμογή του FEC στο block δεδομένων της ιατρικής πληροφορίας...78 3.4 Μετάδοση των block δεδομένων. 80 3.4. Ο πομποδέκτης ΧΕ09..8 3.4.. Αναλυτική περιγραφή του πομποδέκτη ΧΕ09. 8 3.4.. Τυπικά εξωτερικά εξαρτήματα.. 84 3.4..3 RF σήματα εισόδου / εξόδου.84
3.4..4 Προγραμματισμός του ΧΕ09. 86 3.4..5 Ο καταχωρητής διαμόρφωσης..87 3.4. Υπολογισμός παραμέτρων μετάδοσης 88 3.5 Έλεγχος της CRC λέξης..89 3.6 Διόρθωση της λέξης CRC..90 3.7 Επανέλεγχος της CRC λέξης...93 3.8 Διόρθωση όλων των λέξεων του block..94 3.9 Προσομοίωση της επεξεργασίας και της μετάδοσης της ιατρικής πληροφορίας στο Matlab..95 3.9. Υλοποίηση των συναρτήσεων fec, defec, crc, decrc. 96 3.9. Προσομοίωση της μετάδοσης CPFSK με τα modules του Simulink.0 3.9.3 Προγράμματα υπολογισμού σφαλμάτων σε blocks, bits και λέξεις.07 ΚΕΦΑΛΑΙΟ 4 ο : Αποτελέσματα της προσομοίωσης Γενικά....8 ΚΕΦΑΛΑΙΟ 5 ο : Συμπεράσματα Γενικά.... ΠΑΡΑΡΤΗΜΑ... 30 ΒΙΒΛΙΟΓΡΑΦΙΑ....34
Εισαγωγή Ο σκοπός της μεταπτυχιακής αυτής εργασίας, είναι η ανάλυση, όσον αφορά την πιθανότητα σφάλματος, ενός τηλεπικοινωνιακού συστήματος το οποίο μεταδίδει ιατρική πληροφορία, ασύρματα, μεταξύ δυο κόμβων ενός δικτύου ιατρικών αισθητήρων. Το δίκτυο αυτό περιλαμβάνει έναν επιβλέποντα κόμβο ο οποίος προωθεί τα δεδομένα που συλλέχθηκαν σε ένα σταθμό βάσης ο οποίος βρίσκεται σε ένα νοσοκομείο. Η μετάδοση της ιατρικής πληροφορίας επιτυγχάνεται με ένα πομποδέκτη ο οποίος είναι ενσωματωμένος σε όλους τους κόμβους του ασύρματου δικτύου. Χρησιμοποιείται ο ΧΕ09 πομποδέκτης της εταιρίας Xemics S.A. ο οποίος χρησιμοποιεί την διαμόρφωση -CPFSK ενώ η φέρουσα συχνότητα είναι τα 36,86 khz. Η επιλογή του συγκεκριμένου πομποδέκτη έγινε λόγω της χαμηλής κατανάλωσης ισχύος του καθώς και λόγω του ότι είναι κατάλληλος για την μετάδοση δεδομένων σε χαμηλές συχνότητες, και συνεπώς χωρίς να υπάρχει ανάγκη αδειοδότησης. Προτού, όμως, μεταδοθεί η ιατρική πληροφορία, λόγω της κρισιμότητας της φύσης της, θα πρέπει να γίνει μια κατάλληλη επεξεργασία ώστε να προστατευθεί από τον πανταχού παρών θόρυβο και να φτάσει αναλλοίωτη στο δέκτη. Η επεξεργασία της ιατρικής πληροφορίας περιλαμβάνει τον κυκλικό έλεγχο πλεονασμού (Cyclic Redundancy Check - CRC) και την εφαρμογή ενός σχήματος διόρθωσης λαθών (Forward Error Correction FEC). Η ιατρική πληροφορία πριν την είσοδό της στον κωδικοποιητή έχει ψηφιοποιηθεί (μετατρέπεται δηλαδή σε μια ακολουθία από bits). Τα bits της πληροφορίας, στη συνέχεια, ομαδοποιούνται σε «λέξεις» των 6 ψηφίων, ενώ 80 τέτοιες «λέξεις», με τη σειρά τους, συνενώνονται σε ένα «block» το οποίο αποτελεί και το στοιχειώδες πακέτο πληροφορίας προς μετάδοση. Στη συνέχεια της ανάλυσής μας θα θεωρούμε ότι ένα block έχει σταλεί σωστά όταν κανένα bit, σε οποιαδήποτε λέ-
Εισαγωγή ξη που περιέχει, δεν έχει μεταδοθεί λάθος. Έχουμε λοιπόν 80 λέξεις των 6 bit η καθεμία, να αποτελούν ένα block και ακολουθεί η επεξεργασία αυτού του block (κωδικοποίησή του) ώστε να «αντέχει» στις συνθήκες μετάδοσης και να φτάνει στον δέκτη, μετά από την αποκωδικοποίησή του, χωρίς σφάλμα. Στην εικόνα που ακολουθεί βλέπουμε το διάγραμμα του συστήματος το οποίο θα αναλύσουμε. Εικόνα Διάγραμμα του συστήματος επικοινωνίας προς μελέτη Η διαδικασία κωδικοποίησης περιλαμβάνει τον κυκλικό έλεγχο πλεονασμού (Cyclic Redundancy Check - CRC) και την εφαρμογή του σχήματος διόρθωσης λαθών (Forward Error Correction - FEC), όπως έχουμε ήδη αναφέρει και πιο πάνω. Κατά την διαδικασία υπολογισμού της κωδικής λέξης CRC ενός στοιχειώδους πακέτου πληροφορίας, το κάθε block υπόκειται σε μια κυκλική διαδικασία, έναν αλγόριθμο, τον οποίο και θα δούμε αναλυτικά σε επόμενο κεφάλαιο και στο τέλος της διαδικασίας αυτής δημιουργείται μια καινούρια λέξη των 6 bit, η οποία είναι χαρακτηριστική της ακολουθίας των 80 λέξεων του block και η οποία προστίθεται στο τέλος του block. Η λειτουργία της λέξης αυτής θα φανεί στην αποκωδικοποίηση του block, ενώ η χρησιμότητά της έγκειται στην γρηγορότερη αποκωδικοποίηση ενός σωστά μεταδιδόμενου block. Μετά από το CRC, λοιπόν, έχουμε ένα block το οποίο αποτελείται από 8 λέξεις των 6 bit. Το νέο block, υπόκειται, στη συνέχεια, σε ένα είδος κωδικοποίησης η οποία ονομάζεται Forward Error Correction (FEC). Κατά την διάρκεια της FEC σε κάθε κωδική λέξη προστίθενται 0 bits στο τέλος της (δηλαδή μετά τα 6 ψηφία της ιατρικής πληροφορίας). Η δομή του block, λοιπόν, πριν αυτό μεταδοθεί είναι 8 λέξεις των 6 bits η κάθε μια. Τα 0 τελευταία bits είναι χαρακτηριστικά για την κάθε λέξη, δημιουργούνται έπειτα από την εφαρμογή ενός αλγόριθμου σε κάθε λέξη ξεχωριστά και η χρησιμότητά τους θα φανεί κατά την αποκωδικοποίηση, όπου θα δούμε ότι με μια διαδικασία αντίστροφη από αυτή του υπολογισμού του FEC, γίνεται διόρθωση των λανθασμένων bits. Σχετικά με τις δυνατότητες διόρθωσης του χρησιμοποιούμενου σχήματος θα μιλήσουμε σε επόμενο κεφάλαιο. Ακολουθεί διαμόρφωση των bits από τον πομπό χρησιμοποιώντας το δυαδικό CPFSK, ασύρματη μετάδοση της ιατρικής πληροφορίας και αποδιαμόρφωση
Εισαγωγή 3 στον δέκτη ώστε στη συνέχεια, στην είσοδο του αποκωδικοποιητή, να εμφανίζεται ένα block το οποίο αποτελείται από 8 λέξεις των 6 bits η καθεμιά. Από τις 8 λέξεις των 6 bits, απομονώνονται τα 6 πρώτα bits, ώστε να έχουμε 8 λέξεις των 6 bits. Στη συνέχεια, ακολουθείται η διαδικασία CRC με τον ίδιο αλγόριθμο ο οποίος χρησιμοποιήθηκε και για την κωδικοποίηση, με τη διαφορά ότι αντί για την κυκλική εφαρμογή του αλγορίθμου 80 φορές και τον τελικό σχηματισμό μιας λέξης, αυτή η οποία προστέθηκε στο τέλος, τώρα εκτελείται κυκλικά ο αλγόριθμος 8 φορές και σε περίπτωση που έχει σταλεί σωστά, η λέξη που θα εμφανιστεί στο τέλος είναι η μηδενική (όλα, δηλαδή, τα bits θα είναι μηδέν). Στην περίπτωση αυτή, η διαδικασία αποκωδικοποίησης DEFEC παρακάμπτεται και η έξοδος του αποκωδικοποιητή είναι οι 80 λέξεις των 6 bits οι οποίες έχουν ληφθεί. Το γεγονός ότι ο έλεγχος CRC, προηγείται της διόρθωσης σφαλμάτων μέσω του αλγορίθμου FEC, συντελεί στην εξοικονόμηση χρόνου, υπολογιστικών πόρων και ενέργειας αφού, στην περίπτωση που ένα block έχει μεταδοθεί χωρίς σφάλματα δεν πραγματοποιείται η χρονοβόρα αποκωδικοποίηση DEFEC. Το συγκεκριμένο, όμως, σύστημά διαθέτει και την ικανότητα εντοπισμού και διόρθωσης ενός ορισμένου πλήθους και ειδών λαθών. Αν, συνεχίζοντας από την προηγούμενη παράγραφο, η λέξη που εμφανιστεί μετά από τον έλεγχο CRC ο ο- ποίος γίνεται, δεν είναι η μηδενική, άμεσο επακόλουθο είναι μία ή περισσότερες λέξεις στο block να έχουν σφάλμα σε ένα ή περισσότερα bits. Ο αλγόριθμος ο ο- ποίος εφαρμόζεται στη συνέχεια για την διόρθωση των λαθών, είναι διαφορετικός από αυτόν που χρησιμοποιήθηκε στην κωδικοποίηση και διορθώνει ξεχωριστά την κάθε μια από τις 80 λέξεις των 6 bits (η 8 η λέξη ήταν η πλεονάζουσα λέξη ελέγχου την οποία και παραλείπουμε). Σύμφωνα με τις δυνατότητες της μεθόδου FEC, είτε επιτυγχάνεται ο εντοπισμός και η διόρθωση του σφάλματος, είτε κάτι τέτοιο δεν είναι εφικτό και η πληροφορία, ενώ θεωρείται αληθινή, στην πραγματικότητα δεν ήταν εφικτό να διορθωθεί και κατά συνέπεια δημιουργείται σφάλμα. Ο λόγος για τον οποίο επιλέχθηκε η κωδικοποίηση FEC, είναι λόγω τις ικανότητάς της στην διόρθωση ριπών σφαλμάτων, και τα σφάλματα στην πραγματικότητα, συμβαίνουν με αυτόν ακριβώς τον τρόπο. Ας δούμε, όμως, αναλυτικά το περιεχόμενο των κεφαλαίων της συγκεκριμένης μεταπτυχιακής εργασίας. Η εργασία χωρίζεται σε δύο μέρη. στο πρώτο, το οποίο αποτελείται από δύο κεφάλαια, έχουμε την παρουσίαση του θεωρητικού υπόβαθρου πάνω στο οποίο στηριχθήκαμε για την περαιτέρω ανάλυσή μας, ενώ στο δεύτερο, το οποίο αποτελείται από τρία κεφάλαια αναπτύσσουμε την προσομοίωση την οποία έγινε, τα α- ποτελέσματά της και τα συμπεράσματα στα οποία καταλήξαμε.
Εισαγωγή 4 Πιο αναλυτικά, στο ο κεφάλαιο, θα δούμε τα είδη κωδίκων που υπάρχουν ενώ θα εστιάσουμε πάνω σε ένα από αυτά, στους block κώδικες. Θα αναφερθούμε στους γραμμικούς block κώδικες και θα δείξουμε ένα παράδειγμα τέτοιων κωδίκων, τους κώδικες Hamming. Στη συνέχεια, θα εξετάσουμε την αποκωδικοποίηση και επίδοση των γραμμικών block κωδίκων δίνοντας βαρύτητα στα κριτήρια ευέλικτης και άκαμπτης απόφασης και θα ολοκληρώσουμε την ανάλυσή τους με την μελέτη της ικανότητας ανίχνευσης και διόρθωσης σφάλματος την οποία έχουν. Θα ακολουθήσει η μελέτη των κυκλικών κωδίκων (υποπερίπτωση των γραμμικών block κωδίκων), στους οποίους ανήκουν τόσο το CRC όσο και το FEC, αφού πρώτα αναφερθούμε γενικά στην διαδικασία κωδικοποίησης, στον εντοπισμό και τη διόρθωση των σφαλμάτων. Θα αναφερθούμε λεπτομερώς στους Shortened Cyclic Block Codes και θα ολοκληρώσουμε το κεφάλαιο με την αναλυτική περιγραφή των Burst-Error-correcting Cyclic Codes και μιας τεχνικής η οποία ονομάζεται συνδυασμός κωδίκων. Το ο κεφάλαιο, πραγματεύεται την μετάδοση της ιατρικής πληροφορίας. Αρχικά, παρουσιάζεται μια εισαγωγή στην μεταλλαγή μετατόπισης συχνότητας (Frequency Shift Keying FSK), ενώ στη συνέχεια εξετάζεται η αποδιαμόρφωση και ανίχνευση σημάτων FSK. Ακολουθεί η ανάλυση του βέλτιστου ανιχνευτή, για το δυαδικό FSK, ενώ παρατίθεται και ο τρόπος υπολογισμού της πιθανότητας σφάλματος για μη σύμφωνη ανίχνευση του FSK. Έχοντας εξασφαλίσει το απαραίτητο υπόβαθρο, η διαμόρφωση FSK συνεχούς φάσης (Continuous Phase FSK CPFSK), είναι το αντικείμενο το οποίο έπεται, ενώ στο τέλος του κεφαλαίου παρουσιάζουμε τα φασματικά χαρακτηριστικά των σημάτων CPFSK. Στο 3 ο κεφάλαιο, έχουμε την περιγραφή της πειραματικής διάταξης, του τρόπου λειτουργίας της και την ανάπτυξη προγραμμάτων σε Η/Υ. Αρχικά, παρατίθεται block διάγραμμα της διαδικασίας μετάδοσης και ακολουθεί η ανάλυση καθενός από τα στάδιά της. Έτσι, περιγράφουμε τον τρόπο δημιουργίας της CRC λέξης, αφού πρώτα κάνουμε μια εισαγωγή στον Κυκλικό Έλεγχο Πλεονασμού (Cyclic Redundancy Check CRC). Έπειτα, αναλύουμε την κωδικοποίηση Forward Error Correction (FEC) και την εφαρμογή της στην μετάδοση του block δεδομένων της ιατρικής πληροφορίας. Ακολουθεί η περιγραφή του πομποδέκτη που χρησιμοποιείται, και γίνεται υπολογισμός των παραμέτρων μετάδοσης. Έχοντας ολοκληρώσει την περιγραφή του τμήματος της μετάδοσης, θα εξετάσουμε, ακολούθως, την διαδικασία λήψης του block. Θα περιγράψουμε τον τρόπο ελέγχου της CRC λέξης, την διόρθωσή της, καθώς και την διόρθωση όλων των λέξεων του block. Το τελευταίο μέρος του κεφαλαίο, πραγματεύεται την προσομοίωση της επεξεργασίας και της μετάδοσης της ιατρικής πληροφορίας στο Matlab με την υλοποίηση των συναρτήσεων fec, defec, crc, decrc και την χρήση για την προσομοίωση της μετάδοσης
Εισαγωγή 5 CPFSK των modules του Simulink. Θα παρατεθούν τα προγράμματα υπολογισμού σφαλμάτων σε blocks, bits και λέξεις που δημιουργήθηκαν και θα αναλυθεί η λειτουργία τους. Το 4 ο κεφάλαιο, είναι το σημείο παράθεσης των αποτελεσμάτων της προσομοίωσης, ενώ τέλος, στο 5 ο κεφάλαιο, θα κλείσουμε με την απαρίθμηση των συμπερασμάτων της μελέτης του συγκεκριμένου συστήματος επικοινωνίας με την βοήθεια γραφημάτων. Ας δούμε, λοιπόν, αναλυτικά το καθένα.
ΜΕΡΟΣ Α (ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ) Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων Κεφάλαιο ο Μετάδοση της ιατρικής πληροφορίας
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων Γενικά Με την ραγδαία αύξηση του πλήθους και της πολυπλοκότητας των τηλεπικοινωνιακών διατάξεων, καθώς και λόγω της ανάγκης μετάδοσης της πληροφορίας σε μεγάλες αποστάσεις και σε έντονα "θορυβώδες" περιβάλλον, παρουσιάστηκε η ταυτόχρονη ανάγκη για αύξηση της πιθανότητας μετάδοσής της. Ακόμη, η εγγενής κρισιμότητα της φύσης της πληροφορίας (π.χ. ιατρικό σήμα) απαίτησε την χρησιμοποίηση είτε υπηρεσιών οι οποίες στερούνται λαθών είτε κάποιων ειδών αλγορίθμων, οι οποίοι εντοπίζουν τα λάθη ή ακόμη καλύτερα έχουν την δυνατότητα να τα διορθώσουν. Οι τελευταίοι, αποτελούν βέβαια και την καλύτερη λύση, αφού συνδυάζουν τον εντοπισμό με την διόρθωση λαθών, η επιλογή, όμως, του αλγόριθμου που θα χρησιμοποιηθεί είναι ένας συμβιβασμός ανάμεσα στην πολυπλοκότητα του, και συνεπώς και στην απαίτησή του σε χρονική διάρκεια, και στην αποτελεσματικότητά του. Η εξέλιξη στο πεδίο των αλγορίθμων διόρθωσης σφαλμάτων, είναι το ίδιο ραγδαία με την εξέλιξη των τηλεπικοινωνιακών διατάξεων. Έχουν αναπτυχθεί αρκετοί ισχυροί κώδικες, η διαδικασία αποκωδικοποίησης των οποίων μπορεί να υλοποιηθεί με σχετικά περιορισμένο σε έκταση και πολυπλοκότητα hardware. Το block διάγραμμα, ενός στοιχειώδους ψηφιακού συστήματος επικοινωνίας, φαίνεται στην παρακάτω εικόνα.. Η πηγή πληροφορίας παρέχει δυαδικά ψηφία. Ο κωδικοποιητής μετατρέπει αυτά τα ψηφία και στη συνέχεια ο διαμορφωτής τα μετασχηματίζει σε σήματα τα οποία είναι ικανά να μεταδοθούν στο κανάλι. Εισερχόμενα στο κανάλι τα σήματα αυτά διαταράσσονται από το θόρυβο και στη συνέχεια εισέρχονται στον αποδιαμορφωτή, αποδιαμορφώνονται και περνούν στον
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 8 αποκωδικοποιητή, ο οποίος και παίρνει την απόφαση σχετικά με το ποίο σήμα στάλθηκε και το προωθεί στην έξοδό του. Εικόνα. Block διάγραμμα ενός στοιχειώδους συστήματος επικοινωνίας Σε ένα ιδανικό σύστημα η πληροφορία, μετά την κωδικοποίηση, διαμόρφωση και μετάδοση, λήψη, αποδιαμόρφωση και αποκωδικοποίηση, θα παρέμενε ίδια με αυτή που στάλθηκε. Στην πράξη όμως δεν συμβαίνει αυτό. Στο κανάλι ενυπάρχει "θόρυβος" ο οποίος και παραποιεί το σήμα που στέλνουμε, έτσι ώστε να λαμβάνουμε πολλές φορές εντελώς διαφορετική πληροφορία από αυτήν που στείλαμε. Ένας από τους σκοπούς των κωδίκων, είναι να εντοπίζουν και σε πολλές περιπτώσεις να διορθώνουν, τα σφάλματα που προκαλεί στο σήμα της πληροφορίας ο "θόρυβος". Οι κώδικες, γενικά, δεν μπορούν να διορθώσουν οποιοδήποτε πιθανό σφάλμα που μπορεί να προκληθεί. Κατασκευάζονται έτσι ώστε να μπορούν να διορθώσουν μόνο τα μοτίβα λαθών τα οποία είναι πιο πιθανό να συμβούν. Δύο από τους τρόπους με τους οποίους εμφανίζονται τα λάθη είναι σε ριπές λαθών ή μεμονωμένα. Θα ασχοληθούμε αργότερα, πιο αναλυτικά, με μια μέθοδο διόρθωσης ριπών λαθών. Υπάρχουν δύο ειδών κανάλια μετάδοσης. Τα αμφίδρομα κανάλια, στα οποία μπορεί και ο δέκτης να μεταδίδει πληροφορία στον πομπό, και τα μονόδρομα κανάλια στα οποία η μετάδοση αυτή δεν είναι εφικτή. Στα αμφίδρομα κανάλια, είναι προτιμότερο να χρησιμοποιούνται κώδικες εντοπισμού του σφάλματος, ώστε σε περίπτωση που συμβεί ένα σφάλμα να σταλεί ένα μήνυμα αίτησης επανάληψης της εκπομπής της πληροφορίας από τον δέκτη στον πομπό και να έχουμε έτσι επικοινωνία χωρίς απώλεια πληροφορίας. Το όφελος από την χρησιμοποίηση κωδίκων αποκάλυψης λαθών (όπου αυτό είναι βέβαια εφικτό, όπως στα αμφίδρομα κανάλια) και όχι κωδίκων διόρθωσης λαθών, είναι ότι απαιτούν πολύ μικρότερη πολυπλοκότητα στα συστήματα λήψης. Όταν, όμως, α- παιτείται καλύτερη απόδοση σε ένα σύστημα επικοινωνίας, η χρησιμοποίηση και των δύο μεθόδων (εντοπισμού και διόρθωσης σφάλματος) είναι απαραίτητη. Στη συνέχεια θα μελετήσουμε τα είδη των κωδίκων που υπάρχουν, καθώς και τους αλγορίθμους που αυτοί χρησιμοποιούν, για τον εντοπισμό και την διόρθωση σφαλμάτων.
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 9. Είδη Κωδίκων, [5] Υπάρχουν δύο θεμελιώδη είδη κωδίκων. Οι block κώδικες και οι tree κώδικες. Οι block κώδικες ομαδοποιούν τη συνεχόμενη ακολουθία των bits της πληροφορίας, τα οποία εισέρχονται στον κωδικοποιητή, σε κομμάτια ή block k- συμβόλων. Στη συνέχεια, λειτουργούν, ανάλογα με τον κώδικα, πάνω σε αυτά τα block ξεχωριστά. Σε κάθε πιθανό block πληροφορίας k-συμβόλων αντιστοιχίζεται ένα block το οποίο αποτελείται από n κωδικά σύμβολα, όπου n>k. Το αποτέλεσμα, το οποίο από εδώ και στο εξής θα ονομάζεται κωδική λέξη, μεταδίδεται, μεταβάλλεται από τον θόρυβο και αποκωδικοποιείται στον δέκτη ανεξάρτητα από όλες τις άλλες κωδικές λέξεις. Το n ονομάζεται μήκος του κώδικα ή αλλιώς block length. Οι tree κώδικες, από την άλλη, χρησιμοποιούν την ακολουθία της πληροφορίας χωρίς να την κατατμήσουν όπως οι block κώδικες σε ανεξάρτητα κομμάτια. Ο κωδικοποιητής επεξεργάζεται την πληροφορία συνεχόμενα και συσχετίζει κάθε ένα μεγάλο τμήμα της με μια κωδική ακολουθία, η οποία περιέχει περισσότερα ψηφία. Το όνομά τους το πήραν από το γεγονός ότι οι κανόνες κωδικοποίησής τους μπορούν να περιγραφούν με ένα διάγραμμα δέντρου. Δεν θα ασχοληθούμε περισσότερο με αυτούς τους κώδικες, μιας και δεν αποτελούν τμήμα της προσπάθειας ανάλυσης του συστήματος το οποίο πραγματεύεται η συγκεκριμένη εργασία.. Block κώδικες, [5] Όπως αναφέραμε και πιο πάνω, οι block κώδικες ομαδοποιούν τη συνεχόμενη ακολουθία των bits της πληροφορίας, τα οποία εισέρχονται στον κωδικοποιητη, σε block k συμβόλων. Block κώδικας, ονομάζεται ένα σύνολο από Μ ακολουθίες συμβόλων μήκους n. Έστω q, ο αριθμός των διακριτών συμβόλων πληροφορίας (στην περίπτωση της δυαδικής μετάδοσης πληροφορίας q=). Οι ακολουθίες αυτές, συμβόλων μήκους n, q διακριτών συμβόλων, ονομάζονται κωδικές λέξεις του κώδικα. Ο αριθμός των κωδικών λέξεων είναι μια δύναμη του q, είναι δηλαδή Μ=q m. Στον δέκτη, ακολούθως, λαμβάνεται μια απόφαση, με βάση την πληροφορία από το ληφθέν n-διάστατο πολυώνυμο, σχετικά με την κωδική λέξη που μεταδόθηκε. Αυτή η απόφαση είναι μια στατιστική απόφαση, είναι μια απόφαση που από την φύση της χρησιμοποιεί ως βάση την πληροφορία που είναι διαθέσιμη και κατά συνέπεια δεν μπορεί να είναι αλάνθαστη. Με την χρήση του κατάλληλου κώδικα, η πιθανότητα μιας λανθασμένης απόφασης είναι συνήθως πολύ μικρότερη
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 0 από την πιθανότητα που υπήρχε αρχικά, στα σύμβολα εισόδου στο κανάλι, να α- ναπαραχθούν χωρίς λάθος στην έξοδο του καναλιού. Η διαδικασία απόφασης, μπορεί να οριστεί μαθηματικά από έναν πίνακα α- ποκωδικοποίησης, όπως τον πίνακα. που βλέπουμε πιο κάτω. Οι κωδικές λέξεις αποτελούν την πρώτη σειρά του πίνακα. Όταν λαμβάνεται μια κωδική λέξη, είναι λογικό να θεωρούμε ότι η ίδια κωδική λέξη είναι και αυτή που στάλθηκε. Η απόφαση του δέκτη για άλλες πιθανές ληφθείσες λέξεις περιγράφεται παραθέτοντας κάτω από κάθε μια κωδική λέξη, τις ληφθείσες λέξεις οι οποίες θα αποκωδικοποιηθούν σε αυτήν. Έτσι κάθε μια από τις πιθανές να ληφθούν λέξεις, εμφανίζεται μόνο μια φορά στον πίνακα αποκωδικοποίησης. Για παράδειγμα, ας υποθέσουμε ότι υπάρχουν τέσσερα πιθανά μηνύματα a, b, c και d και ότι το μήνυμα μεταδίδεται χρησιμοποιώντας έναν δυαδικό block κώδικα με μήκος πέντε. Στη συνέχεια, τέσσερις κωδικές λέξεις πρέπει να επιλεγούν, έστω 000 για το a, 000 για το b, 00 για το c και 00 για το d. Η απόφαση του δέκτη πρέπει να περιγραφεί για κάθε μια από τις 5 =3 πιθανές ληφθείσες λέξεις. Ένα παράδειγμα για το πώς μπορεί να γίνει αυτό φαίνεται στον παρακάτω πίνακα. Κωδικές Λέξεις 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Άλλες 0 0 0 0 0 0 0 0 0 0 Ληφθήσες 0 0 0 0 0 0 0 0 0 0 Λέξεις 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Πίνακας. Πίνακας αποκωδικοποίησης για έναν δυαδικό κώδικα με q=k= και n=5 Οι κανόνες κωδικοποίησης και αποκωδικοποίησης, οι οποίοι φαίνονται στον πίνακα., αποκωδικοποιούν σωστά μια λέξη η οποία δεν θα έχει περισσότερα από ένα λάθη, δηλαδή περισσότερα από ένα αλλαγμένα σύμβολα, μια και κάθε μια από τις πέντε λέξεις οι οποίες θα είχαν ως αποτέλεσμα ένα μοναδικό λάθος βρίσκονται κάτω από κάθε μια κωδική λέξη (ανάμεσα στην συνεχόμενη και την διακεκομμένη γραμμή). Όμως, δεν αποκωδικοποιούνται σωστά όλα τα μοτίβα λαθών. Για παράδειγμα, εάν μεταδοθεί το 000 και συμβούν δύο λάθη οδηγώντας έστω στο 0 η λέξη θα αποκωδικοποιηθεί σωστά γιατί το 0 είναι στην στήλη κάτω από το 000 στον πίνακα.. Όμως, αν σε άλλη περίπτωση τα δύο λάθη έχουν σαν αποτέλεσμα να λάβουμε την 0, θα αποκωδικοποιηθεί λανθασμένα σε 00, επειδή το 0 είναι στην στήλη κάτω από το 00.
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων Σε μερικές περιπτώσεις, είναι δυνατό ο αποκωδικοποιητής να είναι σε θέση να δηλώσει απλά ότι υπάρχει λάθος στην κωδική λέξη που λήφθηκε χωρίς όμως να μπορεί να υποδείξει ποια ήταν η κωδική λέξη που εστάλη. Αυτό μπορεί να πάρει την μορφή ενός συστήματος εντοπισμού λαθών, στο οποίο ο αποκωδικοποιητής δίνει το σήμα ότι υπάρχει λάθος αλλά δεν πράττει τίποτε πιο πέρα εκτός και αν ληφθεί μια κωδική λέξη. Επιπρόσθετα, όπως αναφέρθηκε και προηγουμένως, μπορεί να συνδυαστεί ο εντοπισμός λάθους με την διόρθωση σφαλμάτων. Για παράδειγμα, για τον κώδικα ο οποίος φαίνεται στον πίνακα., κάθε ληφθείσα λέξη πάνω από την διακεκομμένη γραμμή μπορεί να αποκωδικοποιηθεί στην κωδική λέξη στην κορυφή της στήλης, αλλά ο αποκωδικοποιητής δεν θα μπορέσει να εντοπίσει λάθη για τις λέξεις που λαμβάνονται κάτω από αυτή τη γραμμή. Αυτό αντιστοιχεί σε διόρθωση μοναδικού λάθους με εντοπισμό μερικών συνδυασμών δύο ή περισσότερων λαθών. Θέλοντας να προβλέψουμε την απόδοση ενός κώδικα, είναι απαραίτητο να έχουμε ακριβείς πληροφορίες σχετικά με το κανάλι. Αν και τα περισσότερα πραγματικά τηλεπικοινωνιακά κανάλια δεν μπορούν να παρασταθούν με ακρίβεια από το δυαδικό συμμετρικό κανάλι (Binary Symmetric Channel, BSC) το οποίο φαίνεται στην εικόνα., αυτή είναι η θεώρηση του καναλιού που χρησιμοποιείται ευρέως. Για αυτό το δυαδικό συμμετρικό κανάλι, η πιθανότητα να ληφθεί το ίδιο σύμβολο με αυτό που στάλθηκε είναι Q. Υποτίθεται ότι Q>P και ότι το κάθε σύμβολο είναι ανεξάρτητο από όλα τα άλλα (ένα τέτοιο κανάλι λέγεται κανάλι δίχως μνήμη). Εννοείται ότι ένα τέτοιο κανάλι συμπεριλαμβάνει και τον διαμορφωτή και τον αποδιαμορφωτή ενός τυπικού επικοινωνιακού συστήματος το οποίο είδαμε προηγουμένως. Εικόνα. Το δυαδικό συμμετρικό κανάλι (BSC) Ένα άλλο ιδανικό κανάλι, το οποίο έχει μελετηθεί ευρέως, είναι το δυαδικό erasure κανάλι το οποίο φαίνεται στην παρακάτω εικόνα.3. Για αυτό το κανάλι, η πιθανότητα να ληφθεί το ίδιο δυαδικό ψηφίο το οποίο στάλθηκε είναι Q. Η πιθανότητα να σβηστεί ένα σύμβολο που μεταδόθηκε είναι P=-Q. (Το σβήσιμο συμβολίζεται με το Χ). Τα δυαδικά σύμβολα θεωρούνται ότι επηρεάζονται ανεξάρτητα. Σημειώστε ότι με αυτό το κανάλι, οι τοποθεσίες των αλλαγμένων συμβόλων είναι
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων γνωστές, και αυτό το γεγονός κάνει τις διορθώσεις των σβησιμάτων πιο εύκολες από τις διορθώσεις των λαθών. Γενικεύσεις αυτού του erasure καναλιού περιλαμβάνουν ένα μη δυαδικό erasure κανάλι και ένα κανάλι και με σβησίματα και με λάθη. Το erasure κανάλι είναι μια εξιδανίκευση ενός συστήματος στο οποίο ο αποδιαμορφωτής της εικόνας. είναι σχεδιασμένος ώστε να παραδίδει ένα σύμβολο σβησίματος (Χ) παρά ένα ή 0 σε περιπτώσεις αμφισβήτησης. Εικόνα.3 Το δυαδικό erasure κανάλι Τώρα, ας θεωρήσουμε ένα δυαδικό συμμετρικό κανάλι και ότι μεταδίδεται σε αυτό μια συγκεκριμένη δυαδική κωδική λέξη. Η πιθανότητα ώστε να μην συμβεί κάποιο σφάλμα είναι Q n. Η πιθανότητα να συμβεί ένα λάθος σε μια συγκεκριμένη θέση είναι PQ n-. Η πιθανότητα μιας συγκεκριμένης λέξης που λήφθηκε να διαφέρει από την λέξη που μεταδόθηκε σε i θέσεις είναι P i Q n-. Μια και Q>P, το ληφθέν block έχει τις περισσότερες πιθανότητες να μην έχει λάθη. Οποιαδήποτε ληφθείσα λέξη με ένα λάθος είναι πολύ πιο πιθανή από μια λέξη η οποία θα έχει δύο ή περισσότερα λάθη, και ούτω καθεξής. Σε αυτή την περίπτωση, με την υπόθεση ότι όλες οι κωδικές λέξεις είναι εξίσου πιθανό να μεταδοθούν, η καλύτερη απόφαση στον δέκτη θα είναι πάντα να αποκωδικοποιεί την κάθε λέξη που λαμβάνει στην κωδική λέξη η οποία διαφέρει στις λιγότερες θέσεις με την ληφθείσα. Αυτή η αποκωδικοποίηση μέγιστης πιθανοφάνειας, όπως αυτή καλείται, μπορεί να γενικευτεί σε μη δυαδικό κανάλι χωρίς μνήμη. Με την προϋπόθεση ότι έχουμε ένα δυαδικό συμμετρικό κανάλι, η πιθανότητα της σωστής αποκωδικοποίησης μπορεί να υπολογιστεί με τον ακόλουθο τρόπο για τον κώδικα του πίνακα.. Έστω ότι στάλθηκε η λέξη 000. Θα αποκωδικοποιηθεί σωστά αν ληφθεί οποιαδήποτε λέξη στην στήλη της. Μια από αυτές τις λέξεις δεν διαφέρει σε καμία θέση, πέντε από αυτές διαφέρουν σε μια θέση και δύο από αυτές διαφέρουν σε δύο θέσεις. Η πιθανότητα σωστής αποκωδικοποίησης είναι τότε, P(σωστής αποκωδικοποίησης)=ρ 0 Q 5 +5P Q 4 +P Q 3 (.) Παρόμοιοι υπολογισμοί μπορούν να γίνουν και για τις άλλες κωδικές λέξεις.
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 3 Εάν αυτός ο κώδικας χρησιμοποιείται μόνο για εντοπισμό σφάλματος, η πιθανότητα σωστής λήψης είναι Q 5. Η πιθανότητα ενός μη αντιληπτού λάθους, στην περίπτωση που έχει μεταδοθεί το 000 είναι η πιθανότητα να ληφθεί μια άλλη κωδική λέξη όταν έχει αποσταλεί η λέξη 000. Μια και μια κωδική λέξη διαφέρει σε τέσσερις θέσεις και οι άλλες δύο σε τρεις θέσεις η κάθε μια, P(μη αντιληπτό λάθος)=ρ 4 Q+P 3 Q (.) Η έννοια της απόστασης Hamming είναι χρήσιμη στην μελέτη της ικανότητας διόρθωσης σφαλμάτων των κωδικών. Η απόσταση Hamming, ανάμεσα σε δύο λέξεις, ορίζεται ως ο αριθμός των θέσεων στις οποίες διαφέρουν οι δύο λέξεις. Έ- τσι, ένα μοναδικό σφάλμα αντιστοιχεί σε απόσταση Hamming ίση με ανάμεσα στην λέξη που στάλθηκε και στην λέξη που λήφθηκε. Αν ένας κώδικας χρησιμοποιείται μόνο για εντοπισμό λαθών και πρέπει να εντοπίζει όλα τα μοτίβα d- ή λιγότερων λαθών, είναι απαραίτητο και επαρκεί η ελάχιστη απόσταση Hamming α- νάμεσα στις κωδικές λέξεις να είναι d. Γιατί, εάν η ελάχιστη απόσταση είναι d, κανένα μοτίβο με d- λάθη δεν μπορεί να αλλάξει μια κωδική λέξη σε μια άλλη, ενώ εάν η ελάχιστη απόσταση Hamming είναι d- ή μικρότερη, υπάρχει κάποιο ζευγάρι λέξεων με απόσταση μικρότερη από d μεταξύ τους και υπάρχει ένα μοτίβο με λιγότερα από d λάθη το οποίο θα μπορεί να οδηγήσει από την μια στην άλλη. Παρομοίως, είναι πιθανό να αποκωδικοποιήσουμε με τέτοιον τρόπο ώστε να μπορούμε να διορθώσουμε όλα τα μοτίβα με t ή λιγότερα λάθη αν και μόνο αν η ελάχιστη απόσταση ανάμεσα στις κωδικές λέξεις είναι τουλάχιστο t+. Τότε ο- ποιαδήποτε ληφθείσα λέξη, με t t λάθη, διαφέρει από την κωδική λέξη που μεταδόθηκε σε t σύμβολα, αλλά από οποιαδήποτε άλλη κωδική λέξη σε τουλάχιστο t+-t >t σύμβολα. Στον αντίποδα, εάν η ελάχιστη απόσταση είναι μικρότερη, υπάρχει τουλάχιστον μια περίπτωση όπου ένα σφάλμα μήκους t, έχει ως αποτέλεσμα μια ληφθείσα λέξη τουλάχιστο τόσο κοντά σε μια κωδική λέξη όσο και η κωδική λέξη που μεταδόθηκε. Τέλος, μπορεί να δειχθεί ότι είναι πιθανό να αποκωδικοποιήσουμε με έναν τέτοιο τρόπο ώστε να διορθώσουμε όλους τους συνδυασμούς από t ή λιγότερα λάθη και ταυτόχρονα να εντοπίσουμε όλους τους συνδυασμούς από d ή λιγότερα λάθη (d t) αν και μόνο αν η ελάχιστη απόσταση ανάμεσα στις κωδικές λέξεις είναι t+d+. Έκτος από την εφαρμογή τους σε τηλεπικοινωνιακά συστήματα, οι block κώδικες βρίσκουν εφαρμογή και σε αρκετές άλλες επιστημονικές περιοχές. Αποτελούν την βάση για τον πίνακα μεταγωγής καταμερισμού φορτίου, ο οποίος δεν είναι απλώς πιο αποδοτικός από τα συμβατικά συστήματα διευθυνσιοδότησης μνήμης, αλλά κάνει και κάποια αυτόματη διόρθωση σε περιπτώσεις βλαβών των εξαρ-
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 4 τημάτων. Έχουν, επίσης, προταθεί για χρήση σε συστήματα ανάκτησης εγγράφων, για συμπίεση δεδομένων και κατασκευή υπολογιστών ανθεκτικών σε σφάλματα... Γραμμικοί Μπλοκ Κώδικες, [6] Ένας δυαδικός μπλοκ κώδικας (n, k), ορίζεται πλήρως από Μ= k δυαδικές ακολουθίες μήκους n που ονομάζονται κωδικές λέξεις. Ένας κώδικας C, συνίσταται από M κωδικές λέξεις c i με i k. C={c, c,, c M } (.3) όπου c i είναι μια ακολουθία μήκους n με όρους που παίρνουν τιμές 0 ή. Ορισμός. Ένας μπλοκ κώδικας είναι γραμμικός, αν κάθε γραμμικός συνδυασμός δύο κωδικών λέξεων είναι επίσης μια κωδική λέξη. Στη δυαδική περίπτωση αυτή η απαίτηση σημαίνει ότι αν c i και c j είναι κωδικές λέξεις τότε c i c j είναι επίσης μια κωδική λέξη, όπου συμβολίζει πρόσθεση modulo- των συντεταγμένων των δύο διανυσμάτων. Με τον ορισμό αυτό, βλέπουμε ότι ένας γραμμικός κώδικας είναι ένας k- διάστατος υποχώρος του n-διάστατου χώρου. Είναι ακόμη προφανές ότι, η ακολουθία 0, που όλες οι συντεταγμένες της είναι μηδέν, είναι κωδική λέξη κάθε γραμμικού κώδικα γιατί για κάθε κωδική λέξη c i ισχύει c i c j =0. Σημειώστε ότι σύμφωνα με τον πιο πάνω ορισμό η γραμμικότητα ενός κώδικα εξαρτάται μόνο από τις κωδικές λέξεις και όχι από τον τρόπο με τον οποίο οι ακολουθίες πληροφορίας αντιστοιχίζονται στις κωδικές λέξεις. Αλλά είναι φυσικό να υποθέσουμε ότι αν η ακολουθία πληροφορίας u (μήκους k) αντιστοιχίζεται στην κωδική λέξη c (μήκους n) και η ακολουθία πληροφορίας u αντιστοιχίζεται στην κωδική λέξη c, τότε η u u αντιστοιχίζεται στην c c. Στο εξής, θα υποθέτουμε ότι οι γραμμικοί κώδικες που μελετούμε έχουν την ιδιότητα αυτή. Σαν παράδειγμα μπορούμε να αναφέρουμε έναν κώδικα (5, ) ο οποίος ορίζεται ως εξής C=(00000, 000, 00, ) Είναι πολύ εύκολο να δούμε ότι ο κώδικας αυτός είναι γραμμικός. Αν η α- ντιστοιχία μεταξύ των ακολουθιών πληροφορίας και κωδικών λέξεων είναι 00 00000 0 000 0 0 η ιδιότητα που συζητήσαμε προηγουμένως ισχύει. Αν η αντιστοιχία είναι
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 5 00 000 0 0 00000 00 η ιδιότητα δεν ισχύει. Αλλά, και στις δύο περιπτώσεις ο κώδικας είναι γραμμικός. Τώρα θα ορίσουμε τις βασικές παραμέτρους που χαρακτηρίζουν έναν κώδικα. Ορισμός. Η απόσταση Hamming μεταξύ δύο κωδικών λέξεων, c i και c j, είναι ο αριθμός των συντεταγμένων στις οποίες οι δύο κωδικές λέξεις διαφέρουν και συμβολίζεται με d(c i, c j ). Ορισμός.3 Το βάρος Hamming ή απλά βάρος μιας κωδικής λέξης c i, είναι ο αριθμός των μη μηδενικών στοιχείων μιας κωδικής λέξης και συμβολίζεται με w(c i ). Ορισμός.4 Η ελάχιστη απόσταση ενός κώδικα, είναι η ελάχιστη απόσταση μεταξύ δύο οποιονδήποτε διαφορετικών κωδικών λέξεων, δηλαδή, d min =min{d(c i, c j )}, όπου i j, c i, c j Ορισμός.5 Το ελάχιστο βάρος ενός κώδικα, είναι το ελάχιστο βάρος των κωδικών λέξεων με εξαίρεση την κωδική λέξη 0, w min =min{w(c i )}, όπου c i 0 Ορισμός.6 Σε κάθε γραμμικό κώδικα, d min =w min.. Γεννήτριες μήτρες και μήτρες ελέγχου ισοτιμίας (Generator matrix and parity check matrix), [5] Σε ένα γραμμικό κώδικα, ας συμβολίσουμε τις κωδικές λέξεις που αντιστοιχούν στις ακολουθίες πληροφορίας e =(000 0), e =(000 0), e 3 =(000 0),, e k =(0000 ) ως g, g, g 3,, g k αντίστοιχα, όπου κάθε μια από τις ακολουθίες g i είναι δυαδική μήκους n. Παρατηρούμε ότι κάθε ακολουθία x=(x, x, x 3,, x k ) ψηφίων πληροφορίας μπορεί να γραφεί ως n x = e (.4) i = και επομένως η αντίστοιχη κωδική λέξη θα είναι n i = x i i c = g (.5) Αν ορίσουμε τη γεννήτρια μήτρα του κώδικα αυτού ως x i i
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 6 g g g L gn g = g g L gn G = (.6) M M M O M gk gk gk L gkn τότε μπορούμε να γράψουμε c=xg (.7) Έτσι, βλέπουμε ότι κάθε γραμμικός συνδυασμός των γραμμών της γεννήτριας μήτρας είναι μια κωδική λέξη. Η γεννήτρια μήτρα, για κάθε γραμμικό μπλοκ κώδικα, είναι μια kxn μήτρα βαθμού k (γιατί εξ ορισμού, η διάσταση του υποχώρου είναι k). Η γεννήτρια μήτρα του κώδικα περιγράφει πλήρως τον κώδικα. Όταν δίδεται η γεννήτρια, η κατασκευή του κωδικοποιητή είναι πολύ απλή. Έστω, για παράδειγμα, ότι θέλουμε να βρεθεί η γεννήτρια μήτρα για τον πρώτο κώδικα που δόθηκε στο προηγούμενο παράδειγμα. Πρέπει να βρούμε τις κωδικές λέξεις που αντιστοιχούν στις ακολουθίες πληροφορίας (0) και (0). Αυτές είναι αντίστοιχα (000) και (00). Έτσι, 000 G = (.8) 0 Βλέπουμε ότι στην ακολουθία πληροφορίας (x, x ) αντιστοιχεί η κωδική λέξη ή ( 3 4 5 x c, c, c, c, c ) = ( x, )G (.9) c 3 c c c c = x 4 5 = x = x = x = x x (.0) Ο προηγούμενος κώδικας έχει την ιδιότητα ότι, η κωδική λέξη που αντιστοιχεί σε κάθε ακολουθία πληροφορίας, έχει σαν πρώτα της ψηφία την ίδια την ακολουθία πληροφορίας και κατόπιν ακολουθούν μερικά επιπλέον ψηφία. Ένας τέτοιος κώδικας ονομάζεται συστηματικός, και τα επιπλέον ψηφία, που ακολουθούν την ακολουθία πληροφορίας στην κωδική λέξη, ονομάζονται ψηφία ελέγχου ισοτιμίας (parity check bits). Μια ικανή και αναγκαία συνθήκη για να είναι ένας κώδικας συστηματικός, είναι η γεννήτρια μήτρα του να έχει τη μορφή [ I P] G = (.) όπου I k είναι μια kxk μοναδιαία μήτρα και P είναι μια kx(n-k) δυαδική μήτρα. Σε ένα συστηματικό κώδικα, έχουμε k
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 7 xi = k c pjix j j = i k k + i όπου όλα τα αθροίσματα είναι modulo-. i n (.) Εξ ορισμού, ένας γραμμικός μπλοκ κώδικας C είναι ένα k-διάστατος γραμμικός υποχώρος του n-διάστατου χώρου. Γνωρίζουμε από τη γραμμική άλγεβρα, ότι το σύνολο των ακολουθιών μήκους n, που είναι ορθογώνιες σε όλα τα διανύσματα αυτού του k-διάστατου χώρου, αποτελούν έναν (n-k)-διάστατο γραμμικό υποχώρο που ονομάζεται ορθογώνιο συμπλήρωμα του k-διάστατου υποχώρου. Αυτός ο (n-k)-διάστατος υποχώρος, ορίζει έναν (n, n-k) γραμμικό κώδικα, που ονομάζεται δίδυμος (dual) του αρχικού (n, k) κώδικα C. Ο δίδυμος κώδικας συμβολίζεται ως C Τ. Προφανώς, οι κωδικές λέξεις του αρχικού κώδικα C είναι ορθογώνιες με όλες τις κωδικές λέξεις του δίδυμου κώδικα C Τ. Αν συμβολίσουμε τη γεννήτρια μήτρα του δίδυμου κώδικα, που είναι μια (n-k)xn, ως H, τότε κάθε κωδική λέξη του αρχικού κώδικα είναι ορθογώνια με όλες τις γραμμές του H, δηλαδή, ch t = 0 για όλα τα c C (.3) Η μήτρα H, που είναι η γεννήτρια μήτρα του δίδυμου κώδικα C Τ, ονομάζεται μήτρα ελέγχου ισοτιμίας του αρχικού κώδικα C. Επειδή όλες οι γραμμές της γεννήτρια μήτρας είναι κωδικές λέξεις, συμπεραίνουμε ότι GH t = 0 (.4) Στην ειδική περίπτωση ενός συστηματικού κώδικα, όπου [ I P] η μήτρα ελέγχου ισοτιμίας έχει την ακόλουθη μορφή G = (.5) k t [ P ] H = I n k (.6) Σαν ένα ακόμη παράδειγμα μπορούμε να βρούμε την μήτρα ελέγχου ισοτιμίας για τον κώδικα του προηγούμενου παραδείγματος. Έχουμε 000 G = (.7) 0 0 I = (.8) 0 00 P = (.9) ότι Παρατηρώντας ότι στη δυαδική περίπτωση έχουμε t t P = P συμπεραίνουμε
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 8 και επομένως, P t = 0 (.0) 0 00 H = 0 00 (.) 0 00..3 Κώδικες Hamming, [6] Οι κώδικες Hamming, είναι μια ομάδα γραμμικών block κωδίκων, όπου n= m -, k= m -m- και d min =3, για κάποιον ακέραιο m. Όπως θα δούμε αργότερα, με τέτοια ελάχιστη απόσταση αυτοί οι κώδικες, είναι ικανοί να διορθώνουν ο- ποιαδήποτε μοναδικά σφάλματα γίνουν στη μεταδιδόμενη ακολουθία. Η μήτρα ε- λέγχου ισοτιμίας για τους κώδικες αυτούς έχουν μια πολύ απλή μορφή. Οι στήλες της αποτελούνται από όλες τις δυαδικές ακολουθίες μήκους m, εκτός της μηδενικής ακολουθίας. Ο ρυθμός των κωδίκων αυτών είναι m m R c = (.) m ο οποίος είναι κοντά στο για μεγάλες τιμές του m. Επομένως, οι κώδικες Hamming έχουν μεγάλο ρυθμό με σχετικά μικρή ελάχιστη απόσταση (d min =3). Θα δούμε αργότερα, ότι η ελάχιστη απόσταση ενός κώδικα έχει στενή σχέση με τις ικανότητές του να διορθώνει σφάλματα. Άρα, οι κώδικες Hamming έχουν περιορισμένη ικανότητα διόρθωσης σφαλμάτων. Για παράδειγμα, μπορούμε να βρούμε την μήτρα ελέγχου ισοτιμίας και την γεννήτρια μήτρα ενός (7, 4) κώδικα Hamming στη συστηματική της μορφή. Στην περίπτωση αυτή έχουμε m=3 και επομένως η H αποτελείται από όλες τις δυαδικές ακολουθίες μήκους 3 εκτός από την μηδενική ακολουθία. Η μήτρα σε συστηματική μορφή είναι 0 0 0 H = 0 0 0 (.3) 0 0 0 και η γεννήτρια μήτρα είναι
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 9 0 0 0 0 0 0 0 0 G = (.4) 0 0 0 0 0 0 0.3 Αποκωδικοποίηση και Επίδοση Γραμμικών Block Κωδίκων, [6] Η κωδικοποίηση, χρησιμοποιείται στα συστήματα επικοινωνίας, κατά κύριο λόγο, για να αυξηθεί η Ευκλείδεια απόσταση μεταξύ των μεταδιδόμενων σημάτων και έτσι να μειωθεί η πιθανότητα σφάλματος για δεδομένη ισχύ μετάδοσης, πράγμα που είδαμε με παράδειγμα στην προηγούμενη ενότητα. Αυτό το πετυχαίνουμε διαλέγοντας τις κωδικές λέξεις έτσι ώστε να βρίσκονται όσο μακριά γίνεται η μία από την άλλη. Αυτό σημαίνει ότι ένα καλό μέτρο για να συγκρίνουμε την επίδοση δύο κωδίκων είναι η απόσταση Hamming μεταξύ των κωδικών λέξεων. Αλλά το να εξετάζουμε όλες τις αποστάσεις μεταξύ των κωδικών λέξεων είναι δύσκολο και σε αρκετές περιπτώσεις αδύνατο. Έτσι, η σύγκριση μεταξύ κωδίκων γίνεται συνήθως με βάση την ελάχιστη απόσταση ενός κώδικα, που για τους γραμμικούς κώδικες είναι ίση με το ελάχιστο βάρος. Έτσι, με δεδομένα τα n και k, ένας κώδικας με μεγαλύτερη απόσταση d min (ή w min ) έχει συνήθως καλύτερη επίδοση από έναν κώδικα με μικρότερη απόσταση..3. Αποκωδικοποίηση ευέλικτης απόφασης, [6] Ο βέλτιστος ανιχνευτής, σε ένα κανάλι με προσθετικό λευκό θόρυβο Gauss (Additive White Gaussian Noise, AWGN), βασίζεται στην ελαχιστοποίηση της ελάχιστης Ευκλείδειας απόστασης μεταξύ του λαμβανόμενου και του εκπεμπόμενου σήματος. Αυτό σημαίνει ότι επιλέγουμε ένα από τα σήματα εκπομπής που η Ευκλείδεια απόστασή του από το λαμβανόμενο σήμα είναι ελάχιστη. Το ίδιο συμβαίνει όταν χρησιμοποιούμε κωδικοποιημένες κυματομορφές. Υποθέτοντας ότι χρησιμοποιούμε δυαδικό PSK για την μετάδοση των κωδικοποιημένων μηνυμάτων, μια κωδική λέξη c=(c i, c i,, c in ) αντιστοιχίζεται στην κυματομορφή n k = s ( t) = ψ ( t ( k ) T) (.5) i όπου ψ( t) aν cik = ψ ik ( t) = (.6) ψ( t) aν cik = 0 ik
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 0 και το ψ(t) είναι ένα σήμα διάρκειας T με ενέργεια E, που είναι ίσο με το μηδέν έξω από το διάστημα [0, T]. Η Ευκλείδεια απόσταση μεταξύ δύο κυματομορφών είναι E ( dij ) = ( ± E ) k n k: c ik c jk H ij = 4d E (.7) Αυτή είναι η σχέση μεταξύ Ευκλείδειας απόστασης και απόστασης Hamming όταν χρησιμοποιείται η δυαδική PSK (ή αντιποδική) μέθοδος διαμόρφωσης. Αν χρησιμοποιηθεί ορθογώνια διαμόρφωση, τότε η κυματομορφή που μεταδίδεται είναι n k = s ( t) = ψ ( t ( k ) T) (.8) i όπου ψ( t) aν cik = ψ ik ( t) = (.9) ψ( t) aν cij = 0 ik και τα ψ (t), ψ (t) είναι ορθογώνια σήματα με ενέργεια E. Η Ευκλείδεια απόσταση στην περίπτωση αυτή είναι T E ( dij ) = [ ψ t) ψ( t) ] k n 0 k: c ik c jk E ij ( dt = d E (.30) Αν χρησιμοποιήσουμε τώρα την σχέση έχουμε E d p e = Q (.3) N 0 H d E ij Q για ορθογώνια σήματα N0 p( s j λήφθηκε si μεταδόθηκε) = (.3) H d E ij Q για αντιποδικά σήματα N0 Επειδή d ij d min και το Q(x) είναι μια φθίνουσα συνάρτηση του x, συμπεραίνουμε ότι
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων dmine Q για ορθογώνια σήματα N0 p( s j λήφθηκε si μεταδόθηκε) (.33) dmine Q για αντιποδικά σήματα N0 Αν χρησιμοποιήσουμε τώρα το όριο της ένωσης, έχουμε dmine ( M ) Q για ορθογώνια σήματα N0 p( σφάλματος i μεταδόθηκε) (.34) dmine ( M ) Q για αντιποδικά σήματα N0 και αν υποθέσουμε ότι τα σήματα που μεταδίδονται είναι ισοπίθανα, συμπεραίνουμε τελικά ότι p e ( M ) Q ( M ) Q d mine N 0 d E min N 0 για ορθογώνια σήματα για αντιποδικά σήματα (.35) Αυτά είναι τα άνω φράγματα στην πιθανότητα σφάλματος ενός συστήματος επικοινωνίας που χρησιμοποιεί κωδικοποίηση και βέλτιστη μέθοδο αποδιαμόρφωσης. Με τον όρο βέλτιστη αποδιαμόρφωση, εννοούμε ότι το λαμβανόμενο σήμα r(t) περνάει από μια σειρά από προσαρμοσμένα φίλτρα που έχει σαν έξοδο το διάνυσμα r, και κατόπιν επιλέγουμε από τα διανύσματα της ομάδας σημάτων που μεταδόθηκαν, αυτό που η Ευκλείδεια απόστασή του από το r είναι ελάχιστη. Αυτή η μέθοδος αποκωδικοποίησης, που απαιτεί την εύρεση της ελάχιστης απόστασης, ο- νομάζεται αποκωδικοποίηση ευέλικτης απόφασης και απαιτεί υπολογισμούς με πραγματικούς αριθμούς. Για παράδειγμα, μπορούμε να συγκρίνουμε την επίδοση ενός συστήματος που δεν χρησιμοποιεί κωδικοποίηση με την επίδοση ενός συστήματος που χρησιμοποιεί τον (7, 4) κώδικα Hamming του προηγούμενου παραδείγματος. Ο ρυθμός μετάδοσης της πηγής πληροφορίας είναι R=0 4 bits/sec. Το κανάλι υπόκειται σε AWGN, η λαμβανόμενη ισχύς είναι μw και η πυκνότητα φασματικής ισχύος είναι N 0 /=0 -. Η μέθοδος διαμόρφωσης είναι το δυαδικό PSK. Αν δεν χρησιμοποιήσουμε κωδικοποίηση, έχουμε
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 6 4 0 = όμως, P /( RN ) = 0 /(0 0 ) 0 και επομένως, E b = P p b = Q Q (.36) N0 RN0 p b = Q( 0) = Q(4.47) 3.87 0 (.37) Η πιθανότητα να γίνουν σφάλματα σε τέσσερα ψηφία είναι 4 p 4 = ( pb).55 0 (.38) σφάλμα σε ψηφία Αν χρησιμοποιήσουμε κωδικοποίηση, έχουμε d min =3 και E N 0 E b P 4 40 = Rc = Rc = 0 = (.39) N RN 7 7 Έτσι, η πιθανότητα σφάλματος ενός μηνύματος είναι 0 0 min 40 8 ( ) d E p e M Q = 5Q 6 = 5Q( 5.85) 4 0 (.40) 0 7 N 6 5 Βλέπουμε, ότι με την κωδικοποίηση η πιθανότητα σφάλματος μειώνεται σημαντικά. Βέβαια, το τίμημα που πληρώνουμε είναι η αύξηση του εύρους φάσματος που απαιτείται για τη μετάδοση των μηνυμάτων. Ο λόγος αύξησης του εύρους φάσματος είναι W W coded uncoded = R c = 7 4 =.75 (.4).3. Αποκωδικοποίηση άκαμπτης απόφασης, [6] Μια απλούστερη μορφή αποκωδικοποίησης που χρησιμοποιείται συχνά είναι η λήψη δυαδικών αποφάσεων για κάθε συντεταγμένη του λαμβανόμενου διανύσματος r, και κατόπιν η εύρεση της κωδικής λέξης που είναι πιο κοντά στο r με βάση την απόσταση Hamming. Το παρακάτω παράδειγμα διευκρινίζει τη διαφορά μεταξύ ευέλικτης και άκαμπτης απόφασης. Έστω ένας (3, ) κώδικας ο οποίος αποτελείται από δύο κωδικές λέξεις 000 και. Οι κωδικές λέξεις μεταδίδονται χρησιμοποιώντας δυαδική PSK διαμόρφωση με E=. Το λαμβανόμενο διάνυσμα (δηλαδή τα δείγματα στις εξόδους των προσαρμοσμένων φίλτρων) είναι r=(0.5, 0.5, -3). Αν χρησιμοποιηθεί ευέλικτη απόφαση, πρέπει να συγκρίνουμε την Ευκλείδεια απόσταση μεταξύ του r και των δύο σημείων (,, ) και (-, -, -) και να διαλέξουμε την μικρότερη. Έχουμε, (d E (r,(,,)) =0.5 +0.5 +4 =6.5 και (d E (r,(-,-,-)) =.5 +.5 +(-) =8.5 και έτσι ο αποκωδικοποιητής ευέλικτης απόφασης θα αποκωδικοποιήσει το r ως (-,-,-) ή ισοδύναμα (0,0,0).
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 3 Αν εφαρμόσουμε τον αποκωδικοποιητή άκαμπτης απόφασης, ανιχνεύουμε την κάθε συντεταγμένη του r σαν + ή 0. Αυτό απαιτεί την σύγκριση της κάθε συντεταγμένης του r με το μηδέν. Το διάνυσμα που παίρνουμε είναι λοιπόν y=(,, 0). Τώρα πρέπει να συγκρίνουμε το y με το (,, ) και (0, 0, 0), και να βρούμε πιο από τα δύο σημεία έχει την μικρότερη απόσταση Hamming από το y. Το αποτέλεσμα είναι βέβαια το (,, ). Όπως βλέπουμε από το παράδειγμα αυτό τα αποτελέσματα της ευέλικτης απόφασης μπορεί να διαφέρουν κατά πολύ από αυτά της άκαμπτης απόφασης. Βέβαια, η ευέλικτη απόφαση είναι βέλτιστη και έχει τη μικρότερη πιθανότητα σφάλματος. Η κωδικοποίηση άκαμπτης απόφασης γίνεται σε τρία βασικά βήματα. Πρώτον, εκτελείται αποδιαμόρφωση περνώντας το λαμβανόμενο σήμα r(t) μέσα από προσαρμοσμένα φίλτρα και κάνοντας δειγματοληψία της εξόδου των φίλτρων, ο- πότε παίρνουμε το διάνυσμα r. Δεύτερον, συγκρίνουμε κάθε μια από τις συντεταγμένες του r με ένα όριο και δίδουμε σε κάθε μια από τις συντεταγμένες αυτές μια από δύο τιμές, οπότε παίρνουμε το διάνυσμα y. Τέλος, εκτελούμε αποκωδικοποίηση βρίσκοντας την κωδική λέξη της οποίας η απόσταση Hamming από το y είναι ελάχιστη. Στην ενότητα αυτή παρουσιάζουμε μια συστηματική μέθοδο αποκωδικοποίησης άκαμπτης απόφασης. Κατ' αρχήν εισάγουμε την έννοια της τυπικής μήτρας. Ας συμβολίσουμε τις κωδικές λέξεις του κώδικα που θεωρούμε ως, c, c,, c M όπου κάθε κωδική λέξη είναι μήκους n, M= k και η κωδική λέξη c συμβολίζει την κωδική λέξη που όλες οι συντεταγμένες της είναι μηδέν. Μία τυπική μήτρα είναι μια μήτρα n-k x k μήτρα που τα στοιχεία της είναι δυαδικές ακολουθίες μήκους n. Η πρώτη σειρά της μήτρας προκύπτει γράφοντας όλες τις κωδικές λέξεις στη σειρά ξεκινώντας από την μηδενική κωδική λέξη. Για να σχηματίσουμε τη δεύτερη σειρά της μήτρας θεωρούμε όλες τις κωδικές λέξεις μήκους n που δεν περιλαμβάνονται στην πρώτη σειρά της μήτρας. Από αυτές τις κωδικές λέξεις επιλέγουμε αυτήν που έχει ελάχιστο βάρος και την ονομάζουμε e. Γράφουμε την e κάτω από την c και την e c i κάτω από την c i για i M. Η τρίτη σειρά συμπληρώνεται κατά παρόμοιο τρόπο. Από τις κωδικές λέξεις μήκους n που δεν έχουν επιλεγεί στις πρώτες δύο σειρές επιλέγουμε αυτήν που έχει ελάχιστο βάρος και την ονομάζουμε e. Κατόπιν ορίζουμε το i στοιχείο της τρίτης σειράς ως e c i. Η διαδικασία αυτή συνεχίζεται έως ότου εξαντλήσουμε όλες τις κωδικές λέξεις μήκους n. Η εικόνα.4 δείχνει την τυπική μήτρα που προκύπτει από την προηγούμενη διαδικασία. Κάθε σειρά της τυπικής μήτρας ονομάζεται coset και το πρώτο στοιχείο κάθε coset (το e i ) ονομάζεται coset leader.
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 4 Εικόνα.4 Η τυπική μήτρα Η τυπική μήτρα έχει τις ακόλουθες σημαντικές ιδιότητες. Ιδιότητα η : Όλα τα στοιχεία της τυπικής μήτρας είναι διαφορετικά. Άρα η τυπική μήτρα έχει ακριβώς n-k σειρές. Ιδιότητα η : Αν τα y και y είναι στοιχεία του ίδιου coset, ισχύει y H t =y H t. Αν τα y και y δεν ανήκουν στο ίδιο coset τότε y H t y H t. Από την τελευταία ιδιότητα συμπεραίνουμε ότι η σειρά l της τυπικής μήτρας μπορεί να προσδιορισθεί κατά μοναδικό τρόπο από το γινόμενο e l H t. Γενικά, για κάθε δυαδική ακολουθία y μήκους n, ορίζουμε το σύνδρομο s ως t s = yh (.4) Αν y=e l c i, δηλαδή το y ανήκει στο (l+) coset, τότε προφανώς s=e l H t. Το σύνδρομο είναι μια δυαδική ακολουθία μήκους n-k και σε κάθε coset αντιστοιχεί ένα μοναδικό σύνδρομο. Το σύνδρομο που αντιστοιχεί στο πρώτο coset, το οποίο αποτελείται από κωδικές λέξεις, είναι s=0. Έστω, τώρα, ότι θέλουμε να βρεθεί η τυπική μήτρα για τον (5, ) κώδικα με κωδικές λέξεις 00000, 00, 00, 0. Ακόμη, να βρεθεί το σύνδρομο που αντιστοιχεί σε κάθε coset. Η γεννήτρια του κώδικα είναι και η μήτρα ελέγχου ισοτιμίας που αντιστοιχεί στην G είναι μήτρα είναι 00 G = (.43) 00 000 H = 000 (.44) 00 Χρησιμοποιώντας τη διαδικασία που αναπτύξαμε προηγουμένως, η τυπική 00000 00 00 0 σύνδρομο= 000 0000 0 000 00 σύνδρομο= 0 0000 000 0 00 σύνδρομο= 0 0000 0 000 00 σύνδρομο= 00 0000 000 0 00 σύνδρομο= 00 0000 000 000 σύνδρομο= 00 000 00 00 000 σύνδρομο= 0 000 00 00 000 σύνδρομο= (.45)
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 5 Αφού συγκρίνουμε κάθε συντεταγμένη του λαμβανόμενου διανύσματος r με ένα όριο και πάρουμε σαν αποτέλεσμα το διάνυσμα y, πρέπει να βρούμε την κωδική λέξη με τη μικρότερη απόσταση Hamming από το y. Αυτό μπορεί να γίνει ως εξής. Πρώτον, βρίσκουμε το coset όπου βρίσκεται το y. Για το σκοπό αυτό βρίσκουμε το σύνδρομο του y υπολογίζοντας s=yh t. Κατόπιν βρίσκουμε το συνσύνολο στο οποίο ανήκει το s. Ας υποθέσουμε ότι ο coset leader που αντιστοιχεί στο coset αυτό είναι e l. Αφού το y ανήκει στο coset αυτό, μπορεί να γραφεί ως y=e l c i για κάποιο i. Επομένως, η απόσταση Hamming του y από μια κωδική λέξη c j είναι d y, c ) = w(y c ) = w(e c c ) (.46) ( j j l i j Άρα, Επειδή ο κώδικας είναι γραμμικός, έχουμε c i c j =c k για κάποιο k, k M. d y, c ) = w(c e ) (.47) ( j k l αλλά το c k e l ανήκει στο ίδιο coset όπου ανήκει το y. Επομένως για να ελαχιστοποιήσουμε την d(y, c j ) αρκεί να βρούμε το στοιχείο με το ελάχιστο βάρος στο coset στο οποίο ανήκει το y. Εκ κατασκευής της τυπικής μήτρας, αυτό το στοιχείο είναι ο coset leader, δηλαδή επιλέγουμε c k =0 και επομένως c j =c i. Δηλαδή, το y αποκωδικοποιείται σαν c i υπολογίζοντας c = y (.48) i e i Έτσι, η διαδικασία με την οποία επιτυγχάνεται η αποκωδικοποίηση άκαμπτης απόφασης είναι η ακόλουθη. Βρίσκουμε την διανυσματική αναπαράσταση του λαμβανόμενου σήματος r. Συγκρίνουμε κάθε συντεταγμένη του r με το βέλτιστο όριο και παίρνουμε μια δυαδική απόφαση για την τιμή της συντεταγμένης. Σαν αποτέλεσμα παίρνουμε το διάνυσμα y. Βρίσκουμε το σύνδρομο του y, s=yh t. Βρίσκουμε το coset που αντιστοιχεί στο s χρησιμοποιώντας την τυπική μήτρα. Βρίσκουμε τον coset leader e και αποκωδικοποιούμε το y ως c=y e. Επειδή με αυτή τη μέθοδο αποκωδικοποίησης η διαφορά μεταξύ του διανύσματος y και του αποκωδικοποιημένου διανύσματος c είναι e, η δυαδική ακολουθία e αναφέρεται συνήθως ως πρότυπο σφάλματος (error pattern). Αυτό σημαίνει ότι οι coset leaders αποτελούν το σύνολο όλων των προτύπων σφάλματος που μπορούν να διορθωθούν. Για να βρούμε ένα όριο σφάλματος στην αποκωδικοποίηση άκαμπτης απόφασης, παρατηρούμε ότι αφού παίρνουμε αποφάσεις για κάθε μια από τις συντεταγμένες ανεξάρτητα, η πιθανότητα σφάλματος κάθε μιας από τις συντεταγμένες για αντιποδικά σήματα είναι
Κεφάλαιο ο Κωδικοποίηση και διόρθωση σφαλμάτων 6 και για ορθογώνια σήματα E p b = Q (.49) N0 E p b = Q (.50) N 0 Ας προσέξουμε ότι στους τύπους αυτούς χρησιμοποιούμε την ενέργεια ενός ψηφίου της ακολουθίας εξόδου του κωδικοποιητή και όχι την ενέργεια ενός ψηφίου εισόδου στον κωδικοποιητή. Το σύστημα μεταξύ της κωδικής λέξης εισόδου c και της λέξης εξόδου του άκαμπτου αποκωδικοποιητή, y, μπορεί να θεωρηθεί σαν ένα συμμετρικό κανάλι δυαδικής εισόδου και δυαδικής εξόδου, με πιθανότητα σφάλματος p b. Επειδή ο κώδικας είναι γραμμικός, η απόσταση μεταξύ δύο κωδικών λέξεων c i και c j είναι ίδια με την απόσταση της κωδικής λέξης c i c j =c k από την μηδενική κωδική λέξη. Χωρίς βλάβη της γενικότητας μπορούμε να υποθέσουμε ότι μεταδόθηκε η κωδική λέξη 0. Αν μεταδόθηκε το 0, τότε χρησιμοποιώντας το όριο ένωσης βλέπουμε ότι η πιθανότητα σφάλματος δεν μπορεί να υπερβαίνει M- φορές την πιθανότητα να αποκωδικοποιήσουμε την κωδική λέξη 0 ως την κωδική λέξη c που η απόστασή Hamming από την 0 είναι ελάχιστη. Αφού η κωδική λέξη απέχει d min από την 0, έχουμε dmin dmin i dmin i pb ( pb ) αν το dmin είναι περιττό i i = ( d + min ) / p( c 0) = (.5) dmin dmin i dmin i pb ( pb ) + αν το dmin είναι άρτιο = i i d / min ή, γενικά, Έτσι, d min dmin i dmin i p (c 0) = p b ( p) (.5) i= ( d + i min ) / d min dmin i dmin i p e ( M ) pb( p) (.53) i= ( d + i min ) / Ο τελευταίος τύπος δίδει ένα άνω όριο στην πιθανότητα σφάλματος του γραμμικού κώδικα όταν χρησιμοποιείται αποκωδικοποίηση άκαμπτης απόφασης. Βλέπουμε ότι τόσο στην κωδικοποίηση ευέλικτης απόφασης, όσο και στην κωδικοποίηση άκαμπτης απόφασης, η d min είναι πολύ σημαντική για τον υπολογισμό του ορίου στην πιθανότητα σφάλματος. Για το λόγο αυτό, για δεδομένο (n, k), είναι επιθυμητό να έχουμε κώδικες με μεγάλο d min.