Ανίχνευση και διόρθωση σφαλμάτων σε συστήματα επικοινωνιών με κωδικοποίηση Reed-Solomon

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

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

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

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

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

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

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

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

Εισαγωγή στις Τηλεπικοινωνίες. Δομή της παρουσίασης

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

Το μόνο, ίσως, μειονέκτημά τους είναι ότι το μήκος τους υπόκειται σε περιορισμό από το πλήθος των στοιχείων του σώματος επί του οποίου ορίζονται.

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

(a + b) + c = a + (b + c), (ab)c = a(bc) a + b = b + a, ab = ba. a(b + c) = ab + ac

Εξομοίωση Τηλεπικοινωνιακού Συστήματος Βασικής Ζώνης

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

Εφαρμοσμένα Μαθηματικά ΙΙ

Εφαρμοσμένα Μαθηματικά ΙΙ

Τα παρακάτω σύνολα θα τα θεωρήσουμε γενικά γνωστά, αν και θα δούμε πολλές από τις ιδιότητές τους: N Z Q R C

X = {(x 1, x 2 ) x 1 + 2x 2 = 0}.

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο.

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

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

Γραμμική Αλγεβρα ΙΙ Διάλεξη 1 Εισαγωγή Χρήστος Κουρουνιώτης Πανεπισ τήμιο Κρήτης 19/2/2014 Χ.Κουρουνιώτης (Παν.Κρήτης) Διάλεξη 1 19/2/ / 13

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

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

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

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

ΕΑΠ/ΠΛΗ22/ΑΘΗ.4/4η ΟΣΣ/ Κώδικες ελέγχου Σφαλμάτων /

ΚΕΦΑΛΑΙΟ 2. Γραμμικοί Κώδικες. 2.1 Η έννοια του Γραμμικού κώδικα

ΕΑΠ/ΠΛΗ22/ΑΘΗ.4/4η ΟΣΣ/ Ν.Δημητρίου 1

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ. Κεφάλαιο 3 : Πηγές Πληροφορίας Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Τι είναι βαθμωτό μέγεθος? Ένα μέγεθος που περιγράφεται μόνο με έναν αριθμό (π.χ. πίεση)

= 7. Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις

Θεώρημα κωδικοποίησης πηγής

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

Περιεχόμενα. Πρόλογος 3

Κωδικοποίηση Πηγής. Η λειτουργία ενός συστήματος επικοινωνίας (γενικό διάγραμμα):

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

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

Αριθμοθεωρητικοί Αλγόριθμοι

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

Μαθηματικά Γ Γυμνασίου

Συστήματα Επικοινωνιών

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

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

Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών

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

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

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

ΚΕΦΑΛΑΙΟ 1: Πρότυπα. x y x z για κάθε x, y, R με την ιδιότητα 1R. x για κάθε x R, iii) υπάρχει στοιχείο 1 R. ii) ( x y) z x ( y z)

2 η Εργαστηριακή Άσκηση

2.0 ΔΙΑΝΥΣΜΑΤΙΚΟΙ ΧΩΡΟΙ ΚΑΙ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

Κεφάλαιο 1 Πρότυπα. Στο κεφάλαιο αυτό εισάγουμε την έννοια του προτύπου πάνω από δακτύλιο.

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

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

Ψηφιακές Επικοινωνίες

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

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

Ποιες από τις παρακάτω προτάσεις είναι αληθείς; Δικαιολογήστε την απάντησή σας.

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 2 η Ημερομηνία Αποστολής στον Φοιτητή: 28 Νοεμβρίου 2011

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΣΗΜΕΙΩΣΕΙΣ ΓΡΑΜΜΙΚΗΣ ΑΛΓΕΒΡΑΣ. ρ Χρήστου Νικολαϊδη

ΜΑΣ121: ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ I Εαρινό εξάμηνο , Διδάσκων: Γιώργος Γεωργίου ΕΝΔΙΑΜΕΣΗ ΕΞΕΤΑΣΗ, Διάρκεια: 2 ώρες 18 Νοεμβρίου, 2017

Ψηφιακές Τηλεπικοινωνίες. Βέλτιστος Δέκτης

Σήματα και Συστήματα. Διάλεξη 1: Σήματα Συνεχούς Χρόνου. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

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

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

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9

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

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

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ B ΤΑΞΗΣ. χρησιμοποιήσουμε καθημερινά φαινόμενα όπως το θερμόμετρο, Θετικοί-Αρνητικοί αριθμοί.

ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ

Ορισμοί και πράξεις πινάκων

Κεφάλαιο 4 Διανυσματικοί Χώροι

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

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

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

Ψηφιακές Τηλεπικοινωνίες

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM)

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

ΚΕΦΑΛΑΙΟ ΠΕΜΠΤΟ ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ

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

ΣΗΜΕΙΩΣΕΙΣ. x A αντιστοιχίζεται (συσχετίζεται) με ένα μόνο. = ονομάζεται εξίσωση της

Ψηφιακές Τηλεπικοινωνίες. Θεωρία Ρυθμού Παραμόρφωσης

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

Κεφάλαιο 4 Διανυσματικοί Χώροι

0 + a = a + 0 = a, a k, a + ( a) = ( a) + a = 0, 1 a = a 1 = a, a k, a a 1 = a 1 a = 1,

Ψηφιακές Τηλεπικοινωνίες. Δισδιάστατες Κυματομορφές Σήματος

4.2 ΕΥΚΛΕΙΔΕΙΑ ΔΙΑΙΡΕΣΗ

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

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

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM)

Transcript:

Ανίχνευση και διόρθωση σφαλμάτων σε συστήματα επικοινωνιών με κωδικοποίηση Reed-Solomon Αλέξανδρος Βασιλείου Σεπτέμβριος 2011 Πανεπιστήμιο Πατρών

PERIEQŸOMENA Συνεισφορά της εργασίας........................... 15 1. Το σύστημα επικοινωνίας........................ 17 2. Βασικές μαθηματικές έννοιες....................... 23 2.1 Ομάδα............................... 23 2.2 Σώμα................................ 24 2.3 Κατασκευή πεπερασμένων σωμάτων.............. 25 2.4 Από το σώμα βάσης στο σώμα επέκτασης........... 26 2.5 Διανυσματικοί χώροι....................... 27 2.6 Χρήσιμες έννοιες για διανυσματικούς χώρους......... 29 3. Θεωρία κωδίκων............................. 31 3.1 Η ανάγκη της κωδικοποίησης.................. 31 3.2 Κωδικοποίηση - αποκωδικοποίηση............... 32 3.3 Χρήσιμοι ορισμοί......................... 33 3.3.1 Απόσταση hamming................... 33 3.3.2 Γραμμικός κώδικας μπλοκ................ 34 3.3.3 Κυκλικός κώδικας.................... 34 3.3.4 Βάρος μιας λέξης..................... 34 3.3.5 Ελάχιστη απόσταση κώδικα............... 34 3.3.6 Κώδικες μέγιστης απόστασης (maximum distance seperable codes - MDS)................. 35

Περιεχόμενα 3 3.3.7 Συστηματικοί κώδικες.................. 35 3.4 Ο γεννήτορας πίνακας G σε γραμμικούς κώδικες μπλοκ... 36 3.5 Ο πίνακας ελέγχου ισοτιμίας H (Parity check matrix).... 37 3.6 Διορθωτική και ανιχνευτική ικανότητα............ 37 3.7 Σφαίρα hamming και φράγμα hamming........... 38 3.8 Ανίχνευση και διόρθωση σφαλμάτων στον αποκωδικοποιητή 39 3.8.1 Ορισμός συνδρόμου................... 39 3.8.2 Παράδειγμα ML decoder................ 40 3.8.3 Αποκωδικοποιητής περιορισμένης απόστασης (Bounded distance decoder)............... 43 3.9 Τέλειοι κώδικες και σύγκριση ML - BD............. 43 4. Κώδικες Reed-Solomon......................... 45 4.1 Για ποιο λόγο Reed-Solomon.................. 45 4.2 Κωδικοποίηση Reed-Solomon.................. 46 4.2.1 Κώδικες Reed-Solomon ως κώδικες BCH....... 47 4.2.2 Πώς γίνεται η διαίρεση μηνύματος - γεννήτορα... 48 4.2.3 Κώδικες Reed-Solomon ως τιμές ενός πολυωνύμου. 50 4.3 Αποκωδικοποίηση σε κώδικες Reed-Solomon για την πρώτη κωδικοποίηση........................... 51 4.3.1 Υπολογισμός συνδρόμων................ 52 4.3.2 Πολυώνυμο εντοπισμού σφαλμάτων (error locator polynomial)........................ 53 4.3.3 Υπολογισμός πολυωνύμου εντοπισμού σφαλμάτων. 54 4.3.4 Υπολογισμός τιμών σφαλμάτων............ 56 5. Αποδοτικότερη αποκωδικοποίηση: Ο αλγόριθμος των Guruswami-Sudan 59 5.1 Αποκωδικοποιητές περιορισμένης απόστασης, μέγιστης πιθανοφάνειας και λίστας.................... 59 5.2 Γενική επισκόπηση αλγορίθμου GS............... 62

Περιεχόμενα 4 5.3 Διάταξη πολυωνύμων ως προς το βαθμό τους......... 62 5.4 Παράγωγοι Hasse και πολλαπλές ρίζες σε πολυώνυμα δύο μεταβλητών............................ 65 5.5 Τα θεωρήματα παρεμβολής και παραγοντοποίησης..... 67 5.6 Περιγραφή του αλγορίθμου................... 68 5.6.1 Ο αλγόριθμος της παρεμβολής του Koetter...... 69 5.6.2 Ο αλγόριθμος παραγοντοποίησης των Roth-Ruckenstein..................... 70 5.7 Παραδείγματα: Διορθωτική ικανότητα και πολυπλοκότητα 72 5.8 Προσαρμοστικός αποκωδικοποιητής.............. 76 5.9 Ψευδοκώδικες αλγορίθμων................... 80 6. Αποκωδικοποίηση Reed-Solomon soft decision.............. 83 6.1 Εισαγωγή.............................. 83 6.2 Γενική επισκόπιση......................... 85 6.3 Ο πίνακας αξιοπιστίας (reliability matrix)........... 85 6.4 Ο πίνακας πολλαπλοτήτων................... 89 6.5 Αλγόριθμος και πολυπλοκότητα................ 90 7. Λεπτομέρειες υλοποίησης αλγορίθμων.................. 93 7.1 Πράξεις στο στάδιο παρεμβολής................ 93 7.2 Οι διαστάσεις των πινάκων - πολυωνύμων.......... 97 7.3 Συστηματική κωδικοποίηση................... 98 8. Πειραματικές μετρήσεις και συμπεράσματα................ 101 8.1 Καμπύλες BER........................... 102 8.2 Θεωρητικές καμπύλες FER................... 105 8.3 Πειραματικές καμπύλες FER.................. 110 8.4 Συμπεράσματα και προτάσεις για περαιτέρω έρευνα..... 112

