ΚΕΦΑΛΑΙΟ 9 ο : Κωδικοποίηση Διαύλου Μέρος Ι: Τμηματικοί Κώδικες

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

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

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

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

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

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

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

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

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

Γνωστό: P (M) = 2 M = τρόποι επιλογής υποσυνόλου του M. Π.χ. M = {A, B, C} π. 1. Π.χ.

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

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο

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

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

7. Αν υψώσουμε και τα δύο μέλη μιας εξίσωσης στον κύβο (και γενικά σε οποιαδήποτε περιττή δύναμη), τότε προκύπτει

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

Μεταθέσεις και πίνακες μεταθέσεων

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

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

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

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

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

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

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

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

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

a = a a Z n. a = a mod n.

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

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

Ασκήσεις3 Διαγωνισιμότητα Βασικά σημεία Διαγωνίσιμοι πίνακες: o Ορισμός και παραδείγματα.

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

Υπολογιστικά & Διακριτά Μαθηματικά

Συνδυαστικά Λογικά Κυκλώματα

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

Ψηφιακή Επεξεργασία Σημάτων

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

Παράδειγμα 14.2 Να βρεθεί ο μετασχηματισμός Laplace των συναρτήσεων

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

2.3 Πολυωνυμικές Εξισώσεις

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

4.4 ΜΕΓΙΣΤΟΣ ΚΟΙΝΟΣ ΔΙΑΙΡΕΤΗΣ - ΕΛΑΧΙΣΤΟ ΚΟΙΝΟ ΠΟΛΛΑΠΛΑΣΙΟ

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

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

ΚΕΦΑΛΑΙΟ 4. Ενδιαφέροντες'' Κώδικες

1. Για καθένα από τους ακόλουθους διανυσματικούς χώρους βρείτε μια βάση και τη διάσταση. 3. U x y z x y z x y. {(,, ) } a b. c d

Εφαρμοσμένα Μαθηματικά ΙΙ 9ο Σετ Ασκήσεων (Λύσεις) Διανυσματικοί Χώροι

Παραδείγματα Διανυσματικοί Χώροι Ι. Λυχναρόπουλος

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ

Γραμμικός Προγραμματισμός Μέθοδος Simplex

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

(a 1, b 1 ) (a 2, b 2 ) = (a 1 a 2, b 1 b 2 ).

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

Μαθηματικά. Ενότητα 2: Δεκαδικοί αριθμοί, κλάσματα, δυνάμεις, ρίζες και ποσοστά. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

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

* * * ( ) mod p = (a p 1. 2 ) mod p.

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Διανύσματα στους Rn, Cn, διανύσματα στο χώρο (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών Αριθμητικά σύνολα Ιδιότητες Περισσότερες ιδιότητες...

β) 3 n < n!, n > 6 i i! = (n + 1)! 1, n 1 i=1

ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 8. Πότε το γινόμενο δύο ή περισσοτέρων αριθμών παραγόντων είναι ίσο με το μηδέν ;

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

ΕΠΑΝΑΛΗΨΗ ΒΑΣΙΚΩΝ ΕΝΝΟΙΩΝ

ΧΡΗΣΗ CAMENISCH- LYSYANSKAYA ΨΗΦΙΑΚΩΝ ΥΠΟΓΡΑΦΩΝ ΚΑΙ ΑΠΟΔΕΙΚΤΙΚΩΝ ΠΡΩΤΟΚΟΛΛΩΝ ΜΗΔΕΝΙΚΗΣ ΓΝΩΣΗΣ ΣΕ ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ

n, C n, διανύσματα στο χώρο Εισαγωγή

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

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

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

Ασκήσεις1 Πολυώνυμα. x x c. με το. b. Να βρεθούν όλες οι τιμές των a, Να βρεθεί ο μκδ και το εκπ τους

Δακτύλιοι και Πρότυπα Ασκήσεις 6. Η ύλη των ασκήσεων αυτών είναι η Ενότητα6, Εφαρμογές Θεωρημάτων Δομής στη Γραμμική Αλγεβρα.

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

Υπολογιστικά & Διακριτά Μαθηματικά

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

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

(Γραμμικές) Αναδρομικές Σχέσεις

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

ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ

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

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

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

ΚΕΦΑΛΑΙΟ 2: Ημιαπλοί Δακτύλιοι

Ασκήσεις3 Διαγωνίσιμες Γραμμικές Απεικονίσεις

Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα

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

Δυαδικό Σύστημα Αρίθμησης

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

a b b < a > < b > < a >.

O n+2 = O n+1 + N n+1 = α n+1 N n+2 = O n+1. α n+2 = O n+2 + N n+2 = (O n+1 + N n+1 ) + (O n + N n ) = α n+1 + α n

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ

Υπολογιστικά & Διακριτά Μαθηματικά

Αναγνώριση Προτύπων Ι

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

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

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

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

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

Transcript:

ΚΕΦΑΛΑΙΟ 9 ο : Κωδικοποίηση Διαύλου Μέρος Ι: Τμηματικοί Κώδικες Σύνοψη Το κεφάλαιο αυτό είναι αφιερωμένο στην κωδικοποίηση διαύλου (chnnel codng), στις τεχνικές δηλαδή εκείνες που, με την προσθήκη δομημένων ακουθιών bt στις εκπεμπόμενες ακολουθίες μηνυμάτων, δίνουν τη δυνατότητα στον δέκτη για εντοπισμό και διόρθωση λαθών που τυχόν θα έχουν συμβεί κατά τη μετάδοση μέσα από μη αξιόπιστα (π.χ. θορυβώδη) κανάλια επικοινωνίας. Η μελέτη περιορίζεται στην κατηγορία των Τμηματικών Κωδίκων (block codng), παραπέμποντας σε μελλοντική έκδοση του συγγράμματος την αντίστοιχη μελέτη των συνελικτικών κωδίκων (convolutonl codng). Έμφαση δίνεται στους Κυκλικούς Τμηματικούς Κώδικες (cyclc codes) και ιδιαίτερα στους ευρέως χρησιμοποιούμενους κώδικες Reed-Soloon.

9- Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Περιεχόμενα Κεφαλαίου 9 9. Εισαγωγή... 9. Γραμμικοί τμηματικοί κώδικες (Lner block codes)... 5 9.. Γεννήτρια μήτρα... 9.. Συστηματικοί κώδικες... 7 9.. Μήτρα ελέγχου ισοτιμίας (Prty check tr... 7 9.. Σύνδρομο, αναγνώριση λαθών και αποκωδικοποίηση... 9 9..5 Αποκωδικοποίηση Διόρθωση λαθών... 0 9.. Ελάχιστη απόσταση γραμμικών κωδίκων... 9..7 Δυνατότητα ανίχνευσης και διόρθωσης λαθών... 9..8 Πρότυπη μήτρα... 9..9 Κώδικες Hng... 5 9. Κυκλικοί κώδικες... 9.. Ορισμός και αλγεβρική δομή των κυκλικών κωδίκων... 9.. Κυκλικοί κώδικες σε συστηματική μορφή... 0 9.. Υλοποίηση κυκλικών κωδίκων... 9.. Αποκωδικοποίηση κυκλικών κωδίκων... 9..5 Κώδικες BCH... 9. Κωδικοποίηση Reed-Soloon (R-S)... 5 9.. Προσδιορισμός γενετηρίου πολυωνύμου και κωδικοποίηση R-S σε συστηματική μορφή... 9.. Αποκωδικοποίηση Reed-Soloon... 7 9.. Αποκωδικοποίηση R-S με τον αλγόριθμο υπολογισμού ΜΚΔ του Ευκλείδη ([SUGI975],[SHAN007])... 9 9.. Παράδειγμα: Αποκωδικοποίηση και διόρθωση R-S... 0 9.5 Άσκηση... 9. Παράρτημα: Πεπερασμένα Σώματα (Fnte Felds) ή Σώματα Glose... 8 9.. Σώματα (Felds)... 8 9.. Πεπερασμένα σώματα (Fnte Felds)... 8 9.. Ρίζες των πρώτων πολυωνύμων Ελάχιστα πολυώνυμα... Βιβλιογραφία Αναφορές...

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9- Πλαίσια Κεφαλαίου 9 Πλαίσιο 9.: Απλή κωδικοποίηση διαύλου με προσθήκη bts ισοτιμίας: (α) απλή άρτια ισοτιμία ανά τρία bts δεδομένων, (β) οργάνωση δεδομένων σε πίνακα 88 και άρτια ισοτιμία ανά γραμμή και στήλη Διόρθωση ενός απλού λάθους... Πλαίσιο 9.: Συνελικτική κωδικοποίηση διαύλου... 5 Πλαίσιο 9.: Γραμμικός τμηματικός κώδικας (,)... Πλαίσιο 9.: Κωδικοποιητής γραμμικού συστηματικού κώδικα: (α) γενική δομή, (β) υλοποίηση του κώδικα (,) του Πλαισίου 9.... 8 Πλαίσιο 9.5: Διανύσματα λάθους με κοινό σύνδρομο s=[ 0 ] του κώδικα (,) του πίνακα στο Πλαίσιο 9.... 0 Πλαίσιο 9.: Σύνδρομα και «μικρού βάρους» διανύσματα λαθών του κώδικα (,) του Πίνακα 9.... 0 Πλαίσιο 9.7: Κύκλωμα παραγωγής συνδρόμων για τον γραμμικό συστηματικό Πλαίσιο 9.8: κώδικα (n,k)... Αποκωδικοποίηση του κώδικα (,) του Πλαισίου 9.: (α) κύκλωμα παραγωγής συνδρόμων, (β) κύκλωμα αποκωδικοποίησης... Πλαίσιο 9.9: Κατασκευή πρότυπης μήτρας... Πλαίσιο 9.0: Πρότυπη μήτρα του κώδικα (,) του Πίνακα στο Πλαίσιο 9.... 5 Πλαίσιο 9.: Κυκλικός κώδικας (7,) παραγόμενος από το πολυώνυμο g(=++ 7 Πλαίσιο 9.: Γενετήρια πολυώνυμα κυκλικών κωδίκων - Θεώρημα... 9 Πλαίσιο 9.: Συστηματικός, κυκλικός κώδικας (7,) παραγόμενος από το πολυώνυμο g(=++... 0 Πλαίσιο 9.: Κύκλωμα διαίρεσης πολυωνύμων: (α) γενική δομή, (β) διαίρεση του πολυωνύμου v ( με το g (, στο σώμα GF().... Πλαίσιο 9.5: Κύκλωμα υλοποίησης του (n,k) κυκλικού κώδικα με γενετήριο nk nk πολυώνυμο το g ( g g... gn k... Πλαίσιο 9.: Κύκλωμα κωδικοποίησης με τον κυκλικό κώδικα (7,) του Πλαισίου 9.... Πλαίσιο 9.7: Oμάδες συζυγών στοιχείων και αντίστοιχα ελάχιστα πολυώνυμα του GF( ) (σε χρωμοσκίαση τα πρωταρχικά πολυώνυμα)... Πλαίσιο 9.8: Στοιχεία του σώματος GF( ) με πρωταρχικό πολυώνυμο ++... Πλαίσιο 9.9: Κωδικοποιητής συστηματικού κώδικα R-S (n,n-t). Όλες οι πράξεις (πολλαπλασιασμοί, προσθέσεις, ολισθήσεις) γίνονται στα στοιχεία του GF( )... 7 Πλαίσιο 9.0: O Αλγόριθμος του Ευκλείδη για την εύρεση του ΜΚΔ πολυωνύμων α(, β(... 9 και του αντιστρόφου β - ( od α(, [αν ΜΚΔ(α(, β()=]... 9 Πλαίσιο 9.: Αποκωδικοποίηση R-S [παράδειγμα κώδικα (7,)], χρήση αλγόριθμου ΜΚΔ του Ευκλείδη...

9- Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο 9. Εισαγωγή Η Κωδικοποίηση Διαύλου (ΚΔ) αναφέρεται σε συστηματικές μετατροπές των ψηφιοσειρών πριν την εκπομπή ή την εγγραφή τους σε μέσα αποθήκευσης, με στόχο την αύξηση της αξιοπιστίας αναγνώρισής τους στον δέκτη. Οι μετατροπές αυτές συνίστανται κατά βάση σε εισαγωγή πλεονάζουσας πληροφορίας (ψηφία ισοτιμίας prty bts), με σκοπό τον εντοπισμό και τη διόρθωση λαθών. Υπό μια ευρύτερη έννοια, η κωδικοποίηση διαύλου θα μπορούσε να περιλαμβάνει και την επιλογή κατάλληλων κυματομορφών για τη διαμόρφωση που ακολουθεί, με στόχο την πιο αξιόπιστη αποδιαμόρφωση. Εδώ θα περιοριστούμε στον στενότερο ορισμό. Η απλούστερη μορφή κωδικοποίησης διαύλου είναι η προσθήκη ενός bt ισοτιμίας ανά ομάδα bts δεδομένων, με τη βοήθεια του οποίου ανιχνεύεται η ύπαρξη περιττού αριθμού λαθών, χωρίς όμως τη δυνατότητα εντοπισμού και διόρθωσης. Στον πίνακα 9.(α) δείχνεται μια τέτοια κωδικοποίηση, με την προσθήκη ενός bt ισοτιμίας ανά τρία bts δεδομένων. Πρόκειται για σχήμα άρτιας ισοτιμίας, αφού το επιπλέον bt καθιστά άρτιο τον αριθμό των μονάδων σε κάθε κωδικολέξη. Μια πιο εξελιγμένη μορφή του παραπάνω σχήματος είναι η οργάνωση των δεδομένων σε πίνακες και προσθήκη ενός bt ισοτιμίας σε κάθε γραμμή και στήλη του πίνακα. Με το σχήμα αυτό είναι δυνατός ο εντοπισμός (και διόρθωση) ενός λάθους (στη θέση γραμμήςστήλης όπου παραβιάζεται η ισοτιμία) ή η ανίχνευση ύπαρξης πολλαπλών λαθών [Πίνακας 9.(β)]. δεδ. ισ. 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Πλαίσιο 9.: Απλή κωδικοποίηση διαύλου με προσθήκη bts ισοτιμίας: (α) απλή άρτια ισοτιμία ανά τρία bts δεδομένων, (β) οργάνωση δεδομένων σε πίνακα 88 και άρτια ισοτιμία ανά γραμμή και στήλη Διόρθωση ενός απλού λάθους Εν γένει, έχουμε δύο μεγάλες κατηγορίες ΚΔ: την τμηματική κωδικοποίηση (block encodng) και τη συνελικτική κωδικοποίηση (convolutonl encodng). Η πρώτη κατηγορία περιλαμβάνει τεχνικές οι οποίες λειτουργούν σε αυτόνομα τμήματα (μπλοκ) δεδομένων, χωρίς αναφορά σε άλλα προηγηθέντα τμήματα. Η συνελικτική κωδικοποίηση, αντίθετα, λειτουργεί στη συνεχή ροή των δεδομένων με χρονικό παράθυρο (μνήμη) συγκεκριμένου εύρους, και παράγει μια αντίστοιχη συνεχή ροή μεγαλύτερου ρυθμού. Οι τεχνικές του Πίνακα 9. ανήκουν προφανώς στην πρώτη

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-5 κατηγορία, ενώ η απεικονιζόμενη στο παρακάτω σχήμα του Πλαισίου 9. είναι περίπτωση συνελικτικής κωδικοποίησης. u u D D u D: καθυστέρηση (καταχωρητής ολίσθησης) ενός bt Πλαίσιο 9.: Συνελικτική κωδικοποίηση διαύλου Ορισμός και σύμβολα Βασική παράμετρος ενός συστήματος ΚΔ είναι ο ρυθμός κώδικα (code rte). Ορίζεται ως το κλάσμα των αρχικών δεδομένων προς το σύνολο αυτών μετά την προσθήκη των bts ισοτιμίας. Αν με k και n συμβολίσουμε τα μεγέθη των τμημάτων δεδομένων εισόδου και εξόδου αντίστοιχα ή, στην περίπτωση συνελικτικής κωδικοποίησης, τους αντίστοιχους ρυθμούς μετάδοσης, ο κώδικας συμβολίζεται με το ζεύγος (n,k) ο δε ρυθμός κώδικα είναι k/n. Στα παραπάνω είναι: Πλαίσιο 9.(α): κώδικας (,), ρυθμός / Πλαίσιο 9.(β): κώδικας (8,), ρυθμός /8 Πλαίσιο 9.: κώδικας (, ), ρυθμός /. 9. Γραμμικοί τμηματικοί κώδικες (Lner block codes) Ένας γραμμικός τμηματικός κώδικας (n,k) δέχεται τμήματα (ή λέξεις) δεδομένων μήκους k-bts και παράγει κωδικολέξεις (codewords) μήκους n-bts. Η ιδιότητα του «γραμμικού» αναφέρεται στο γεγονός ότι οι κωδικολέξεις, πλήθους k, απαρτίζουν έναν διανυσματικό (γραμμικό) υποχώρο μέσα στον ευρύτερο χώρο όλων των δυνατών n n-άδων. Μια κωδικολέξη μήκους n θεωρείται διάνυσμα ορισμένο στο δυαδικό σώμα των ψηφίων 0 και. Το σώμα αυτό διαθέτει δύο πράξεις, της λογικής πρόσθεσης (αποκλειστικό OR, ) και του λογικού πολλαπλασιασμού. Το άθροισμα δύο κωδικολέξεων-διανυσμάτων oρίζεται ως το άθροισμα των αντίστοιχων στοιχείων τους στο δυαδικό σώμα. Ένα σύνολο n-άδων S αποτελεί διανυσματικό υποχώρο (vector subspce), αν ικανοποιούνται οι εξής δύο συνθήκες:. Η λέξη με όλα τα ψηφία μηδενικά ανήκει στο S.. Το άθροισμα οποιωνδήποτε δύο λέξεων του S ανήκει επίσης στο S (κλειστό). Παράδειγμα διανυσματικού χώρου και υποχώρου αυτού: Ο διανυσματικός χώρος V απαρτίζεται από όλες τις δυαδικές -άδες, δηλαδή V ={0000, 000, 000, 00, 000, 00, 00, 0, 000, 00, 00, 0, 00, 0, 0, }. Το υποσύνολο S={0000, 00, 00, } είναι ένας υποχώρος του V, αφού περιλαμβάνει τη λέξη 0000 και, επιπλέον, είναι κλειστό ως προς την προσθεση, π.χ., 00 00= ϵ S.

9- Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Παράδειγμα γραμμικού τμηματικού κώδικα: Ο Πίνακας στο Πλαίσιο 9. δίνει έναν γραμμικό τμηματικό κώδικα (,). Είναι εύκολο να επαληθευτεί ότι οι κωδικολέξεις συνιστούν πράγματι έναν γραμμικό υποχώρο μέσα στον χώρο των δυαδικών εξάδων (πλήθους ), χωρίς ωστόσο να μας είναι ακόμη φανερός ο τρόπος αντιστοίχισης των λέξεων-μηνυμάτων στις κωδικολέξεις. Αν και ο συγκεκριμένος πίνακας, λόγω του μικρού του μεγέθους, μπορεί να χρησιμοποιηθεί για την πραγματοποίηση του κώδικα (με απλή πράξη look-up), κάτι τέτοιο δεν θα ήταν πρακτικό για μεγαλύτερους κώδικες. Λέξη Κωδικολέξη μηνύματος 000 000000 00 000 00 000 0 00 00 000 0 00 0 00 000 Πλαίσιο 9.: Γραμμικός τμηματικός κώδικας (,) Στις επόμενες παραγράφους θα παρουσιαστεί η αλγεβρική δομή αυτών των κωδίκων καθώς και συστηματικός τρόπος παραγωγής τους. 9.. Γεννήτρια μήτρα Ο διανυσματικός υποχώρος των k κωδικολέξεων ενός γραμμικού κώδικα (n,k) έχει διάσταση k. Μπορούν, λοιπόν, να βρεθούν k στοιχεία του υποχώρου, γραμμικώς ανεξάρτητα, που να γεννούν όλα τα υπόλοιπα. Ας θεωρήσουμε ότι αυτό γίνεται με βάση τις λέξεις-μηνύματα, ως εξής: Μήνυμα:... ] Κωδικολέξη: Γεννήτρια μήτρα: [ k u v v... k v k V (9.) v v v v n v v v v n V (9.) vk vk vk vk n Στις παραπάνω σχέσεις, είναι λέξη-μήνυμα, μήκους k bts, v, v, vk τα k ανεξάρτητα γενετήρια διανύσματα και u η αντίστοιχη της κωδικολέξη. Η μήτρα V των γενετηρίων διανυσμάτων λέγεται γεννήτρια μήτρα (ή γεννήτορας πίνακας), αφού γεννά τον υποχώρο του κώδικα, παράγει δηλαδή τις κωδικολέξεις με αφετηρία τις λέξεις-μηνύματα.

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-7 Για τον κώδικα του Πίνακα 9. είναι: v 0 0 0 V v 0 0 0 (9.) v 0 0 0 Έτσι, για [ 0 ] παίρνουμε u. v 0. v. v v v [0 0 ]. 9.. Συστηματικοί κώδικες Είναι προφανές ότι κάθε k-άδα ανεξάρτητων κωδικολέξεων μπορεί να παίξει τον ρόλο γεννήτριας μήτρας. Η γεννήτρια μήτρα (9.) του παραπάνω παραδείγματος είναι στη μορφή: V P I k p p pk p p p k p p p,( nk ),( nk ) k,( nk ) 0 0 0 0 0 0, (9.) διαμερίζεται δηλαδή οριζόντια σε δύο υπομήτρες διαστάσεων k(n-k) και kk, από τις οποίες η δεύτερη (η τετραγωνική) είναι μοναδιαία. Αυτό έχει ως αποτέλεσμα να δημιουργούνται κωδικολέξεις των οποίων ένα τμήμα (στο παράδειγμα το τελευταίο, μήκους k ψηφίων) είναι αυτούσια η λέξη-μήνυμα, το δε υπόλοιπο (μήκους n-k) είναι τα ψηφία ισοτιμίας. Κάτι τέτοιο βέβαια είναι πολύ επιθυμητό, αφού απλοποιούνται οι υλοποιήσεις τόσο της κωδικοποίησης όσο και της αποκωδικοποίησης. Στο σχήμα (α) του Πλαισίου 9. δίνεται η γενική δομή γραμμικού συστηματικού κωδικοποιητή (n,k), καθώς και η αντίστοιχη υλοποίηση του κώδικα (,) του Πλαισίου 9.. 9.. Μήτρα ελέγχου ισοτιμίας (Prty check tr Για κάθε kn γεννήτρια μήτρα V ορίζεται η μήτρα ελέγχου ισοτιμίας Η, διάστασης (nk)n, η οποία ικανοποιεί τη σχέση: VH T =0 (9.5) όπου με Η Τ συμβολίζεται η ανάστροφη της Η, και με 0 η μηδενική μήτρα διάστασης k(n-k). Οι σειρές δηλαδή της Η είναι ορθογώνιες προς τις σειρές της γεννήτριας μήτρας και, κατά συνέπεια, ορθογώνιες προς κάθε κωδικολέξη u, αφού uh T =VH T =0. Για έναν συστηματικό κώδικα με γεννήτρια μήτρα P ότι H V εύκολα αποδεικνύεται T I n k P, (9.) αφού το (,j) στοιχείο του γινομένου VH T είναι ίσο με V(,.)H T (.,j)=pj+pj=0. I k

9-8 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο είσοδος (μήνυμα) k προς δίαυλο k k k p p pk p p pk p,n-k p,n-k pk,n-k καταχωρητής ψηφίων ισοτιμίας προς δίαυλο (α) είσοδος (μήνυμα ) προς δίαυλο (β) Πλαίσιο 9.: Κωδικοποιητής γραμμικού συστηματικού κώδικα: (α) γενική δομή, (β) υλοποίηση του κώδικα (,) του Πλαισίου 9. H χρησιμότητα της μήτρας ελέγχου ισοτιμίας έγκειται στο ότι καθιστά δυνατό (όπως δηλώνει και το όνομά της) έναν άμεσο έλεγχο της ορθότητας της λαμβανόμενης κωδικολέξης r στον δέκτη, όπως εξηγείται στην επόμενη παράγραφο. Παράδειγμα Η μήτρα ελέγχου ισοτιμίας για τον κώδικα του Πλαισίου 9. [γεννήτρια μήτρα όπως στη σχέση (9.)] είναι: 0 0 0 0 0 0 0 H 0 0 0 και 0 0 0 T H 0 0 0 0 0

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-9 9.. Σύνδρομο, αναγνώριση λαθών και αποκωδικοποίηση Έστω ότι r=u+e, όπου u η αποσταλείσα κωδικολέξη και e το διάνυσμα λάθους κατά την αποδιαμόρφωση. Το γινόμενο s=rh T (9.7) ονομάζεται σύνδρομο της ληφθείσας κωδικολέξης r. Το σύνδρομο είναι μηδέν, εάν και μόνο εάν η r ανήκει στο σύνολο των κωδικολέξεων. Εάν, λοιπόν, το σύνδρομο είναι μη μηδενικό, τότε σίγουρα υπάρχουν λάθη. Από την (9.7) το σύνδρομο γράφεται επίσης: s=(u+e)h T =eh T. (9.7β) Έστω ότι με τον κώδικα (,) του παραπάνω παραδείγματος στέλνεται η κωδικολέξη u [ 0 0 ] και κατά την αποδιαμόρφωση λαμβάνεται η r [ 0 0 0], δηλαδή η u αλλοιώνεται από το διάνυσμα λάθους e [0 0 0 0 0]. Είναι: 0 0 0 0 T 0 0 s rh 0 0 0 0 0. 0 0 T T Ας σημειωθεί ότι s eh 0 0 0 0 0H 0, σε συμφωνία με τη σχέση (9.7β) Είναι προφανές ότι δεν υπάρχει αμφιμονοσήμαντη αντιστοιχία μεταξύ συνδρόμων και λαθών, αφού υπάρχουν n δυνατά λάθη (συμπεριλαμβανομένου του μηδενικού), ενώ μόνο n-k σύνδρομα. Επομένως, k διανύσματα λαθών έχουν το ίδιο σύνδρομο. Για τον κώδικα (,) του παραπάνω παραδείγματος οι σχέσεις που συνδέουν το διάνυσμα λάθους e=[e,e,e,e,e5,e] με το σύνδρομο, π.χ., [ 0 ] είναι: e e e T s [ 0] eh ή 0 e e e e e e (9.9) 5 e 5 e e, e e e e 5 e 5 e Η παραπάνω σχέση είναι ένα σύστημα τριών εξισώσεων με έξι αγνώστους (στη γενική περίπτωση του κώδικα (n,k), σύστημα n-k εξισώσεων με n αγνώστους) Επιλέγοντας αυθαίρετα τους τρεις αγνώστους ( k =8 συνδυασμοί) λύνουμε το σύστημα ως προς τους άλλους τρεις. Στο Πλαίσιο 9.5 δείχνονται όλες οι λύσεις του συστήματος (9.9), δηλαδή όλα τα διανύσματα λαθών που αντιστοιχούν στο σύνδρομο [ 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 ].

9-0 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Πλαίσιο 9.5: Διανύσματα λάθους με κοινό σύνδρομο s=[ 0 ] του κώδικα (,) του πίνακα στο Πλαίσιο 9. Για έναν δίαυλο BSC (Bnry Syetrc Chnnel) τα πιθανότερα διανύσματα λαθών είναι αυτά με το μικρότερο «βάρος», με τον μικρότερο δηλαδή αριθμό μονάδων (= αριθμό λαθών μέσα σε μια κωδικολέξη). Στον πίνακα του Πλαισίου 9.5 τέτοιο είναι το διάνυσμα [0 0 0 0 0 ], με ένα λάθος. Στο Πλαίσιο 9. απαριθμούνται όλα τα n-k =8 δυνατά σύνδρομα με τα αντίστοιχα «μικρού βάρους» διανύσματα λαθών. Έτσι έχουμε έξι διανύσματα με βάρος ένα (ένα λάθος), ενώ επιλέγουμε και ένα διάνυσμα με δύο λάθη για το σύνδρομο [ ]. 9..5 Αποκωδικοποίηση Διόρθωση λαθών Ο πίνακας του Πλαισίου 9. δίνει ταυτόχρονα και τον τρόπο αποκωδικοποίησης: από το σύνδρομο συνάγουμε το (πιθανότερο) διάνυσμα λάθους, το οποίο εάν προστεθεί στη ληφθείσα κωδικολέξη r δίνει την «καλύτερη» εκτίμηση της αποσταλείσας κωδικολέξης u: s e, r e u ˆ u (9.0). 9. Σύνδρομο, s Διάνυσμα λαθών, e 000 000000 00 00000 00 00000 0 00000 00 00000 0 00000 0 00000 0000 Πλαίσιο 9.: Σύνδρομα και «μικρού βάρους» διανύσματα λαθών του κώδικα (,) του Πίνακα 9. Στη γενική περίπτωση του γραμμικού τμηματικού κώδικα (n,k), η εξίσωση (9.7) σε συνδυασμό με τη γενική μορφή της μήτρας Η για τους συστηματικούς γραμμικούς κώδικες (εξίσωση 9.) δίνει για τo σύνδρομo s=[s, s,s, sn-k]: Ως BSC ορίζεται εκείνος ο δίαυλος για τον οποίο η πιθανότητα λάθους ενός bt δεν εξαρτάται από την τιμή του bt ούτε από προγενέστερα λάθη.

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9- s s s nk r r r r...... r nk nk nk r p p nk p r r, nk nk nk r p p nk... r p, nk n... r n p k p k... r n p k, nk (9.) Στο Πλαίσιο 9.7 δίνεται η γενική υλοποίηση της (9.), ενώ στο 9.8(α) είναι η ειδικότερη υλοποίηση παραγωγής των συνδρόμων για τον κώδικα (,) του παραδείγματός μας. Με βάση και τον πίνακα του Πλαισίου 9. αντιστοίχισης λαθών σε σύνδρομα, ο αποκωδικοποιητής του παραδείγματός μας υλοποιείται όπως στο σχήμα (β) του Πλαισίου 9.8. 9.. Ελάχιστη απόσταση γραμμικών κωδίκων Το βάρος Hng (Hng weght) ή απλώς βάρος μιας δυαδικής λέξης u=[u,u, un] ορίζεται ως ο αριθμός των μη μηδενικών στοιχείων της και συμβολίζεται με w(u). Π.χ. το βάρος της u=[ 0 0 0] είναι. H απόσταση Hng (Hng dstnce) ή απλώς απόσταση δύο δυαδικών λέξεων u και v (της αυτής διάστασης) ορίζεται ως το βάρος του δυαδικού τους αθροίσματος (ισοδύναμα, ως ο αριθμός των διαφορετικών ψηφίων) και συμβολίζεται με d(u,v). Π.χ. d([ 0 0 0 0],[ 0 0 0 0])=w([0 0 0 0])=. Ισχύει η τριγωνική ανισότητα: d(u,v)+d(v,w) d(u,w) (9.) Ως ελάχιστη απόσταση ενός τμηματικού κώδικα C ορίζεται η ελάχιστη απόσταση μεταξύ των στοιχείων του ανά δύο: dn(c)=n{d(u,v): u, v ϵ C, u v} (9.) Επειδή d(u,v)=w(u+v) και u+v ϵ C, τελικά η ελάχιστη απόσταση ενός γραμμικού κώδικα ισούται με το ελάχιστο βάρος των μη μηδενικών στοιχείων του. Π.χ., η ελάχιστη απόσταση του γραμμικού κώδικα (,) του Πλαισίου 9. ισούται με. Όπως θα δούμε στη συνέχεια, η ελάχιστη απόσταση ενός κώδικα είναι βασική παράμετρος για τη δυνατότητα ανίχνευσης και διόρθωσης λαθών.

9- Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο ληφθέν διάνυσμα r r r r r n r r n-k+ r n-k+ r n r r n-k+ r n-k+ r n r n-k r n-k+ r n-k+ r n p p p k p p p k p,n-k p,n-k p k,n-k s s s n-k Πλαίσιο 9.7: Κύκλωμα παραγωγής συνδρόμων για τον γραμμικό συστηματικό κώδικα (n,k) r r r r r r 5 r s s s (α) s s s Πύλες AND e e e e e 5 e r r r r r 5 r Πύλη ΟR Πύλες ecl. OR u u u u = u 5= u = (το σκιαγραφημένο μέρος μπορεί να παραλειφθεί) (β) Πλαίσιο 9.8: Αποκωδικοποίηση του κώδικα (,) του Πλαισίου 9.: (α) κύκλωμα παραγωγής συνδρόμων, (β) κύκλωμα αποκωδικοποίησης

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-9..7 Δυνατότητα ανίχνευσης και διόρθωσης λαθών Έστω dn ελάχιστη απόσταση ενός κώδικα. Κανένας συνδυασμός λαθών πλήθους dn- δεν μπορεί να οδηγήσει από μία κωδικολέξη σε άλλη κωδικολέξη. Επομένως, ο κώδικας είναι σε θέση να ανιχνεύσει όλα τα λάθη πλήθους μέχρι και dn- (ανά κωδικολέξη). Πέραν αυτών, είναι σε θέση να ανιχνεύσει και αρκετά λάθη πλήθους dn. Στην πραγματικότητα, ένας γραμμικός τμηματικός κώδικας (n,k) μπορεί να ανιχνεύσει n - k συνδυασμούς λαθών μήκους n, αφού από τους n - δυνατούς (μη μηδενικούς) συνδυασμούς που μπορούν να αλλοιώσουν μια λέξη, οι k - οδηγούν σε υπαρκτές κωδικολέξεις και συνεπώς δεν είναι ανιχνεύσιμοι. Από τους ανιχνεύσιμους συνδυασμούς λαθών μπορούν να διορθωθούν εκείνοι με βάρος μικρότερο ή ίσο του t, όπου: dn t dn t ή t (9.) Αυτό αποδεικνύεται ως εξής: Ας υποθέσουμε ότι εκπέμπεται η κωδικολέξη u και λαμβάνεται η λέξη r με d( u, r) t. Αν w είναι οποιαδήποτε κωδικολέξη διάφορη της u (w u), τότε, λόγω της τριγωνικής ιδιότητας των βαρών και της (9.), ισχύει: d( u, r) d( r, w) d( u, w) dn t ή t d( r, w) t. Αν t t, τότε πράγματι d( w, r) t. Άρα η ληφθείσα κωδικολέξη r είναι πλησιέστερα (απόσταση Hng) στην αποσταλείσα από κάθε άλλη κωδικολέξη, και συνεπώς ο συνδυασμός λαθών είναι διορθώσιμος. Συμπερασματικά: Ένας γραμμικός τμηματικός κώδικας με ελάχιστη απόσταση dn εγγυάται τη t ( d n ) / ή λιγότερα λάθη (όπου διόρθωση όλων των συνδυασμών λαθών με A συμβολίζει τον μικρότερο ακέραιο που δεν υπερβαίνει τον Α). Ο ακέραιος t ονομάζεται δυνατότητα διόρθωσης τυχαίων λαθών του κώδικα C. Π.χ., η δυνατότητα διόρθωσης τυχαίων λαθών του κώδικα (,) του Πλαισίου 9. είναι t=, αφού dn=. 9..8 Πρότυπη μήτρα Η πρότυπη μήτρα (stndrd rry) ενός τμηματικού γραμμικού κώδικα (n,k) είναι μια μήτρα n-k k όπου τοποθετουνται όλες οι n δυνατές n-άδες, με τρόπο ώστε: η πρώτη γραμμή να περιέχει όλες τις k κωδικολέξεις, με πρώτη τη μηδενική (u= [0 0...0], u, u, u k ), και η πρώτη στήλη όλα τα n-k διορθώσιμα λάθη του κώδικα (e= [0 0...0], e, e nk ). Κατασκευάζεται σειρά προς σειρά με βάση τον αλγόριθμο του Πλαισίου 9.9. Τα διορθώσιμα λάθη στοιχεία της πρώτης στήλης της μήτρας ονομάζονται στοιχεία-οδηγοί (coset leders), και κάθε σειρά αποτελεί ένα coset (σύνολο στοιχείων

9- Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο με μια κοινή ιδιότητα, στη δεδομένη περίπτωση εννοείται ένα κοινό διάνυσμα λάθους). Αλγόριθμος:. Σειρά η : Συμπληρώνεται με τις κωδικολέξεις του κώδικα, με πρώτο στοιχείο τη μηδενική n-άδα.. Σειρά ν-οστή (ν =,,... n-k ): Ως πρώτο στοιχείο της, e ν, επιλέγουμε μία από τις n-άδεςπου δεν έχουν τοποθετηθεί ακόμη στη μήτρα. Επειδή το στοιχείο αυτό προορίζεται για διορθώσιμο διάνυσμα λάθους, επιλέγουμε τη n-άδα με το μικρότερο βάρος (για έναν δίαυλο BSC αυτή αντιπροσωπεύει τον πιθανότερο συνδυασμό λαθών). Ξεκινάμε φυσικά με τις n-άδες βάρους (δεν υπάρχουν τέτοιες μεταξύ των κωδικολέξεων), όταν αυτές εξαντληθούν, συνεχίζουμε με n-άδες βάρους, κ.ο.κ. Τα υπόλοιπα στοιχεία της σειράς υπολογίζονται ως το άθροισμα του πρώτου στοιχείου της με την αντίστοιχη κωδικολέξη (πρώτο στοιχείο της αντίστοιχης στήλης): v ν,κ = e ν + u κ, κ=,,... κ. Θεώρημα: Στη μήτρα που κατασκευάστηκε με την παραπάνω διαδικασία καμία n-άδα δεν επαναλαμβάνεται, δηλαδή έχουν τοποθετηθεί όλες οι n διαφορετικές n-άδες. Απόδειξη: Έστω, καταρχήν, ότι δύο στοιχεία της ίδιας σειράς ήταν ίδια, δηλ. θα συνεπαγόταν ότι u u e j uk e u e j e u u k k, πράγμα που δεν ισχύει. Έστω, τώρα, ότι: e j u e u k j. Αυτό, για j>. Προσθέτοντας το u k στα δύο μέλη της ισότητας θα παίρναμε. Αλλά το άθροισμα u uk δίνει κάποια άλλη κωδικολέξη ότι τα στοιχεία του κώδικα απαρτίζουν γραμμικό υποχώρο. Δηλαδή e u l e j e ul u l, λόγω του. Το άθροισμα, ωστόσο, είναι στοιχείο της -οστής σειράς και δεν μπορεί να είναι ίδιο με το πρώτο στοιχείο μιας επόμενης σειράς (της j-οστής, εν προκειμένω) εκ κατασκευής της μήτρας. Πλαίσιο 9.9: Κατασκευή πρότυπης μήτρας Παράδειγμα: Η πρότυπη μήτρα για τον κώδικα (,) του Πλαισίου 9. είναι όπως στον παρακάτω πίνακα (Πλαίσιο 9.0). Ως στοιχεία-οδηγοί χρησιμοποιήθηκαν τα διανύσματα βάρους (σύνολο έξι), ενώ στην τελευταία σειρά επιλέχθηκε το διάνυσμα [0000] το οποίο δεν προέκυψε σε κάποια από τις προηγούμενες σειρές. Θα μπορούσε κάλλιστα να χρησιμοποιηθεί το [0000], επίσης μη χρησιμοποιηθέν. Στην περίπτωση αυτή θα είχαμε απλώς άλλη διάταξη των στοιχείων της τελευταίας σειράς.

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-5 000000 000 000 00 000 00 00 000 00000 0000 00 000 0000 0 000 00 00000 0000 0000 0 00 000 000 00 00000 00 0000 000 0000 000 0 00 00000 0000 00 000 00 000 0 0000 00000 00 0000 000 00 0 000 0000 00000 00 00 0 0000 000 000 0000 0000 000 000 000 0000 0000 000 Πλαίσιο 9.0: Πρότυπη μήτρα του κώδικα (,) του Πίνακα στο Πλαίσιο 9. Συμπερασματικά, οι βασικές ιδιότητες μιας πρότυπης μήτρας είναι οι εξής: Περιέχει όλες τις n n-άδες, οργανωμένες σε n-k σειρές και k στήλες. Η πρώτη σειρά περιλαμβάνει όλες τις κωδικολέξεις, και η πρώτη στήλη όλα τα διορθώσιμα διανύσματα λαθών. Είναι n-k διορθώσιμα διανύσματα λαθών. Κάθε σειρά (coset) αντιστοιχεί σε ένα συγκεκριμένο διάνυσμα λαθών ίσο με το στοιχείο-οδηγό (coset leder), άρα και σε ένα μοναδικό σύνδρομο. Επιλέγοντας στοιχεία-οδηγούς με το μικρότερο δυνατό βάρος, ελαχιστοποιούμε την πιθανότητα λάθους σε διαύλους BSC. n Η πιθανότητα λάθους σε BSC είναι ίση με Pe p ( p), όπου p η πιθανότητα εσφαλμένου bt κατά την αποδιαμόρφωση και ο αριθμός των στοιχείων-οδηγών βάρους. Έτσι, για το παράδειγμα του κώδικα (,) είναι 5 0=, =, =, =0 >, οπότε ( p) p( p) p ( p). 9..9 Κώδικες Hng P e Οι κώδικες Hng αποτελούν την πρώτη κατηγορία γραμμικών κωδίκων που αναπτύχθηκαν και χρησιμοποιήθηκαν για διόρθωση λαθών σε εφαρμογές μετάδοσης και αποθήκευσης δεδομένων. Για κάθε θετικό ακέραιο, υπάρχει ένας κώδικας Hng με τις εξής παραμέτρους: Μήκος κωδικολέξης: n = - Μήκος λέξης δεδομένων: k = -- Αριθμός ψηφίων ισοτιμίας: n-k = Δυνατότητα διόρθωσης λαθών: t = (d n=) Η μήτρα ελέγχου ισοτιμίας απαρτίζεται από όλα τα διανύσματα μήκους (πλην του μηδενικού) ως στήλες, με πρώτα εκείνα βάρους, δηλαδή: Η=[Ι Q], I η μήτρα ταυτότητας, Q η μήτρα με στήλες τις -- -άδες βάρους ή μεγαλύτερου. n 0 Παράδειγμα:

9- Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Για =, ο γραμμικός τμηματικός κώδικας Hng είναι ο κώδικας (7,), με μήτρα ελέγχου ισοτιμίας και γεννήτρια μήτρα τις Η και V αντίστοιχα, όπως παρακάτω: 0 0 0 H I Q 0 0 0, Q T I 0 0 0 0 0 0 0 0 0 0 0 V k. (9.) 0 0 0 0 0 0 0 Η ελάχιστη απόσταση ενός κώδικα Hng είναι ακριβώς και, επομένως, η δυνατότητα διόρθωσης λαθών είναι t=. Στην πρότυπη μήτρα τα στοιχεία-οδηγοί είναι όλες οι - n-άδες βάρους και η μηδενική. 9. Κυκλικοί κώδικες ([SKLAR0],.7) Οι κυκλικοί κώδικες αποτελούν σημαντική υποκατηγορία των γραμμικών κωδίκων. Είναι ελκυστικοί λόγω της αλγεβρικής δομής τους και της ευκολίας υλοποίησης κωδικοποιητή και αποκωδικοποιητή που αυτή τους η δομή συνεπάγεται. Συγκεκριμένα, η κωδικοποίηση και ο υπολογισμός του συνδρόμου υλοποιούνται με απλά λογικά κυκλώματα και καταχωρητές ολίσθησης. Οι κυκλικοί κώδικες μελετήθηκαν για πρώτη φορά τη δεκαετία του 950 από τον Prnge, ενώ στη συνέχεια πολλοί θεωρητικοί της άλγεβρας των κωδίκων ασχολήθηκαν με τη συστηματική τους μελέτη. 9.. Ορισμός και αλγεβρική δομή των κυκλικών κωδίκων Ορισμός: Ένας γραμμικός κώδικας (n,k) ονομάζεται κυκλικός, αν η κυκλική ολίσθηση των κωδικολέξεων είναι πράξη κλειστή στον χώρο του κώδικα. Με άλλα λόγια, κάθε κυκλική ολίσθηση οποιασδήποτε κωδικολέξης δίνει πάλι λέξη του κώδικα. Παράδειγμα: Ο κώδικας (7,) του Πλαισίου 9. είναι ένας κυκλικός κώδικας.

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-7 Μήνυμα, Κωδικολέξη, u Κωδικό πολυώνυμο (= (.g() 0 0 0 0 0 0 0 0 0 0 0 0 = 0.g( 0 0 0 0 0 0 0 ++ =.g( 0 0 0 0 0 0 0 + + =. g( 0 0 0 0 0 + + + =(+.g( 0 0 0 0 0 0 0 + + 5 =. g( 0 0 0 0 0 ++ + 5 =(+ ). g( 0 0 0 0 0 + + + 5 =(+ ). g( 0 0 0 0 0 + + 5 =(++ ). g( 0 0 0 0 0 0 0 + + =. g( 0 0 0 0 0 ++ + =(+ ). g( 0 0 0 0 0 + + + =(+ ). g( 0 0 0 0 0 + + =(++ ). g( 0 0 0 0 0 + + 5 + =( + ). g( 0 ++ + + + 5 + =(+ + ). g( 0 0 0 0 0 + 5 + =(+ + ). g( 0 0 0 + + 5 + =(++ + ). g( Πλαίσιο 9.: Κυκλικός κώδικας (7,) παραγόμενος από το πολυώνυμο g(=++ Η αλγεβρική δομή των κυκλικών κωδίκων βασίζεται στην πολυωνυμική παράσταση των δυαδικών λέξεων (μηνυμάτων και κωδικολέξεων) και στις αντίστοιχες πράξεις στο δυαδικό σώμα. Έτσι, η κωδικολέξη u=( 0 0 0 0) αντιστοιχίζεται στο πολυώνυμο u(=++. Συμβατικά, ξεκινάμε από αριστερά προς τα δεξιά με τους συντελεστές χαμηλότερης τάξης (θα μπορούσε να είναι και αντίστροφα). Κωδικά πολυώνυμα και κωδικολέξεις βρίσκονται σε αμφιμονοσήμαντη αντιστοιχία και θα χρησιμοποιούνται ισοδύναμα. Πρόταση: Το κωδικό πολυώνυμο u () ( της λέξης που προκύπτει από την κυκλική ολίσθηση της u κατά θέσεις δεξιά ικανοποιεί τη σχέση: n ( ) u( q( ( ) u (, (9.5) είναι δηλαδή το υπόλοιπο της διαίρεσης του πολυωνύμου n u ( με το ( ). n Απόδειξη: Αν u ( u0 u... u n, το πολυώνυμο u( γράφεται ως n n u( u u... u... u u 0 n u u n ( q( ( n n n... u ) u ) u n ( ) ( n n ( n 0 )... u n u... u n n n ( n ) ό.έ.δ. Παράδειγμα: Με u(=( 0 0 0 0), κυκλική ολίσθηση κατά θέσεις δεξιά, δίνει: u () () 5 ( 0 0 0 0), u (

9-8 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Εξάλλου, 5 7 7 5 u ( ( ).( ). Θεώρημα 9.: Για κάθε κυκλικό κώδικα (n,k) υπάρχει (μη μηδενικό) ελάχιστου βαθμού κωδικό πολυώνυμο g( με τις εξής ιδιότητες:. Είναι μοναδικό.. Ο σταθερός όρος του είναι.. Κάθε πολλαπλάσιό του, βαθμού n- ή μικρότερου, είναι κωδικό πολυώνυμο. Ισχύει και το αντίστροφο, δηλ. κάθε άλλο κωδικό πολυώνυμο είναι πολλαπλάσιο του g(. Η ιδιότητα αυτή καθιστά το το γενετήριο πολυώνυμο του κώδικα.. Είναι βαθμού n-k. 5. Είναι παράγοντας του διωνύμου n +.. Ισχύει και το αντίστροφο της ιδιότητας 5: Κάθε παράγοντας του διωνύμου n, βαθμού n-k, παράγει έναν κυκλικό κώδικα (n,k). Απόδειξη:. Έστω ότι το g( r r g ( g0 g... gr είναι ένα ελάχιστου βαθμού κωδικό πολυώνυμο του κυκλικού κώδικα (n,k). Ας υποθέσουμε ότι αυτό δεν είναι μοναδικό, αλλά υπάρχει και ένα δεύτερο, βαθμού επίσης r, το,,, r r g '( g0 g... gr. Τότε το άθροισμά τους θα είναι επίσης κωδικό πολυώνυμο (λόγω της γραμμικότητας του κυκλικού κώδικα), το οποίο όμως θα είναι βαθμού το πολύ r-. Αυτό δεν μπορεί να ισχύει λόγω της υπόθεσης ότι το g( είναι ελάχιστου βαθμού.. Αν ο σταθερός όρος ήταν 0, τότε η κυκλική ολίσθηση της αντίστοιχης κωδικολέξης κατά ένα αριστερά (ή, ισοδύναμα, κατά n- δεξιά) θα έδινε κωδικολέξη με πολυώνυμο βαθμού r-, πράγμα που αντίκειται στην υπόθεση ότι το g( είναι ελάχιστου βαθμού.. Έστω πολυώνυμο w (, βαθμού n- ή μικρότερου, πολλαπλάσιο του g(: n nr w( w0 w... wn ( 0... nr ) g(. g g g nr 0 ( ) ( )... nr ( ) Τα μονώνυμα της τελευταίας μορφής του w( αντιστοιχούν σε κυκλικές ολισθήσεις κωδικολέξης, άρα το άθροισμά τους είναι επίσης κωδικολέξη, δηλαδή το w( είναι κωδικό πολυώνυμο. Αντίστροφα, ας υποθέσουμε ότι το w(, βαθμού n- ή μικρότερου, είναι κωδικό πολυώνυμο. Διαιρούμενο με g(, δίνει υπόλοιπο έστω b( βαθμού r- ή μικρότερου, δηλαδή w( (. g( b( ή b( w( ( g(. Αυτό όμως σημαίνει ότι και το b( είναι κωδικό πολυώνυμο (ως γραμμικός συνδυασμός κωδικών πολυωνύμων), πράγμα άτοπο, αφού ο ελάχιστος βαθμός των κωδικών πολυωνύμων είναι εξ υποθέσεως r.. Ο αριθμός των κωδικών πολυωνύμων, βαθμού n- ή μικρότερου, είναι k. Εξάλλου, υπάρχουν n-r πολλαπλάσια του g( που, σύμφωνα με το σημείο παραπάνω, αυτά και μόνο αυτά είναι κωδικά πολυώνυμα. Αυτό σημαίνει ότι r=nk, δηλαδή το g( είναι βαθμού n-k.

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-9 (συνέχεια) 5. Πολλαπλασιάζοντας το g( με k παίρνουμε το πολυώνυμο διαιρούμενο k g ( g ( k ) με ( πολλαπλάσιο του πολλαπλάσιο του n n. Αλλά το g( g(. Αντίστροφα: Έστω το πολυώνυμο g(. g( k g(, το οποίο, k n ( k ), δίνει: g( g ( ή g ( k ) (. Αυτό σημαίνει ότι και το g( g(, ως κωδικό πολυώνυμο, είναι n, βαθμού n-k, παράγοντας του k g( είναι τελικά πολυώνυμα,,,... είναι όλα βαθμού μικρότερου ή ίσου με n-, επομένως το ίδιο ισχύει και για κάθε γραμμικό τους συνδυασμό k u( (... ) g( ). Υπάρχουν ακριβώς k τέτοια πολυώνυμα, 0 k g( όλα πολλαπλάσια του, τα οποία και συνιστούν έναν γραμμικό κώδικα (n,k). Ο κώδικας αυτός είναι κυκλικός. Πράγματι, αν ένα από τα παραπάνω κωδικά πολυώνυμα πολλαπλασιαστεί με δίνει: n u( u u... u όπου το u u () 0 n ( ( n ) ( u n n u... u είναι η κυκλική ολίσθηση του 0 n n ) u n ( n ) u u( κατά ένα. Επειδή τα () n (, u( n () είναι και τα δύο πολλαπλάσια του g (, το ίδιο ισχύει και με το u (. ό.έ.δ. Πλαίσιο 9.: Γενετήρια πολυώνυμα κυκλικών κωδίκων Θεώρημα Παράδειγμα: Το ελάχιστο πολυώνυμο του κυκλικού κώδικα (7,) του Πλαισίου 9. είναι το g (. Όλα τα κωδικά πολυώνυμα είναι πολλαπλάσιά του, όπως συνάγεται και από την τελευταία στήλη του πίνακα. Επίσης, αποτελεί παράγοντα του διωνύμου 7 7, αφού ( ( )( ). Πρέπει να παρατηρήσουμε ότι υπάρχει και ένας δεύτερος παράγοντας του 7, βαθμού, που μπορεί να παραγάγει έναν άλλο κώδικα (7,). Το παραπάνω θεώρημα είναι εξαιρετικά σημαντικό και δίνει, μεταξύ άλλων, τρόπους προσδιορισμού και υλοποίησης κυκλικών κωδίκων. Σύμφωνα με την πρόταση 5 του n θεωρήματος, κάθε παράγοντας του διωνύμου, βαθμού n-k, παράγει έναν γραμμικό, κυκλικό κώδικα (n,k), με πολλαπλασιασμό του πολυωνύμου δεδομένων k (: u( (... ) g( ). Για μεγάλα n μπορεί να υπάρχουν πολλοί g( 0 k n παράγοντες του αντίστοιχου διωνύμου. Η επιλογή εκείνων των παραγόντων που παράγουν «καλούς» κώδικες είναι ένα δύσκολο πρόβλημα, και μόνο η ενδελεχής μελέτη καθενός χωριστά μπορεί να δώσει απάντηση. Ας σημειωθεί ότι δεν είναι απαραίτητο τo g( να είναι πρώτο πολυώνυμο, όπως στην περίπτωση κατασκευής ενός σώματος GF( ) και θα το δούμε αυτό στην περίπτωση κωδίκων BCH.. Τα και

9-0 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο 9.. Κυκλικοί κώδικες σε συστηματική μορφή Οι κώδικες που παράγονται σύμφωνα με την πρόταση του παραπάνω θεωρήματος δεν είναι σε συστηματική μορφή. Μπορούν να παραχθούν σε συστηματική μορφή ως εξής: Το n k n k Πολλαπλασιάζεται το μήνυμα ( με. Υπολογίζεται το υπόλοιπο της διαίρεσης n k ( / g( b(. nk Το κωδικό πολυώνυμο είναι το u( b( (. u( είναι κωδικό πολυώνυμο, αφού n k ( g(. q( b(, επομένως ( b( g(. q(, δηλαδή πολλαπλάσιο του Παράδειγμα: Για το γενετήριο πολυώνυμο μήνυμα =(0 0 ) ή (, διαιρούμε το g(. g ( του κώδικα (7,) και το ( με το g( και παίρνουμε ( )( ) ή b (, οπότε το κωδικό πολυώνυμο που αντιστοιχεί στο συγκεκριμένο μήνυμα είναι το u( b( ( ( ) g( ή u=( 0 0 0 ). Ο πίνακας του Πλαισίου 9. συνοψίζει τον συστηματικό κυκλικό κώδικα (7,) με γενετήριο πολυώνυμο το g (. Προφανώς πρόκειται για μια αναδιάταξη των ίδιων κωδικολέξεων του πίνακα στο Πλαίσιο 9., δηλ. των πολλαπλασίων του g( βαθμού μικρότερου ή ίσου του (=n-k). Μήνυμα, Κωδικολέξη, u Κωδικό πολυώνυμο (= q(.g() 0 0 0 0 0 0 0 0 0 0 0 0 = 0.g( 0 0 0 0 0 0 0 ++ =.g( 0 0 0 0 0 0 0 + + =. g( 0 0 0 0 0 + + + =(+.g( 0 0 0 0 0 0 ++ + 5 =(+ ). g( 0 0 0 0 0 0 + + 5 =. g( 0 0 0 0 0 0 + + 5 =(++ ). g( 0 0 0 0 + + + 5 =(+ ). g( 0 0 0 0 0 0 0 + + =(++ ). g( 0 0 0 0 0 + + + =(+ ). g( 0 0 0 0 0 ++ + =(+ ). g( 0 0 0 0 0 + + =. g( 0 0 0 0 0 0 + 5 + =(+ + ). g( 0 0 0 0 + + 5 + =(++ + ). g( 0 0 0 0 + + 5 + =( + ). g( ++ + + + 5 + =(+ + ). g( Πλαίσιο 9.: Συστηματικός, κυκλικός κώδικας (7,) παραγόμενος από το πολυώνυμο g(=++

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-9.. Υλοποίηση κυκλικών κωδίκων Οι κυκλικοί συστηματικοί κώδικες μπορούν να υλοποιηθούν σύμφωνα με τον αλγόριθμο των τριών βημάτων της προηγούμενης παραγράφου. Το πρώτο βήμα n k (πολλαπλασιασμός του πολυωνύμου μηνύματος με ) υλοποιείται με ολίσθηση n- k σταδίων. Το δεύτερο βήμα απαιτεί ένα κύκλωμα διαίρεσης πολυωνύμων. Στο Πλαίσιο 9. δίνεται η γενική δομή ενός τέτοιου κυκλώματος, καθώς και παράδειγμα εφαρμογής για πολυώνυμα στο GF(), δηλ. με δυαδικούς συντελεστές. Στο Πλαίσιο 9.5 δίνεται κύκλωμα υλοποίησης του κυκλικού κώδικα. Τα bts του μηνύματος οδηγούνται απευθείας στην έξοδο, ενώ τροφοδοτούν και τον κλάδο ανάδρασης που οδηγεί τον καταχωρητή ολίσθησης (n-k θέσεων). Μετά την εκπομπή και του k-οστού bt μηνύματος ο καταχωρητής ολίσθησης περιέχει τα n-k bts ισοτιμίας (υπόλοιπο της πολυωνυμικής διαίρεσης). Κλείνει λοιπόν τη στιγμή αυτή ο διακόπτης ανάδρασης και μεταδίδεται το περιεχόμενο του καταχωρητή, bt προς bt. πηλίκο v(, v -, v -g o πρώτα ο συντελεστής του μεγιστοβάθμιου όρου -g -g -g καταχωρητής ολίσθησης p θέσεων (το υπόλοιπο παραμένει στον καταχωρητή, μετά από + ολισθήσεις) -g p- gp - (α) 0 είσοδος 0 0 0 0 έξοδος (β) Πλαίσιο 9.: Κύκλωμα διαίρεσης πολυωνύμων: (α) γενική δομή για τη διαίρεση (... ) / (... p v v v v g g g g p ), (β) διαίρεση του 0 0 p p πολυωνύμου v ( με το g (, στο σώμα GF().

9- Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Διακόπτης g g g n-k- b0 b b bn-k- καταχωρητής ολίσθησης n-k θέσεων Διακόπτης είσοδος ( έξοδος u( Πλαίσιο 9.5: Κύκλωμα υλοποίησης του (n,k) κυκλικού κώδικα με γενετήριο nk nk πολυώνυμο το g ( g g... g 9.. Αποκωδικοποίηση κυκλικών κωδίκων Η αποκωδικοποίηση των κυκλικών κωδίκων μπορεί να γίνει όπως και των λοιπών γραμμικών τμηματικών κωδίκων σε τρία βήματα: nk. υπολογισμός συνδρόμου,. υπολογισμός διανύσματος λάθους (με βάση το υπολογισθέν σύνδρομο),. διόρθωση, με πρόσθεση του διανύσματος λάθους στο ληφθέν διάνυσμα. Δεδομένου ότι το εκπεμπόμενο διάνυσμα είναι ένα πολλαπλάσιο του γενετηρίου διανύσματος g (, το υπόλοιπο της διαίρεσης του λαμβανόμενου διανύσματος με το γενετήριο διάνυσμα g ( είναι το σύνδρομο αυτού, σύμφωνα με τη σχέση: r( q( g( S(. (9.) Έτσι, για τον υπολογισμό του συνδρόμου αρκεί ένα κύκλωμα διαίρεσης πολυωνύμων με διαιρέτη το, όμοιο με αυτό του κυκλώματος κωδικοποίησης (Πλαίσιο 9.). Στο Πλαίσιο 9. δίνεται ένα τέτοιο κύκλωμα. g( r( g(=++ Διακόπτης Λαμβανόμενο διάνυσμα 7 ψηφίων Διακόπτης έξοδος συνδρόμου καταχωρητής ολίσθησης Ο Διακόπτης είναι αρχικά κλειστός και ο Διακόπτης ανοικτός. Το λαμβανόμενο διάνυσμα εισέρχεται σταδιακά στον καταχωρητή εισόδου, ο οποίος είναι αρχικοποιημένος στο 0. Αφού εισέλθει ολόκληρο το λαμβανόμενο διάνυσμα στον καταχωρητή ολίσθησης, τα περιεχόμενα του καταχωρητή είναι το σύνδρομο. Τότε ο Διακόπτης ανοίγει και ο κλείνει, ώστε να εξαχθεί σειριακά το σύνδρομο. Πλαίσιο 9.: Κύκλωμα υπολογισμού συνδρόμου του κυκλικού κώδικα (7,) του Πλαισίου 9.

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-9..5 Κώδικες BCH Οι κώδικες BCH (Bose-Chudhur-Hocquenghe) αποτελούν πολύ σημαντική ειδική κατηγορία κυκλικών κωδίκων, γενίκευση των κωδίκων Hng για διόρθωση πολλαπλών λαθών. Οι δυαδικοί κώδικες BCH εφευρέθηκαν από τον Hocquenghe το 959, και ανεξάρτητα από τους Bose και Chudhur έναν χρόνο αργότερα. Γενικεύτηκαν σε σώματα G(p ) (p πρώτος αριθμός) από τους Gorensten και Zerler. Η πιο σημαντική υποκατηγορία μη δυαδικών κωδίκων BCH είναι οι κώδικες Reed- Soloon. Για κάθε θετικό ακέραιο, μεγαλύτερο ή ίσο του, ορίζεται ένας δυαδικός κώδικας BCH που μπορεί να διορθώσει μέχρι t λάθη ως εξής: Μήκος κωδικολέξης n = - Αριθμός bts ισοτιμίας n-k t Ελάχιστη απόσταση dn t+ Το γενετήριο πολυώνυμο αυτού του κώδικα είναι το ελάχιστου βαθμού πολυώνυμο με ρίζες τα στοιχεία α, α, α,...,α t του σώματος GF( ), με α πρωταρχικό. Αν με συμβολίσουμε το ελάχιστο πολυώνυμο του στοιχείου α, τότε το εν λόγω ( γενετήριο πολυώνυμο είναι: g (, (,..., ( ( t Επειδή κάθε άρτια δύναμη του α είναι στοιχείο συζυγές κάποιας προηγούμενης περιττής δύναμης του ίδιου στοιχείου (δηλ. έχουν το ίδιο ελάχιστο πολυώνυμο), τελικά η παραπάνω σχέση διατηρεί μόνο τα περιττής τάξης ελάχιστα πολυώνυμα και γίνεται: g (, (,..., ( ). ( t Για t=, είναι g ( ( (το ελάχιστο πολυώνυμο του πρωταρχικού στοιχείου α), οπότε παίρνουμε τον κώδικα Hng ( -, --) με δυνατότητα διόρθωσης ενός λάθους. Παράδειγμα: Να βρεθεί δυαδικός κώδικας BCH με μήκος κωδικολέξης n= και δυνατότητα διόρθωσης λαθών. Απάντηση: Είναι n= -=, ή = και t=, οπότε ο αριθμός των bts ισοτιμίας n-k [ίσος και με το βαθμό του γενετηρίου πολυωνύμου ] θα ικανοποιεί τη σχέση n- k t=. Στο Πλαίσιο 9.7 δίνονται οι ομάδες συζυγών στοιχείων του σώματος GF( ) με τα αντίστοιχα ελάχιστα πολυώνυμα. Τα πολυώνυμα που γραμμοσκιάζονται είναι τα πρωταρχικά, όπως μπορεί να επαληθευτεί. Επιλέγουμε το α του πρώτου στον πίνακα πρωταρχικού πολυωνύμου (θα μπορούσαμε να πάρουμε την πρώτη [ή και άλλη] ρίζα οποιουδήποτε από τα πρωταρχικά πολυώνυμα), οπότε: ) g( Βλέπε Παράρτημα για μια σύντομη εισαγωγή στα Πεπερασμένα Σώματα. Επειδή όλα τα στοιχεία του GF( ) είναι ρίζες του διωνύμου, ένα g( ορισμένο όπως παραπάνω [με απλές ρίζες στο GF( )] θα διαιρεί το εν λόγω διώνυμο και, επομένως, θα παράγει έναν κυκλικό κώδικα. Κάθε άρτιος ακέραιος γράφεται ως γινόμενο ενός περιττού j και μια ακέραιας δύναμης του, l: =j l l j j. Επομένως ( ), που σημαίνει ότι το είναι συζυγές του.

9- Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Ελάχιστα πολυώνυμα Στοιχεία GF( ) ++,,, 8,, ++ + + α,,,, 8, ++ + 5 + α 5, 0, 0, 0, 7, + + α 7,, 8, 5, 9, 5 + + α 9, 8, + + + 5 + α,,, 5, 50, 7 ++ + + α,, 5,, 9, 8 + + + 5 + α 5, 0, 0, 57, 5, 9 ++ α, ++ + 5 + α,, 9, 58, 5, ++ 7, 5, 5 + 5 + α,,, 59, 55, 7 Πλαίσιο 9.7: Oμάδες συζυγών στοιχείων και αντίστοιχα ελάχιστα πολυώνυμα του GF( ) (σε χρωμοσκίαση τα πρωταρχικά πολυώνυμα) 5 g( (, ( (. ( ( )( 8 0 Προκύπτει λοιπόν γενετήριο πολυώνυμο βαθμού, οπότε n-k= (=αριθμός bts ισοτιμίας) και k=5 (=μήκος λέξης δεδομένων) κώδικας (,5). Στον παρακάτω πίνακα (τμήμα ενός μεγαλύτερου, τον οποίο μπορεί να βρει κανείς στη βιβλιογραφία, βλ. π.χ. [SKLA0]) δίνονται τα γενετήρια πολυώνυμα συχνά χρησιμοποιούμενων δυαδικών κωδίκων BCH για διάφορες τιμές των n, k, t. Τα g( δίνονται σε οκταδική μορφή, έτσι ώστε, αν τα οκταδικά ψηφία μετατραπούν σε δυαδικά, το δεξιότερο bt να αντιστοιχεί στον σταθερό όρο του g(. [Να επιβεβαιωθεί το αποτέλεσμα του κώδικα (,5) που βρέθηκε παραπάνω.] )

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-5 9. Κωδικοποίηση Reed-Soloon (R-S) Η κωδικοποίηση Reed-Soloon (R-S) είναι μη δυαδική κυκλική κωδικοποίηση. Το γενετήριο πολυώνυμο έχει συντελεστές όχι πλέον 0 και, αλλά στοιχεία του σώματος GF( ). Έτσι, τα μηνύματα και οι κωδικολέξεις είναι επίσης εκφρασμένα ως διανύσματα στο GF( ). Η μετατροπή τους από και σε δυαδική μορφή γίνεται με βάση την πολυωνυμική παράσταση των στοιχείων του GF( ) στο GF(). Κατά τα άλλα, έχουν την ίδια αλγεβρική δομή όπως οι κώδικες BCH, όντας στην πραγματικότητα μια υποκατηγορία τους. Παράμετροι κωδίκων Reed-Soloon Μήκος κωδικολέξης n = - Αριθμός στοιχείων ισοτιμίας n-k =t Ελάχιστη απόσταση dn =t+ Πρόκειται, λοιπόν, για κυκλικούς κώδικες ( -, --t), με δυνατότητα διόρθωσης t λαθών. Παράδειγμα 9..: Με γενετήριο πολυώνυμο g ( πρωταρχικό στοιχείο του GF( ) με πρωταρχικό πολυώνυμο το κωδικοποιηθεί κατά Reed-Soloon (7,) το μήνυμα =( 0 0 0 )., όπου α, να Απάντηση: Οι παράμετροι του κώδικα είναι n=7= -, k==n-t, δηλαδή =, t=. Εκφράζεται, καταρχήν, το μήνυμα με στοιχεία του σώματος GF( ), σύμφωνα με τον πίνακα του Πλαισίου 9.8: (0 0 0) ( ). Το αντίστοιχο πολυώνυμο, (, πολλαπλασιάζεται με το γενετήριο πολυώνυμο g(. Μετά τις πράξεις, μετατρέπονται οι συντελεστές [στοιχεία του GF( )] και πάλι σε δυαδική μορφή. Εναλλακτικά, για κωδικοποίηση σε συστηματική μορφή, υπολογίζεται το nk b( ( od g(, οπότε το κωδικό πολυώνυμο είναι το nk u( b( (. Τέλος, μετατρέπονται και πάλι οι συντελεστές του u( σε δυαδική μορφή (για να ακολουθήσει σειριοποίηση και εκπομπή). Στη συνέχεια του παραδείγματος ακολουθείται κωδικοποίηση σε συστηματική μορφή: 5 ( ( )( ) 5 Επομένως, b ( και u ( ή ( 0 u ) (00 00 000 00 0 0 0 ) 0

9- Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Παράσταση δύναμης Πολυωνυμική παράσταση Δυαδική παράσταση Δεκαδική παράσταση Ελάχιστο πολυώνυμο 0 0 000 0 α 0 (=α 7 ) 00 + α 00 ++ α α 00 ++ α α+ 0 + + α α +α 0 ++ α 5 α +α+ 7 + + α α + 0 5 + + Πλαίσιο 9.8: Στοιχεία του σώματος GF( ) με πρωταρχικό πολυώνυμο ++ 9.. Προσδιορισμός γενετηρίου πολυωνύμου και κωδικοποίηση R-S σε συστηματική μορφή Το γενετήριο πολυώνυμο του προηγούμενου παραδείγματος γράφεται g ( ( )( )( )( ), έχει δηλαδή ρίζες τις τέσσερις πρώτες δυνάμεις του πρωταρχικού στοιχείου α στο σώμα GF( ). Γενικά, για έναν κώδικα R- S ( -, --t), το γενετήριο πολυώνυμο (βαθμού t) έχει ως ρίζες τις πρώτες t δυνάμεις ενός πρωταρχικού στοιχείου του σώματος GF( ). Αυτή είναι η βάση της αλγεβρικής δομής των κωδίκων R-S. Δεν πρέπει να ξεχνάμε ότι το γενετήριο n πολυώνυμο κάθε κυκλικού κώδικα (n,k) διαιρεί το διώνυμο (εδώ ίσο με ). Όπως και για τους δυαδικούς κώδικες BCH, επιλέγοντας το γενετήριο πολυώνυμο με ρίζες διακριτές δυνάμεις ενός πρωταρχικού στοιχείου του σώματος GF( ), εξασφαλίζουμε την παραπάνω ιδιότητα: t t g ( ( )( )...( ) g g g... g, g GF( ) (9.7) 0 Η κωδικοποίηση R-S σε συστηματική μορφή γίνεται, όπως προαναφέρθηκε, με τον ίδιο τρόπο όπως και των λοιπών κυκλικών κωδίκων, με τη διαφορά ότι όλες οι πράξεις γίνονται εδώ στο σώμα GF( ). Τα bts του μηνύματος ομαδοποιούνται σε -άδες, και κάθε -άδα θεωρείται η δυαδική μορφή ενός στοιχείου του σώματος GF( ). Αν ( είναι το αντίστοιχο πολυώνυμο μηνύματος με συντελεστές τα παραπάνω υπολογισθέντα στοιχεία, τότε το κωδικό πολυώνυμο [με συντελεστές πάντα στο GF( )] υπολογίζεται ως: nk nk u( b( (, b( ( od g(. (9.8) Η παραπάνω κωδικοποίηση υλοποιείται με κύκλωμα παρόμοιο του Πλαισίου 9.5, με τη διαφορά ότι κάθε θέση του καταχωρητή ολίσθησης φιλοξενεί ένα στοιχείο του GF( ), αντί για ένα bt, οι δε συντελεστές του κυκλώματος ανάδρασης, καθώς και οι t

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-7 αντίστοιχες πράξεις, είναι επίσης στο ίδιο σώμα. Στο Πλαίσιο 9.9 δίνεται κύκλωμα υλοποίησης του συστηματικού κώδικα R-S (n,n-t). Διακόπτης g g g t- b0 b bt- καταχωρητής ολίσθησης n-k=t θέσεων Διακόπτης είσοδος t ( έξοδος u( Πλαίσιο 9.9: Κωδικοποιητής συστηματικού κώδικα R-S (n,n-t). Όλες οι πράξεις (πολλαπλασιασμοί, προσθέσεις, ολισθήσεις) γίνονται στα στοιχεία του GF( ) Πρέπει να παρατηρήσουμε ότι, όπως συμβαίνει με όλους τους κυκλικούς κώδικες (ανεξάρτητα από το αν είναι ή όχι σε συστηματική μορφή), τα κωδικά πολυώνυμα είναι πολλαπλάσια του γενετηρίου πολυωνύμου g(. Πράγματι, από τη σχέση (9.8) είναι: nk u( b( ( b( [ q( g( b( ] q( g(. Έτσι, όλες οι ρίζες του g( είναι και ρίζες κάθε κωδικού πολυωνύμου u( και επομένως: u ( ) 0,,,..., t. (9.9) Π.χ. για το κωδικό πολυώνυμο του παραδείγματος της προηγούμενης παραγράφου είναι: u( ) 5 5 ( ) ( ) ( ) 0. 5 0 Αποδεικνύεται επίσης ότι η ελάχιστη απόσταση ενός κώδικα R-S είναι ακριβώς t+, από όπου προκύπτει η δυνατότητα διόρθωσης t λαθών. 9.. Αποκωδικοποίηση Reed-Soloon Η αποκωδικοποίηση R-S (όπως και οποιουδήποτε μη δυαδικού κώδικα BCH) ακολουθεί τα ίδια βήματα με την αποκωδικοποίηση των δυαδικών κωδίκων BCH. Έστω n u ( u0 u... u n η κωδικολέξη που αποστέλλει ο πομπός και n r( r0 r... rn u( e( αυτή που φθάνει στον δέκτη, δηλαδή n αλλοιωμένη κατά το σφάλμα e ( e0 e... e n, με e r u στοιχεία και αυτά του σώματος GF( ). Το πολυώνυμο σφάλματος e ( έχει μη μηδενικούς όρους στις θέσεις που έχουν συμβεί σφάλματα, υποθέτουμε δε ότι ο αριθμός αυτών των σφαλμάτων δεν υπερβαίνει τον t [=(n-k)/, για την περίπτωση R-S].

9-8 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Όπως και για τους λοιπούς τμηματικούς κώδικες που είδαμε μέχρι τώρα, κριτήριο για την εμφάνιση σφαλμάτων είναι μη μηδενικά σύνδρομα, τα οποία εδώ υπολογίζονται ως: Το -οστό σύνδρομο: S r ( ) e( ),,,..., t. Όταν δεν υπάρχουν σφάλματα, επειδή οι t πρώτες δυνάμεις του πρωταρχικού στοιχείου GF( ) είναι ρίζες του γενετηρίου πολυωνύμου του κώδικα, τα ως άνω σύνδρομα θα είναι μηδενικά. Το πρόβλημα συνίσταται στον υπολογισμό των θέσεων και των τιμών των σφαλμάτων από τις t παραπάνω εξισώσεις (για δυαδικούς BCH κώδικες, αρκεί προφανώς μόνο ο υπολογισμός των θέσεων των σφαλμάτων). Υποθέτουμε ότι υπάρχουν ν ( t) σφάλματα στις θέσεις του πολυωνύμου e(, και συμβολίζουμε με σφαλμάτων. Οι εξισώσεις των συνδρόμων γίνονται: l j l j, j,... τους λεγόμενους αριθμούς εντοπισμού j S r( ) e e... e S S t r( t j j j t j j e j t j r( ) e e... e ) e j... e j t (9.0) και απαρτίζουν ένα μη γραμμικό σύστημα t εξισώσεων με t αγνώστους (t θέσεις και t τιμές σφάλματος). Κάθε αλγόριθμος επίλυσης αυτού του συστήματος ως προς τους αριθμούς εντοπισμού σφαλμάτων βl, και των αντίστοιχων τιμών σφαλμάτων,, είναι αλγόριθμος αποκωδικοποίησης R-S. e jl Ορίζουμε επίσης τα εξής δύο πολυώνυμα: Πολυώνυμο εντοπισμού σφαλμάτων: ( ( (...(... (9.) Πολυώνυμο υπολογισμού σφαλμάτων: ( e j (, (9.) p p k, k p k τα οποία ικανοποιούν τη λεγόμενη εξίσωση-κλειδί (key equton) ( ( ) t S S S S... t. (9.) Κάθε αλγόριθμος επίλυσης της εξίσωσης αυτής ως προς ( και ( είναι αλγόριθμος αποκωδικοποίησης R-S, αφού: τα αντίστροφα των ριζών του πολυωνύμου ( δίνουν τους αριθμούς εντοπισμού σφαλμάτων ( l ), ενώ για τις ίδιες τις τιμές των σφαλμάτων μπορεί να αποδειχτεί ότι:

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9-9 e jl ( l ), όπου '( j ( k (9.) '( ) l j k, k j 9.. Αποκωδικοποίηση R-S με τον αλγόριθμο υπολογισμού ΜΚΔ του Ευκλείδη ([SUGI975], [SHAN007]) ( και ( Τα πολυώνυμα προκύπτουν στα ενδιάμεσα στάδια υπολογισμού του ΜΚΔ με τον αλγόριθμο του Ευκλείδη, ο οποίος δείχνεται στο παρακάτω ένθετο. Συγκεκριμένα: Για ( t και ( S S S... S t t, θα πάρουμε: ( t (, ( (, (9.5) j j όπου j η πρώτη τιμή του δείκτη στον επαναληπτικό αλγόριθμο του Ευκλείδη για την οποία ο βαθμός του πέφτει κάτω από το t, το δε λ είναι τέτοιο ώστε ο σταθερός όρος του ( j ( να γίνει, δηλαδή σ0=. Πρόκειται για έναν επαναληπτικό αλγόριθμο. Έστω ότι βαθμός(α() βαθμός(β(). Σε κάθε στάδιο της επανάληψης εμπλέκονται πολυώνυμα: s (, t(, (, (. Τα δύο πρώτα είναι οι πολλαπλασιαστές του -οστού σταδίου, ενώ τα δύο τελευταία είναι το υπόλοιπο και το πηλίκο της διαίρεσης των ( ) και ( ). Οι σχέσεις που ισχύουν σε κάθε στάδιο είναι οι εξής: ( ( ( (, βαθμός( ( )<βαθμός( ( ) ) ( s ( ( s ( ( t ( ( t ( s t Αρχικοποίηση: s ( t ( 0 s0( 0 t ( 0( ( Τρεις ιδιότητες ισχύουν σε όλα τα στάδια της επανάληψης:. s ( ( t ( ( ( ) ( ( b. βαθμός( s ( )+βαθμός( ( ) )=βαθμός( ( ) c. βαθμός( t ( )+βαθμός( ( )=βαθμός( ( ) Πέρας αλγορίθμου εύρεσης ΜΚΔ και αντιστρόφου: Αν ( 0, ΜΚΔ(α(, β()= ( ) και δεν υπάρχει το β - ( od α( Αν (, ΜΚΔ(α(, β()= και β - ( od α(=t ( Πλαίσιο 9.0: O Αλγόριθμος του Ευκλείδη για την εύρεση του ΜΚΔ πολυωνύμων α(, β( και του αντιστρόφου β - ( od α(, [αν ΜΚΔ(α(, β()=]

9-0 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο 9.. Αποκωδικοποίηση R-S με μεθόδους αυτοπαλινδρόμησης([sklar0], 8..) Το σύστημα εξισώσεων (9.0) μπορεί να επιλυθεί κατ αρχήν ως προς τους αριθμούς εντοπισμού σφαλμάτων,, με τεχνικές μοντέλων αυτοπαλινδρόμησης l (utoregresson), όπου τα πρώτα t σύνδρομα χρησιμοποιούνται για την πρόβλεψη του επόμενου συνδρόμου. Με βάση τις τεχνικές αυτές, οι συντελεστές του πολυωνύμου εντοπισμού σφαλμάτων, (, μπορούν να προσδιοριστούν με την επίλυση του συστήματος: S S St t St S S S t t S t S S S S t t t t (9.) και τα l ως τα αντίστροφα των ριζών του ( στο σώμα GF( ), σύμφωνα με την τυποποίηση της προηγούμενης παραγράφου. Στη συνέχεια, οι τιμές των σφαλμάτων,, μπορούν να υπολογιστούν με την επίλυση οποιουδήποτε υποσυστήματος t e jl εξισώσεων από τις (9.0), όπως στο παράδειγμα 9.. που ακολουθεί. 9..5 Επεξεργασμένα παραδείγματα αποκωδικοποίησης και διόρθωσης R-S Παράδειγμα 9.. Έστω ότι με τον κώδικα R-S(7,) του παραδείγματος 9.. (αρχή της παραγράφου 9.) στέλνουμε την κωδικολέξη 0 u ) (00 00 000 00 0 0 0 ) ( 0 και ότι αυτή αλλοιώνεται κατά τη μετάδοση κατά το λάθος e 000 00 000 000 0 000 000 ), ( 0 0 0 0 0 λαμβάνουμε δηλαδή τη λέξη r 00 0 000 00 0 0 0 ). ( 0 Σε πολυωνυμική μορφή είναι: e (, υπολογίζονται ως: S S r r( r( r( 5 ( S r( ) S ) ) ) 7 7 5 u (, 0 e( ) e( e( 5 5 9 5 5 ) ) e(. Τα t(=) σύνδρομα )

Κεφάλαιο 9: Κωδικοποίηση Διαύλου (chnnel codng) 9- Αποκωδικοποίηση/διόρθωση με τον αλγόριθμο υπολογισμού ΜΚΔ του Ευκλείδη Η εφαρμογή του αλγορίθμου ΜΚΔ του Ευκλείδη για το συγκεκριμένο παράδειγμα δείχνεται στον πίνακα του ακόλουθου Πλαισίου 9.. Βήμα s ( t ( υ ( φ ( - 0 t = 0 0 S(= 5 + + 5 + t ods(=α +α 5 + + + + α + Πλαίσιο 9.: Αποκωδικοποίηση R-S [παράδειγμα κώδικα (7,)], χρήση αλγόριθμου ΜΚΔ του Ευκλείδη Μετά την αρχικοποίηση (δύο πρώτες σειρές του πίνακα), σε κάθε βήμα (=,,...) κάνουμε τη διαίρεση των πολυωνύμων / ( ) παίρνοντας το πηλίκο, και το υπόλοιπο ( t. ( Παρατηρούμε ότι βαθμός ( ( ) )=<t=. (. Στη συνέχεια υπολογίζουμε (επί της ίδιας σειράς) τα ( s Επομένως ( t ( ( ), και ( ( με κατάλληλο λ, τέτοιο ώστε σ0=. Προφανώς εδώ λ=α (στο GF( ), 7 =), το οποίο δίνει: 5 5 (, ( -------------------------------------- Για να βρούμε τις ρίζες του πολυωνύμου σ(, δοκιμάζουμε διαδοχικά τις τιμές,,,..., : () ( ) ( ( ( ( ( 5 ) ) ) ) ) 5 7 8 5 7 0 9 5 7 0 0 0 0 0 0 Είναι λοιπόν ( ) ( ) 0. Τα αντίστροφα των ριζών υποδεικνύουν τις θέσεις των σφαλμάτων: ( ), ( ). Έχουμε λοιπόν σφάλματα στους συντελεστές του και του του κωδικού πολυωνύμου (όπως πράγματι τα κατασκευάσαμε). ( και