Τμήμα Μηχανικών Η/Υ και Πληροφορικής Εργαστήριο Επεξεργασίας Σημάτων και Τηλεπικοινωνιών Ασύρματες και Κινητές Επικοινωνίες Κωδικοποίηση καναλιού
Τι θα δούμε στο μάθημα Σύντομη εισαγωγή Γραμμικοί κώδικες Block και κυκλικοί. Συνελικτικοί κώδικες Κώδικες turbo
Κωδικοποίηση Καναλιού Πηγή Δεδομένων Κώδικας Πηγής Κώδικας Καναλιού Διαμόρφωση Κανάλι Δέκτης Δεδομένων Αποκωδ/ση Πηγής Αποκωδ/ση Καναλιού Αποδιαμόρφωση Εισαγωγή πλεονάζουσας πληροφορίας με «δομημένο» τρόπο ώστε να αντιμετωπίζονται αποτελεσματικά οι παραμορφώσεις που εισάγει το κανάλι. 3
Τι πετυχαίνει η Κωδ. Καναλιού Απαιτείται λιγότερη ισχύς εκπομπής προκειμένου να πετύχουμε την ίδια πιθανότητα σφάλματος. Αυτή η μείωση της ισχύος (σε db) ονομάζεται «Κέρδος Κωδικοποίησης». Ωστόσο, η μετάδοση «πλεονάζουσας πληροφορίας» μειώνει το ρυθμό μετάδοσης της «χρήσιμης» πληροφορίας. P B Α Με κώδικα καναλιού C B D Χωρίς κώδικά καναλιού E b / N0 (db) 4
Κατηγορίες Κωδικών Καναλιού Κώδικες Καναλιού Κώδικες BLOCK π.χ. Hamming Συνελικτικοί κώδικες Κώδικες Turbo Κυκλικοί Κώδικες π.χ. Reed-Solomon, BCH Σε σειρά Παράλληλα 5
Γραμμικοί Κώδικες Block (1/8) (n, k), n > k Κωδικοποιητής Block k (δυαδικές) είσοδοι Σύνολο Εισόδου Α n (δυαδικές) έξοδοι (Κωδική Λέξη) Σύνολο Εξόδου Β 1 1 Α =2 k Β =2 n 6
Γραμμικοί Κώδικες Block (2/8) Ορισμοί 1. Κώδικας: Το σύνολο C το οποίο περιλαμβάνει όλες τις κωδικές λέξεις εξόδου: 2. Γραμμικός Κώδικας: Κάθε γραμμικός συνδυασμός δύο κωδικών λέξεων (πρόσθεση συμπληρώματος του 2 ) είναι επίσης μια κωδική λέξη. π.χ. Για δυαδικούς κώδικες: Η κωδική λέξη που αποτελείται μόνο από μηδενικά ανήκει στο C αφού: 7
Γραμμικοί Κώδικες Block (3/8) Ορισμοί 3. Απόσταση Hamming: Το πλήθος των θέσεων στα οποία δυο κωδικές λέξεις διαφέρουν. 4. Βάρος Hamming: Το πλήθος των μη-μηδενικών στοιχείων μιας κωδικής λέξης. 5. Ελάχιστη Απόσταση Κώδικα: Η ελάχιστη απόσταση Hamming για όλα τα ζεύγη κωδικών λέξεων του κώδικα. 6. Ελάχιστο Βάρος Κώδικα: Το ελάχιστο βάρος που μπορεί να έχει μία κωδική λέξη, αν αγνοήσουμε την κωδική λέξη που αποτελείται μόνο από μηδενικά. 8
Γραμμικοί Κώδικες Block (4/8) ΘΕΩΡΗΜΑ: Σε οποιονδήποτε γραμμικό κώδικα η ελάχιστη απόσταση Hamming ισούται με το ελάχιστο βάρος του κώδικα. Απόδειξη: Είναι, δηλαδή, κάθε απόσταση Hamming γράφεται σαν βάρος κάποιας κωδικής λέξης και άρα η ελαχιστοποίηση γίνεται πάνω στα ίδια σύνολα. 9
Γραμμικοί Κώδικες Block (5/8) Πως γίνεται η αντιστοίχιση εισόδου και εξόδου; Έστω ότι γνωρίζουμε την αντιστοίχιση για τις εισόδους: Κάθε άλλη είσοδος x γράφεται με βάση αυτές τις εισόδους: Επομένως θα αντιστοιχεί στην κωδική λέξη: 10
Γραμμικοί Κώδικες Block (6/8) Γεννήτορας πίνακας Και έτσι η κωδικοποίηση γίνεται σύμφωνα με τη σχέση: 11
Γραμμικοί Κώδικες Block (7/8) Συστηματικοί κώδικες Όταν κάθε κωδική λέξη περιλαμβάνει ακέραια την λέξη πληροφορίας στην οποία αντιστοιχεί. Τότε ισχύει ότι G = I k P Παράδειγμα k = 2 n = 3 + 12
Γραμμικοί Κώδικες Block (8/8) Πίνακας ισοτιμίας: Σημαντική ιδιότητα (αν και μόνο αν c είναι κωδική λέξη): Για συστηματικούς κώδικες ισχύει: Ο πίνακας H είναι ο γεννήτορας του λεγόμενου δυικού κώδικα C T που ορίζεται στον (n k) υποχώρο που είναι το ορθογώνιο συμπλήρωμα του k-διάστατου υποχώρου ΤΜΗΥΠ / ΕΕΣΤ 13
Κώδικες Hamming Οι κώδικες Hamming είναι γραμμικοί, block κώδικες με: n = 2 m 1, k = 2 m m 1, d min = 3, όταν m 3 Ο πίνακας ισοτιμίας περιγράφεται από όλους τους συνδυασμούς m ψηφιών εκτός από αυτόν με όλα τα ψηφία ίσα με το μηδέν. Ποιο είναι ένα παράδειγμα για m = 3; ΤΜΗΥΠ / ΕΕΣΤ 14
SOFT Αποκωδικοποίηση ΑΛΓΟΡΙΘΜΟΣ Για κάθε n λαμβανόμενα δείγματα: 1. Υπολογίζουμε τις Ευκλείδειες αποστάσεις ανάμεσα σε όλες τις διαμορφωμένες κωδικές λέξεις και στα δείγματα που λάβαμε. 2. Επιλέγουμε ως κωδική λέξη εκείνη με την ελάχιστη Ευκλείδεια απόσταση. 3. Εκτελούμε την αντίστροφη αντιστοίχιση για να βρούμε τη λέξη πληροφορίας. ΤΜΗΥΠ / ΕΕΣΤ 15
HARD Αποκωδικοποίηση ΑΛΓΟΡΙΘΜΟΣ Για κάθε n λαμβανόμενα δείγματα: 1. Εκτελούμε αποδιαμόρφωση των λαμβανόμενων δειγμάτων και καταλήγουμε στα αντίστοιχα δυαδικά δεδομένα. 2. Υπολογίζουμε την κωδική λέξη που είναι πλησιέστερα με βάση την απόσταση Hamming. (Συνήθως με χρήση lookup table) 3. Εκτελούμε την αντίστροφη αντιστοίχιση για να βρούμε τη λέξη πληροφορίας. ΤΜΗΥΠ / ΕΕΣΤ 16
Αποκωδικοποίηση 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 +1 +1 1 +1 1 +1 1 +1 +1 1-0.8, 1.1, 0.9-1.2,+0.7,+0.9 +0.6, 0.6,+1.3 +1.1,+0.4, 0.6 ΛΕΞΕΙΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΩΔΙΚΕΣ ΛΕΞΕΙΣ ΔΙΑΜΟΡΦΩΜΕΝΕΣ ΚΩΔΙΚΕΣ ΛΕΞΕΙΣ ΛΑΜΒΑΝΟΜΕΝΕΣ ΛΕΞΕΙΣ SOFT ΚΟΝTΙΝΟΤΕΡΗ ΛΕΞΗ KATA ΕΥΚΛΕΙΔH +1,+1,-1 1 1 ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗ +1.1,+0.9,+0.1 HARD ΑΠΟΦΑΣΗ 1,1,1 ΚΟΝΤΙΝΟΤΕΡΗ ΛΕΞΗ ΚΑΤΑ HAMMING 17
Απόδοση Κωδικών Block P B 8PSK QPSK E b / N0 [db] 18
Κυκλικοί Κώδικες Block (1/3) Οι κυκλικοί κώδικες είναι γραμμικοί κώδικες με την επιπλέον ιδιότητα πως αν εκτελέσουμε μια κυκλική ολίσθηση σε μια κωδική λέξη προκύπτει και πάλι μια κωδική λέξη. [C 1 C 2 C 3... C n ] [C 2 C 3... C n C 1 ] Πλεονεκτήματα: Η υλοποίησή τους είναι εύκολη (με χρήση καταχωρητών ολίσθησης με ανάδραση) Έχουν καλή μαθηματική δομή που επιτρέπει τη σχεδίαση χρήσιμων κωδίκων 19
Κυκλικοί Κώδικες Block (2/3) Οι κυκλικοί κώδικες είναι γραμμικοί κώδικες με την επιπλέον ιδιότητα πως αν εκτελέσουμε μια κυκλική ολίσθηση σε μια κωδική λέξη προκύπτει και πάλι μια κωδική λέξη. Οι κυκλικοί κώδικες περιγράφονται μέσω κατάλληλα ορισμένων πολυωνύμων. Σε οποιονδήποτε (n, k) κυκλικό κώδικα όλα τα πολυώνυμα των κωδικών του λέξεων είναι πολλαπλάσια ενός πολυωνύμου (γεννήτορα) βαθμού n k της μορφής: 20
Κυκλικοί Κώδικες Block (3/3) Αν η λέξη προς κωδικοποίηση περιγράφεται ως: Η κωδικοποίησή της δίνεται ως: Ποια πράξη («επεξεργασίας σημάτων») περιγράφει το παραπάνω γινόμενο πολυωνύμων; Σημαντικό παράδειγμα οι κώδικες Reed-Solomon: Επιτυγχάνουν μεγάλη ελάχιστη απόδοση. Εφαρμόσιμοι σε σφάλματα καταιγισμού. ΤΜΗΥΠ / ΕΕΣΤ 21
Καταιγισμός σφαλμάτων (1/3) Οι γραμμικοί κώδικες αντιμετωπίζουν συνήθως σφάλματα που συμβαίνουν με τυχαίο τρόπο, ενώ είναι ανεξάρτητα μεταξύ τους (ποιο μοντέλο καναλιού παράγει τέτοιου τύπου σφάλματα;) Σε κανάλια με διαλείψεις (όπως το ασύρματο κανάλι), στην περίπτωση που ένα κανάλι παρουσιάσει «βυθίσεις» τότε ένα σύνολο από γειτονικά ψηφία θα επηρεαστούν, οπότε, δεν είναι τα σφάλματα ανεξάρτητα μεταξύ τους. Τα σφάλματα εμφανίζονται καταιγιστικά ή κατά ριπές. Παραδείγματα κωδίκων που έχουν σχεδιαστεί λαμβάνοντας υπόψη αυτού του τύπου τα σφάλματα είναι, π.χ., οι κώδικες Fire και Burton. 22
Καταιγισμός σφαλμάτων (2/3) Μια αποδοτική μέθοδος για την αντιμετώπιση των καταιγισμών σφαλμάτων χρησιμοποιεί την έννοια της σύμπλεξης ή διεμπλοκής (interleaving). Ένας συμπλέκτης «απλώνει» τα καταιγιστικά σφάλματα σε περισσότερες της μιας κωδικές λέξεις με αποτέλεσμα αυτά να «φαίνονται» ως τυχαία. Ένας συμπλέκτης m n τοποθετεί m κωδικές λέξεις, των n δυαδικών ψηφιών, την μια κάτω από την άλλη και τις εξάγει προς τον διαμορφωτή κατά στήλες. Τι μήκος σφαλμάτων καταιγισμού μπορεί να αντιμετωπίσει ο εν λόγω συμπλέκτης; 23
ΚΩΔΙΚΑΣ Καταιγισμός Σφαλμάτων (3/3) ΠΛΗΡΟΦΟΡΙΑ ΔΙΑΜΟΡΦΩΣΗ ΚΑΝΑΛΙ ΔΕΚΤΗΣ Α ΛΑΘΗ ΔΙΑΜΟΡΦΩΣΗ INTERLEAVER ΚΩΔΙΚΑΣ ΑΠΟΔΙΑΜΟΡΦΩΣΗ DEINTERLEAVER ΑΠΟΚΩΔ/ΣΗ ΠΛΗΡΟΦΟΡΙΑ 24
Συνελικτικοί κώδικες (1/2) Οι συνελικτικοί κώδικες, εν αντιθέσει με τους block κώδικες, έχουν μνήμη. Και πάλι, k ψηφιά αντιστοιχούνται σε n ψηφιά με την διαφορά πως τα k δεν αντιστοιχούν μόνο στην τρέχουσα λέξη, όπως συμβαίνει με τους block κώδικες, αλλά και σε προηγούμενες. Υλοποιείται ως ένας ολισθητής λέξεων των kl ψηφίων, όπου L ονομάζεται μήκος εξαναγκασμού. Η έξοδος προκύπτει από n γραμμικούς συνδυασμούς των k ψηφιών (από τα kl). Πόση είναι η μνήμη του κώδικα; 25
Συνελικτικοί κώδικες (2/2) Οι συνελικτικοί κώδικες μπορούν να αναπαρασταθούν μέσω ενός διαγράμματος βαθμίδων. Π.χ., για k=1, n=2, και L=3, ένας κώδικας μπορεί να περιγραφεί από τις ακολουθίες γεννήτορες g 1 = 1 0 1, g 2 = [1 1 1]. Ποιο είναι το διάγραμμα βαθμίδων του συνελικτικού κώδικα; Άλλες αναπαραστάσεις που χρησιμοποιούνται είναι το διάγραμμα μετάπτωσης καταστάσεων (state-transition diagram) και τα διαγράμματα δικτυώματος (trellis diagrams). Ποια είναι τα αντίστοιχα διαγράμματα για το προηγούμενο παράδειγμα; Ο αλγόριθμος Viterbi χρησιμοποιείται στην αποκωδικοποίηση. 26
Κώδικες Turbo Οι κώδικες Turbo χρησιμοποιούν δυο συνελικτικούς κώδικες. Ο πρώτος λαμβάνει ως έχει την λέξη που θα κωδικοποιηθεί. Ο δεύτερος λαμβάνει την κωδική λέξη αφού διέλθει από έναν συμπλέκτη. Οι συνελικτικοί κώδικες είναι συνήθως αναδρομικοί (τι σημαίνει αυτό σε σχέση με τους συνελικτικούς κώδικες που αναφέραμε προηγουμένως;). Στον δέκτη χρησιμοποιούνται δυο αποκωδικοποιητές και διατάξεις σύμπλεξης / αποσύμπλεξης, καθώς και ένα μονοπάτι ανατροφοδότησης. Παρουσιάζουν εξαιρετική απόδοση αλλά έχουν υψηλή πολυπλοκότητα για την υλοποίησή τους. 27