Περιεχόμενα 5 Bibliography................................. 118 Appendix 119 APPENDICES A. Summary................................ 121

KATŸALOGOS SQHMŸATWN 1.1 Το σύστημα επικοινωνίας..................... 18 1.2 Ένα απλούστερο σύστημα επικοινωνίας............. 19 1.3 Παράδειγμα καμπύλης BER................... 21 2.1 Οι δύο πραξεις στο GF(7)..................... 25 5.1 Διορθωτική ικανότητα αλγορίθμου GS............. 60 5.2 Σύγκριση BD, ML και list decoder............... 61 5.3 Σύγκριση βελτίωσης απόδοσης................. 75 5.4 Διάγραμμα σειριακού αποκωδικοποιητή σε κώδικα (31, 15). 76 5.5 Διάγραμμα προσαρμοστικού αποκωδικοποιητή σε κώδικα (31, 15)............................... 78 5.6 Χρόνοι που χρειάστηκαν για διάφορους αποκωδικοποιητές σε κώδικα (31, 5).......................... 79 5.7 Κωδική λέξη και σφαίρες hamming............... 80 6.1 Διαδικασία Hard Decoding................... 84 6.2 Διαδικασία Soft Decoding.................... 84 6.3 Διαδικασία αλγορίθμου Koetter-Vardy............ 85 6.4 Παράδειγμα κατανομών εξόδου καναλιού σε BPSK μετάδοση, σ 2 = 0.45........................ 88 8.1 BER σε κώδικα (255,223)..................... 103 8.2 BER σε κώδικα (255,131)..................... 104

Κατάλογος Σχημάτων 7 8.3 BER σε κώδικα (255,81)..................... 105 8.4 BER σε κώδικα (31,5) με αλγόριθμο Guruswami-Sudan... 106 8.5 BER σε κώδικα (31,5) με αλγόριθμο Guruswami-Sudan με μεγαλύτερη πολλαπλότητα................... 107 8.6 BER σε κώδικα (15,7) με μη συστηματική κωδικοποίηση.. 108 8.7 BER σε κώδικα (15,7) με συστηματική κωδικοποίηση.... 109 8.8 FER σε κώδικα (255,223) για Bounded Distance Decoder.. 110 8.9 FER σε κώδικα (255,131) για Bounded Distance Decoder.. 111 8.10 FER σε κώδικα (255,81) για Bounded Distance Decoder... 112 8.11 FER σε διάφορους κώδικες για Bounded Distance Decoder. 113 8.12 FER σε διάφορους κώδικες για GS List Decoder....... 114 8.13 FER σε κώδικα (15,7)....................... 115

ΣΥΝΕΙΣΦΟΡΑ ΤΗΣ ΕΡΓΑΣΙΑΣ Στην εργασία αυτή, μελετώνται διαφορετικοί αποκωδικοποιητές για κώδικες Reed-Solomon. Αφού γίνει μια εισαγωγή στο σύστημα επικοινωνίας, στα πεπερασμένα σώματα και στη θεωρία κωδίκων, παρουσιάζονται αλγόριθμοι που υλοποιούν αποκωδικοποιητές περιορισμένης απόστασης, λίστας και soft decoders. Συγκεκριμένα, μελετώνται κλασσικοί αποκωδικοποιητές, αποκωδικοποιητές βασισμένοι στον αλγόριθμο Guruswami-Sudan, και αποκωδικοποιητές βασισμένοι στον αλγόριθμο Koetter-Vardy. Η σύγκριση των αποκωδικοποιητών μεταξύ τους, προσφέρει σε ένα σχεδιαστή ενός συστήματος διόρθωσης λαθών τη δυνατότητα επιλογής του καλύτερου αποκωδικοποιητή λαμβάνοντας υπόψη τις προδιαγραφές της εφαρμογής. Η σύγκριση γίνεται ως προς τη διορθωτική ικανότητα και τη χρονική πολυπλοκότητα. Στα πλαίσια της εργασίας αυτής, σε συνέχεια της μελέτης υπαρχόντων αποκωδικοποιητών προτείνεται ένα είδος προσαρμοστικού αποκωδικοποιητή: φέρει την ίδια διορθωτική ικανότητα με έναν αποκωδικοποιητή λίστας, αλλά σε ορισμένες περιπτώσεις έχει ικανοποιητικά μικρότερη χρονική πολυπλοκότητα. Επίσης γίνεται μία ποιοτική διερεύνηση για το πότε πρέπει να προτιμάται ο προσαρμοστικός αποκωδικοποιητής. Προτείνονται δύο διαφορετικοί προσαρμοστικοί αποκωδικοποιητές. Η πρώτη εκδοχή, είναι μία διάταξη με δύο αποκωδικοποιητές. Αρχικά το ληφθέν διάνυσμα από το κανάλι, εισέρχεται ως είσοδος σε έναν

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

1. ΤΟ ΣΥΣΤΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ Στον ψηφιακό κόσμο των υπολογιστών, η επικοινωνία μεταξύ ενός πομπού κι ενός δέκτη είναι μια ιδιαίτερα πολύπλοκη διαδικασία. Απαρτίζεται από επιμέρους διαδικασίες, καθεμιά από τις οποίες θα μπορούσε να είναι το αντικείμενο ενός διαφορετικού μηχανικού. Η πληροφορία που θέλει να μεταδώσει ο πομπός υφίσταται πολλές μεταλλάξεις, έτσι ώστε να γίνει η καλύτερη δυνατή προσπάθεια για να φτάσει αυτούσια στο δέκτη. Για παράδειγμα, μια ελληνική εταιρεία παροχής ψηφιακής τηλεόρασης, προκειμένου να μεταδώσει την εικόνα και τον ήχο, μπορούμε να πούμε απλοϊκά ότι ακολουθεί την εξής διαδικασία: Στην αρχή πρέπει να ψηφιοποιήσει την εικόνα και τον ήχο, με αναλογικούς προς ψηφιακούς μετατροπείς, έτσι ώστε να έχει τη δυνατότητα να τα επεξεργαστεί καλύτερα. Στη συνέχεια συμπιέζει την ψηφιακή πληροφορία για εξοικονόμηση πόρων. Είναι πιθανόν να την κρυπτογραφεί επιπλέον, ώστε να μην μπορούν να τη διαβάσουν παρά μόνον οι συνδρομητές. Έπειτα θα πρέπει να κωδικοποιηθεί η πληροφορία με τρόπο τέτοιο ώστε αν τυχόν συμβεί κάποιο λάθος στη μετάδοση, να μπορεί ο δέκτης να το διορθώσει. Στη συνέχεια, η κωδικοποιημένη ψηφιακή πληροφορία μετατρέπεται σε κάποια αναλογική κυματομορφή, ώστε να σταλεί με κάποιο φυσικό μέσο (πχ ασύρματα με μια κεραία). Ο δέκτης θα πρέπει να ακολουθήσει την αντίστροφη διαδικασία, ώστε να λάβει την εικόνα και να την προβάλει στην τηλεόραση.

1. Το σύστημα επικοινωνίας 11 Σχήμα 1.1: Το σύστημα επικοινωνίας. Στο μοντέλο αυτό περιλαμβάνονται διάφορες διατάξεις, όπως αναλογικοί προς ψηφιακούς μετατροπείς, αναλογικά και ψηφιακά φίλτρα, κυκλώματα χρονισμού, κυματοδηγοί κλπ. Η εργασία αυτή εστιάζεται στο κομμάτι όπου η ψηφιακή πληροφορία κωδικοποιείται με κατάλληλο τρόπο ώστε να ανιχνεύονται και να διορθώνονται τα σφάλματα που εισάγονται στο κανάλι. Ένα μέρος των επιμέρους διαδικασιών φαίνεται στο σχήμα 1.1. Αρχικά η ψηφιακή πληροφορία συμπιέζεται, έτσι ώστε να αφαιρεθεί όσο το δυνατόν περισσότερος πλεονασμός και η πηγή να θεωρείται τελείως τυχαία. Έπειτα η ψηφιακή πληροφορία κωδικοποιείται, για να μετατραπεί στη συνέχεια σε κάποια αναλογική κυματομορφή. Η αναλογική κυματομορφή παραμορφώνεται στο κανάλι από προσθετικό θόρυβο και έπειτα ο δέκτης ακολουθεί την αντίστροφη διαδικασία. Σε ένα απλούστερο μοντέλο, σκοπός του πομπού είναι να στείλει στο δέκτη κάποια κυματομορφή X μέσα από ένα κανάλι. Θεωρούμε ότι στο κανάλι προστίθεται κάποιος θόρυβος N, οπότε ο δέκτης λαμβάνει την κυματομορφή Y = X + N. Σκοπός του δέκτη είναι να πάρει μια απόφαση, για το ποια κυματομορφή έστειλε ο πομπός, δεδομένου ότι

1. Το σύστημα επικοινωνίας 12 έλαβε την κυματομορφή Y. Στις ψηφιακές επικοινωνίες, οι κυματομορφές που επιλέγει να στείλει ο πομπός στο δέκτη είναι συγκεκριμένες και προσυμφωνημένες. Αυτό είναι κάτι που διευκολύνει το δέκτη, διότι αν η κυματομορφή X παραμορφωθεί λίγο, τότε ο δέκτης θα μπορέσει να καταλάβει ποιο είναι το X δεδομένου ότι έλαβε το Y. Στις αναλογικές επικοινωνίες, όπου οι κυματομορφές X δεν επιλέγονται από κάποιο προσυμφωνημένο πεπερασμένο σύνολο, ο δέκτης δεν θα είχε τη δυνατότητα να «διορθώσει» το Y για να βρει το X. Σχήμα 1.2: Ένα απλούστερο σύστημα επικοινωνίας. Αν επανέλθουμε στο σχήμα 1.1, για τα πλαίσια της μελέτης που θα γίνει, μπορούμε να το απλοποιήσουμε στο σχήμα 1.2. Θεωρούμε ότι η πηγή πληροφορίας είναι τυχαία (άρα και συμπιεσμένη), και μετά την κωδικοποίηση, μπορούμε να μοντελοποιήσουμε τις υπόλοιπες διαδικασίες με ένα δυαδικό συμμετρικό κανάλι. Το κανάλι αυτό, δέχεται στην είσοδο 0 ή 1 και τα αντιστρέφει στην έξοδο με κάποια πιθανότητα p. Τα παραπάνω θα αναλυθούν λεπτομερέστερα σε επόμενο κεφάλαιο. Σκοπός της εργασίας Στην εργασία θα παρουσιαστούν μαθηματικές έννοιες που σχετίζονται με τη διαδικασία της κωδικοποίησης και της αποκωδικοποίησης. Μελετώνται διαφορετικές τεχνικές αποκωδικοποίησης, καθεμία από τις οποίες έχει τα

