ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΧΕ ΙΑΣΜΟΥ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Φοιτήτριας του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών ΧΡΥΣΟΥΛΑ ΣΩΤΗΡΙΟY ΚΑΪΑ Α.Μ.: 5635 ΥΛΟΠΟΙΗΣΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗ LDPC ΜΕ ΤΕΧΝΙΚΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗΣ SISO Επιβλέπων: Βασίλειος Παλιουράς, Επίκουρος Καθηγητής Ν ο Πάτρα, Ιούλιος 2011
ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η διπλωµατική εργασία µε θέµα: ΥΛΟΠΟΙΗΣΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗ LDPC ΜΕ ΤΕΧΝΙΚΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗΣ SISO της φοιτήτριας του Τµήµατος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστηµίου Πατρών: ΧΡΥΣΟΥΛΑΣ ΣΩΤΗΡΙΟΥ ΚΑΪΑ (Α.Μ. 5635) Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 05/06/2011 Ο Επιβλέπων Ο Διευθυντής του Τομέα Βασίλειος Παλιουράς Επίκουρος Καθηγητής Ευθύμιος Χούσος Καθηγητής
Αριθµός ιπλωµατικής Εργασίας: ΤΙΤΛΟΣ: ΥΛΟΠΟΙΗΣΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗ LDPC ΜΕ ΤΕΧΝΙΚΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗΣ SISO Φοιτήτρια: Επιβλέπων: Χρυσούλα Κάια του Σωτηρίου Βασίλειος Παλιουράς - 5 -
- 6 -
Ευχαριστίες Στο σηµείο αυτό θα ήθελα να εκφράσω τις θερµές µου ευχαριστίες στον επιβλέποντα καθηγητή µου κύριο Βασίλειο Παλιουρά και στην οµάδα των υποψήφιων διδακτόρων που επιβλέπει, οι οποίοι µε τη µεθοδική τους καθοδήγηση, τις συµβουλές, τις παρατηρήσεις και τις εξειδικευµένες επιστηµονικές τους γνώσεις συνέβαλαν καθοριστικά στην εκπόνηση της παρούσας διπλωµατικής εργασίας, που δε θα ήταν δυνατή χωρίς την πολύτιµη βοήθειά τους. Ακόµη, θα ήθελα να εκφράσω την ευγνωµοσύνη µου στους γονείς µου για την έµπρακτη ηθική και υλική τους υποστήριξη καθ όλη τη διάρκεια των προπτυχιακών µου σπουδών και να τους αφιερώσω τη συγκεκριµένη εργασία. Τέλος, ευχαριστώ την αδερφή µου και τους φίλους µου για την κατανόηση και την ψυχολογική στήριξη κατά τη διάρκεια της διεξαγωγής της διπλωµατικής εργασίας. - 7 -
Περιεχόμενα Ευχαριστίες... 7 Περίληψη... 11 Κεφάλαιο 1... 13 1.1 Τηλεπικοινωνιακό σύστημα... 13 1.1.1 Το µαθηµατικό µοντέλο ενός τηλεπικοινωνιακού συστήµατος... 13 1.1.2 Θεώρηµα Shannon... 18 1.2Ανίχνευση και διόρθωση λαθών... 18 Κεφάλαιο 2... 21 2.1 Γραμμικοί κώδικες δομής... 21 2.2 Κώδικες LDPC... 21 2.2.1 Αναπαράσταση των LDPC κωδικών µε βάση τον πίνακα ελέγχου ισοτιµίας H... 22 2.2.2 Γραφική αναπαράσταση ενός κώδικα LDPC... 23 2.3 Αλγόριθμοι αποκωδικοποίησης LPDC κωδικών... 24 2.3.1 Αλγόριθµος Sum-Product στο λογαριθµικό πεδίο... 25 2.3.2 Αλγόριθµος Min Sum στο λογαριθµικό πεδίο... 27 2.4 Αποκωδικοποίηση σε επίπεδα για LDPC κώδικες... 28 2.4.1 Αποκωδικοποίηση σε επίπεδα χωρίς σύγκρουση δεδοµένων... 29 Κεφάλαιο 3... 33 3.1 Αποκωδικοποίηση με Trellis... 33 3.1.1 Κώδικες που αναπαρίστανται µε διάγραµµα Trellis... 33 3.1.2 Κώδικες ελέγχου ισοτιµίας (Single parity check)... 35 3.1.3 LDPC κώδικες µε αναπαράσταση διαγράµµατος trellis... 37 3.2 Αλγόριθμοι αποκωδικοποίησης με Trellis... 39 3.2.1 Αποκωδικοποίηση SISO... 39 3.2.2 Ο αλγόριθµος MAP... 40 3.2.3 Ο αλγόριθµος Log MAP... 43 Κεφάλαιο 4... 47 4.1 Υλοποίηση... 47 4.1.1 Σχεδιασµός Μοντέλου SISO για LDPC αποκωδικοποίηση... 47 4.1.2 Περιγραφή του αλγόριθµου αποκωδικοποίησης MAP για layered LDPC κώδικες... 51 Κεφάλαιο 5... 57-8 -
5.1 Εξομοιώσεις... 57 5.1.1 Πειραµατικές θεωρήσεις... 57 5.1.2 Αποτελέσµατα Εξοµοίωσης... 58 Κεφάλαιο 6... 67 Συμπεράσματα... 67 Βιβλιογραφία... 69 Παράρτημα Α... 71-9 -
- 10 -
Περίληψη υο βασικές κατηγορίες κωδικών ελέγχου και διόρθωσης σφαλµάτων παρουσιάζουν µεγάλο ενδιαφέρον στις τηλεπικοινωνίες: οι low density parity check κώδικες (LDPC), που ανήκουν στη κατηγορία των κωδικών δοµής και οι turbo κώδικες, που ανήκουν στη κατηγορία των συνελικτικών κωδικών. Και οι δυο κώδικες επιτυγχάνουν απόδοση κοντά στο θεωρητικό µέγιστο. Όµως η σχεδίαση των αποκωδικοποιητών τους διαφέρει στο ότι είναι στο ότι είναι στενά συνδεδεµένος µε τους περιορισµούς που εισάγει η ίδια του η δοµή, δηλαδή ο πίνακας ελέγχου ισοτιµίας του. Όµως η επαναληπτική διαδικασία αποκωδικοποίησης του LPDC και του Turbo κώδικα παρουσιάζει αναλογίες σε δυο κύρια βήµατα. Πρώτον, και στους δυο γίνονται υπολογισµοί ανεξάρτητων µηνυµάτων αναλόγων της εκ των υστέρων πιθανότητας, και δεύτερον στην επικοινωνία των µηνυµάτων αυτών. Σε αυτή τη διπλωµατική εργασία υλοποιήθηκε ένας LDPC αποκωδικοποιητής που χρησιµοποιεί τις βασικές αρχές της turbo αποκωδικοποίησης, εισάγοντας στα χαρακτηριστικά της αποκωδικοποίησης του το διάγραµµα trellis. O maximum a posteriori probability (MAP) αλγόριθµος χρησιµοποιείται σαν µια γέφυρα µεταξύ των LDPC και Turbo κωδικών. Οι LDPC κώδικες αντιµετωπίζονται ως µια αλυσιδωτή σύνδεση υπέρ κωδικών, όπου ο κάθε υπέρ κώδικας έχει πλέον µια πιο απλή δοµή trellis ώστε ο MAP αλγόριθµος να µπορεί να εφαρµοστεί. Για την αξιοπιστία της υλοποίησης µετρήθηκε η απόδοση του αλγορίθµου τόσο ως προς το ρυθµό εµφάνισης λαθών όσο και προς την ταχύτητα σύγκλισης και έγινε σύγκριση µε άλλες υλοποιήσεις κωδικών LDPC, όπως η normalized min sum (NMS) αποκωδικοποίηση. - 11 -
- 12 -
Κεφάλαιο 1 1.1 Τηλεπικοινωνιακό σύστημα Ο όρος τηλεπικοινωνίες καλύπτει γενικά το στόχο της αποστολής ενός µηνύµατος από ένα σηµείο σε ένα άλλο καθώς και της επιβεβαίωση της πλήρους ορθής και κατανοητής λήψης του από έναν παραλήπτη. Παρά την απλή αυτή αναφορά πίσω από τις επικοινωνίες κρύβεται πλήθος από θεωρίες και τεχνικές που ασχολούνται µε την αποστολή του παραπάνω µηνύµατος. Η απαίτηση για αποδοτικά και αξιόπιστα ψηφιακά συστήµατα επικοινωνίας που έχει αυξηθεί τα τελευταία χρόνια, έχει στρέψει το ενδιαφέρον στην επίτευξη επικοινωνιών µε όσο το δυνατόν λιγότερα λάθη. Ο έλεγχος των λαθών δίνει τη δυνατότητα αξιοποίησης ταχύτατων δικτύων δεδοµένων για την ανταλλαγή, την επεξεργασία και την αποθήκευση ψηφιακής πληροφορίας. 1.1.1 Το µαθηµατικό µοντέλο ενός τηλεπικοινωνιακού συστήµατος Τα συστήµατα ηλεκτρικών επικοινωνιών έχουν σχεδιαστεί για να στέλνουν µηνύµατα ή πληροφορία από µια πηγή που γεννά τα µηνύµατα σε έναν ή περισσότερους προορισµούς [11]. Το Σχήµα 1. 1 περιγράφει τις θεµελιώδεις βασικές δοµές, που συγκροτούν ένα ψηφιακό τηλεπικοινωνιακό σύστηµα. Η πληροφορία που γεννάται από την πηγή µπορεί να έχει µορφή φωνής (πηγή οµιλίας), εικόνας (πηγή - 13 -
εικόνας) ή απλώς κειµένου σε κάποια συγκεκριµένη γλώσσα. Ένα χαρακτηριστικό οποιασδήποτε πηγής παραγωγής πληροφορίας είναι ότι η έξοδος της πηγής περιγράφεται µε τη βοήθεια πιθανοτήτων, δηλαδή, η έξοδος της πηγής δεν είναι νοµοτελειακή, διαφορετικά δε θα χρειαζόταν η µετάδοση του µηνύµατος. Ένας µετατροπέας είναι συνήθως αναγκαίος για να µετατρέπει την έξοδο της πηγής σε ηλεκτρικό σήµ µα κατάλληλο για µετάδοση. Για παράδειγµα, για πηγή ακουστικού σήµατος χρησιµοποιείται ένα µικρόφωνο για τη µετατροπή σε ηλεκτρικό σήµα, ενώ για πηγή εικόνας χρησιµοποιείται µια video-camera. Στον προορισµό χρειάζεται µια αντίστοιχη αντιστροφή µετατροπή των ηλεκτρικών σηµάτων σε κατάλληλη για χρήση µορφή, για παράδειγµα ήχο, εικόνα. Η καρδιά του συστήµατος επικοινωνίας αποτελείται από τρία βασικά µέρη, τον ποµπό, το κανάλι και το δέκτη. Παρακάτω περιγράφονται οι λειτουργίες που επιτελούν τα σήµατα αυτά. Σχήµα 1. 1 ιάγραµµα λειτουργικών βαθµίδων ενός συστήµατος επικοινωνίας. Α) Ο ποµπός. Ο ποµπός µετατρέπει το ηλεκτρικό σήµα σε µια µορφή κατάλληλη για µετάδοση µέσα από το φυσικό κανάλι ή το µέσο διάδοσης. Αποτελείται από τον κωδικοποιητή πηγής, τον κωδικοποιητή διαύλου, και το διαµορφωτή όπως φαίνεται στο Σχήµα 1. 2. - 14 -
Σχήµα 1. 2 Ανάλυση τµηµάτων που αποτελείται ο ποµπός ενός τηλεπικοινωνιακού συστήµατος Ο κωδικοποιητής πηγής µετατρέπει τα µηνύµατα σε διακριτού χρόνου ακολουθίες ψηφιακών συµβόλων, των οποίων ο µέσος όρος του µήκους των ακολουθιών ανά πρότυπο της πηγής δε µπορεί να είναι µικρότερο της πηγής [11]. Στην πραγµατικότητα, όλες οι πήγες παράγουν µηνύµατα που περιέχουν κάποιου είδους πλεονασµό. Ο στόχος του κωδικοποιητή πηγής είναι να αναπαραστήσει τα µηνύµατα της πηγής από ένα ελάχιστο αριθµό ψηφιακών συµβόλων, να αφαιρέσει τελείως τον πλεονασµό, και να οδηγήσει σε µια αποτελεσµατική περιγραφή της πηγής. Η διαδικασία αυτή αναφέρεται και ως συµπίεση δεδοµένων (data compression). Η ακολουθία, που προκύπτει µετά την διαδικασία της κωδικοποίησης της πηγής, είναι στατιστικώς ανεξάρτητη και αποτελείται από ισοδύναµα σύµβολα τα οποία αν και δεν περιέχουν κάποιου είδους πλεονασµού, επιτρέπουν την αναδηµιουργία της πηγής. Αν ο κωδικοποιητής πηγής παράγει bits ανά δευτερόλεπτο,, το µέγεθος καλείται ρυθµός δεδοµένων (data rate) [11]. Ο κωδικοποιητής διαύλου, µεγιστοποιεί την αξιοπιστία της µετάδοσης λαµβάνοντας υπ όψιν τους περιορισµούς της ισχύος του σήµατος µετάδοσης, του εύρους ζώνης του συστήµατος και της πολυπλοκότητα του κυκλώµατος. Ο κωδικοποιητής διαύλου επανεισάγει κάποιον πλεονασµό στην ακολουθία των δεδοµένων, που παρέχει ο κωδικοποιητής πηγής. Ο πλεονασµός αυτός περιέχει µια δοµή η οποία επιτρέπει και διευκολύνει στην απ ευθείας ανίχνευση και πιθανόν τη διόρθωση σφαλµάτων, εφόσον η παραµόρφωση δεν είναι τόσο µεγάλη. Αυτό οδηγεί σε χαµηλότερο ρυθµό µετάδοσης δεδοµένων και στην χρήση µεγαλύτερου εύρους ζώνης σε σχέση µε τη µετάδοση χωρίς κωδικοποίηση. Ο κωδικοποιητής της πηγής είναι µια διάταξη διακριτής-εισόδου/διακριτής-εξόδου που ορίζει µια µία-προς-µία - 15 -
απεικόνιση των ακολουθιών της πηγής σε κωδικά σύµβολα. Συγκεκριµένα αναθέτει σε κάθε πλαίσιο (frame) ψηφίων ένα πλαίσιο µεγαλύτερου µήκους αποτελούµενο από ψηφία που καλείται κωδική λέξη (codeword). Ο κώδικας που παράγει αυτές της κωδικές λέξεις χαρακτηρίζεται από τον λόγο = / µε <, ο οποίος καλείται ρυθµός κώδικα (code rate). Ο διαµορφωτής προσαρµόζει τα ψηφιακά δεδοµένα στα ιδιαίτερα χαρακτηριστικά του φυσικού διαύλου. Σε αντίθεση µε τη διακριτή φύση της εξόδου του κωδικοποιητή διαύλου, οι δίαυλοι µετάδοσης είναι αναλογικής φύσεως και αποδέχονται µόνο αναλογικές κυµατοµορφές στην είσοδο τους. Εποµένως, ο διαµορφωτής ταιριάζει τα ψηφιακά δεδοµένα µε κατάλληλες συναρτήσεις συνεχούς χρόνους καλούµενες κυµατοµορφές διαύλου [11]. Η διαµόρφωση µπορεί να πραγµατοποιηθεί µεταβάλλοντας το πλάτος, τη φάση ή τη συχνότητα µιας ηµιτονοειδής κυµατοµορφής, που καλείται φορέας (carrier). Κατά την παρούσα διπλωµατική εργασία θεωρείται binary-phase-shift-keying (BPSK) διαµόρφωση, όπου ουσιαστικά γίνεται αντιστοίχιση του 0 + 1 και του 1 1. B) Κανάλι. Το κανάλι επικοινωνίας είναι το φυσικό µέσο που χρησιµεύει για να στέλνεται το σήµα από τον ποµπό στο δέκτη. Για την ασύρµατη µετάδοση το κανάλι είναι συνήθως η ατµόσφαιρα (ελεύθερος χώρος). Από την άλλη πλευρά τα τηλεφωνικά κανάλια χρησιµοποιούν συνήθως ποικιλία φυσικών µέσων, στα οποία συµπεριλαµβάνονται ενσύρµατες γραµµές, καλώδια οπτικών ινών και ασύρµατες (µικροκυµατικές) ραδιοζεύξεις. Οποιαδήποτε και αν είναι το φυσικό µέσο µετάδοσης του σήµατος, το κύριο χαρακτηριστικό είναι ότι το µεταδιδόµενο σήµα αλλοιώνεται κατά τυχαίο τρόπο από µια ποικιλία πιθανών µηχανισµών. Η πιο συνήθης µορφή υποβάθµισης του σήµατος προέρχεται από έναν προσθετικό θόρυβο που γεννιέται στην είσοδο του δέκτη, όπου γίνεται η ενίσχυση του σήµατος. Ο θόρυβος αυτός συχνά καλείται θερµικός θόρυβος και οφείλεται κυρίως στην πρώτη βαθµίδα του δέκτη. Τόσο οι προσθετικές όσο και η µη προσθετικές παραµορφώσεις του σήµατος χαρακτηρίζονται συνήθως ως τυχαία φαινόµενα και περιγράφονται µε στατικό τρόπο. Η επίδραση των παραµορφώσεων του σήµατος πρέπει να ληφθεί υπόψη κατά τη σχεδίαση του συστήµατος επικοινωνίας [11]. - 16 -
Χαρακτηριστικό είναι το θεµελιώδες µοντέλο του διαύλου Προσθετικού Λευκού Γκαουσσιανού Θορύβου (Additive White Gaussian Noise - AWGN). Η µεταδιδόµενη πληροφορία µεταβάλλεται µε την πρόσθεση µιας τυχαίας µεταβλητής θορύβου µηδενικού µέσου και Γκαουσσιανής κατανοµής [11]. Γ) έκτης. Η λειτουργία του δέκτη σκοπεύει στην ανάκτησηη του σήµατος µηνύµατος που περιέχεται στο λαµβανόµενο σήµα. Αποτελείται από τον αποδιαµορφωτή, τον αποκωδικοποιητή διαύλου και τον αποκωδικοποιητή πηγής, όπως φαίνεται στο Σχήµα 1. 3. Εκτός από την κύρια λειτουργία της αποδιαµόρφωσης τους σήµατος, ο δέκτης εκτελεί επιπλέον έναν αριθµό περιφερειακών λειτουργιών µεταξύ των οποίων το φιλτράρισµα του λαµβανόµενου σήµατος και τον περιορισµό της επίδρασης του θορύβου. Ο αποδιαµορφωτής δέχεται την παραµορφωµένη από τον θόρυβο κυµατοµορφή, στην πλευρά του λήπτη.. Ο αποδιαµορφωτής µετατρέπει τη ληφθείσα αναλογική κυµατοµορφή σε µια ακολουθία από εκτιµήσεις των µεταδιδοµ µένων κωδικών συµβόλων. Οι εκτιµήσεις αυτές είναι ακόµα αναλογικής φύσεως. Ο αποκωδικοποιητής διαύλου ελαχιστοποιεί τις παραµορφώσεις που εισάγει ο θόρυβος του διαύλου. Παράγει εκτιµήσεις των απεσταλµένων δεδοµένων βασιζόµενος στον πλεονασµό και στη δοµή των bit ισοτιµίας, που παρέχει ο κωδικοποιητής διαύλου, καθώς επίσης λαµβάνει υπ όψιν του τα χαρακτηριστικά του διαύλου [11]. Ο αποκωδικοποιητής πηγής βασιζόµενος στον κανόνα της κωδικοποίησης που τελεί ο κωδικοποιητής πηγής, παρέχει µια εκτίµηση της εξόδου της πηγής και παραδίδει τα δεδοµένα στον δέκτη [11]. Σχήµα 1. 3 έκτης Ανάλυση τµηµάτων που αποτελείται ο ποµ µπός ενός τηλεπικοινωνιακού συστήµατος - 17 -
1.1.2 Θεώρηµα Shannon Η χωρητικότητα διαύλου ορίζεται ως ο µέγιστος ρυθµός αξιόπιστης µετάδοσης πληροφορίας σε ένα δίαυλο. Η σηµασία της έννοιας της χωρητικότητας διαύλου προέρχεται από ένα πολύ σηµαντικό θεώρηµα που ονοµάζεται θεώρηµα χωρητικότητας και οφείλεται στον Shannon [11]. Ο Shannon απέδειξε ότι η πιθανότητα λανθασµένης µετάδοσης δεδοµένων µέσω ενός τηλεπικοινωνιακού καναλιού που έχει θόρυβο µπορεί να περιοριστεί σε οποιοδήποτε επιθυµητό επίπεδο, υπό την προϋπόθεση ότι ο ρυθµός µετάδοσης της πληροφορίας δεν υπερβαίνει σε όγκο ένα συγκεκριµένο όριο. Το όριο ταχύτητας ροής µετριέται σε ψηφία ανά δευτερόλεπτο ή / και είναι χαρακτηριστικό µέγεθος του καναλιού. Είναι φανερό, εντούτοις, ότι στέλνοντας άφθονη πληροφορία µπορεί να µειωθεί η πιθανότητα λάθους. Με αυτόν τον τρόπο χρησιµοποιώντας κατάλληλη κωδικοποίηση της πληροφορίας, τα λάθη που εισάγονται από ένα κανάλι µε θόρυβο µπορούν να µειωθούν σε οποιοδήποτε επιθυµητό επίπεδο, χωρίς να µειωθεί ο ρυθµός µετάδοσης δεδοµένων. Με αποτελέσµατα το ενδιαφέρον να έχει στραφεί στην ανακάλυψη αποδοτικών µεθόδων για την κωδικοποίηση και αποκωδικοποίηση για τον έλεγχο των λαθών σε περιβάλλοντα µε θόρυβο. 1.2 Ανίχνευση και διόρθωση λαθών Από τη θεωρία πληροφορίας γνωρίζουµε, ότι όποια και αν είναι η πιθανότητα λάθους κατά τη µετάδοση δεδοµένων, υπάρχει τρόπος κατασκευής κωδικών διόρθωσης λαθών, οι οποίοι έχουν πολύ µικρή πιθανότητα αποτυχίας. Αυτό, όµως, προϋποθέτει την πρόσθεση σηµαντικού ποσού επιπρόσθετων δεδοµένων πλεονασµού στα αρχικά δεδοµένα, το οποίο δεν είναι πρακτικό, όταν η πιθανότητα λάθους είναι πολύ µεγάλη. Το θεώρηµα του Shannon θέτει ένα άνω όριο στο ρυθµό διόρθωσης λαθών, το οποίο µπορεί να προσεγγιστεί, χρησιµοποιώντας ένα συγκεκριµένο ποσό δεδοµένων πλεονασµού, αλλά δε µας πληροφορεί για το πώς να κατασκευάσουµε έναν τέτοιο βέλτιστο αποκωδικοποιητή. - 18 -
Ο κώδικας που χρησιµοποιείται και οι διαδικασίες που ακολουθούνται κατά τις φάσεις τις κωδικοποίησης και της αποκωδικοποίησης καθορίζουν σε µεγάλο βαθµό την απόδοση του συστήµατος. Οι κώδικες διόρθωσης λαθών χωρίζονται σε δύο µεγάλες κατηγορίες: Τους κώδικες δοµής (block codes) και τους συνελικτικούς κώδικες (convolutional codes). Γενικά, ένας κώδικας που χρησιµοποιείται για τη κωδικοποίηση καναλιού είναι µια µία-προς-µία απεικόνιση στοιχείων από ένα σύνολο Α σε ένα σύνολο Β. Το σύνολο Α αποτελείται από στοιχεία τα οποία ονοµάζονται λέξεις πληροφορίας και συµβολίζονται για παράδειγµα µε όπου = 1,2,,, ενώ το σύνολο Β αποτελείται από στοιχεία που ονοµάζονται κωδικές λέξεις (codewords) και συµβολίζονται µε όπου = 1,2,,. Ένας κώδικας δοµής εισάγει πλεονασµό µε τέτοιο τρόπο, ώστε στο δέκτη, θεωρητικά, να µπορεί να γίνει αποκωδικοποίηση µε µηδενική πιθανότητα λάθους, εξασφαλίζοντας ότι ο ρυθµός µετάδοσης / δε θα υπερβεί την χωρητικότητα του καναλιού. Το κύριο χαρακτηριστικό των κωδικών δοµής, είναι το σταθερό µήκος των πακέτων που µεταδίδονται. Γενικά, µετατρέπει µια λέξη δεδοµένων, ψηφίων, σε µία codeword ψηφίων. Οι συνελικτικοί διαφέρουν από τους κώδικες δοµής κατά το ότι υπάρχει µνήµη στη διαδικασία κωδικοποίησης. Ένας συνελικτικός κώδικας, είναι ένας κώδικας διόρθωσης λαθών, στον οποίο κάθε σύµβολο πληροφορίας, αποτελούµενο από ψηφία, µετατρέπεται κατά την κωδικοποίηση σε ένα σύµβολο ψηφίων (µε ). Ο µετασχηµατισµός αυτός είναι συνάρτηση των τελευταίων συµβόλων πληροφορίας. - 19 -
- 20 -
Κεφάλαιο 2 2.1 Γραμμικοί κώδικες δομής Ένας δυαδικός κώδικας δοµής,, ορίζεται πλήρως από " = 2 # δυαδικές ακολουθίες µήκους που ονοµάζονται κωδικές λέξεις. Ένας κώδικας C, συνίσταται από $ κωδικές λέξεις µε 1 2 #. & = { (, ),, * } (2.1) όπου είναι µια ακολουθία µήκους µε όρους που παίρνουν τιµές 0 ή 1. Ένας µπλοκ κώδικας είναι γραµµικός αν το άθροισµα οποιονδήποτε έγκυρων κωδικών λέξεων είναι επίσης κωδική λέξη. Στην περίπτωση δυαδικού κώδικα αυτό σηµαίνει πως το αποτέλεσµα της συνιστώσας-προς-συνιστώσα modulo-2 λογικής πράξης (ή ισοδύναµα XOR λογική) µεταξύ δύο κωδικών λέξεων, είναι επίσης κωδική λέξη. Στους γραµµικούς κώδικες ανήκει η µηδενική λέξη, καθώς το άθροισµα µιας οποιασδήποτε έγκυρης κωδικής λέξης µε τον εαυτό της µας δίνει τη µηδενική λέξη και σύµφωνα µε τον ορισµό των γραµµικών κωδικών, θα πρέπει και αυτή να είναι έγκυρη κωδική λέξη. 2.2 Κώδικες LDPC - 21 -
Οι LDPC κώδικες είναι δυαδικοί γραµµικοί µπλοκ κώδικες που προτάθηκαν από τον Robert G. Gallager στις αρχές τις δεκαετίας του 60 [7]. Ήταν οι πρώτοι κώδικες διόρθωσης λαθών που µπορούσαν να προσεγγίζουν ρυθµούς µετάδοσης δεδοµένων κοντά στο θεωρητικό µέγιστο, το όριο Shannon. Έµειναν όµως για µεγάλο χρονικό διάστηµα στο περιθώριο λόγω των µεγάλων απαιτήσεων τους σε υλικό και της υπολογιστικής πολυπλοκότητας του αλγορίθµου τους. Η πρόοδος της τεχνολογίας και η ανάπτυξη των πληροφοριακών συστηµάτων συντέλεσε στην ανάγκη για υψηλής απόδοσης κώδικες µετάδοσης δεδοµένων, και στα µέσα της δεκαετίας του 90 το ενδιαφέρον στράφηκε ξανά στους LDPC κώδικες. 2.2.1 Αναπαράσταση των LDPC κωδικών µε βάση τον πίνακα ελέγχου ισοτιµίας H Ένας low-density parity-check (LDPC) κώδικας περιγράφεται από έναν πίνακα ελέγχου ισοτιµίας (parity check matrix). Κάθε στοιχείο του πίνακα είναι είτε µηδέν είτε άσσος, όπου η περιεκτικότητα των µη-µηδενικών στοιχείων του πίνακα είναι πολύ µικρή σε σχέση µε των µηδενικών όπως παρουσιάζεται στο Σχήµα 2. 1. Κάθε γραµµή του πίνακα H αντιστοιχεί σε µια εξίσωση ελέγχου ισοτιµίας (parity check equation) και κάθε άσσος στη θέση, -, σηµαίνει ότι το -./0 σύµβολο δεδοµένων συµµετέχει στην./1 εξίσωση ελέγχου ισοτιµίας. Για το σύνολο των κωδικών λέξεων που προκύπτουν από ένα LDPC κώδικα ισχύει 2 4 = 0 (2.2) που σηµαίνει ότι τα µέρη της που συµµετάσχουν, µε βάση τη θέση τους, στην αντίστοιχη εξίσωση ελέγχου ισοτιµίας θα έχουν είτε άρτιο πλήθος άσσων, άρτια ισοτιµία είτε περιττό πλήθος άσσων, περιττή ισοτιµία. - 22 -
7 1 1 6 6 60 1 6 2 = 1 0 6 6 60 1 6 61 0 5 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 Σχήµα 2. 1 Πίνακας ελέγχου ισοτιµίας 1 1 1 0 0 1 0 1 1 0 : 9 1 19 0 19 9 1 09 9 1 09 0 19 9 8 Το µέγεθος του πίνακα είναι. Το n δείχνει το µήκος του κώδικα, το k το πλήθος των bit πληροφορίας (information or systematic bits) και το = το πλήθος των bit ελέγχου ισοτιµίας (parity bits). Κάθε σειρά του πίνακα είναι µια πράξη ελέγχου ισοτιµίας και κάθε στήλη του H αντιστοιχεί σε ένα bit της codeword. Για ένα µπλοκ δεδοµένων µεγέθους n, ο λόγος των bit πληροφορίας προς τα συνολικά bits της κωδικής λέξης, λέγεται ρυθµός κώδικα. = 2.3 Ο ρυθµός κώδικα ουσιαστικά υποδηλώνει το ποσοστό της πραγµατικής πληροφορίας που µεταδίδεται προς το συνολικό αριθµό bit που µεταδίδονται. Ένας κώδικας LDPC του οποίου ο πίνακας ελέγχου ισοτιµίας του έχει τον ίδιο αριθµό άσσων σε όλες τις στήλες του, και τον ίδιο αριθµό άσσων σε όλες τις γραµµές του Σχήµα 2. 1 ονοµάζεται κανονικός (regular). Οι κώδικες για τους οποίους δεν ισχύει κάτι τέτοιο, ανήκουν στην κατηγορία των µη κανονικών (irregular) κωδικών LDPC. 2.2.2 Γραφική αναπαράσταση ενός κώδικα LDPC Οι κώδικες LDPC µπορούν να αναπαρασταθούν και µε τη χρήση ενός διµερούς γράφου [7], όπου κάθε γραµµή του πίνακα απεικονίζεται σαν ένας κόµβος ελέγχου - 23 -
(check nodes), ενώ κάθε στήλη σαν ένας κόµβος µεταβλητών (variable nodes) όπως φαίνεται στο Σχήµα 2.2. Κάθε ακµή του γράφου αντιστοιχεί σε έναν άσσο του πίνακα H. Συγκεκριµένα, για κάθε άσσο του πίνακα Η στη θέση, -, ο κόµβος ελέγχου συνδέεται µε τον κόµβο µεταβλητών j. Ένας κανονικός LPDC κώδικας έχει ίδιο βαθµό κόµβων ελέγχου και ίδιο βαθµό κόµβων µεταβλητών, ενώ ένας µη κανονικός LDPC έχει διαφορετικού βαθµού κόµβων ελέγχου και διαφορετικού βαθµού κόµβους µεταβλητών. Κόμβοι Ελέγχου c1 c2 c3 c4 c5 c6 v1 v2 v3 v4 v5 v6 v7 v8 v9 Κόμβοι Μεταβλητών Σχήµα 2. 2 Γραφική αναπαράσταση LDPC κώδικα µε διµερή γράφο 2.3 Αλγόριθμοι αποκωδικοποίησης LPDC κωδικών Μια οικογένεια αλγορίθµων που χρησιµοποιείται για να αποκωδικοποιήσει τους LDPC κώδικες είναι οι αλγόριθµοι ανταλλαγής µηνυµάτων (message passing). Η λειτουργία τους πραγµατοποιείται µε διαδοχική ανταλλαγή µηνυµάτων µεταξύ των δύο ειδών κόµβων του αποκωδικοποιητή, των κόµβων ελέγχου και των κόµβων µεταβλητών [10]. Με αυτό τον τρόπο ο αποκωδικοποιητής, έχοντας µια αρχική εκτίµηση από το κανάλι για τα σύµβολα του σήµατος που λαµβάνεται και εκτελώντας κάποιους υπολογισµούς σε αυτούς τους κόµβους, βελτιώνει την εκτίµησή του µε κριτήριο να ικανοποιηθούν όλες οι εξισώσεις ελέγχου ισοτιµίας. Συνεπώς, οι - 24 -
αλγόριθµοι αποκωδικοποίησης LDPC κωδίκων είναι επαναληπτικοί αλγόριθµοι οι οποίοι εκτελώντας διαδοχικά κάποιες πράξεις στους κόµβους προσπαθούν να ανακαλύψουν την απεσταλµένη λέξη, δηλαδή να συγκλίνουν µετά από έναν αριθµό επαναλήψεων σε έγκυρες κωδικές λέξεις. Οι αλγόριθµοι ανταλλαγής µηνυµάτων ποικίλουν, ανάλογα µε τις διεργασίες που εκτελούνται σε κάθε κόµβο και τη δοµή των µηνυµάτων που αποστέλλονται ανάµεσα σε αυτούς. Ανάλογα µε τις απαιτήσεις της εφαρµογής επιλέγεται συνήθως ο κατάλληλος αλγόριθµος, σε σχέση µε τις απαιτήσεις της υλοποίησης του, την πολυπλοκότητα που επιβάλλει στις πράξεις σε σχέση µε την απόδοση που επιτυγχάνει. Παρακάτω παρατίθενται δυο µεγάλες κατηγορίες αλγορίθµων αποκωδικοποίησης για LDPC κώδικες, ο Sum Product (SP) και ο Min Sum (MS) αλγόριθµος. 2.3.1 Αλγόριθµος Sum-Product στο λογαριθµικό πεδίο Ο αλγόριθµος Sum-Product υλοποιείται στο πεδίο των λογαρίθµων. Η χρήση του λογαρίθµου στις πράξεις µετατρέπει τους πολλαπλασιασµούς σε προσθέσεις, πράγµα το οποίο διευκολύνει την υλοποίηση του αλγορίθµου. Για κανάλι AWGN και διαµόρφωσης BPSK, ο αλγόριθµος αποτελείται από τα εξής βήµατα: Αρχικά υπολογίζονται τα µηνύµατα στους κόµβους µεταβλητών και αποστέλλονται στους κόµβους ελέγχου = @ >? = log = 0 E F = 1 E F = GG > 2.4 µε E F την τιµή του λαµβανόµενου συµβόλου. Έπειτα υπολογίζονται τα µηνύµατα F?> στους κόµβους ελέγχου και αποστέλλονται στους κόµβους µεταβλητής, κατά τη./1 επανάληψη του αλγορίθµου - 25 -
F?> = I JK= FM( > L? N O P O= > L? >Q S T U :> >Q S T U :> FM( 2.5 όπου ο όρος X Z >? : X συµβολίζει το σύνολο των κόµβων µεταβλητών, εκτός του X, µε τους οποίους συνδέεται ο κόµβος ελέγχου. Η συνάρτηση O. είναι µια σύνθετη συνάρτηση η οποία δίνεται από τη σχέση O = log [\h [ 2 ^^ = log _ ` + 1 ` + 1 a 2.6 Εξαιτίας του µεγάλου εύρους ζώνης που φτάνει ως το +, η συνάρτηση O. αυξάνει αρκετά το βαθµό πολυπλοκότητας του κόµβου ελέγχου και είναι επιρρεπής σε θόρυβο κβαντισµού. F Στη συνέχεια, κατά την./1 επανάληψη, υπολογίζονται τα µηνύµατα = >? στους κόµβους µεταβλητών X και αποστέλλονται στους κόµβους ελέγχου. = F F >? = GG > + P?Q>?Q S U T :? 2.7 όπου ο όρος Z >? : συµβολίζει το σύνολο των κόµβων ελέγχου, εκτός του µε τους οποίους συνδέεται ο κόµβος µεταβλητών X. Τέλος, ο κάθε κόµβος µεταβλητών, ο οποίος αντιστοιχεί σε ένα bit του σήµατος εισόδου στον αποκωδικοποιητή, εξάγει µια εκτίµηση σύµφωνα µε τη σχέση F = > = P?Q>?Q ST U + GG > 2.8 όπου λαµβάνονται υπόψη όλα τα µηνύµατα τα οποία λαµβάνει ο κόµβος µεταβλητών. Βάσει της τιµής της ποσότητας = > παίρνεται µία hard απόφαση - 26 -
> = 1, = > 0 ή > = 0, = > 0 2.9 2.10 Αντίστοιχη απόφαση λαµβάνεται για όλα τα bits της κωδικής λέξης. Αν η κωδική λέξη που προκύπτει είναι έγκυρη ο αλγόριθµος τερµατίζει και η συγκεκριµένη κωδική λέξη αποτελεί την αποκωδικοποιηµένη πληροφορία. ιαφορετικά, επαναλαµβάνεται η διαδικασία από το στάδιο του υπολογισµού των µηνυµάτων των κόµβων ελέγχου. 2.3.2 Αλγόριθµος Min Sum στο λογαριθµικό πεδίο Ο αλγόριθµος Min-Sum (MS) διαφέρει από το log-sp κατά τον υπολογισµό των µηνυµάτων στους κόµβους ελέγχου. Η συνάρτηση O., είναι µία γνησίως φθίνουσα συνάρτηση, για µικρές τιµές του ορίσµατος εισόδου της παίρνει µεγάλες τιµές, ενώ για µεγαλύτερες εισόδους παίρνει πολύ µικρότερες τιµές. Λόγω αυτής της ιδιότητας στο άθροισµα της σχέσης (2.5) κυριαρχεί το µικρότερο από τα µηνύµατα = >?. Το άθροισµα, εποµένως, µπορεί να απλοποιηθεί προσεγγιζόµενο µε το µικρότερο από τους όρους του. Έτσι προκύπτει η σχέση υπολογισµού των µηνυµάτων από τους κόµβους ελέγχου στους κόµβους µεταβλητών F?> = I JK= FM( > L? N O P O= > L? >Q S T U :> >Q S T U :> FM( = I JK= FM( > L? N > L S T U :> > L S U T :>Kg= FM( > L? gn 2.11 Τα υπόλοιπα στάδια του αλγόριθµου είναι ακριβώς ίδια µε αυτά του Sum-Product. Η προσέγγιση που γίνεται στην παραπάνω σχέση έχει προφανώς επίπτωση στην απόδοση του αποκωδικοποιητή αλλά απαλλάσσει από την απαιτητική ως προς την υλοποίηση συνάρτηση O.. - 27 -
2.4 Αποκωδικοποίηση σε επίπεδα για LDPC κώδικες Η αποκωδικοποίηση ενός LDPC αλγορίθµου, όπως περιγράφθηκε, χαρακτηρίζεται ως αποκωδικοποίηση ανταλλαγής µηνυµάτων message passing, µεταξύ των κόµβων ελέγχου και των κόµβων µεταβλητών. Πραγµατοποιείται σε δυο φάσεις υπολογισµών, όπου στην πρώτη φάση ενηµερώνονται όλοι οι κόµβοι µεταβλητών από την αποστολή µηνυµάτων των γειτονικών κόµβων ελέγχου τους, και µετά στη δεύτερη φάση ενηµερώνονται όλοι οι κόµβοι ελέγχου από την αποστολή µηνυµάτων των κόµβων µεταβλητών που είναι συνδεδεµένοι. Μια διαφορετική προσέγγιση στην ανταλλαγή µηνυµάτων του LDPC κώδικα είναι η αποκωδικοποίηση σε στρώµατα (layers). O όρος αποκωδικοποίηση σε στρώµατα πηγάζει από τη θεώρηση του πίνακα ελέγχου ισοτιµίας H, ως µιας ακολουθίας στοιχειωδών πινάκων ή στρώµατα, που ενηµερώνονται µε αλληλουχία. Τα συνιστάµενα στρώµατα αποτελούν έναν υπέρ-κώδικα. Τα στρώµατα συνήθως είναι οριζόντια, όπως φαίνεται στο Σχήμα 2. 3. Σχήμα 2. 3 Πίνακας ελέγχου ισοτιμίας διαχωρισμένος σε στρώματα Η κύρια ιδέα µιας τέτοιας αποκωδικοποίησης προήλθε από τον turbo αλγόριθµο αποκωδικοποίησης [6]. Ο σχεδιασµός ενός LDPC αποκωδικοποιητή διαφέρει από τον σχεδιασµό άλλων κλάσεων αποκωδικοποιητών, στο ότι είναι στενά συνδεδεµένος µε τους περιορισµούς που εισάγει η ίδια του η δοµή, δηλαδή ο πίνακας ελέγχου - 28 -
ισοτιµίας του. Όµως η επαναληπτική διαδικασία αποκωδικοποίησης του LPDC και του Turbo κώδικα παρουσιάζει αναλογίες σε δυο κύρια βήµατα. Πρώτον, και στους δυο γίνονται υπολογισµοί ανεξάρτητων µηνυµάτων αναλόγων της εκ των υστέρων πιθανότητας, και δεύτερον στην επικοινωνία των µηνυµάτων αυτών. Ένας turbo αλγόριθµος ανταλλαγής µηνυµάτων (Turbo Decoding Message Passing - TDMP) προτείνεται στη εργασία [3], σε σχέση µε τον απλό LDCP o TDMP αλγόριθµος αποκωδικοποιεί, κάθε ένα από τα συστατικά µέρη του κώδικα, παράλληλα µεταβιβάζοντας µηνύµατα µόνο µεταξύ των γειτονικών αποκωδικοποιητών όπως φαίνεται στο Σχήμα 2. 4. Ο TDMP υλοποιείται για οποιαδήποτε πίνακα ελέγχου ισοτιµίας H, είτε είναι κανονικός είτε όχι. Σχήμα 2. 4 Διάγραμμα σύγκρισης διασυνδέσεων των αποκωδικοποιητών ενός TDMP στο σχήμα αριστερά και του message-passing LDPC αλγορίθμου στη δεξιά πλευρά. Σηµαντικό πλεονέκτηµα αυτής της τεχνικής είναι η βελτίωση της ταχύτητας σύγκλισης του αποκωδικοποιητή. Για την ίδια στάθµη θορύβου χρειάζονται λιγότερες επαναλήψεις για να συγκλίνει ο αλγόριθµος σε σχέση µε εκείνη του αποκωδικοποιητή που δεν είναι χωρισµένος σε επίπεδα. Καθώς επίσης και η πολυπλοκότητα των διασυνδέσεων µετριάζεται άρα και η απαίτηση σε αποθηκευτικά µέσα για τα µηνύµατα που ανταλλάσσονται. 2.4.1 Αποκωδικοποίηση σε επίπεδα χωρίς σύγκρουση δεδοµένων Ειδικότερα, στα πλαίσια αυτής της διπλωµατικής εργασίας εξετάζετε η αποκωδικοποίηση σε επίπεδα ενός LDPC, χωρίς σύγκρουση δεδοµένων. Ο διµερής γράφος του LDPC χωρίζεται σε σύνολα κόµβων ελέγχου τα οποία έχουν - 29 -
ανεξάρτητους κόµβους µεταβλητών [1]. Κάθε σύνολο, όπως φαίνεται στα Σχήμα 2. 5 και Σχήμα 2. 6 είναι ένα υποσύνολο του αρχικού γράφου, ενώ δεν υπάρχει κανένα κοινό µονοπάτι µεταξύ των κόµβων ελέγχου που ανήκουν στο ίδιο σύνολο. Η διάσπαση του γράφου εκφράζεται και µε διαχωρισµό του πίνακα ελέγχου ισοτιµίας H. Οι γραµµές του πίνακα οµαδοποιούνται και αποκωδικοποιούνται σαν οµάδες όπως περιγράφθηκε στο Σχήμα 2. 3. Περιορίζοντας τη διαίρεση του γράφου σε σύνολα µε ανεξάρτητα στοιχεία, κάθε υπέρ κώδικας έχει απλούστερη δοµή trellis ώστε να µπορούµε να εφαρµόσουµε τον αλγόριθµο MAP. c1 c2 c3 c4 c5 c6 v1 v2 v3 v4 v5 v6 v7 v8 v9 Σχήμα 2. 5 Αρχική έκδοση διμερούς γράφου Σχήμα 2. 6 Διαίρεση του διμερούς γράφου του σχήματος 2.4 σε ομάδες, των οποίων τα δεδομένα είναι ανεξάρτητα - 30 -
Στην πράξη, σε διάφορα τηλεπικοινωνιακά συστήµατα ειδική κατασκευής πίνακες χρησιµοποιούνται βάση του προτύπου WiMax. Οι Quasi-Cyclic (QC) LPDC κώδικες, όπως φαίνεται στο Σχήμα 2. 7, έχουν ειδικά οµαδοποιηµένο πίνακα ελέγχου ισοτιµίας. Κάθε υπό πίνακας αναπαρίσταται είτε µε όλα τα στοιχεία του µηδενικά είτε µε ένα µοναδιαίο πίνακα h i` µε ολισθηµένα τους άσσους της διαγωνίου του κατά ένα παράγοντα x. Σχήμα 2. 7 Πίνακας ελέγχου ισοτιμίας διαιρεμένος σε σύνολα τύπου QC - 31 -
- 32 -
Κεφάλαιο 3 3.1 Αποκωδικοποίηση με Trellis 3.1.1 Κώδικες που αναπαρίστανται µε διάγραµµα Trellis Οι συνελικτικοί κώδικες (convolutional codes) είναι µια βασική κατηγορία κωδικών που αναπαρίστανται µε διαγράµµατα trellis. Η δοµή του κωδικοποιητή ενός συνελικτικού κώδικα απαρτίζεται από καταχωρητές ολίσθησης και αθροιστές modulo-2. Όπως περιγράφηκε στο πρώτο κεφάλαιο κάθε µπλοκ bits απεικονίζεται σε ένα µπλοκ bits που διαβιβάζεται µέσα από το κανάλι, αλλά τα bits δεν καθορίζονται µόνο από τα τρέχοντα αλλά και από τα προηγούµενα bits πληροφορίας. Στο Σχήµα 3. 1 δίνεται η δοµή µιας ιδιαίτερης κατηγορίας συνελικτικών κωδικών, ενός συστηµατικού συνελικτικού κώδικα µε ανάδραση (recursive systematic convolutional code). Οι αναδροµικοί συνελικτικοί κώδικες διαφέρουν από τους µηαναδροµικούς κατά την ύπαρξη ανατροφοδότησης στην υλοποίηση τους µε καταχωρητές ολίσθησης. Ο κωδικοποιητής παράγει για ένα bit πληροφορίας x k, ένα bit ισοτιµίας u ( k, ενώ ταυτόχρονα αποστέλλεται και το ίδιο το bit πληροφορίας u @ k, για αυτό χαρακτηρίζεται και συστηµατικός. Ο ρυθµός του κώδικα είναι, δηλαδή η - 33 -
αναλογία µόνο των bit πληροφορίας προς το άθροισµα των bit πληροφορίας και των bit ισοτιµίας. Ο κωδικοποιητής εφόσον έχει m = 2 µονάδες µνήµης, µπορεί να βρεθεί σε 2 n = 4 καταστάσεις, οι οποίες είναι οι 00, 01, 10 και 11. Άρα η κάθε έξοδος του κωδικοποιητή για ένα bit εισόδου εξαρτάται και από την κατάσταση που βρίσκονται οι καταχωρητές του. Κατά την κωδικοποίηση µια ακολουθία καταστάσεων καταγράφεται για τα bits που κωδικοποιούνται και η οποία αποτυπώνεται σα µονοπάτι στο διάγραµµα trellis. Σχήµα 3. 1 Αναδροµικός, συστηµατικός, συνελικτικός κωδικοποιητής ρυθµού, µε µνήµη 2 καταχωρητών ολίσθησης. Το διάγραµµα δικτυώµατος (trellis διάγραµµα) που αναπαριστά έναν αναδροµικό συστηµατικό συνελικτικό κώδικα δίνεται στο Σχήµα 3. 2. Όπως φαίνεται στο σχήµα το trellis αποτελείται από καταστάσεις και επιγραφόµενους κλάδους. Κάθε στήλη αναπαριστά τις πιθανές καταστάσεις του κωδικοποιητή τη συγκεκριµένη χρονική στιγµή =. Οι κλάδοι συνδέουνε τις καταστάσεις της χρονικής στιγµής µε εκείνες της επόµενης χρονικής στιγµής + 1 και σκιαγραφούν τις επιτρεπόµενες µεταβάσεις των καταστάσεων του κωδικοποιητή. - 34 -
Σχήµα 3. 2 ιάγραµµα Trellis για συστηµατικό συνελικτικό κώδικα µε ανάδραση. Ένα διάγραµµα trellis πρέπει να τερµατίζει, περιορίζοντας έτσι την αρχική και την τελική του κατάσταση. Μια διαδροµή στο trellis ξεκινάει από την αρχή και καλύπτει όλο το διάγραµµα ικανοποιώντας τη συνθήκη τερµατισµού. Ο τερµατισµός του trellis αποτελεί µια από τις παραδοχή που γίνεται κατά την αποκωδικοποίηση και επιβαρύνει µε επιπρόσθετη πληροφορία το µεταδιδόµενο σήµα. Η επιβάρυνση εξαρτάται από τον τρόπο που έχει επιλεχθεί. 3.1.2 Κώδικες ελέγχου ισοτιµίας (Single parity check) Οι single parity check είναι µια απλοποιηµένη µορφή συνελικτικού κώδικα [3] µε ανάδραση. Έστω µια κωδική λέξη µήκους για την οποία ισχύει x ( x ) x q = 0 3.1 ή διαφορετικά η κωδική λέξη έχει άρτια ισοτιµία, τότε το σύνολο όλων των κωδικών λέξεων µε µήκος που έχουν άρτια ισοτιµία διαµορφώνει ένα κώδικα, 1 single parity check. Το µήκος του κώδικα είναι και οι διαστάσεις του είναι @ = 1. - 35 -
Σχήµα 3. 3 Κωδικοποιητής single parity check κώδικα και ο πίνακας καταστάσεων του Η δοµή του κωδικοποιητή τους που αναπαρίσταται στο Σχήµα 3. 3 έχει µόνο µια έξοδο και ένα καταχωρητή ολίσθησης. Η αρχική κατάσταση του καταχωρητή ορίζεται στο µηδέν. H λειτουργία του συνοψίζεται ως εξής: ενώ βρίσκεται στη µηδενική κατάσταση για είσοδο x k 0 παραµένει στη µηδενική κατάσταση και για είσοδο x k 1 µεταπηδά στην κατάσταση. Αντίστοιχα όταν είναι στη κατάσταση µε είσοδο x k 0 παραµένει στην, και µε είσοδο x k 1 µεταπηδά στη µηδενική. Η έξοδος είναι ίδια µε τη κατάσταση του αποκωδικοποιητή. Το διάγραµµα trellis του κώδικα είναι δυο καταστάσεων, µε µήκος ενώ αρχίζει και καταλήγει στη µηδενική κατάσταση. Στο Σχήµα 3. 4 απεικονίζεται ένα trellis για ένα (4, 3) single parity check κώδικα. Οι οκτώ κωδικές λέξεις που εµ µφανίζονται στη δεξιά πλευρά του σχήµατος ανταποκρίνονται σε όλε τις πιθανές ακολουθίες από το root στο toor, δηλαδή όλε τις πιθανές επιτρεπτές διαδροµές µέσα στο trellis. Γενικά, το πλήθος των κωδικών λέξεων που περιγράφεται από ένα r, r 1 single parity check κώδικα είναι 2 qm(. - 36 -
Σχήµα 3. 4 Απεικόνιση του διαγράµµατος trellis ενός (4, 3) single parity check κώδικα. 3.1.3 LDPC κώδικες µε αναπαράσταση διαγράµµατος trellis Το σύνολο των κωδικών λέξεων ενός γραµµικού δυαδικού n, k µπλοκ κώδικα µπορεί να αναπαρασταθεί σα µονοπάτια µέσω ενός trellis για single parity check κώδικα βάθους µε το πολύ 2 FM# καταστάσεις [3]. Παρόλα αυτά, η κατασκευή ολόκληρου του διαγράµµατος trellis ενός LDPC από το διµερή του γράφο, καταλήγει σε ένα µεγάλο και πολύπλοκο trellis (Σχήµα 3. 5) επιβάλλοντας ένα πολύπλοκο αλγόριθµο αποκωδικοποίησης. Αντίθετα, µπορούµε να θεωρήσουµε τον LDPC κώδικα σαν παράλληλα συνδεδεµένους single parity check κώδικες. Παρόλο που η απόδοση ενός µόνο single parity check κώδικα είναι µη ικανοποιητική, όταν αρκετοί από αυτούς είναι αραιά συνδεδεµένοι προκύπτει ένας πολύ σθεναρός κώδικας. Οι γραµµές του πίνακα ελέγχου ισοτιµίας H αντιστοιχούν σε εξισώσεις ελέγχου ισοτιµίας. Συνεπώς, αν η j στη σειρά του πίνακα περιέχει άσσους στις θέσεις στήλης {j (, j ), j y ισχύει j q }, τότε για τα bits της κωδικής λέξης σε αυτές τις θέσεις θα x z( x z) x zq = 0 3.2 δηλαδή αναπαράσταση ενός r, r 1 single parity check κώδικα. Οπότε ένας πίνακας ελέγχου ισοτιµίας H µεγέθους m x n, ενός LPDC κώδικα, που περιέχει r άσσους ανά γραµµή µε = 1, 2, 3, µπορεί να αναπαρασταθεί χρησιµοποιώντας - 37 -
trellises που ανταποκρίνονται σε m r, r 1 single parity check κώδικες. Όπως φαίνεται στο Σχήµα 3. 6,, ένας κόµβος ελέγχου βαθµού, αντικαθίσταται από ένα trellis µήκους διαστάσεων 1 ενώ οι µεταβλητοί κόµβοι σβήνονται. Το trellis που δηµιουργείται είναι ένα trellis δύο καταστάσεων που αρχίζει στη µηδενική κατάσταση. Σχήμα 3. 5 Αναπαράσταση Trellis για LDPC κώδικες όπου ένα trellis δυο καταστάσεων συσχετίζεται με ένα κόμβο ελέγχου Αν η κωδική λέξη είναι άρτιας ισοτιµίας τότε το διάγραµµα trellis τελειώνει στη µηδενική κατάσταση. Κάθε µετάβαση µεταξύ δύο καταστάσεων πραγµ µατοποιείται µε το κατάλληλο σύµβολο u } της κωδικής λέξης. Αν δυο γραµµές του πίνακα ελέγχου ισοτιµίας επικαλύπτονται στην θέση στήλης του πίνακα, τότε τα trellis συνδέονται µε ακµές σε αυτά τα σηµεία. Τα µηνύµατα που ανταλλάσσονται µεταξύ των κόµβων αντικαθίστανται από ένα είδος µηνύµατος που ονοµάζεται µήνυµα SISO. - 38 -
Σχήµα 3. 6 Αναπαράσταση trellis ενός τµήµατος ενός διµερούς γράφου. 3.2 Αλγόριθμοι αποκωδικοποίησης με Trellis 3.2.1 Αποκωδικοποίηση SISO Κάθε αποκωδικοποιητής που έχει τη δοµή που δίνεται στο Σχήμα 3. 7 µπορεί να χαρακτηριστεί αποκωδικοποιητής SISO. Ένας αποκωδικοποιητής SISO έχει δυο εισόδους και δυο εξόδους Σφάλµα! Το αρχείο προέλευσης της αναφοράς δεν ρέθηκε.. Οι είσοδοι λαµβάνουν ακολουθίες πιθανοτικών κατανοµών για τα πληροφοριακά και τα κωδικοποιηµένα bits και παρέχουν ως έξοδο ακολουθίες πιθανοτικών κατανοµών για αυτά τα πληροφοριακά bits, βασιζόµενη στις εισόδους και τη γνώση του trellis. Η πληροφορία της εξόδου συχνά είναι αυτή που χρησιµοποιείται για να τροφοδοτεί τα επιµέρους συστατικά τµήµατα ενός επαναληπτικού αποκωδικοποιητή. Εκ των προτέρων τιμές για όλα τα bits πληροφορίας Τιμές από το κανάλι για όλα τα κωδικοποιημένα bits Soft-In Soft-Out Αποκωδικοποιητής extrinsic τιμές για όλα τα bits πληροφορίας Εκ των υστέρων τιμές για όλα τα bits πληροφορίας Σχήμα 3. 7 Δομή αποκωδικοποιητή SISO - 39 -
3.2.2 Ο αλγόριθµος MAP Ο αλγόριθµος maximum a posteriori probability (MAP) προτάθηκε από τους Bahl, Cocke, Jelinek και Raviv [6], όπου ονοµάστηκε και BCJR αλγόριθµος από τα αρχικά τους. Είναι ένας αλγόριθµος κατάλληλος για την εκτίµηση της πιθανότητας ενός bit ή µιας κατάστασης ενός συστήµατος πεπερασµένων καταστάσεων. Ο αλγόριθµος µεγιστοποιεί την πιθανότητα εξόδου των συµβόλων ενός σήµατος που έχει διαδοθεί σε ένα διακριτό κανάλι, χωρίς µνήµη (όπως το AWGN), ενώ έχει µεταδοθεί µε BPSK διαµόρφωση. Ακολουθεί επεξήγηση του MAP αλγόριθµου για έναν R k/n συνελικτικού κώδικα µε ανάδραση όπως δίνεται στο Σχήµα 3. 1. Για αυτό τον κωδικοποιητή θεωρείται η λέξη που µεταδίδεται µε µορφή (, ), F = { (, ( }, { ), ) }, { F, F }, δηλαδή µια ακολουθία από ένα bit πληροφορία και ένα bit ισοτιµίας για αυτό το bit. Η λαµβανόµενη στο δέκτη πληροφορία έχει οµοίως τη µορφή E = E (, E ), E F = E (, E (, E ), E ), E F, E F }, αντίστοιχα. Οι µεταβλητές αυτές είναι δυαδικές και παίρνουν τιµές από το σύνολο { 1, +1}. Τοσύµβολο # σχετίζεται µε τη µετάβαση από την κατάσταση s, τη χρονική στιγµή 1 στην κατάσταση, τη χρονική στιγµή, πάνω στο trellis. Σε αυτή την περίπτωση ο MAP προσδιορίζει τις πιθανότητες, # = +1 E > ( < ) # = 1 E 3.3 οι οποίες εκφράζουν την πιθανότητα να έχει ληφθεί το σύµβολο στο δέκτη, όταν έχει σταλεί ένα σύµβολο +1 την k χρονική στιγµή προς την πιθανότητα για το ίδιο σύµβολο να έχει σταλεί ένα 1. Μια τέτοια πιθανότητα καλείται εκ των υστέρων πιθανότητα (a posteriori probability - APP) και είναι ουσιαστικά εκτίµηση των συµβόλων που λάβαµε στο δέκτη. Εφόσον είναι πιθανότητες υπό συνθήκη, µπορούν να γραφούν µέσω των εκ των προτέρων πιθανοτήτων τους (a priori probabilities) ως Py u } = +1Pu } = +1 > ( < ) Py u } = 1Pu } = 1 3.5-40 -
από το θεώρηµα του Bayes. Η σχέση (3.5) µπορεί να εκφραστεί και ως λόγος: Py u } = +1 Py u } = 1 > ( Pu } = 1 < ) Pu } = +1 Py u } = +1Pu } = +1 Py u } = 1Pu } = 1 ή 3.6 > ( ) 1 3.7 < Ο λόγος (3.7) αποτελεί την εκτίµηση πάνω στην οποία λειτουργεί ο αλγόριθµος MAP. Αν ο λόγος είναι > 1, τότε το bit είναι +1 αλλιώς είναι 1. Αν πάρουµε το λογάριθµο της παραπάνω εξίσωσης, καταλήγουµε Lu } y = log Py u } = +1 Py u } = 1 + log Pu } = +1 Pu } = 1 = Ly u } + Lu } 3.8 Ο πρώτος όρος στη δεξιά πλευρά της εξίσωσης καλείται Log Likelihood Ratio (LLR) και ο δεύτερος είναι η εκ των προτέρων πιθανότητα σε LLR µορφή των bit πληροφορίας. Κανονικά στις τηλεπικοινωνίες, το 0 έχει την ίδια πιθανότητα εµφάνισης µε το 1, ώστε ο δεύτερος όρος να θεωρείται µηδέν. Όταν όµως χρησιµοποιείται ένας trellis κώδικας τα 0 και 1 δεν είναι ισοπίθανα αλλά εξαρτώνται και από την κατάσταση του trellis. Mε ενσωµάτωση του trellis του συνελικτικού κώδικα µε ανάδραση ο παραπάνω λόγος µπορεί να γραφεί και ως εξής G # E = m J Q, Ž ( Q, Ž M( Q,, E Q,, E 3.9 Το άθροισµα των συνδυασµένων πιθανοτήτων ps Q, s, y στον αριθµητή και τον παρονοµαστή λαµβάνεται από όλες τις επιτρεπτές µεταβάσεις από την κατάσταση s στην κατάσταση µε bit πληροφορίας # = +1 ή # = 1, αντίστοιχα. - 41 -
Με την παραδοχή ότι το κανάλι µετάδοσής είναι κανάλι χωρίς µνήµη η συνδυασµένη πιθανότητα ps Q, s, y γράφεται ως πολλαπλασιασµός τριών ανεξάρτητων πιθανοτήτων [6] Q,, E = K Q, E # N, E # ) KE # N = K Q, E # N ( ) (E # Q, ) KE # N = #M( ( Q ) #( Q, ) # () (3.10) όπου y z # δηλώνει τις παρατηρήσεις της ακολουθίας λαµβανοµένων συµβόλων y z από την αρχή του trellis έως και τη χρονική στιγµή k 1 και y z # οι παρατηρήσεις της ακολουθίας που ανταποκρίνονται στη χρονική στιγµή k + 1 έως το τέλος του trellis. Οι πιθανότητες κατάστασης για το προς τα εµπρός πέρασµα, στο trellis, του αλγορίθµου MAP αποδίδονται ως # () = P #( Q, ) #M( ( Q ) L (3.11) ενώ οι πιθανότητες κατάστασης για το προς τα πίσω πέρασµα του αλγορίθµου αποδίδονται ως #M( () = P #( Q, ) # ( Q ) (3.12) Σε πολλές περιπτώσεις του αλγορίθµου MAP, το trellis επιλέγεται να έχει προκαθορισµένο µήκος. Τις περισσότερες φορές επιλέγεται να αρχίζει και να τελειώνει στη µηδενική κατάσταση, δηλαδή η αρχική κατάσταση όλων των καταχωρητών ορίζεται το µηδέν, και όλα τα µονοπάτια που διαγράφονται µέσα στο διάγραµµα trellis καταλήγουν στη µηδενική κατάσταση. Έτσι για τα ακραία σηµεία του trellis ισχύουν - 42 -
@ š 1 = 0 0 0 F = š 1 = 0 0 0 3.13 3.14 Τέλος, κατά τη µετάβαση από την s Q στην κατάσταση υπολογίζεται η µετρική διακλάδωσης ή πιθανότητα µετάβασης ως # Q, =, E # Q = Q, Q,, E # Q, = E # Q, = # E # # 3.15 Όπου # είναι το bit πληροφορίας που οδηγεί στη µετάβαση από την s s. Ισχύει ακόµα ότι Ps s Q = Ps s = 0 αν δε µπορεί να υπάρξει µετάβαση από s s, ενώ διαφορετικά Ps s = 1/2, αφού έχουν υποτεθεί δυαδικά σύµβολα εισόδου {+1, 1} µε ίση πιθανότητα. Εποµένως γ } s Q, s = 0 αν η µετάβαση δεν είναι δυνατή. Παρατηρείται ότι η πολυπλοκότητα του MAP αυξάνεται γραµµικά µε την αύξηση της πολυπλοκότητας του κώδικα διόρθωσης λαθών. 3.2.3 Ο αλγόριθµος Log MAP Στον αλγόριθµο MAP οι πράξεις πολλαπλασιασµού εισάγουν µεγάλες καθυστερήσεις, όταν το µήκος του λαµβανόµενου σήµατος είναι µεγάλο. Εφόσον η πρόσθεση είναι µια πολύ πιο γρήγορη διαδικασία, µπορούµε να µετατρέψουµε όλους τους πολλαπλασιασµούς σε προσθέσεις µέσω του λογαριθµικού πεδίου. Στον αλγόριθµο log-map οι πιθανότητες α, β, γ αντικαθίστανται από τις # = m JK # N - 43 -
m J P # Q, #M( Q Q και = m J P # Q, #M( Q 3.16 #M( = m JK #M( N L = m J P # Q, # Q 3.17 Q Ενώ οι αρχικοποιήσεις τώρα γίνονται α @ s = 0, s = 0, 0 3.17 β 0 = 0, s = 0, 0 3.18 Η µετρική διακλάδωσης είναι γ } s Q, s = logkγ } s Q, sn 3.19 Η εξίσωση η οποία κάνει τη µετατροπή είναι η logke ª + e «N = maxa, b + logk1 + e M ªM«N 3.20 Όπου ο όρος logke ª + e «N µπορεί να γραφεί ως max a, b. Οι παραπάνω όροι γράφονται πιο γενικά ως Και α } s = max α }M( s + γ± } s, s² β }M( s = max α }M( s + γ± } s, s² 3.21 3.22-44 -
Lu } = max ³ @ α }M( s + γ± } s, s + β } sµ max ³ ( α }M( s + γ± } s, s + β } sµ 3.23-45 -
- 46 -
Κεφάλαιο 4 4.1 Υλοποίηση 4.1.1 Σχεδιασµός Μοντέλου SISO για LDPC αποκωδικοποίηση Σε αυτή την ενότητα περιγράφεται η αποκωδικοποίηση ενός κώδικα LDPC σε επίπεδα, βασισµένος στην υλοποίηση που προτείνεται από τους Sun και Cavallaro [1], [2]. Οι Hagenauer, Offer και Papke απέδειξαν [4] ότι κάθε δυαδικός κώδικας δοµής που αποκωδικοποιείται επαναληπτικά µπορεί να µετατραπεί σε δοµή αποκωδικοποίησης SISO. Με βάση αυτήν τη απόδειξη, για έναν κώδικα LDPC που έχει διαιρεθεί σε επίπεδα, οι οµάδες κόµβων του που δηµιουργούνται ανταλλάσουν µηνύµατα επαναληπτικά µπορούν να προσεγγιστούν σαν αποκωδικοποιητές SISO. Ο πίνακας ελέγχου ισοτιµίας H, όπως περιγράφθηκε στο κεφάλαιο 2, διαµοιράζεται σε οµάδες κόµβων που αντιστοιχούν σε υπέρ κώδικες. Ο καθένας από αυτούς αποκωδικοποιείται µε ένα µοντέλο SISO, η δοµή του οποίου δίνεται στο Σχήµα 4. 1. Μια επανάληψη που πραγµατοποιείται από ένα SISO θεωρείται ως µια υπό-επανάληψη. Άρα µια πλήρης επανάληψη αποτελείται από υπό-επαναλήψεις. - 47 -
Σχήµα 4. 1 Μοντέλο Soft-in/Soft-Out αποκωδικοποιητή για LDPC [2]. Ο αποκωδικοποιητής SISO αποτελείται από δυο εξόδους, την G και την G,F και από δυο εισόδους την G και G,¹nº. Η έξοδος G είναι η εκ των υστέρων πιθανότητα (a posteriori probability - APP) και η G,F είναι η εξωγενής πληροφορία επί των συµβόλων πληροφορίας της εισόδου. Σε αντίθεση µε τη λογική των επαναληπτικών αποκωδικοποιητών, εδώ µεταβιβάζεται η εκ των προτέρων πιθανότητα και όχι η εξωγενής πληροφορία που προκύπτει από τη µονάδα SISO. Μια µονάδα µνήµης χρησιµοποιείται για την αποθήκευση της πιο πρόσφατης εξωγενούς πληροφορίας του κάθε αποκωδικοποιητή SISO, εφόσον περισσότεροι από δυο τέτοιοι απαρτίζουν τον επαναληπτικό αποκωδικοποιητή. Για να µη συγχέονται οι τιµές της ούς πληροφορίας για διαφορετικές επαναλήψεις, ορίστηκε ένας G,F η εξωγενή πληροφορία που δηµιουργείται στην τρέχουσα επανάληψη και G,¹nº η εξωγενής πληροφορία που είχε δηµιουργηθεί στην προηγούµενη επανάληψη. Όλα τα σύµβολα εισόδου στον αποκωδικοποιητή αντιµετωπίζονται ως σύµβολα πληροφορίας, χωρίς να διαχωρίζονται τα σύµβολα ισοτιµίας από τα σύµβολα πληροφορίας που λαµβάνονται. Συγκεκριµένα, για τον LDPC σε επίπεδα που υλοποιείται η µονάδα SISO χρησιµοποιείται ως εξής: Αρχικά, από τη διαίρεση του πίνακα ελέγχου ισοτιµίας H προκύπτουν οµάδες υπό πινάκων, για τις οποίες ορίζονται υπέρ κώδικες. Κάθε υπέρ-κώδικας µε τη σειρά του περιλαµβάνει» ανεξάρτητους µεταξύ τους single - 48 -
parity check κώδικες, δύο καταστάσεων, όσων και το πλήθος των γραµµών του υπό πίνακα. Το Σχήµα 4. 2 δείχνει τη δοµή ενός τέτοιου LDPC κώδικα. Τα σύµβολα της ακολουθίας εισόδου στον αποκωδικοποιητή που αφορούν τους» single parity κωδικών ενός υπέρ-κώδικα είναι ανεξάρτητα µεταξύ τους. Εποµένως για όλα τα σύµβολα του σήµατος που αφορούν ένα SISO αποκωδικοποιητή, η επεξεργασία τους µπορεί να είναι ταυτόχρονη. Σχήµα 4. 2 οµή πολύ επίπεδου επαναληπτικού LDPC αποκωδικοποιητή 69[2]. Στο Σχήµα 4. 3 δίνεται η ροή των LLR τιµών του SISO αποκωδικοποιητή. Η δοµή αποτελείται από µια APP µνήµη που χρησιµοποιείται για την αποθήκευση των εκ των υστέρων πιθανοτήτων που προκύπτουν από έναν υπέρ-κώδικα, µια εξωγενή µνήµη για να αποθηκεύονται οι εξωγενείς τιµές κάθε υπέρ-κώδικα και έναν MAP επεξεργαστή που υλοποιεί τον MAP αλγόριθµο για εκείνους τους» single parity check κώδικες που απαρτίζουν τον κάθε υπέρ-κώδικα. Ο πολυπλέκτης χρησιµοποιείται για να καθορίσει ότι αρχικά ο SISO αποκωδικοποιητής αρχικοποιείται µε τις soft τιµές του σήµατος που λαµβάνεται στο δεκτή. Μετά την αρχικοποίηση τροφοδοτείται από την έξοδο των προηγούµενων υπέρ-κωδικών. Η εξωγενής µνήµη είναι αρχικοποιηµένη στο µηδέν. Εφόσον η πληροφορία που µεταδίδεται και λαµβάνεται από κάθε SISO µοντέλο είναι η ίδια για όλους τους υπέρ κώδικες, καταλήγουµε σε µια γενική δοµή αποκωδικοποίησης που επαναλαµβάνεται σε κάθε υπό-επανάληψη. - 49 -
Σχήµα 4. 3 Αρχιτεκτονική LDPC πολύ-επίπεδου αποκωδικοποιητή [2]. Στην i-στη υπό-επανάληψη, ο./0¼ υπέρ-κώδικας είναι αυτός που αποκωδικοποιείται. Για τους κόµβους µεταβλητών που συνδέονται µε τους κόµβους ελέγχου αυτού του υπέρ-κώδικα υπολογίζεται η εκ των προτέρων πιθανότητα - APP. Η είσοδος του αποκωδικοποιητή σε κάθε υπό επανάληψη διαµορφώνεται από την αφαίρεση των LLR τιµών όλων των προηγούµενων βαθµίδων από την εξωγενή LLR της προηγούµενης υπό επανάληψης αυτής της βαθµίδας, αν υπάρχουν. G ½ # G # G # (4.1) Ο αποκωδικοποιητής MAP υπολογίζει µε βάση την είσοδο την εξωγενή πληροφορία των bits. Και από εκεί προκύπτει η εκ των προτέρων πιθανότητα G ¹ # G ½ # + G F # (4.2) που µεταβιβάζεται στην επόµενη SISO µονάδα. - 50 -
4.1.2 Περιγραφή του αλγόριθµου αποκωδικοποίησης MAP για layered LDPC κώδικες Στον LDPC σε επίπεδα αποκωδικοποιητή που περιγράφθηκε παραπάνω, κάθε υπέρ-κώδικας του απαρτίζεται από» ανεξάρτητους single parity check κώδικες. Όπως αναφέρθηκε στο τρίτο κεφάλαιο ένας single parity check κώδικας είναι ένας συνελικτικός κώδικας µε trellis δυο καταστάσεων, που αρχίζει και τελειώνει στη µηδενική κατάσταση όπως δίνεται στο Σχήµα 4. 4. Σχήµα 4. 4 οµή trellis για ένα single parity check κώδικα, ισχύει ¾ + ¾À + ¾Á + ¾Â. Θεωρείται η προς µετάδοση κωδική λέξη που έχει κωδικοποιηθεί µε LDPC κωδικοποιητή µήκους και ρυθµού /. Η λαµβανόµενη ακολουθία σήµατος E στο δέκτη εισάγεται στον επαναληπτικό αποκωδικοποιητή. Εφόσον υπάρχουν µόνο δυο καταστάσεις στα trellises που περιγράφουν τους υπέρ-κώδικες, ο MAP αλγόριθµος µπορεί να απλοποιηθεί. Για κάθε trellis του υπέρ-κώδικα θα ισχύουν τα ίδια πράγµατα, εφόσον έχουν το ίδιο µήκος. Για τις m ανεξάρτητες τυχαίες µεταβλητές που συµµετέχουν σε ένα SISO αποκωδικοποιητή, ορίζονται από τον αλγόριθµο MAP οι αντίστοιχες εξωγενείς πληροφορίες µε βάση τον τύπο του κεφαλαίου 3 G # E) = log ( # = +1 E) ( # = 1 E) = G(E #) + G( # ) (4.3) - 51 -
Σχήµα 4. 5 Οι προς τα εµπρός και προς τα πίσω ροή αποκωδικοποίησης MAP για single parity check κώδικες. Για ανεξάρτητες τυχαίες µεταβλητές @, (, n µε βάση το παράρτηµα A η εξωγενή πληροφορία για το k-στο bit ορίζεται ως G # = ~{ } G (4.4) όπου ο συµβολισµός {u } } αναπαριστά το σύνολο όλων των µεταβλητών @, (, n εκτός του # και το είναι συµβολισµός που αναπαριστά τον ορισµό G ( G ) G ( ) (4.5) Η σχέση G ( ) = m J ( ÇÈÉ Ê ÇÈÉ Ë του παραρτήµατος Α χρησιµοποιείται ÇÈ É Ê ÇÈ É Ë για να υπολογίσει τη λειτουργία G ( G ). Για συντοµία, ορίζεται η συνάρτηση Ì, Í για να αναπαραστήσει αυτή την πράξη ως Ì, Í = m J ( Î Ï Î Ï (4.6) όπου το G ( και Í G ). - 52 -
Στο Σχήµα 4. 5 δίνεται η ροή των προς τα εµπρός και προς τα πίσω αναδροµών του απλοποιηµένου MAP αλγορίθµου. Οι µετρικές και δίνονται αντίστοιχα από τους τύπους # ( Ì\ #, # (4.7) # = Ì\ # (, # ( (4.8) µε το # να είναι η µετρική διακλάδωσης κατά τη µετάβαση από την κατάσταση ( στην ). Το # είναι ίσο µε το G #. Αν δεν υπάρχει διασύνδεση µεταξύ δυο καταστάσεων ( και ) τότε το # είναι ίσο µε το µηδέν. Τα και αρχικοποιούνται στο +. Και τελικά υπολογίζεται η εξωγενής πληροφορία για το -στο bit ως G # = Ì\ #, # (4.9) Περισσότερο αναλυτικά στο Σχήµα 4. 6 δίνεται η µονάδα επεξεργασίας µιας ακολουθίας συµβόλων µε αλγόριθµο MAP για ένα single parity check κώδικα [1]. Αποτελείται από τρεις µονάδες που υλοποιούν την ίδια συνάρτηση (4.6). Αρχικά, κατά το µπροστά πέρασµα του αλγορίθµου υπολογίζεται η ακολουθία # για τα σύµβολα εισόδου και όλα αντίστοιχα τα # (, ενώ κατά το πίσω πέρασµα του αλγορίθµου υπολογίζονται όλα τα # και η εξωγενής πληροφορία G # επί των συµβόλων. Ροή εισόδου γ 2 γ 1 γ 0 Μονάδα υλοποίησης συνάρτησης f(.) α Μονάδα υλοποίησης συνάρτησης f(.) Ροή εξόδου L 0 L 1 L 2... Μονάδα υλοποίησης συνάρτησης f(.) β Επεξεργαστής MAP Σχήµα 4. 6 οµή επεξεργαστή MAP για ένα single parity check κώδικα. - 53 -