1. Το σύστημα επικοινωνίας 13 πλεονεκτήματα και τα μειονεκτήματά της. Στο τέλος θα παρουσιαστούν οι πειραματικές μετρήσεις. Η διαδικασία της κωδικοποίησης και της αποκωδικοποίησης είναι μεν αυτοτελής, αλλά δεν πρέπει να είναι ξεκομμένη από τα υπόλοιπα επίπεδα της τηλεπικοινωνιακής ζεύξης. Ο σχεδιαστής μιας τηλεπικοινωνιακής σύζευξης, έχει κάποιες απαιτήσεις ως προς την αξιοπιστία της. Οι απαιτήσεις αυτές συχνά μπορεί να είναι αντικρουώμενες. Για παράδειγμα, σε ένα σύστημα μπορεί να είναι μικρή η πιθανότητα να γίνει κάποιο λάθος στην μετάδοση, αλλά η διαδικασία να είναι αρκετά πολύπλοκη και αργή. Ο σχεδιαστής θα πρέπει να είναι ενημερωμένος για τους διαθέσιμους πόρους, ώστε να σχεδιάσει τον κατάλληλο κώδικα. Μια απαίτηση της σχεδίασης, μπορεί να είναι ένας συγκεκριμένος αριθμός BER (Bit Error Rate). Αν για παράδειγμα ζητείται BER το πολύ 10 9, σημαίνει ότι πρέπει στατιστικά κατά μέσο όρο να μην γίνεται πάνω από ένα λάθος για κάθε ένα δισεκατομμύριο απεσταλμένων bit. Ο σχεδιαστής του συστήματος κωδικοποίησης και αποκωδικοποίησης θα παρουσιάσει στους σχεδιαστές των υπόλοιπων διατάξεων μία καμπύλη σαν αυτή του σχήματος 1.3, για να υποδείξει πόσο ισχυρό πρέπει να είναι το σήμα αποστολής, ώστε να επιτευχθεί το απαραίτητο BER. Στον οριζόντιο άξονα του σχήματος είναι μια ποσότητα που περιγράφει πόσο ισχυρό είναι το σήμα εκπομπής, ή αλλιώς, πόσος θόρυβος υπάρχει στο κανάλι. Λεπτομέρειες για αυτό θα αναφερθούν στο κεφάλαιο 8. Από την άλλη μεριά, ο μηχανικός που σχεδιάζει τις φυσικές διατάξεις όπως τις κεραίες και τα μέσα αποστολής των σημάτων, ενδέχεται να έχει κάποια όρια στην ισχύ του σήματος εκπομπής. Οπότε, θα πρέπει να ενημερώσει τον σχεδιαστή του τμήματος κωδικοποίησης, ώστε να φροντίσει να βρει κατάλληλο κώδικα που να πετυχαίνει το ζητούμενο BER με τους διαθέσιμους πόρους. Καταλήγοντας, οι σχεδιαστές των διατάξεων αφενός μπορούν να

1. Το σύστημα επικοινωνίας 14 Σχήμα 1.3: Παράδειγμα καμπύλης BER ολοκληρώσουν αυτοτελώς τη δουλειά τους, αλλά προκειμένου το αποτέλεσμα να είναι υλοποιήσιμο, θα πρέπει να συνεργάζονται και να γνωρίζουν ο ένας τις απαιτήσεις αλλά και τις δυνατότητες του άλλου.

2. ΒΑΣΙΚΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ 2.1 Ομάδα Η πράξη μεταξυ δύο στοιχείων ενος συνόλου A, είναι ένας κανόνας που απεικονίζει μια διατεταγμένη δυάδα (a, b), όπου a, b A, σε ένα στοιχείο ενός συνόλου. Όταν το τελευταίο σύνολο είναι ίδιο με το πρώτο, τότε η πράξη αυτή λέγεται κλειστή. Ομάδα <G, > είναι ένα σύνολο εφοδιασμένο με μία πράξη, μαζί με τις παρακάτω ιδιότητες: 1. Η πράξη είναι προσεταιριστική: για a, b, c G, είναι (a b) c = a (b c). 2. Υπάρχει ένα στοιχείο e G, που θα λέγεται ταυτοτικό στοιχείο, τέτοιο ώστε a G, θα είναι e a = a e = a. 3. a G, θα υπάρχει ένα στοιχείο b, που θα καλείται αντίστροφος του a, συχνά θα συμβολίζεται a ή a 1, και θα ισχύει a b = e. Όταν η ομάδα G έχει πεπερασμένο αριθμό στοιχείων, θα λέγεται πεπερασμένη ομάδα. Τάξη της ομάδας λέγεται το πλήθος των στοιχείων που έχει. Μία ομάδα <G, > θα λέγεται αντιμεταθετική ή αβελιανή, όταν a b = b a a, b G.

2. Βασικές μαθηματικές έννοιες 16 2.2 Σώμα Σώμα <F, +, > είναι το σύνολο F, εφοδιασμένο με δύο πράξεις, που ικανοποιούν μια σειρά από ιδιότητες: Το σύνολο F εφοδιασμένο με την πράξη +, είναι αβελιανή ομαδα. Ως ομάδα, έχει κάποιο ταυτοτικό στοιχείο, έστω το 0. Το σύνολο F χωρίς το στοιχείο 0, εφοδιασμένο με την πράξη, είναι επίσης αβελιανή ομάδα. Η επιπλέον ιδιότητα που πρέπει να έχει το σώμα: Η δεύτερη πράξη ( ) είναι επιμεριστική ως προς την πρώτη (+): Είναι a (b + c) = a b + a c. Το πεπερασμένο σώμα (finite field) συχνά θα αναφέρεται και GF (Galois Field), προς τιμήν του Evariste Galois. Ως GF(q), θα αναφέρεται το πεπερασμένο σώμα που έχει q το πλήθος στοιχεία. Το πλήθος των στοιχείων του πεπερασμένου σώματος, θα λέγεται τάξη του πεπερασμένου σώματος. Ως υπόσωμα ενός σώματος F, θα λέγεται ένα σώμα που είναι υποσύνολο του F. Αποδεικνύεται ότι η τάξη του σώματος είναι δύναμη πρώτου αριθμού. Τα πιο απλά σώματα ως προς την κατασκευή τους, δηλαδή την εύρεση των δύο πράξεων που εφοδιάζουν το σύνολο, είναι τα σώματα των οποίων η τάξη είναι πρώτος αριθμός. Σε αυτά τα σώματα, η πρώτη πράξη, που θα αναφέρεται ως πρόσθεση, είναι η πρόσθεση των δύο στοιχείων modulo p, όπου p η τάξη. Η δεύτερη πράξη, ο πολλαπλασιασμός, γίνεται επίσης modulo p. Στο σχήμα 2.1 φαίνεται ο τρόπος με τον οποίο γίνονται οι πράξεις στο GF(7). Ας σημειωθεί ότι το πιο ευρέως χρησιμοποιούμενο σώμα στον ψηφιακό κόσμο των υπολογιστών, είναι το GF(2), όπου η «πρόσθεση» είναι η πράξη XOR και ο «πολλαπλασιασμός» είναι η πράξη AND. Εφόσον ο αντίθετος κάθε στοιχείου είναι το ίδιο το στοιχείο, πρόσθεση και αφαίρεση είναι η ίδια πράξη. Στη συνέχεια, όταν λέμε ότι ένα πολυώνυμο p(x) βρίσκεται στο σώμα GF(q), δηλαδή p(x) GF(q)[x], θα σημαίνει ότι οι συντελεστές του

2. Βασικές μαθηματικές έννοιες 17 Σχήμα 2.1: Οι δύο πραξεις στο GF(7). πολυωνύμου είναι στοιχεία του GF(q), και ότι οι πράξεις «πρόσθεσης» και «πολλαπλασιασμού» των όρων του πολυωνύμου, είναι οι πράξεις του πεπερασμένου σώματος. 2.3 Κατασκευή πεπερασμένων σωμάτων Ένα σώμα μεγαλύτερης τάξης p m, κατασκευάζεται με οδηγό το σώμα τάξης p. Το σώμα τάξης p λέγεται βασικό σώμα (base field) ενώ το μεγαλύτερης θα λέγεται σώμα επέκτασης (extension field). Ένα τέτοιο οικείο παράδειγμα, σε μη πεπερασμένα σώματα (όπου δεν έχει οριστεί βέβαια η τάξη του σώματος) είναι το εξής: Το σώμα των μιγαδικών αριθμών, είναι ένα σώμα επέκτασης του σώματος των πραγματικών αριθμών. Στους πραγματικούς, υπάρχουν εξισώσεις οι οποίες δεν έχουν λύση, όπως η εξίσωση x 2 + 1 = 0. Για να επεκταθούμε στους μιγαδικούς, θεωρούμε ότι η εξίσωση έχει λύση, την τιμή x = i. Έχοντας το στοιχείο για το οποίο ισχύει i 2 +1 = 0, μπορούμε να επεκταθούμε στους μιγαδικούς. Κάθε μιγαδικός, είναι ένα ζεύγος δύο πραγματικών: x 1 + ix 2. Παραπάνω αναφέρθηκε ένα παράδειγμα χωρίς πολλές λεπτομέρειες, το οποίο κάνει πιο κατανοητή την επέκταση ενός πεπερασμένου σώματος σε κάποιο σώμα επέκτασης. Στη συνέχεια ακολουθεί η διαδικασία επέκτασης από το πεπερασμένο σώμα βάσης στο πεπερασμένο σώμα

2. Βασικές μαθηματικές έννοιες 18 επέκτασης. 2.4 Από το σώμα βάσης στο σώμα επέκτασης Ορισμός μη αναγώμενου πολυωνύμου (irreducible polynomial) : Είναι εκείνο το πολυώνυμο με συντελεστές από ένα GF(q), το οποίο δεν έχει ρίζες στο σώμα αυτό. Για να επεκταθούμε απ το ένα σώμα στο άλλο, χρειαζόμαστε ένα πρωταρχικό πολυώνυμο (primitive polynomial). Ένα μη αναγώμενο πολυώνυμο p(x) στο GF(q)[x] τάξης m, θα λέγεται πρωταρχικό, όταν ο μικρότερος ακέραιος n για τον οποίο το p(x) διαιρεί το x n 1 είναι n = p m 1. Ας σημειωθεί ότι για δεδομένη τάξη πολυωνύμου m και τάξη σώματος p, το πρωταρχικό πολυώνυμο δεν είναι μοναδικό. Το πρωταρχικό πολυώνυμο αν και είναι μη αναγώμενο, θεωρούμε ότι έχει κάποια ρίζα, το α. Η ρίζα αυτή, χρησιμοποιείται για να «χτίσουμε» το σώμα επέκτασης, με παρόμοιο τρόπο όπως επεκταθήκαμε απ τους πραγματικούς στους μιγαδικούς. Ας θεωρήσουμε για παράδειγμα την κατασκευή του GF(2 4 ) από το GF(2). Θεωρούμε το πρωταρχικό πολυώνυμο f(x) = 1 + x + x 4 GF(2)[x]. Θεωρούμε ότι έχει ρίζα το α, άρα είναι α 4 + α + 1 = 0. Όλα τα στοιχεία του σώματος επέκτασης εκτός από το μηδενικό (ταυτοτικό στοιχείο ως προς την πρόσθεση), θα εκφράζονται ως δυνάμεις του α. Είναι GF(2 4 ) = {0, α 0, α 1, α 2,..., α 14 }. Το σώμα επέκτασης, έχει τάξη 2 4, άρα αρκεί μια πλειάδα 4 στοιχείων (b 0, b 1, b 2, b 3 ) με b i GF(2) για να περιγράψουν ένα στοιχείο του σώματος επέκτασης. Το στοιχείο του σώματος επέκτασης εκφράζεται σε πολυωνυμική μορφή ως εξής: b 0 + b 1 α + b 2 α 2 + b 3 α 3. Για να προσθέσουμε 2 στοιχεία του GF(2 4 ), αρκεί να προσθέσουμε επιμέρους τον κάθε όρο των 2 πλειάδων, δηλαδή να κάνουμε XOR τις δυο πλειάδες, δεδομένου ότι στο βασικό σώμα η πρόσθεση είναι XOR. Για παράδειγμα, έστω b = b 0 + b 1 α + b 2 α 2 + b 3 α 3 και c = c 0 + c 1 α + c 2 α 2 + c 3 α 3. Τότε το

2. Βασικές μαθηματικές έννοιες 19 άθροισμα b + c υπολογίζεται ως: b + c = (b 0 + c 0 ) + (b 1 + c 1 )α + (b 2 + c 2 )α 2 + (b 3 + c 3 )α 3. Για να «πολλαπλασιάσουμε» δύο στοιχεία, χρησιμοποιούμε το πρωταρχικό πολυώνυμο: εφόσον α 4 + α + 1 = 0, είναι α 4 = α + 1. Ακόμη, α 5 = α 4 α = (α + 1)α = α 2 + α. Άρα αν έχουμε b = α + α 3 και c = 1 + α 2, δηλαδή b = (0101) και c = (1010) είναι: bc = (α + α 3 )(1 + α 2 ) = α + α 2 + α 3 + α 5 όμως, α 5 = α 2 + α άρα bc = α + α 2 + α 3 + (α 2 + α) = α 3 = (0001) Πολλαπλασιάζοντας όλα τα στοιχεία μεταξύ τους ανά δύο, δημιουργούμε τον πίνακα που δηλώνει το αποτέλεσμα κάθε πολλαπλασιασμού. Στον πίνακα 2.1 φαίνονται τα στοιχεία του GF(2 4 ), με πρωταρχικό πολυώνυμο x 4 + x + 1. Από εδώ και στο εξής για απλότητα, θα αναφερόμαστε στα στοιχεία του GF(q) με σύμβολα ακεραίων αριθμών. Τα σύμβολα αυτά, είναι η δεκαδική αναπαράσταση της δυαδικής αναπαράστασης ενός στοιχείου, ως άθροισμα δυνάμεων του α i. Για παράδειγμα, στο GF(2 4 ), το στοιχείο α 6 είναι α 6 = α 5 α 1 = (α 2 +α)α = α 2 +α 3 = 0α 0 +0α 1 +1α 2 +1α 3 = (0011) = 12. 2.5 Διανυσματικοί χώροι Έστω V ένα σύνολο στοιχείων τα οποία θα καλούνται διανύσματα και F ένα σώμα στοιχείων που θα καλούνται βαθμωτές. Ορίζεται μία πράξη πρόσθεσης μεταξύ των διανυσμάτων και μία πράξη πολλαπλασιασμού μεταξύ μιας βαθμωτής (scalar) κι ενός διανύσματος: αν a F και v V, τότε av V. Το σύνολο V θα λέγεται διανυσματικός χώρος επί του σώματος F αν για τις δύο πράξεις ισχύουν τα παρακάτω: 1. Το V θα πρέπει να είναι μια αβελιανή ομάδα ως προς την πρόσθεση διανυσμάτων.

2. Βασικές μαθηματικές έννοιες 20 Πίνακας 2.1: Τα στοιχεία του GF(2 4 ), με πρωταρχικό πολυώνυμο x 4 + x + 1. Πολυωνυμική Δυαδική Ακέραιος Δύναμη Αναπαράσταση Αναπαράσταση 0 0000 0-1 1000 1 α 0 α 0100 2 α 1 α 2 0010 4 α 2 α 3 0001 8 α 3 1 + α 1100 3 α 4 α + α 2 0110 6 α 5 α 2 + α 3 0011 12 α 6 1 + α + α 3 1101 11 α 7 1 + α 2 1010 5 α 8 α + α 3 0101 10 α 9 1 + α + α 2 1110 7 α 10 α + α 2 + α 3 0111 14 α 11 1 + α + α 2 + α 3 1111 15 α 12 1 + α 2 + α 3 1011 13 α 13 1 + α 3 1001 9 α 14

2. Βασικές μαθηματικές έννοιες 21 2. a F και v V ισχύει ότι av V. Απ τις παραπάνω ιδιότητες προκύπτουν τα εξης: 1. (a + b)v = av + bv 2. a(u + v) = au + av, a, b, v, w 3. (ab)v = a(bv) 2.6 Χρήσιμες έννοιες για διανυσματικούς χώρους Γεννήτορες και γραμμική θήκη Έστω V ένας διανυσματικός χώρος. Ένα σύνολο διανυσμάτων G = {v 1, v 2,..., v k } V θα λέγεται γεννήτορας (spanning set) του V, αν κάθε διάνυσμα v V μπορεί να γραφτεί ως γραμμικός συνδυασμός των διανυσμάτων του G. Δηλαδή, v V υπάρχει ένα σύνολο βαθμωτών στοιχείων a 1,..., a k τέτοια ώστε v = a 1 v 1 +... + a k v k. Το σύνολο όλων των γραμμικών συνδυασμών των διανυσμάτων του γεννήτορα, λέγεται γραμμική θήκη (span). Σε αυτήν την περίπτωση, η γραμμική θήκη ταυτίζεται με το διανυσματικό χώρο. Γραμμικώς εξαρτημένα διανύσματα Γραμμικώς εξαρτημένα διανύσματα είναι ένα σύνολο διανυσμάτων {v 1,..., v k } αν υπάρχει ένα σύνολο βαθμωτών στοιχείων {a 1,..., a k } τέτοια ώστε a 1 v 1 +... + a k v k = 0 όπου τα a i δεν είναι όλα μηδενικά. Αν δεν υπάρχει τέτοιο σύνολο που να ικανοποιεί την παραπάνω εξίσωση, παρά μόνο για a i = 0 i, τότε τα διανύσματα θα λέγονται γραμμικώς ανεξάρτητα.

2. Βασικές μαθηματικές έννοιες 22 Βάση, διάσταση και διανυσματικός υπόχωρος ενός χώρου Έστω διανυσματικός χώρος V σε ένα σώμα F. Κάθε γεννήτορας του V που έχει τον μικρότερο δυνατό αριθμό στοιχείων θα λέγεται βάση του χώρου. Διάσταση του χώρου θα λέγεται ο αριθμός των διανυσμάτων μιας βάσης. Έστω W ένα υποσύνολο του V το οποίο επιπλέον είναι και διανυσματικός χώρος. Το W θα λέγεται διανυσματικός υπόχωρος του V. Εσωτερικό γινόμενο Έστω u = (u 0, u 1,..., u n 1 ) και v = (v 0, v 1,..., v n 1 ) δυο διανύσματα ενός διανυσματικού χώρου V, όπου u i, v i F. Το εσωτερικό γινόμενο ορίζεται ως < u, v >= u v = i u iv i Τα διανύσματα u, v θα λέγονται ορθογώνια μεταξύ τους, αν < u, v >= 0. Δυϊκός χώρος Έστω W ένας διανυσματικός υπόχωρος διάστασης k, ενός διανυσματικού χώρου V. Το σύνολο όλων των διανυσμάτων u V τα οποία είναι ορθογώνια των διανυσμάτων του χώρου W, θα λέγεται δυϊκός χώρος του W, ή ορθογώνιο συμπλήρωμα του W. Θα συμβολίζεται W. W = {u V : u w = 0, w W }

3. ΘΕΩΡΙΑ ΚΩΔΙΚΩΝ 3.1 Η ανάγκη της κωδικοποίησης Υπάρχουν πολλοί διαφορετικοί κώδικες, όπου ο καθένας εξυπηρετεί διαφορετικό σκοπό. Για παράδειγμα, υπάρχουν κώδικες συμπίεσης πληροφορίας, κώδικες κρυπτογράφησης, κώδικες ανίχνευσης λαθών και κώδικες διόρθωσης λαθών. Στην πραγματικότητα, κώδικες χρησιμοποιούμε στην καθημερινότητά μας, μέσω της ομιλίας. Στην εργασία αυτή, ασχολούμαστε μόνο με τους τελευταίους. Κατά την ανθρώπινη ομιλία, χρησιμοποιώντας ένα αλφάβητο, σχηματίζουμε τις λέξεις. Στην πράξη, οι λέξεις που σχηματίζουμε με βάση κάποιους κανόνες (ορθογραφικούς, γραμματικούς κλπ), είναι πολύ λιγότερες από όλες τις δυνατές λέξεις που μπορούν να σχηματιστούν με το χρησιμοποιούμενο αλφάβητο. Κώδικας λοιπόν είναι ένα σύνολο από λέξεις, που θα αναφέρονται ως κωδικές λέξεις. Η κωδικοποίηση, είναι η απεικόνιση ενός μηνύματος που θέλει να στείλει ο πομπός, σε κάποια κωδική λέξη. Το ανθρώπινο μυαλό για παράδειγμα, απεικονίζει κάποια σκέψη σε κάποια κωδική λέξη. Ας σημειωθεί, ότι διαφορετικά θα γινόταν η απεικόνιση στην αγγλική ή την ελληνική γλώσσα. Παρομοίως, διαφορετικοί κώδικες, απεικονίζουν την ίδια πληροφορία με διαφορετικό τρόπο. Το πρόβλημα στην επικοινωνία, είτε είναι επικοινωνία μεταξύ μηχανών, είτε μεταξύ ανθρώπων, είναι ότι για διάφορους λόγους, η κωδική λέξη δεν φτάνει απαραμόρφωτη στον δέκτη. Αν για παράδειγμα μιλάνε δυο άνθρωποι μεταξύ τους, ο ακροατής μπορεί να μην ακούει καλά

3. Θεωρία κωδίκων 24 τον ομιλητή λόγω παρουσίας θορύβου στο περιβάλλον. Η διόρθωση των λαθών, γίνεται λόγω του πλεονασμού πληροφορίας που περιέχει η κωδική λέξη. Στην ομιλία για παράδειγμα, αν ο ακροατής δεν ακούσει καλά τον ομιλητή λόγω θορύβου, μπορεί να καταλάβει τι είπε από τα συμφραζόμενα. Η ουσία στην κωδικοποίηση, είναι ότι ο πομπός εισάγει πλεονάζουσα πληροφορία στα λεγόμενά του, με τρόπο τέτοιο ώστε ο δέκτης να μπορέσει να καταλάβει τι είπε ο πομπός σε περίπτωση θορύβου στο κανάλι. Ο δέκτης λαμβάνει μια απόφαση, για το ποια κωδική λέξη έστειλε ο πομπός, με βάση το τι άκουσε. Παραπάνω έγινε μια επιφανειακή προσέγγιση του θέματος. Στη συνέχεια ακολουθούν οι μαθηματικοί ορισμοί που θα χρησιμοποιούνται καθ όλη τη συνέχεια της εργασίας. Έστω A ένα σύνολο από q το πλήθος σύμβολα. Στο εξής, το θα λέγεται αλφάβητο. Έστω μια διάταξη (c 0, c 1,..., c n 1 ) όπου τα c i ανήκουν στο A. Αυτή θα λέγεται n διάνυσμα. Κώδικας, είναι ένα μη κενό υποσύνολο του συνόλου όλων των διανυσμάτων οποιουδήποτε πεπερασμένου μήκους. Τα στοιχεία του κώδικα, θα λέγονται κωδικές λέξεις. (n, k) μπλοκ κώδικας, είναι το υποσύνολο πλήθους q k αυτών των διανυσμάτων που έχουν μήκος ακριβώς n. Στη συνέχεια της εργασίας, το q θα θεωρείται πως είναι δύναμη του 2, εκτός κι αν αναφέρεται διαφορετικά. 3.2 Κωδικοποίηση - αποκωδικοποίηση Έστω S ένα πεπερασμένο σύνολο {a 0, a 1,..., a s }, το οποίο θα ονομάζουμε πηγή και έστω C ένας κώδικας. Συνάρτηση κωδικοποίησης f, είναι η ένα προς ένα συνάρτηση που απεικονίζει τα στοιχεία του συνόλου S στα στοιχεία του C. Παράδειγμα, ο ASCII κώδικας, απεικονίζει τους λατινικούς χαρακτήρες (καθώς και άλλους όπως $,% κλπ) σε δυαδικές ψηφιοσειρές μήκους 8.

3. Θεωρία κωδίκων 25 Εφόσον η συνάρτηση κωδικοποίησης είναι ένα προς ένα, η αποκωδικοποίηση είναι η διαδικασία εφαρμογής της αντίστροφης συνάρτησης κωδικοποίησης f 1 στις κωδικές λέξεις, για την εύρεση των στοιχείων της πηγής. Αυτή η διαδικασία είναι σωστή, μόνο στην ιδανική περίπτωση που στο κανάλι δεν υπάρχει θόρυβος. Ο θόρυβος για την ώρα μοντελοποιείται με ένα τυχαίο διάνυσμα διάστασης n το οποίο προστίθεται αλγεβρικά στην κωδική λέξη. 3.3 Χρήσιμοι ορισμοί 3.3.1 Απόσταση hamming 1 Έστω δύο κωδικές λέξεις x = x 0 x 1... x n 1 και y = y 0 y 1... y n 1. Ορίζεται η απεικόνιση A n A n Z ως εξής: n 0 x i = y i d(x, y) = r i, r i = (3.1) 1 x i y i i=1 Για την ανάγκη της εύκολης κωδικοποίησης και αποκωδικοποίησης, θα χρησιμοποιήσουμε πιο περιοριστικές έννοιες από αυτήν του συνόλου. Μέχρι τώρα, ορίζαμε τον κώδικα ως ένα υποσύνολο ενός συνόλου διανυσμάτων, που έχουν στοιχεία από το πεπερασμένο σύνολο A. Στη συνέχεια, ο κώδικας θα είναι ένα υποσύνολο διανυσμάτων από ένα διανυσματικό χώρο σε ένα πεπερασμένο σώμα. 1 true greatness is when your name is like ampere, watt, and fourier when it s spelled with a lower case letter., Richard W. Hamming. Προς τιμήν του Richard W. Hamming, όταν αναφερόμαστε στην απόσταση hamming θα χρησιμοποιούμε πεζό h.

3. Θεωρία κωδίκων 26 3.3.2 Γραμμικός κώδικας μπλοκ Γραμμικός Κώδικας Μπλοκ (n, k) σε ένα σώμα GF(q), όπου q = p m και p πρώτος αριθμός, είναι ένα υποσύνολο πλήθους q k διανυσμάτων, του διανυσματικού χώρου πλήθους q n διανυσμάτων. Τα q k το πλήθος διανύσματα του κώδικα σχηματίζουν ένα διανυσματικό υπόχωρο διάστασης k. Ο αριθμός n λέγεται μήκος του κώδικα ενώ ο αριθμός k λέγεται η διάσταση του κώδικα. Η ποσότητα k/n λέγεται ρυθμός του κώδικα. Στον γραμμικό κώδικα, κάθε γραμμικός συνδυασμός 2 κωδικών λέξεων είναι επίσης κωδική λέξη. 3.3.3 Κυκλικός κώδικας Κυκλικός κώδικας είναι ο κώδικας εκείνος για τον οποίον κάθε κωδική λέξη προκύπτει ως κυκλική ολίσθηση μιας άλλης κωδικής λέξης. Αν για παράδειγμα το διανυσμα c 1 c 2... c n 1 c n είναι κωδική λεξη, τότε θα είναι κωδική λέξη και το c n c 1... c n 2 c n 1 3.3.4 Βάρος μιας λέξης Βάρος (hamming weight) μιας λέξης είναι το πλήθος των μη μηδενικών συμβόλων της λέξης αυτής, όπου το μηδενικό σύμβολο έχει οριστεί στην κατασκευή του πεπερασμένου σώματος, ως το ταυτοτικό στοιχείο ως προς την «πρόσθεση». 3.3.5 Ελάχιστη απόσταση κώδικα Ελάχιστη απόσταση κώδικα είναι το ελάχιστο μεταξύ των αποστάσεων όλων των ζευγαριών των κωδικών λέξεων ενός κώδικα. Αποδεικνύεται ότι κάθε (n, k) κώδικας ικανοποιεί το φράγμα Singleton, δηλαδή d min n k + 1, όπου d min η ελάχιστη απόσταση. Το φράγμα ισχύει για όλους

3. Θεωρία κωδίκων 27 τους κώδικες μπλοκ, ακόμα και τους μη γραμμικούς. 3.3.6 Κώδικες μέγιστης απόστασης (maximum distance seperable codes - MDS) Είναι οι κώδικες εκείνοι για τους οποίους το φράγμα Singleton ισχύει με ισότητα. Για έναν γραμμικό κώδικα, η ελάχιστη απόσταση είναι ίση με το ελάχιστο των βαρών των μη μηδενικών κωδικών λέξεων. (απόδειξη στο κεφάλαιο 3 του [1]). Σε επόμενη ενότητα θα δούμε ότι οι αποκωδικοποιητές περιορισμένης απόστασης εγγυώνται ότι διορθώνουν οποιοδήποτε λάθος βάρους w (d min 1)/2. Το ενδιαφέρον στους κώδικες μέγιστης απόστασης, είναι ότι d min = n k + 1, άρα διορθώνονται πάντα τα λάθη με βάρος w (n k)/2. 3.3.7 Συστηματικοί κώδικες Αρχικά, ας θυμίσουμε ότι η κωδικοποίηση είναι η απεικόνιση από ένα σύνολο σε ένα άλλο. Πιο συγκεκριμένα όμως, στους κώδικες μπλοκ που θα ασχοληθούμε, η κωδικοποίηση είναι μια απεικόνιση από ένα διάνυσμα μήκους k σε ένα διάνυσμα μηκους n. Ο κώδικας λέγεται συστηματικός, όταν: 1. Τα σύμβολα πληροφορίας πηγής και τα σύμβολα των κωδικών λέξεων λαμβάνονται απ το ίδιο σύνολο (το ίδιο GF). 2. Τα k σύμβολα της πηγής βρίσκονται αυτούσια σε k συγκεκριμένες θέσεις της κωδικής λέξης. Η κωδική λέξη είναι το διάνυσμα - μήνυμα, μαζί με κάποια σύμβολα πλεονασμού.

3. Θεωρία κωδίκων 28 3.4 Ο γεννήτορας πίνακας G σε γραμμικούς κώδικες μπλοκ Προηγουμένως αναφέρθηκε, ότι ένας γραμμικός κώδικας μπλοκ (n, k) είναι ένας διανυσματικός χώρος διάστασης k. Άρα υπάρχουν k το πλήθος διανύσματα, ο γραμμικός συνδυασμός των οποίων δημιουργεί τις κωδικές λέξεις. Έστω ότι το μήνυμα πληροφορίας είναι ένα διάνυσμα m = [m 0 m 1... m k 1 ], m i GF (q). Η κωδική λέξη, είναι ο γραμμικός συνδυασμός k διανυσμάτων μήκους n. Η κωδική λέξη είναι c = m 0 g 0 + m 1 g 1 +... + m k 1 g k 1, όπου τα g i είναι διανύσματα μήκους n. Τα k διανύσματα μήκους n σχηματίζουν ένα πίνακα G διαστάσεων k n, οπότε η κάθε κωδική λέξη γράφεται ως c = mg. Ο πίνακας G λέγεται γεννήτορας πίνακας του κώδικα. Στην ουσία, ο πολλαπλασιασμός του διανύσματος μηνύματος με τον γεννήτορα πίνακα είναι η συνάρτηση κωδικοποίησης που αναφέρθηκε προηγουμένως. Για παράδειγμα, ένας κωδικας hamming (7, 4) έχει γεννήτορα πίνακα τον 1 1 0 1 0 0 0 G = 0 1 1 0 1 0 0 0 0 1 1 0 1 0. (3.2) 0 0 0 1 1 0 1 Για να κωδικοποιήσουμε το μήνυμα m = [1001], αρκεί να πολλαπλασιάσουμε: 1 1 0 1 0 0 0 c = mg = [1001] 0 1 1 0 1 0 0 = [1100101]. (3.3) 0 0 1 1 0 1 0 0 0 0 1 1 0 1 Όταν ο κώδικας είναι συστηματικός, ο γεννήτορας πίνακας που τον δημιουργεί λέγεται συστηματικός γεννήτορας. Ας σημειωθεί ότι η

3. Θεωρία κωδίκων 29 συστηματικότητα είναι μια ιδιότητα του γεννήτορα και όχι του κώδικα, ως ενός συνόλου κωδικών λέξεων. Αυτό θα φανεί ιδιαίτερα ενδιαφέρον στην συνέχεια της εργασίας, όπου θα γίνουν διαφορετικές κωδικοποιήσεις για τη δημιουργία του ίδιου κώδικα Reed-Solomon. 3.5 Ο πίνακας ελέγχου ισοτιμίας H (Parity check matrix) Έστω C ένας κώδικας. Είναι προφανώς ένας διανυσματικός υπόχωρος του F n q. Άρα ορίζεται το ορθογώνιο συμπλήρωμα του C, που θα καλείται δυϊκός κώδικας. Κάθε διανυσματικός χώρος έχει μία βάση. Ο πίνακας H, αποτελείται από τα διανύσματα που είναι η βάση του δυϊκού κώδικα του C. Ικανοποιεί τις παρακάτω σημαντικές ιδιότητες: 1. G H T = 0. 2. Σε έναν κώδικα (n, k) στο GF(q), το διάνυσμα v είναι κωδική λέξη αν και μόνο αν v H T = 0. Αυτό σημαίνει ότι σε έναν κώδικα ανίχνευσης (αλλά όχι διόρθωσης) λαθών, το μόνο που έχει να κάνει ο δέκτης είναι να πολλαπλασιάσει το ληφθέν διάνυσμα με τον πίνακα H. Σε περίπτωση που το αποτέλεσμα είναι μηδέν, ο δέκτης θα αποφασίσει ότι v είναι η κωδική λέξη που εστάλη. Ας σημειωθεί για την ώρα, ότι σε ένα γραμμικό κώδικα, η μοναδική περίπτωση που θα γίνει λάθος απόφαση, θα είναι η περίπτωση που το διάνυσμα θορύβου που προστίθεται στην κωδική λέξη είναι ίσο με κάποια από τις λέξεις του κώδικα. 3.6 Διορθωτική και ανιχνευτική ικανότητα Ένα σύστημα ανίχνευσης λαθών σε κώδικα ελάχιστης απόστασης d min, εγγυάται ότι ανιχνεύει οποιοδήποτε σφάλμα προσθετικού θορύβου

3. Θεωρία κωδίκων 30 βάρους w, με w < d min. Ένα σύστημα διόρθωσης λαθών στον ίδιο κώδικα, εγγυάται ότι θα διορθώσει οποιοδήποτε λάθος όταν ο θόρυβος έχει βάρος w (d min 1)/2. 3.7 Σφαίρα hamming και φράγμα hamming Ένα χώρο διάστασης n = 3, μπορούμε να τον αναπαραστήσουμε γραφικά σε ένα σύστημα αξόνων xyz. Γύρω από κάθε σημείο του χώρου, μπορούμε να σχεδιάσουμε σφαίρες κάποιας ακτίνας, και γραφικά να δούμε πόσα σημεία του χώρου περιέχει η κάθε σφαίρα. Αντίστοιχη διαδικασία μπορεί να γίνει και σε χώρους μεγαλύτερης διάστασης, με τη διαφορά ότι δεν υπάρχει έγκυρη γραφική αναπαράσταση. Συγκεκριμένα: Η σφαίρα hamming ακτίνας t με κέντρο ένα διάνυσμα του χώρου, ορίζεται ως το σύνολο των διανυσμάτων των οποίων η απόσταση hamming από το διάνυσμα κέντρο δεν είναι μεγαλύτερη από t. Ο αριθμός των διανυσμάτων που περιέχει μια σφαίρα ακτίνας t σε έναν κώδικα μήκους n στο GF(q) είναι: V q (n, t) = t j=0 ( ) n (q 1) j. (3.4) j Όταν λοιπόν ένας κώδικας θέλουμε να έχει διορθωτική ικανότητα t, θα πρέπει η ελάχιστη απόσταση των κωδικών λέξεων να είναι d min 2t + 1. Ο πλεονασμός πληροφορίας (redundancy) σε ένα κώδικα, είναι ο αριθμός των συμβόλων ελέγχου που προστίθενται επιπλέον (όταν η κωδικοποίηση είναι συστηματική). Γενικότερα, αν M είναι ο αριθμός των κωδικών λέξεων, ο πλεονασμός r ισούται με r = n log q (M). Στους γραμμικούς κώδικες μπλοκ που μελετάμε, είναι M = q k, άρα r = n k. Το φράγμα hamming ορίζει πως r log q (V q (n, t)). Οι κώδικες που ικανοποιούν το φράγμα αυτό με ισότητα ονομάζονται τέλειοι (perfect codes). Περισσότερες λεπτομέρειες για τους τέλειους κώδικες θα

3. Θεωρία κωδίκων 31 αναφερθούν στην ενότητα 3.9. Ας σημειωθεί όμως προς το παρόν, ότι τέλειος κώδικας δεν σημαίνει ότι έχει την καλύτερη δυνατή διορθωτική ικανότητα. 3.8 Ανίχνευση και διόρθωση σφαλμάτων στον αποκωδικοποιητή Αρχικά, να θυμίσουμε ότι ο πομπός στέλνει ένα διάνυσμα - κωδική λέξη c στον δέκτη. Στο κανάλι όμως, έχει προστεθεί ένα τυχαίο διάνυσμα θορύβου e στην κωδική λέξη, οπότε ο δέκτης λαμβάνει το διάνυσμα r = c + e. 3.8.1 Ορισμός συνδρόμου Η λέξη «σύνδρομο» είναι δανεισμένη από την ιατρική ορολογία, διότι εξυπηρετεί παρόμοιο σκοπό. Όπως στην ιατρική, η παρουσία συνδρόμων οδηγεί στην διάγνωση κάποιας ασθένειας, έτσι και στους κώδικες ανίχνευσης και διόρθωσης λαθών, η παρουσία συνδρόμου μας δείχνει την παρουσία κάποιου σφάλματος στην κωδική λέξη. Σύνδρομο καλείται η ποσότητα s = rh T, όπου r είναι το διάνυσμα που έλαβε ο αποκωδικοποιητής και H είναι ο πίνακας ελέγχου ισοτιμίας του κώδικα. Σε προηγούμενη ενότητα αναφέρθηκε ότι η ποσότητα rh T είναι μηδενική, αν και μόνο αν το r είναι μια κωδική λέξη. Συνεπώς, σε περίπτωση που το σύνδρομο είναι μη μηδενικό, ο δέκτης γνωρίζει με βεβαιότητα πως έχει προστεθεί κάποιο διάνυσμα θορύβου μη μηδενικού βάρους. Γνωρίζουμε ότι r = c + e, άρα s = (c + e)h T = ch T + eh T = eh T. Άρα το σύνδρομο εξαρτάται μόνο από το διάνυσμα θορύβου και όχι από την κωδική λέξη. Ένα σύστημα απλής ανίχνευσης σφαλμάτων, στην παρουσία μη μηδενικού συνδρόμου αναφέρει ότι έχει γίνει κάποιο σφάλμα στο κανάλι και δεν αποκωδικοποιεί. Σε αυτό το σύστημα θα γίνει λάθος μόνο αν το διάνυσμα του θορύβου ισούται με κάποια κωδική λέξη. Ένα

3. Θεωρία κωδίκων 32 σύστημα διόρθωσης σφαλμάτων, βάσει του συνδρόμου που υπολογίζει θα προσπαθήσει να βρει την κοντινότερη κωδική λέξη στο ληφθέν διάνυσμα. 3.8.2 Παράδειγμα ML decoder Ο αποκωδικοποιητής μέγιστης πιθανοφάνειας (maximum likelihood decoder), βρίσκει την κωδική λέξη c εκείνη που είναι κοντινότερα στο ληφθέν διάνυσμα r. Είναι ĉ = arg min c C d H(c, r). (3.5) Στη γενική μορφή, για να γίνει αυτό χρειάζεται η παρακάτω διαδικασία: Θεωρούμε ότι ο κώδικας αποτελείται από τις λέξεις {c 0, c 1,..., c M 1 }, M = q k. Θα χρειαστεί να ορίσουμε M τον αριθμό ξένα υποσύνολα του διανυσματικού χώρου διάστασης n, κάθε ένα από τα οποία θα περιέχει τα διανύσματα που βρίσκονται κοντινότερα στην ίδια κωδική λέξη σχετικά με όλες τις άλλες. Έστω V i τα υποσύνολα αυτά, με i = 0... M 1. Προφανώς, μπορεί να υπάρχουν και διανύσματα τα οποία ισαπέχουν το ίδιο από δύο διαφορετικές κωδικές λέξεις. Για αυτά τα διανύσματα αποφασίζουμε τυχαία για το σε ποιο υποσύνολο θα βρεθούν. Ο προκαθορισμένος πίνακας (standard array) είναι μια αναπαράσταση των συνόλων V i. Είναι ένας διδιάστατος πίνακας, οι M τον αριθμό στήλες του οποίου περιέχουν τα στοιχεία των συνόλων V i. Η πρώτη σειρά του πίνακα, περιέχει όλες τις κωδικές λέξεις. Για να βρούμε τις υπόλοιπες σειρές, αρχικά βρίσκουμε ένα διάνυσμα e 1 ελαχίστου μη μηδενικού βάρους. Αυτό το διάνυσμα θα περιέχεται στο υποσύνολο V i της μηδενικής κωδικής λέξης. Είναι προφανές ότι αυτό βρίσκεται πιο κοντά στην μηδενική κωδική λέξη από κάθε άλλη κωδική λέξη. Έστω τώρα τα διανύσματα r i = e 1 + c i. Είναι d H (r i, c i ) = d H (e 1 + c i, c i ) = d H (e 1, 0). Άρα κάθε διάνυσμα r i, βρίσκεται κοντινότερα στην κωδική λέξη c i, κι έτσι βρίσκουμε την δεύτερη σειρά του πίνακα. Με τον ίδιο τρόπο, συνεχίζουμε για όλα τα διανύσματα ελαχίστου

3. Θεωρία κωδίκων 33 βάρους (εκτός από αυτά που έχουμε ήδη περιλάβει στον πίνακα), για να βρούμε τις υπόλοιπες σειρές. Η διαδικασία σταματάει όταν γεμίσει ο πίνακας με τα q n διανύσματα. Ένα παράδειγμα (σελίδα 91, [1]) για κώδικα (7, 3) με τον γεννήτορα πίνακα 0 1 1 1 1 0 0 G = 1 0 1 1 0 1 0 1 1 0 1 0 0 1 φαίνεται παρακάτω. Οι κωδικές λέξεις, μαζί με τα μηνύματα στα οποία αντιστοιχούνε: 000 0000000 100 0111100 010 1011010 110 1100110 001 1101001 101 1010101 011 0110011 111 0001111 Αποδεικνύεται ότι στον πίνακα θα εμφανιστούν όλα τα διανύσματα του

3. Θεωρία κωδίκων 34 n-διάστατου χώρου, από μία ακριβώς φορά το καθένα. 1 0000000 0111100 1011010 1100110 1101001 1010101 0110011 0001111 2 1000000 1111100 0011010 0100110 0101001 0010101 1110011 1001111 3 0100000 0011100 1111010 1000110 1001001 1110101 0010011 0101111 4 0010000 0101100 1001010 1110110 1111001 1000101 0100011 0011111 5 0001000 0110100 1010010 1101110 1100001 1011101 0111011 0000111 6 0000100 0111000 1011110 1100010 1101101 1010001 0110111 0001011 7 0000010 0111110 1011000 1100100 1101011 1010111 0110001 0001101 8 0000001 0111101 1011011 1100111 1101000 1010100 0110010 0001110 9 1100000 1011100 0111010 0000110 0001001 0110101 1010011 1101111 10 1010000 1101100 0001010 0110110 0111001 0000101 1100011 1011111 11 0110000 0001100 1101010 1010110 1011001 1100101 0000011 0111111 12 1001000 1110100 0010010 0101110 0100001 0011101 1111011 1000111 13 0101000 0010100 1110010 1001110 1000001 1111101 0011011 0100111 14 0011000 0100100 1000010 1111110 1110001 1001101 0101011 0010111 15 1000100 1111000 0011110 0100010 0101101 0010001 1110111 1001011 16 1110000 1001100 0101010 0010110 0011001 0100101 1000011 1111111 Για να αποκωδικοποιήσουμε με χρήση του παραπάνω πίνακα, αρκεί να εντοπίσουμε το ληφθέν διάνυσμα σε κάποια στήλη. Είναι βέβαιο ότι θα το εντοπίσουμε, καθώς ο πίνακας αυτός περιέχει όλα τα διανύσματα του n-διάστατου χώρου. Η απόφασή μας για την κωδική λέξη του πομπού, είναι η κωδική λέξη που βρίσκεται στην πρώτη σειρά της στήλης που βρίσκεται το ληφθέν διάνυσμα r. Ας σημειωθεί ότι η πρώτη στήλη του πίνακα είναι το σύνολο των διανυσμάτων θορύβου για τα οποία μπορεί να αποκωδικοποιηθεί σωστά το ληφθέν διάνυσμα (correctable error patterns). Ο αποκωδικοποιητής είναι μέγιστης πιθανοφάνειας, επειδή για κάθε ληφθέν διάνυσμα, εντοπίζει την κοντινότερη κωδική λέξη. Ας σημειωθεί ότι υπάρχουν διανύσματα, όπως το 0000011 που μπορεί να ισαπέχουν το ίδιο από δυο διαφορετικές κωδικές λέξεις (τις 0000000 και 0110011). Στον παραπάνω πίνακα, απλά έτυχε να επιλέξουμε να απεικονίζουμε αυτό το διάνυσμα στην 0110011.

3. Θεωρία κωδίκων 35 3.8.3 Αποκωδικοποιητής περιορισμένης απόστασης (Bounded distance decoder) Στο παραπάνω παράδειγμα, το σύστημα διορθώνει πάντοτε όλα τα λάθη βάρους 1, μερικά βάρους 2 κι ένα λάθος βάρους 3. Ήταν ένας αποκωδικοποιητής μέγιστης πιθανοφάνειας, ο οποίος εντοπίζει την κοντινότερη κωδική λέξη στο ληφθέν διάνυσμα. Από την άλλη, ο bounded distance decoder διορθώνει μόνο τα λάθη βάρους w t, για t = (d min 1)/2. Στην γενική περίπτωση αποκωδικοποίησης με χρήση προκαθορισμένου πίνακα, ο πίνακας δεν περιέχει όλα τα q n διανύσματα του χώρου, αλλά ένα υποσύνολό τους. Περιέχει μόνο τις κωδικές λέξεις, καθώς και τα διανύσματα που βρίσκονται στις M τον αριθμό σφαίρες hamming σταθερής ακτίνας t των κωδικών λέξεων. 3.9 Τέλειοι κώδικες και σύγκριση ML - BD Τέλειοι λεγονται εκείνοι οι κώδικες για τους οποίους ο αποκωδικοποιητής μέγιστης πιθανοφάνειας και περιορισμένης απόστασης είναι ίδιοι. Στην ουσία, είναι οι κώδικες για τους οποίους οι σφαίρες hamming των κωδικών λέξεων, είναι όλες ξένες μεταξύ τους και καλύπτουν όλο τον n-διάστατο χώρο. Οι ακτίνες των σφαιρών είναι όλες ίδιες. Η αποκωδικοποίηση με χρήση προκαθορισμένου πίνακα εγγυάται έναν απ τους δύο τρόπους αποκωδικοποίησης (ML ή BD). Το παράδειγμα της προηγούμενης ενότητας με τη χρήση του προκαθορισμένου πίνακα, ήταν ένα παράδειγμα αποκωδικοποίησης μέγιστης πιθανοφάνειας. Αν αντί για ολόκληρο τον πίνακα είχαμε μόνο τις 8 πρώτες σειρές του, θα είχαμε έναν αποκωδικοποιητή περιορισμένης απόστασης. Θα διόρθωνε οποιοδήποτε λάθος βάρους 1, και για λάθη μεγαλύτερου βάρους, είτε θα παρουσίαζε αδυναμία αποκωδικοποίησης, είτε θα αποκωδικοποιούσε εσφαλμένα. Δυστυχώς, η κατασκευή και αποθήκευση του πίνακα είναι πρακτικά

3. Θεωρία κωδίκων 36 αδύνατη για μεγάλους κώδικες. Σε έναν τυπικό κώδικα μήκους n = 255 στο GF(2 8 ), ο πίνακας χρειάζεται να έχει q n = 256 255 στοιχεία. Ο αριθμός αυτός είναι μεγαλύτερος απ τον αριθμό που απαρτίζουν τα μόρια του σύμπαντος, κάτι που δείχνει πως η κατασκευή και αποθήκευση ενός τέτοιου πίνακα είναι όχι απλά χρονοβόρα, αλλά αδύνατη. Ένας τρόπος μερικής αντιμετώπισης του προβλήματος, είναι να μειώσουμε τις διαστάσεις του πίνακα από q n σε 2x, όπου x είναι ο αριθμός των correctable error patterns. Η διαδικασία έχει ως εξής: Εφόσον σε έναν γραμμικό κώδικα μπλοκ, το σύνδρομο εξαρτάται μόνο από το διάνυσμα θορύβου, μπορούμε να φτιάξουμε έναν πίνακα με 2 στήλες. Στην πρώτη θα είναι τα σύνδρομα και στη δεύτερη θα είναι τα διανύσματα θορύβου στα οποία αντιστοιχούνε. Όμως, μπορεί να μειώνεται αρκετά το μέγεθος του πίνακα αλλά για μεγάλους κώδικες εξακολουθεί να μην είναι πρακτική αυτή η διαδικασία. Σε επόμενο κεφάλαιο θα εξηγηθούνε τρόποι αποκωδικοποίησης σε κώδικες Reed-Solomon χωρίς τη χρήση του προσυμφωνημένου πίνακα. Περισσότερες λεπτομέρειες για θεωρία κωδίκων βρίσκονται στα [1, 2].

4. ΚΩΔΙΚΕΣ REED-SOLOMON 4.1 Για ποιο λόγο Reed-Solomon Η σημαντικότερη ιδιομορφία που έχει αυτή η ομάδα κωδίκων, είναι το γεγονός ότι είναι κώδικες που διαχειρίζονται σύμβολα και όχι απλά bits. Ένας κώδικας (255, 131) στο GF(256) διαχειρίζεται σύμβολα από το GF(256). Ασφαλώς, εφόσον 256 = 2 8, κάθε ένα σύμβολο σε αυτόν τον κώδικα στην ουσία είναι μια οχτάδα από bits. Άρα σε έναν τέτοιο κώδικα, το κάθε σύμβολο θα μπορούσε να είναι ένα ολόκληρο byte. Είναι ιδιαίτερα σημαντικό να θυμίσουμε ότι η απόσταση δύο κωδικών λέξεων σε ένα γραμμικό κώδικα μπλοκ, εξετάζεται σε επίπεδο συμβόλων. Στο GF(256) που αναφέρθηκε προηγουμένως, κάθε σύμβολο αποτελείται από 8 bits. Για να μετρήσουμε την απόσταση 2 κωδικών λέξεων, δεν κοιτάμε πόσα bits διαφέρουν, αλλά πόσα bytes (στο GF(256) byte = σύμβολο). Έστω τώρα ο παραπάνω κώδικας του οποίου οι κωδικές λέξεις μεταδίδονται στο φυσικό στρώμα σαν σύνολο από bits. Αν αλλοιωθεί ένα bit ενός συμβόλου, προκαλείται η ίδια καταστροφή με το να αλλοιωθούνε όλα τα bits του ίδιου συμβόλου. Η παραπάνω ιδιότητα δείχνει ότι οι κώδικες Reed-Solomon είναι κατάλληλοι για να διορθώνουνε σφάλματα θορύβου ο οποίος τείνει να μην είναι λευκός (ομοιόμορφος), αλλά το βάρος του να είναι «μαζεμένο» σε μια περιοχή του διανύσματος. Παράδειγμα τέτοιου θορύβου θα μπορούσε να είναι μια γραντζουνιά σε ένα CD, όπου αλλοιώνεται μια ομάδα από συνεχόμενα bits σε μια συγκεκριμένη περιοχή

4. Κώδικες Reed-Solomon 38 της κωδικής λέξης. Θα μπορούσε επίσης να είναι μια αστραπή σε ένα ασύρματο κανάλι, όπου θα αλλοιώσει μόνο μια συγκεκριμένη χρονική θυρίδα κατά την μετάδοση. Ένα κανάλι επικοινωνίας, χαρακτηρίζεται από μία ποσότητα, την χωρητικότητα καναλιού C. Ο Shannon απέδειξε ότι σε κάθε κανάλι, μπορούμε να μεταδώσουμε με οσοδήποτε μικρή πιθανότητα σφάλματος, αρκεί ο ρυθμός R να είναι μικρότερος του C [3]. Δυστυχώς όμως, το θεώρημα εξασφαλίζει την ύπαρξη ενός κώδικα που να πλησιάζει την χωρητικότητα καναλιού, αλλά δεν τον υποδεικνύει. Στην περίπτωση του δυαδικού συμμετρικού καναλιού, όπου η χωρητικότητα είναι γνωστή, έχουν βρεθεί κώδικες (πχ οι κώδικες LDPC [1]) που πλησιάζουν αρκετά την χωρητικότητα καναλιού. Οι κώδικες Reed-Solomon είναι λιγότερο αποδοτικοί. Στη θεωρία λοιπόν, οι κώδικες αυτοί δεν πρέπει να προτιμούνται σχετικά με άλλους, στην περίπτωση του δυαδικού συμμετρικού καναλιού. Στην πράξη όμως, το μέσο μετάδοσης μπορεί να μην μοντελοποιείται από ένα συμμετρικό δυαδικό κανάλι χωρίς μνήμη. Όπως εξηγήθηκε στην προηγούμενη παράγραφο, οι κώδικες Reed-Solomon είναι κατάλληλοι για να διορθώνουν ριπές σφαλμάτων κατά συρροή (burst errors). Αν και οι μετρήσεις των πειραμάτων γίνανε σε δυαδικό συμμετρικό κανάλι χωρίς μνήμη, το φυσικό περιβάλλον των κωδίκων Reed-Solomon δεν είναι αυτό. 4.2 Κωδικοποίηση Reed-Solomon Υπάρχουν δύο διαφορετικοί τρόποι κωδικοποίησης Reed-Solomon. Οι δυο αυτοί τρόποι, φαίνεται να περιγράφουν δύο τελείως διαφορετικούς κώδικες, αλλά στην πραγματικότητα σχηματίζουν τον ίδιο κώδικα. Μία απόδειξη βρίσκεται στο δεύτερο κεφάλαιο του [4]. Ανάλογα με την

4. Κώδικες Reed-Solomon 39 εφαρμογή, κάθε μορφή κωδικοποίησης έχει τα πλεονεκτήματα και τα μειονεκτήματά της. 4.2.1 Κώδικες Reed-Solomon ως κώδικες BCH Ο κώδικας Reed-Solomon είναι ένας κώδικας BCH [1, κεφ. 6] στο GF(q m ) με μήκος n = q m 1. Για την κωδικοποίηση, θα θεωρήσουμε ότι οι κωδικές λέξεις είναι οι συντελεστές ενός πολυωνύμου βαθμού n 1. Θα χρειαστούμε ένα πολυώνυμο γεννήτορα βαθμού 2t, όπου t είναι η διορθωτική ικανότητα, δηλαδή 2t = n k, όταν n k είναι άρτιος. Τέτοια πολυώνυμα έχουν τη μορφή g(x) = (x α b )(x α b+1 ) (x α b+2t 1 ). Συνήθως επιλέγουμε b = 1. Η κωδικοποίηση γίνεται με συστηματικό τρόπο ως εξής: θεωρούμε m(x) το πολυώνυμο οι συντελεστές του οποίου είναι το μήνυμα που πρέπει να κωδικοποιηθεί. Είναι c(x) = m(x)x n k R g(x) [m(x)x n k ]. Δηλαδή η κωδική λέξη είναι το μήνυμα (information symbols) σε σειρά με κάποια parity symbols που προκύπτουν ως το υπόλοιπο της διαίρεσης m(x)x n k διά g(x). Παράδειγμα: Θεωρούμε κώδικα μήκους n = 2 4 1 = 15 στο GF(2 4 ). Για την κατασκευή του GF(2 4 ), θεωρήθηκε πρωταρχικό πολυώνυμο x 4 + x + 1. Αν θεωρήσουμε k = 9, είναι n k = 2t = 6. Το πολυώνυμο γεννήτορας για αυτόν τον κώδικα θα είναι g(x) = (x α 1 )(x α 2 )(x α 3 )(x α 4 )(x α 5 )(x α 6 ) = α 6 + α 9 x + α 6 x 2 + α 4 x 3 + α 14 x 4 + α 10 x 5 + x 6. Για να κωδικοποιήσουμε τα δεδομένα (5, 2, 1, 6, 8, 3, 10, 15, 4), όπου κάθε αριθμός αναπαραστά μία τετράδα από bit, θεωρούμε το πολυώνυμο μήνυμα m(x) = 5 + 2x + x 2 + 6x 3 + 8x 4 + 3x 5 + 10x 6 + 16x 7 + 4x 8. Την κάθε τετράδα από bits που θέλουμε να κωδικοποιήσουμε, την αναπαραστούμε ως δύναμη του πρωταρχικού στοιχείου α του GF. Άρα είναι m(x) = α 8 + αx + x 2 + α 5 x 3 + α 3 x 4 + α 4 x 5 + α 9 x 6 + α 12 x 7 + α 2 x 8 (βλέπε πίνακα 2.1). Η ποσότητα R g(x) [m(x)x n k ] ισούται με α 8 +α 2 x+α 14 x 2 +α 3 x 3 +α 5 x 4 +αx 5, και με μια απλη πρόσθεση, θα προκύψει η κωδική λεξη σε πολυωνυμική μορφή

4. Κώδικες Reed-Solomon 40 c(x) = α 8 + α 2 x + α 14 x 2 + α 3 x 3 + α 5 x 4 + αx 5 + α 8 x 6 + αx 7 + x 8 + α 5 x 9 + α 3 x 10 + α 4 x 11 + α 9 x 12 + α 12 x 13 + α 2 x 14. Παρατηρούμε ότι ο κώδικας είναι συστηματικός. Τα πρώτα 6 σύμβολα είναι τα σύμβολα πλεονασμού, ενώ τα επόμενα 9 σύμβολα είναι αυτούσια τα σύμβολα πληροφορίας του αρχικού μυνήματος. Ένα σύστημα απλής ανίχνευσης σφαλμάτων, θα έκανε μια απλή διαίρεση δύο πολυωνύμων: του πολυωνύμου που αντιστοιχεί στα σύμβολα πληροφορίας με το γεννήτορα. Αν το υπόλοιπο της διαίρεσης είναι τα σύμβολα πλεονασμού τότε αποφασίζεται πως δεν συνέβη σφάλμα στο κανάλι και εξάγεται το μήνυμα από την κωδική λέξη. Σε αντίθετη περίπτωση, θα αναφερθεί πώς ανιχνεύθηκε σφάλμα στο κανάλι χωρίς να γίνει αποκωδικοποίηση. Το σύστημα διόρθωσης σφαλμάτων είναι πιο περίπλοκο και θα αναλυθεί διεξοδικά σε επόμενη παράγραφο. 4.2.2 Πώς γίνεται η διαίρεση μηνύματος - γεννήτορα Στην προηγούμενη παράγραφο, δείξαμε πώς γίνεται η πρώτη κωδικοποίηση. Σκοπός ήταν να βρουμε το υπόλοιπο μιας διαίρεσης πολυωνύμων σε ένα GF. Ο πρώτος τρόπος που θα σκεφτόταν κάποιος για να βρει το υπόλοιπο, θα ήταν να κάνει την ευκλείδια διαίρεση, και να κρατήσει το υπόλοιπο ως αποτέλεσμα. Στην πραγματικότητα, αυτός ο τρόπος είναι χρονοβόρος, ειδικά για μεγάλους κώδικες σε σώματα μεγάλης τάξης. Θα δείξουμε ότι για την εύρεση του υπολοίπου, υπάρχει συντομότερος τρόπος από αυτόν. Θυμίζουμε ότι είναι m(x) = m 0 + m 1 x + m 2 x 2 +... + m k 1 x k 1, και ότι g(x) = (x α 1 )(x α 2 ) (x α n k ). Η ταυτότητα της Ευκλείδιας Διαίρεσης υποδεικνύει ότι: m(x)x n k = p(x)g(x) + r(x), όπου p(x) είναι το πηλίκο και r(x) το υπόλοιπο.