Μελέτη και αξιολόγηση τυχαίων Low Density Parity Check Κωδίκων σε περιβάλλον AWGN

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Μελέτη και αξιολόγηση τυχαίων Low Density Parity Check Κωδίκων σε περιβάλλον AWGN"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Διπλωματική εργασία Μελέτη και αξιολόγηση τυχαίων Low Density Parity Check Κωδίκων σε περιβάλλον AWGN Γαλάνης Ν. Εμμανουήλ Επιβλέπων Καθηγητής Δημάκης Ε. Χρήστος Θεσσαλονίκη, Ιούλιος 2012

2 - 1 -

3 ΠΡΟΛΟΓΟΣ Η εργασία αυτή πραγματοποιήθηκε στα πλαίσια της εκπόνησης της διπλωματικής εργασίας για την απόκτηση πτυχίου από το Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Ηλεκτρονικών Υπολογιστών της Πολυτεχνικής Σχολής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. Η εργασία έχει τον τίτλο «Μελέτη και αξιολόγηση τυχαίων Low Density Parity Check Κωδίκων σε περιβάλλον AWGN» και αποσκοπεί στην παρουσίαση των βασικών εννοιών, των βασικών αρχών, της λειτουργίας και των επιδόσεων των LDPC κωδίκων. Αρχικά, στο πρώτο κεφάλαιο, επιχειρούμε μια εισαγωγή με την οποία περιγράφεται η χρονική διαδρομή και ο τρόπος με τον οποίο οδηγηθήκαμε στους LDPC κώδικες. Στόχος του κεφαλαίου είναι να εκθέσει τους βασικούς λόγους και τις «ανάγκες» που οδήγησαν στην εισαγωγή των LDPC κωδίκων. Στο δεύτερο κεφάλαιο δίνονται οι βασικές έννοιες και παράμετροι που είναι απαραίτητες για την ανάλυση και περιγραφή των LDPC κωδίκων. Επίσης παραθέτονται οι δύο βασικοί τρόποι περιγραφής των LDPC κωδίκων μαζί με τα βασικά τους χαρακτηριστικά. Το τρίτο κεφάλαιο καλύπτει το θέμα της κωδικοποίησης των LDPC κωδίκων. Στο κεφάλαιο αυτό περιγράφονται διάφοροι τρόποι κωδικοποίησης μαζί με την αντίστοιχη πολυπλοκότητα που τους συνοδεύει. Στο τέταρτο κεφάλαιο περιγράφεται το πλέον σημαντικό ζήτημα της αποκωδικοποίησης των LDPC κωδίκων. Αφού εισαχθεί το γενικό σχήμα της επαναληπτικής αποκωδικοποίησης, περιγράφουμε τρεις αλγόριθμους επαναληπτικής αποκωδικοποίησης. Επίσης στο κεφάλαιο αυτό καθορίζονται και οι παράγοντες που επηρεάζουν την απόδοση της επαναληπτικής αποκωδικοποίησης. Το πέμπτο κεφάλαιο αποτελεί αναφορά στην κατασκευή των LDPC κωδίκων καθώς και των ζητημάτων που μας απασχολούν κατά την υλοποίησή της. Εκτίθενται τέσσερις βασικοί τρόποι ψευδοτυχαίας κατασκευής LDPC κωδίκων συνοδευόμενοι από τα πλεονεκτήματα και τα μειονεκτήματά τους. Στο έκτο κεφάλαιο παρατίθενται και αναλύονται τα αποτελέσματα τα οποία προέκυψαν μέσα την προσομοίωση της συμπεριφοράς των LDPC κωδίκων η οποία πραγματοποιήθηκε με τη χρήση ηλεκτρονικού υπολογιστή. Μετά λοιπόν από την ανάλυση, την κατασκευή και την προσομοίωση της συμπεριφοράς των LDPC κωδίκων, ακολουθεί η παρουσίαση μερικών από τις πλέον βασικές εφαρμογές τους η οποία γίνεται στο έβδομο κεφάλαιο. Στο όγδοο κεφάλαιο γίνεται μια σύντομη αναφορά για το σημείο στο οποίο βρίσκεται η σημερινή έρευνα πάνω στους LDPC κώδικες. Αναφέρονται λοιπόν μερικά από τα πιο σημαντικά ζητήματα τα οποία απασχολούν τη σημερινή έρευνα πάνω στους LDPC κώδικες

4 Τέλος παρατίθενται και τρία Παραρτήματα τα οποία περιγράφουν κάποιες βασικές έννοιες πάνω στην κωδικοποίηση οι οποίες χρησιμοποιούνται καθ όλη τη διάρκεια της εργασίας. Τα Παραρτήματα αυτά αφορούν βασικές έννοιες πάνω στους γραμμικούς block κώδικες, την περιγραφεί της απαλοιφής Gauss και την περιγραφεί της βέλτιστης MAP αποκωδικοποίησης

5 ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ... 2 ΠΕΡΙΕΧΟΜΕΝΑ... 4 ΚΕΦΑΛΑΙΟ 1 Εισαγωγή Η θέση της κωδικοποίησης σε ένα τηλεπικοινωνιακό σύστημα Νέοι ορίζοντες και αλλαγή φιλοσοφίας σχετικά με την κωδικοποίηση Το μεγάλο αδιέξοδο για την πρακτική επίτευξη του ορίου Shannon Η εισαγωγή των LDPC κωδίκων και της επαναληπτικής αποκωδικοποίησης Η εξέλιξη των LDPC κωδίκων ΚΕΦΑΛΑΙΟ 2 Ανάλυση και περιγραφή των LDPC κωδίκων Ορισμός των LDPC κωδίκων Αναπαράσταση των LDPC κωδίκων Αναπαράσταση μέσω του πίνακα H Γραφική αναπαράσταση των LDPC κωδίκων Ισοδυναμία των δύο τρόπων αναπαράστασης των LDPC κωδίκων Οι κύκλοι πάνω στο γράφημα Tanner Η έννοια του συνόλου LDPC κωδίκων ΚΕΦΑΛΑΙΟ 3 Κωδικοποίηση LDPC κωδίκων Εισαγωγή Κωδικοποίηση μέσω του πίνακα G Κωδικοποίηση μέσω του πίνακα Η Αποδοτική κωδικοποίηση των LDPC κωδίκων

6 ΚΕΦΑΛΑΙΟ 4 Αποκωδικοποίηση LDPC κωδίκων Εισαγωγή Επαναληπτική, message-passing αποκωδικοποίηση Ο αλγόριθμος Bit flipping Ο αλγόριθμος Sum Product Η φύση των μηνυμάτων στον SPA Επεξεργασία των LLRs στους VNs Επεξεργασία των LLRs στους CNs Υπολογισμός των λαμβανόμενων LLRs από το κάνάλι Ο αλγόριθμος Sum Product του Gallager Η εξίσωση ανανέωσης των CNs από μια άλλη σκοπιά Πλήρως, αριθμητικά ευσταθής SPA Message passing αποκωδικοποίηση για το Binary Erasure Channel( BEC ) Παράγοντες που επηρεάζουν την απόδοση της αποκωδικοποίησης Παρουσία κύκλων στο Tanner γράφημα Stopping Sets Καμπύλη BER vs. SNR για τους LDPC κώδικες Παρατηρήσεις πάνω στην απόδοση της αποκωδικοποίησης των LDPC κωδίκων ΚΕΦΑΛΑΙΟ 5 Κατασκευή LDPC κωδίκων Εισαγωγή Η μέθοδος του Gallager Η μέθοδος MacKay Neal Διαχωρισμός γραμμών ή στηλών

7 5.5 Ο αλγόριθμος PEG Ο αλγόριθμος ACΕ Παρατηρήσεις πάνω στην κατασκευή μη κανονικών LDPC κωδίκων ΚΕΦΑΛΑΙΟ 6 Αποτελέσματα προσομοίωσης Εισαγωγή Επίδραση του μήκους n του κώδικα Επίδραση του τρόπου κατασκευής του κώδικα Σύγκριση των αλγορίθμων SPA και Bit Flipping Παρατηρήσεις και δυσκολίες πάνω στις προσομοιώσεις ΚΕΦΑΛΑΙΟ 7 Εφαρμογές Εισαγωγή Εφαρμογές στην ψηφιακή τηλεόραση Εφαρμογή στο πρότυπο WiMAX Επιπλέον εφαρμογές ΚΕΦΑΛΑΙΟ 8 Προοπτικές και εξέλιξη των LDPC κωδίκων Εισαγωγή Σχεδόν κυκλικοί LDPC κώδικες Συνελικτικοί LDPC κώδικες LDPC κώδικες με μεγάλο girth ΑΡΘΡΟΓΡΑΦΙΑ ΒΙΒΛΙΟΓΡΑΦΙΑ

8 ΠΗΓΕΣ INTERNET SLIDES ΠΑΡΑΡΤΗΜΑ Α Γραμμικοί block κώδικες και γεννήτορας πίνακας Πίνακας ελέγχου ισοτιμίας Συστηματικοί κώδικες Σύνδρομο Κατανομή βαρών και ελάχιστη απόσταση Hamming ΠΑΡΑΡΤΗΜΑ Β ΑΠΑΛΟΙΦΗ GAUSS ΠΑΡΑΡΤΗΜΑ Γ ΒΕΛΤΙΣΤΗ MAP ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗ

9 ΚΕΦΑΛΑΙΟ 1 Εισαγωγή 1.1 Η θέση της κωδικοποίησης σε ένα τηλεπικοινωνιακό σύστημα Η τυπική μορφή ενός ψηφιακού, τηλεπικοινωνιακού συστήματος, στο οποίο θα αναφερόμαστε καθ όλη τη διάρκεια της εργασίας αυτής, απεικονίζεται στην παρακάτω εικόνα : Εικόνα 1.1 Block διάγραμμα ενός τυπικού, ψηφιακού τηλεπικοινωνιακού συστήματος. Ένα τέτοιο τηλεπικοινωνιακό δεν αφορά μόνο τη μετάδοση πληροφορίας από τον πομπό στο δέκτη αρά και την αποθήκευση ψηφιακής πληροφορίας σε ένα μέσο( digital storage system ). Σε αυτή την περίπτωση ο διαμορφωτής είναι η μονάδα εγγραφής των δεδομένων, το κανάλι αποτελεί το μέσο αποθήκευσης και ο αποδιαμορφωτής αποτελεί τη μονάδα ανάγνωσης δεδομένων. [32] Η πηγή πληροφορίας( information source ) παράγει την πηγαία πληροφορία( φωνή, εικόνα, δεδομένα κ.α. ) που πρόκειται να μεταδοθεί μέσω του καναλιού. Η παραγόμενη πληροφορία, στην έξοδο της πηγής, μπορεί να είναι είτε σε ψηφιακή μορφή( σε μορφή διακριτών συμβόλων ) είτε σε αναλογική μορφή( συνεχής κυματομορφή ). [32] Ο κωδικοποιητής πηγής( source encoder ) μετατρέπει την έξοδο της πηγής πληροφορίας σε ακολουθία από δυαδικά ψηφία( bits ) η οποία ονομάζεται ακολουθία πληροφορίας( information sequence ) και συμβολίζεται με το διάνυσμα u. Στην περίπτωση που η πηγή πληροφορίας είναι αναλογική, ο κωδικοποιητής πηγής περιλαμβάνει και μετατροπή αναλογικού σήματος σε ψηφιακό( analog to digital conversion ). Η διαδικασία που επιτελεί ο κωδικοποιητής πηγής αναφέρεται και ως συμπίεση( compression ) και πραγματοποιείται με βάση τα εξής δύο - 8 -

10 κριτήρια : 1) την ελαχιστοποίηση του αριθμού των bits / sec τα οποία απαιτούνται για την αναπαράσταση της εξόδου της πηγής πληροφορίας και 2) την αναμφισβήτητη ανακατασκευή της εξόδου της πηγής πληροφορίας από την [32], [34], [35], [36] ακολουθία πληροφορίας u. Ο κωδικοποιητής καναλιού( channel encoder ) δέχεται στην είσοδό του την ακολουθία πληροφορίας u και τη μετατρέπει σε μια ακολουθία v από κωδικοποιημένα, διακριτά σύμβολα. Η ακολουθία v ονομάζεται κωδική λέξη( codeword ). Το αλφάβητο Α στο οποίο ανήκουν τα διακριτά σύμβολα των κωδικών λέξεων αποτελεί και το αλφάβητο του κώδικα. Αν Α = GF( 2 ) τότε ο κώδικας ονομάζεται δυαδικός( binary code ) και η κωδικοποίηση απεικονίζει ένα k διάστατο διάνυσμα( k tuple ) με στοιχεία από το GF( 2 ) σε ένα n διάστατο διάνυσμα( n tuple ) με στοιχεία από το GF( 2 ), με n > k. Αν το Α είναι ένα σύνολο ευρύτερο από το GF( 2 ) τότε ο κώδικας ονομάζεται μη δυαδικός( non binary code ). Για παράδειγμα αν Α = GF( 2 d ) τότε η κωδικοποίηση αρχικά χωρίζει τα bits πληροφορίας σε d άδες, όπου κάθε d άδα από bits αντιστοιχεί σε ένα σύμβολο του Α. Έπειτα απεικονίζεται ένα k διάστατο διάνυσμα με στοιχεία από το GF(2 d ) σε ένα n διάστατο διάνυσμα με στοιχεία από το GF(2 d ), με n > k. Η παράμετρος n αποτελεί το μήκος του κώδικα( block length ) ενώ η παράμετρος R = [31], [32] k / n αποτελεί το ρυθμό του κώδικα( code rate ). Ο διαμορφωτής( modulator ) μετατρέπει τα σύμβολα εξόδου του κωδικοποιητή καναλιού σε κυματομορφές, διάρκειας T, οι οποίες είναι κατάλληλες για μετάδοση μέσα από το κανάλι που έχουμε στη διάθεσή μας. Ο τύπος της διαμόρφωσης που θα ακολουθήσουμε είναι ανεξάρτητος από τον τύπο της κωδικοποίησης. Έτσι αν έχουμε γενικά M αδική διαμόρφωση, με M = 2 l, τότε ο διαμορφωτής θα δέχεται στην είσοδό του l άδες από bits και θα αντιστοιχεί κάθε τέτοια l άδα σε μια μοναδική κυματομορφή, από ένα σύνολο M διακριτών κυματομορφών. [32] Η κυματομορφή αυτή μεταδίδεται διαμέσου του καναλιού και υφίσταται διάβρωση από πιθανό θόρυβο που ενυπάρχει στο κανάλι.. Συνήθεις πηγές θορύβου σε ένα τηλεπικοινωνιακό σύστημα είναι η παρουσία θερμικού θορύβου στα κυκλώματα, αστοχίες ή ατέλειες του υλικού, επίδραση εξωτερικών παραγόντων όπως η κοσμική ακτινοβολία ή οι δυσμενείς καιρικές συνθήκες. Ο αποδιαμορφωτής( demodulator ) δέχεται στην είσοδό του τη λαμβανόμενη κυματομορφή( η οποία είναι αυτή που έχει αποσταλεί αλλά διαβρωμένη από το θόρυβο ). Ο αποδιαμορφωτής επεξεργάζεται τη λαμβανόμενη κυματομορφή και στην έξοδό του παράγει το λαμβανόμενο διάνυσμα r. Τα στοιχεία του r μπορεί να προέρχονται είτε από ένα διακριτό αλφάβητο είτε από ένα συνεχές αλφάβητο οπότε λέμε αντίστοιχα ότι το r είναι κβαντισμένο( quantized ) ή ακβάντιστο( unquantized ). Το λαμβανόμενο διάνυσμα r ονομάζεται και λαμβανόμενη ακολουθία( received sequence ). Να σημειώσουμε ότι όταν τα στοιχεία του διανύσματος r προέρχονται από ένα αλφάβητο Β το οποίο είναι το ίδιο ή πιο περιορισμένο με το αλφάβητο A του κώδικα, τότε λέμε ότι έχουμε hard decision αποκωδικοποίηση. Όταν τα στοιχεία του διανύσματος r προέρχονται από ένα αλφάβητο B το οποίο είναι ευρύτερο του A ή όταν το r είναι ακβάντιστο τότε λέμε ότι έχουμε soft decision [31], [32] αποκωδικοποίηση. Ο αποκωδικοποιητής καναλιού( channel decoder ), παρατηρώντας το λαμβανόμενο διάνυσμα r, θα πρέπει να κάνει μια εκτίμηση για την ακολουθία πληροφορίας u που έχει αποσταλεί. Η εκτίμηση αυτή ονομάζεται εκτιμώμενη - 9 -

11 ακολουθία πληροφορίας( estimated information sequence ). Ο τρόπος με τον οποίο θα εξαχθεί η εκτιμώμενη ακολουθία πληροφορίας αποτελεί τη διαδικασία της [31], [32] αποκωδικοποίησης. Τέλος ο αποκωδικοποιητής πηγής( source decoder ) δέχεται στην είσοδό του την εκτιμώμενη ακολουθία πληροφορίας και επιχειρεί να κάνει μια εκτίμηση για την έξοδο της πηγής πληροφορίας( η οποία βρίσκεται στον πομπό ). Έτσι επιτυγχάνεται η μετάδοση της εξόδου μιας πηγής πληροφορίας από τον πομπό στο δέκτη. [32] Στόχος ενός καλά σχεδιασμένου τηλεπικοινωνιακού συστήματος είναι η εκτίμηση της εξόδου( στο δέκτη ) της πηγής πληροφορίας να είναι μια όσο το δυνατό πιο πιστή αναπαράσταση της πραγματικής εξόδου( στον πομπό ) της πηγής πληροφορίας. [35] Οι LDPC κώδικες που θα μελετήσουμε, αφορούν το κομμάτι της κωδικοποίησης καναλιού. Συνεπώς η θέση τους και ο ρόλος τους σε ένα τηλεπικοινωνιακό σύστημα είναι η ανίχνευση και η διόρθωση των λαθών που ενδεχομένως να προκύπτουν από τη μετάδοση της πληροφορίας διαμέσου του καναλιού. 1.2 Νέοι ορίζοντες και αλλαγή φιλοσοφίας σχετικά με την κωδικοποίηση Μέχρι το 1948 κάθε τηλεπικοινωνιακός μηχανικός είχε ένα μόνο δρόμο για να επιτύχει μείωση της πιθανότητας σφάλματος : την αύξηση της σηματοθορυβικής σχέσης E b / N o. Η αύξηση αυτή μπορούσε να επιτευχθεί είτε με αύξηση της ισχύος εκπομπής είτε με αύξηση της διάρκειας εκπομπής ενός bit. Η οικονομικά και τεχνικά εφικτή επιλογή που ακολουθούσαν όλοι οι μηχανικοί της εποχής ήταν η αύξηση της διάρκειας εκπομπής ενός bit. Κάτι τέτοιο όμως είχε ως επακόλουθο τη μείωση του ρυθμού μετάδοσης πληροφορίας. Έτσι λοιπόν το πρόβλημα ήταν ότι για την επίτευξη αξιόπιστης επικοινωνίας( πολύ μικρή πιθανότητα σφάλματος ) απαιτούνταν σχεδόν μηδενιζόμενοι ρυθμοί μετάδοσης. [35] Το 1948 ο Shannon άλλαξε όλη τη φιλοσοφία που επικρατούσε πάνω στην κωδικοποίηση καναλιού, με την εργασία που παρουσίασε. Ιδιαίτερα σημαντικό ήταν το δεύτερο θεώρημα Shannon, γνωστό και ως θεώρημα κωδικοποίησης ενθόρυβου καναλιού, το οποίο έχει ως εξής : Θεώρημα κωδικοποίησης ενθόρυβου καναλιού [35], [36] : Για οποιοδήποτε δ > 0 υπάρχει κώδικας μήκους n και ρυθμού R = k / n, για τον οποίο η πιθανότητα σφάλματος( όταν το μήκος n του κώδικα γίνεται αρκετά μεγάλο ) είναι μικρότερη του δ, μόνο αν R C, όπου C είναι ένα μέγεθος χαρακτηριστικό του καναλιού που ονομάζεται χωρητικότητα( capacity ). Αντίθετα, αν R > C τότε η πιθανότητα σφάλματος για οποιονδήποτε κώδικα οποιουδήποτε μήκους n, απομακρύνεται από το 0. Το κύριο συμπέρασμα από το δεύτερο θεώρημα Shannon, ήταν ότι μπορούμε να πετύχουμε αυθαίρετα μικρή πιθανότητα σφάλματος επιλέγοντας το μήκος του κώδικα n να είναι αρκετά μεγάλο με τη βασική προϋπόθεση ότι ο ρυθμός του

12 κώδικα R = k / n να είναι μικρότερος από τη χωρητικότητα του καναλιού. Ένα δεύτερο σημαντικό συμπέρασμα είναι ότι μπορούμε να επιτύχουμε αξιόπιστη επικοινωνία με μη μηδενιζόμενους ρυθμούς μετάδοσης, ακόμη κι όταν n ( πρακτικά το n να είναι πολύ μεγάλο ) επιλέγοντας απλά και το k να είναι επαρκώς μεγάλο, διατηρώντας το λόγο k / n σταθερό έτσι ώστε ρυθμός του κώδικα να είναι σταθερός. [36] Για την περίπτωση του κλασσικού καναλιού προσθετικού, γκαουσιανού, θορύβου( AGN ) με συνεχή είσοδο και περιορισμό ισχύος, η χωρητικότητα δίνεται από τη σχέση [34], [35] : 1 1 P C =. log 2 ( 1 + SNR ) =. log 2 ( 1 + ) = 2 2 N o. B 1 E b.t b 1 E b 1 =. log2 ( 1 + ) =. log 2 ( 1 +. ) bits / symbol 2 N o. B 2 No B. R b και η κατανομή της συνεχούς πηγής εισόδου θα πρέπει να είναι κανονική ώστε να επιτευχθεί η χωρητικότητα αυτή [34]. Αν επιπλέον θέσουμε και περιορισμό εύρους ζώνης τότε η χωρητικότητα θα είναι [34], [35] : P C = B. log 2 ( 1 + SNR ) = B. log 2 ( 1 + ) = N o. B E b.t b E b 1 = B. log2 ( 1 + ) = B. log 2 ( 1 +. ) bits / sec N o. B No B. R b Στις παραπάνω σχέσεις P είναι η εκπεμπόμενη ισχύς, Ν ο είναι η φασματική πυκνότητα ισχύος του θορύβου, T b είναι η διάρκεια εκπομπής ενός bit και R b = 1 / T b είναι ο ρυθμός μετάδοσης bits. Συνήθως το εύρος ζώνης B του καναλιού είναι δεδομένο ενώ και o ρυθμός μετάδοσης R b μπορεί να θεωρηθεί ως δεδομένη σχεδιαστική παράμετρος. Έτσι η χωρητικότητα θα εξαρτάται από τη σηματοθορυβική σχέση E b / N o μέσω μιας γνησίως αύξουσας σχέσης. Συνεπώς, για το AGN, αντί να υπολογίζουμε το μέγιστο δυνατό ρυθμό( χωρητικότητα ) συναρτήσει της σηματοθορυβικής σχέσης μπορούμε ισοδύναμα να υπολογίζουμε το ελάχιστο SNR( E b / N o ) που απαιτείται για την επίτευξη αξιόπιστης επικοινωνίας, για ένα δεδομένο ρυθμό R. Το ελάχιστο αυτό SNR ονομάζεται όριο Shannon και αποτελεί την ελάχιστη απαιτούμενη τιμή για τη σηματοθορυβική σχέση E b / N o, ώστε να επιτευχθεί αξιόπιστη επικοινωνία για ένα δεδομένο ρυθμό R. Παρόμοια

13 μπορεί να αποδειχθεί ότι το όριο Shannon για το Binary Symmetric Channel και το Binary Erasure Channel αντιστοιχεί στη μέγιστη πιθανότητα διασταύρωσης( crossover probability ) και στη μέγιστη πιθανότητα διαγραφής( erasure probability ) αντίστοιχα έτσι ώστε να επιτευχθεί αξιόπιστη επικοινωνία για ένα δεδομένο ρυθμό R. [28], [31]. Στην πράξη, η σύγκριση των διαφόρων κωδίκων γίνεται με βάση το πόσο κοντά μας οδηγούν σε αυτό το όριο Shannon, για διάφορους ρυθμούς κώδικα R, με 0 < R <1. Στον πίνακα 1.1 μπορούμε να δούμε τις τιμές για το όριο Shannon για διάφορους ρυθμούς κώδικα, για soft decision και hard decision αποκωδικοποίηση, στην περίπτωση του Binary Input AWGN( BI AWGN 1 ) καναλιού. Στην εικόνα 1.2 μπορούμε να δούμε τις καμπύλες χωρητικότητας για το BI AWGN. Εικόνα 1.2 Καμπύλες χωρητικότητας ως προς το ( E b / N o )db για τις περιπτώσεις hard decision και soft decision αποκωδικοποίησης για ένα BI AWGN κανάλι. Με την ευθεία γραμμή φαίνεται η καμπύλη χωρητικότητας για τη γενική περίπτωση ενός AGN καναλιού με συνεχή είσοδο και περιορισμό ισχύος. Παρατηρούμε ότι με τη χρήση hard decision αποκωδικοποίησης χάνουμε περίπου 2 db σε σχέση με τη soft decision αποκωδικοποίηση αλλά αυτό που κερδίζουμε είναι η μειωμένη πολυπλοκότητα αποκωδικοποίησης. [31] 1 Σε ένα BI AWGN κανάλι η είσοδος είναι περιορισμένη και μπορεί να πάρει τιμές μεταξύ δύο σταθμών, χ l =, ενώ η έξοδος είναι μη περιορισμένη και παίρνει πραγματικές y l = χ l + z l, όπου z l είναι μια συνεχής, τυχαία μεταβλητή με κανονική κατανομή, μέση τιμή 0 και μεταβλητότητα σ 2. [31]

14 ΠΙΝΑΚΑΣ 1.1 [31] Όριο Shannon E b / N o για διάφορους ρυθμούς κώδικα και για hard decision και soft decision αποκωδικοποίηση Από το 1948 και μετά λοιπόν, οι προσπάθειες των ερευνητών στρέφονται στη σχεδίαση και την υλοποίηση κωδίκων που θα λειτουργούν όσο γίνεται πιο κοντά στο όριο Shannon. Ο ίδιος ο Shannon έδειξε τον τρόπο με τον οποίο θα μπορούσε να φτάσει κάποιος στο όριο Shannon : κατασκευάζοντας έναν τυχαίο κώδικα( randomly constructed code ) με πολύ μεγάλο μήκος n. 1.3 Το μεγάλο αδιέξοδο για την πρακτική επίτευξη του ορίου Shannon Στην προσπάθειά τους να προσεγγίσουν το όριο Shannon, οι ερευνητές και οι τηλεπικοινωνιακοί μηχανικοί κατασκεύαζαν όλο και πιο «ογκώδεις» και πολύπλοκους κώδικες. Έτσι ένας block κώδικας έπρεπε, προκειμένου να προσεγγίσει το όριο Shannon, να έχει όλο και πιο μεγάλο μήκος n. Επίσης ένας συνελικτικός κώδικας,

15 προκειμένου να αυξήσει τις επιδόσεις του, έπρεπε να έχει όλο και μεγαλύτερη τάξη μνήμης. Όλα αυτά γινόταν όμως με την προϋπόθεση ότι ο κώδικας θα αποκωδικοποιείται με βέλτιστο MAP τρόπο( π.χ. MAP ή ML αποκωδικοποίηση για τους block κώδικες και αποκωδικοποίηση Viterbi για τους συνελικτικούς κώδικες ), ώστε να [32], [36] επιτευχθούν όσο το δυνατόν καλύτερες επιδόσεις. Στο παράρτημα Γ περιγράφεται αναλυτικά η βέλτιστη MAP αποκωδικοποίηση για έναν κώδικα. Η αποκωδικοποίηση με βέλτιστο MAP τρόπο παρέχει τη διασφάλιση ότι η πιθανότητα σφάλματος μειώνεται εκθετικά με την αύξηση του μήκους n του κώδικα. Έτσι αυξάνοντας σημαντικά το μήκος του κώδικα( θεωρητικά n ) η πιθανότητα σφάλματος θα γίνεται πολύ μικρή( θεωρητικά όταν n τότε P( e ) 0 ). Το σημαντικό όμως μειονέκτημα της βέλτιστης MAP αποκωδικοποίησης είναι η εκθετική αύξηση( Ο( 2 n ) ) της πολυπλοκότητας της αποκωδικοποίησης με την αύξηση του μήκους n του κώδικα. Έτσι πολύ γρήγορα( για όχι μεγάλα μήκη n, περίπου για n > 20 ) η υλοποίηση του κώδικα γίνεται ανέφικτη λόγω της απαγορευτικής πολυπλοκότητας της αποκωδικοποίησης. [31], [32], [36] Άρα λοιπόν η πρακτική υλοποίηση κωδίκων που θα λειτουργούσαν πολύ κοντά στο όριο Shannon, συνάντησε ένα ισχυρό τοίχος το οποίο σχετιζόταν με την πολυπλοκότητα της αποκωδικοποίησης. Για την υπέρβαση αυτού του τοίχους πραγματοποιήθηκαν σημαντικές προσπάθειες πολλών ερευνητών οι οποίες είχαν διάρκεια σχεδόν μισό αιώνα( ). Ενδεικτικά αναφέρουμε τους κώδικες Reed Muller( 1954 ), τους BCH κώδικες( 1959 ), τους μη δυαδικούς Reed Solomon κώδικες( 1960 ), τους συνελικτικούς κώδικες( 1955 ) και τους αλυσιδωτούς κώδικες( 1965 ). [45] Παρ όλες τις προσπάθειες όμως, το πρόβλημα της πρακτικής υλοποίησης κωδίκων οι οποίοι θα λειτουργούν κοντά στο όριο Shannon, φαινόταν να είναι ανυπέρβλητο. Οι πρακτικά υλοποιήσιμοι, κλασσικοί κώδικες δεν μπορούσαν να προσεγγίσουν αρκετά κοντά στο όριο Shannon. Στην παρακάτω εικόνα μπορούμε να δούμε πόσο κοντά πλησιάζουν στη χωρητικότητα για το Binary Symmetric Channel, διάφοροι κλασσικοί κώδικες

16 Εικόνα 1.3 Επιδόσεις διαφόρων κλασσικών κωδίκων για το BSC και πιθανότητα διασταύρωσης p = Η εισαγωγή των LDPC κωδίκων και της επαναληπτικής αποκωδικοποίησης Το 1962 ο Robert Gallager, στη διδακτορική του διατριβή [1] στο πανεπιστήμιο MIT, παρουσίασε για πρώτη φορά τα οφέλη από τη χρήση γραμμικών, block κωδίκων οι οποίοι περιγράφονται από έναν αραιό( σε ότι αφορά την πυκνότητα των μη μηδενικών στοιχείων ) πίνακα ελέγχου ισοτιμίας ο οποίος είχε μεγάλο μέγεθος( περίπου 500 στήλες ). Οι κώδικες αυτοί ονομάστηκαν χαμηλής πυκνότητας κώδικες ελέγχου ισοτιμίας( Low Density Parity Check codes LDPC ). Η μεγάλη καινοτομία την οποία εισήγαγε όμως ο Gallager δεν ήταν απλά η χρήση ενός αραιού, μεγάλου πίνακα ελέγχου ισοτιμίας. η αραιότητα του πίνακα ελέγχου ισοτιμίας καθιστά τους LDPC κώδικες επιδεκτικούς σε διάφορους αλγόριθμους επαναληπτικής αποκωδικοποίησης( iterative decoding ). Αυτό αποτέλεσε και το κλειδί για την αλματώδη ανάπτυξη των LDPC κωδίκων. Η επαναληπτική αποκωδικοποίηση που εισήγαγε ο Gallager μαζί με τους LDPC κώδικες, αν και υποβέλτιστη( σε σχέση με τη MAP αποκωδικοποίηση ), επιτρέπει την πρακτική υλοποίηση κωδίκων μεγάλου μήκους( n~10 5 ), οι οποίοι παρουσιάζουν εφικτή πολυπλοκότητα αποκωδικοποίησης και οι οποίοι μπορούν να φτάσουν πολύ κοντά( έως και μερικά εκατοστά του db ) στο όριο Shannon. Όπως θα δούμε στo τέταρτο κεφάλαιο, οι LDPC κώδικες χαρακτηρίζονται ως κώδικες που πλησιάζουν τη

17 χωρητικότητα( capacity approaching codes ) και η απόδοσή τους, σε πολλές [1], [31], [32], περιπτώσεις, χαρακτηρίζεται ως σχεδόν βέλτιστη( near optimal ). [33] 1.5 Η εξέλιξη των LDPC κωδίκων Η αλματώδης ανάπτυξη όμως των LDPC κωδίκων δεν ήρθε ταυτόχρονα με την εισαγωγή τους. Αντίθετα, η δουλειά του Gallager έμεινε στην αφάνεια για τα επόμενα σχεδόν 20 χρόνια. Ο κύριος λόγος που συνέβη αυτό ήταν τεχνολογικός. Η υπολογιστική δύναμη των ηλεκτρονικών υπολογιστών της εποχής ήταν πολύ περιορισμένη. Έτσι στις προσομοιώσεις που έκανε ο Gallager για τους κώδικές του, μπορούσε να προσομοιώσει τη συμπεριφορά κωδίκων με μήκη το πολύ n = 504. Επομένως αδυνατώντας να προσομοιώσει μεγάλου μήκους κώδικες, δε μπορούσε να δείξει τις σημαντικές επιδόσεις των LDPC κωδίκων( όπως τις γνωρίζουμε [32], [43] σήμερα ). Η επανεμφάνιση των LDPC κωδίκων και της επαναληπτικής αποκωδικοποίησης έγινε το 1981 από τον Michael Tanner. Ο Tanner εισήγαγε μια νέα ερμηνεία των LDPC κωδίκων, από μια άλλη σκοπιά με τη χρήση της θεωρίας διμερών γραφημάτων. Ο Tanner λοιπόν, περιγράφει ένα μεγάλο κώδικα ως σύνθεση απλούστερων, μικρών κωδίκων ενώ χρησιμοποιεί την επαναληπτικότητα αναδρομικότητα( συνεργασία μεταξύ των επιμέρους κωδίκων ) για τη μείωση της πολυπλοκότητας. Για την περιγραφή της ανάλυσής του ο Tanner χρησιμοποιεί τα λεγόμενα διμερή γραφήματα. Η ανάλυση του Tanner δεν αφορά μόνο τους LDPC κώδικες. είναι πιο γενική και αφορά και άλλες κατηγορίες κωδίκων( π.χ. τους product κώδικες ). [2] Αλλά και η δουλειά του Tanner αγνοήθηκε και έμεινε και αυτή στην αφάνεια( προσωρινά ). Η αναγέννηση των LDPC κωδίκων επήλθε από το 1995 και μετά. Συγκεκριμένα το 1995 οι D. MacKay και R. Neal, χωρίς να γνωρίζουν την εργασία του Gallager, σημείωσαν τα σημαντικά οφέλη της χρήσης αραιών πινάκων ελέγχου ισοτιμίας για δυαδικούς block κώδικες. Στη μελέτη που δημοσίευσαν [3], παρουσίασαν για πρώτη φορά( μέσω προσομοιώσεων με υπολογιστή ) την ικανότητα των LDPC κωδίκων να λειτουργούν κοντά στο όριο Shannon για το Binary Symmetric Channel( BSC ) και για το BI AWGN. Επίσης το 1996 οι N. Alon και M. Luby( όπως φαίνεται στο [4] ) αλλά και το 1998 οι J. Byers, M. Luby, M. Mitzenmacher και D. Spielman( όπως φαίνεται στο [5] ) παρατήρησαν( επίσης ανεξάρτητα από τη δουλειά του Gallager ) τα πλεονεκτήματα της χρήσης ενός πίνακα ελέγχου ισοτιμίας με χαμηλή πυκνότητα. Όλοι αυτοί οι ερευνητές οδήγησαν όχι μόνο στην επανεισαγωγή των LDPC κωδίκων αλλά και στη γενίκευσή τους. Έτσι λοιπόν κατασκευάστηκαν μεγάλου μήκους LDPC κώδικες οι οποίοι με τη χρήση της επαναληπτικής αποκωδικοποίησης κατάφεραν να επιτύχουν επιδόσεις πολύ κοντά στο όριο Shannon( κλάσμα του db μακριά από το όριο Shannon ). [31], [32] Να σημειώσουμε ότι, όπως θα δούμε στη συνέχεια, οι LDPC κώδικες που εισήγαγε ο Gallager αφορούν ένα υποσύνολο των LDPC κωδίκων που ονομάζονται κανονικοί( regular ) LDPC κώδικες. Από το 1995 και μετά οι LDPC κώδικες γενικεύτηκαν ώστε να περιλαμβάνουν και ένα επιπλέον υποσύνολο των LDPC

18 κωδίκων που ονομάζονται μη κανονικοί( irregular ) LDPC κώδικες. Κυρίως όμως το 1998 και το 2001 έγιναν εμφανείς οι τεράστιες δυνατότητες των μη κανονικών LDPC κωδίκων. Συγκεκριμένα στα [5], [6], [7], [8] και [9] φαίνεται πλέον επίσημα και με συγκρίσεις ότι οι μη κανονικοί LDPC κώδικες υπερέχουν συντριπτικά έναντι των κανονικών. Στις προαναφερθείσες αρθρογραφίες φαίνεται ότι οι μη κανονικοί LDPC κώδικες φτάνουν πολύ κοντά στη χωρητικότητα και μάλιστα στο [9] παρουσιάζεται ένας μη κανονικός LDPC κώδικας μήκους n = 10 7 και ρυθμού R = 0.5 με επιδόσεις μόλις db από το όριο Shannon. Επίσης αρχίζει να γίνεται πλέον εμφανές ότι οι μη κανονικοί LDPC κώδικες υπερισχύουν και έναντι των Turbo κωδίκων. Να τονίσουμε ότι η δουλειά του Gallager τη δεκαετία του 1960 δεν έμεινε «αμέτοχη» σχετικά με όλη αυτή την αναγέννηση των LDPC κωδίκων. Έτσι ο soft decision αλγόριθμος αποκωδικοποίησης που είχε εισάγει ο Gallager για το BI AWGN( αλγόριθμος Sum Product SPA ) κανάλι αποτέλεσε και αποτελεί το θεμέλιο λίθο για την επαναληπτική αποκωδικοποίηση. Ο αλγόριθμος αυτός έχει βελτιωθεί σε σχέση με τον πρωτότυπο αλγόριθμο του Gallager και τυγχάνει ευρύτατης χρήσης. Επίσης και ορισμένοι hard decision αλγόριθμοι αποκωδικοποίησης για το BSC που είχε εισάγει ο Gallager βρίσκουν εφαρμογές [31], [32] ακόμη και σήμερα. Στα χρόνια που ακολούθησαν( μέχρι και σήμερα ) καταβλήθηκαν μεγάλες προσπάθειες ώστε να σχεδιαστούν και να κατασκευαστούν LDPC κώδικες οι οποίοι να λειτουργούν όσο γίνεται πιο κοντά στο όριο Shannon. Αξιοσημείωτοι, σε ότι αφορά την κατασκευή LDPC κωδίκων, είναι οι αλγόριθμοι Progressive Edge Growth( PEG ) και Improved PEG( τους οποίους θα εξετάσουμε στο πέμπτο κεφάλαιο ) ενώ σε ότι αφορά τη σχεδίαση LDPC κωδίκων ενδεικτικά αναφέρουμε την τεχνική Density Evolution. Όλες αυτές οι προσπάθειες απέδωσαν καρπούς, αφού κατασκευάστηκαν αλγόριθμοι τόσο για ( σχεδόν βέλτιστη) αποκωδικοποίηση των LDPC κωδίκων με πολυπλοκότητα γραμμικού χρόνου( O( n ) ) όσο και για κωδικοποίηση των LDPC κωδίκων με πολυπλοκότητα γραμμικού [10], [31], [43] χρόνου. Έτσι οι LDPC κώδικες έγιναν οι κύριοι ανταγωνιστές των Turbo κωδίκων. Οι δύο αυτοί τύποι κωδίκων( μαζί με τους Repeat Accumulate κώδικες που αποτελούν ουσιαστικά μια υποκατηγορία των LDPC κωδίκων ) αποτελούν τις πλέον μοντέρνες τεχνικές κωδικοποίησης οι οποίες χρησιμοποιούνται σε πληθώρα τηλεπικοινωνιακών συστημάτων και συστημάτων αποθήκευσης πληροφορίας, όταν απαιτείται ιδιαίτερα υψηλή αξιοπιστία. Τα κύρια πλεονεκτήματα των LDPC κωδίκων σε σχέση με τους Turbo κώδικες είναι τα εξής : 1) Οι LDPC κώδικες δεν απαιτούν τη χρήση αναδιατάκτη( interleaver ) ώστε να επιτύχουν καλές επιδόσεις. Αντίθετα στους Turbo κώδικες η χρήση αναδιατάκτη είναι απαραίτητη. [32] 2) Οι LDPC κώδικες( σε αντίθεση με τους Turbo κώδικες ) δεν είναι κατοχυρωμένοι( patented ) σε κάποιο πρόσωπο ή οργανισμό και συνεπώς αποτελούν μια οικονομικά και τεχνικά ελκυστική επιλογή για χρήση σε εμπορικά προϊόντα. [43]

19 3) Οι LDPC κώδικες επιτυγχάνουν καλύτερες επιδόσεις από τους Turbo κώδικες σε ότι αφορά τα λάθη blocks( block error performance ). [32] 4) Στους LDPC κώδικες, το επίπεδο του error floor παρατηρείται σε πολύ [31], [32] χαμηλότερα BER σε σχέση με τους Turbo κώδικες. 5) Ο τρόπος που γίνεται η αποκωδικοποίηση των LDPC κωδίκων( όπως θα δούμε στο τέταρτο κεφάλαιο ) την καθιστά επιδεκτική στην εφαρμογή παράλληλης αρχιτεκτονικής επεξεργασίας. Όπως θα δούμε, οι Check Nodes και οι Variable Nodes μπορούν να θεωρηθούν ως επεξεργαστές( κατά την αποκωδικοποίηση ) οι οποίοι λειτουργούν ταυτόχρονα, γεγονός που επιτρέπει την εφαρμογή παράλληλης υλοποίησης. Το κύριο μειονέκτημα των LDPC κωδίκων, έναντι των Turbo κωδίκων, είναι το γεγονός ότι η διαδικασία της κωδικοποίησης των LDPC κωδίκων είναι πιο αργή σε σχέση με αυτή των Turbo κωδίκων. Πράγματι, όπως θα δούμε στο τρίτο κεφάλαιο, οι LDPC κώδικες παρουσιάζουν ένα ζήτημα σχετικά με την ταχύτητα κωδικοποίησης, για το οποίο όμως έχουν προταθεί και υιοθετηθεί σημαντικές [10], [31], [32] λύσεις

20 ΚΕΦΑΛΑΙΟ 2 Ανάλυση και περιγραφή των LDPC κωδίκων 2.1 Ορισμός των LDPC κωδίκων Οι LDPC κώδικες είναι γραμμικοί block κώδικες( ή αλλιώς κώδικες ελέγχου ισοτιμίας ) των οποίων ο πίνακας ελέγχου ισοτιμίας H είναι ένας αραιός πίνακας. Λέγοντας αραιός πίνακας, εννοούμε έναν πίνακα ο οποίος περιέχει έναν πολύ μικρό αριθμό μη μηδενικών στοιχείων. [31], [33] Η πυκνότητα ενός πίνακα μπορεί να οριστεί ως εξής [32] : αριθμός μη μηδενικών στοιχείων του πίνακα πυκνότητα πίνακα = συνολικός αριθμός στοιχείων του πίνακα Η αραιότητα του πίνακα H είναι βασική, γιατί διευκολύνει την εφαρμογή της επαναληπτικής αποκωδικοποίησης. Όπως θα δούμε στο τέταρτο κεφάλαιο, η πυκνότητα του πίνακα H αρκεί να είναι ικανοποιητικά μικρή έτσι ώστε να επιτρέπει τη χρήση της επαναληπτικής αποκωδικοποίησης. Η χρήση της επαναληπτικής αποκωδικοποίησης μειώνει σημαντικά την πολυπλοκότητα της αποκωδικοποίησης και συνεπώς επιτρέπει τη χρήση μεγάλων τιμών για το block length n. Η επαναληπτική αποκωδικοποίηση, όπως θα δούμε, είναι μεν υποβέλτιστη, αλλά με την κατάλληλη σχεδίαση του κώδικα και τη χρήση μεγάλων block lengths n οδηγεί σε σχεδόν βέλτιστες επιδόσεις. Αυτό ουσιαστικά είναι και το μυστικό κλειδί [31], [32], [33] των LDPC κωδίκων. Στο Παράρτημα Α περιγράφονται αναλυτικά οι γραμμικοί block κώδικες και δίνονται τα πιο σημαντικά χαρακτηριστικά που αναφέρονται σε αυτούς. Πέραν της απαιτήσεως της αραιότητας του πίνακα H, ένας LDPC κώδικας δε διαφέρει από ένα γραμμικό block κώδικα. Η μόνη διαφορά, όπως είπαμε, είναι στον τρόπο αποκωδικοποίησης. Οι κλασσικοί block κώδικες αποκωδικοποιούνται με βέλτιστο Maximum Likelihood τρόπο και συνεπώς έχουν μικρά block lengths n και σχεδιάζονται με αλγεβρικές μεθόδους ώστε να μειωθεί κάπως η πολυπλοκότητα της αποκωδικοποίησης. Από την άλλη πλευρά, οι LDPC κώδικες αποκωδικοποιούνται με επαναληπτικό, υποβέλτιστο τρόπο και συνεπώς έχουν πολύ μεγαλύτερο block length n και κατασκευάζονται με πιο τυχαίο τρόπο( με [31], [32] βάση τις ιδιότητες του πίνακα H )

21 Να σημειώσουμε ότι ανάλογα με το σώμα πάνω στο οποίο ορίζονται οι LDPC κώδικες, διακρίνονται σε δυαδικούς( binary ) και μη δυαδικούς LDPC κώδικες. Η παρακάτω ανάλυση αφορά τους δυαδικούς LDPC κώδικες( με στοιχεία από το GF( 2 ), αλλά εύκολα μπορεί να γενικευτεί και για τους μη δυαδικούς LDPC κώδικες. 2.2 Αναπαράσταση των LDPC κωδίκων Στην ενότητα αυτή θα εξετάσουμε τους δύο βασικούς τρόπους αναπαράστασης των LDPC. Όπως θα δούμε, οι δύο αυτοί τρόποι αναπαράστασης είναι απολύτως ισοδύναμοι και χρησιμοποιούνται εξίσου Αναπαράσταση μέσω του πίνακα H Ως γραμμικοί block κώδικες, οι LDPC κώδικες μπορούν να αναπαρασταθούν πλήρως με τη χρήση του πίνακα ελέγχου ισοτιμίας τους. Συγκεκριμένα ένας LDPC κώδικας μπορεί να θεωρηθεί ως ο μηδενικός( null ) ή δυικός( dual ) χώρος ενός mxn πίνακα ελέγχου ισοτιμίας H ο οποίος έχει χαμηλή πυκνότητα από 1. [31], [32] Ο τρόπος αυτός αναπαράστασης εισήχθη από τον ίδιο το Gallager, όταν εισήγαγε και περιέγραφε τους LDPC κώδικές του. Σημαντικές παράμετροι κατά την αναπαράσταση ενός LDPC κώδικα με τη χρήση του πίνακα H είναι οι εξής : 1) Το πλήθος των γραμμών του πίνακα H. Η παράμετρος m είναι ουσιαστικά το πλήθος των εξισώσεων ελέγχου ισοτιμίας και κατά κανόνα η αύξηση της τιμής της ενισχύει την ικανότητα διόρθωσης λαθών του κώδικα( [31], [32], [36] περισσότερες εξισώσεις ελέγχουν τις τιμές των bits ). 2) Το πλήθος των στηλών του πίνακα H. Η παράμετρος n είναι ουσιαστικά το block length του κώδικα και η αύξηση της τιμής της βελτιώνει τις επιδόσεις [31], [32], [36] του κώδικα. 3) Ο βαθμός( rank ) του πίνακα H ο οποίος ισούται με το πλήθος των γραμμικά ανεξάρτητων γραμμών του πίνακα H. Ο βαθμός του πίνακα H καθορίζει το ρυθμό του κώδικα. Έτσι λοιπόν έχουμε το ρυθμό σχεδιασμού( design rate ) r ο οποίος ισούται με : n m r = ( 2.1 ) n και στον οποίο υποθέτουμε ότι ο πίνακας H δεν έχει γραμμικά εξαρτημένες γραμμές. Στην πραγματικότητα όμως ο πίνακας H ενδέχεται να έχει

22 γραμμικά εξαρτημένες γραμμές, οπότε ο πραγματικός ρυθμός( actual rate ) του κώδικα θα είναι : k n rankh R = = ( 2.2 ) n n όπου rankh είναι ο βαθμός του πίνακα H, με rankh m. Έτσι ο πραγματικός ρυθμός του κώδικα θα είναι μεγαλύτερος ή ίσος του ρυθμού σχεδιασμού( R r ) με την ισότητα να ισχύει όταν ο πίνακας H δεν έχει [31], [36] γραμμικά εξαρτημένες γραμμές( είναι δηλαδή full rank ). 4) Η κατανομή βαρών( weight distribution ) των γραμμών και των στηλών του πίνακα H. Ως βάρος μιας γραμμής ή μιας στήλης του πίνακα H εννοούμε το πλήθος των μη μηδενικών στοιχείων αυτής. [31] Η κατανομή βαρών των γραμμών είναι ένα διάνυσμα h = ( h 1, h 2,, h length(h) ) του οποίου το στοιχείο h i ισούται με το ποσοστό( το κλάσμα ) των γραμμών του πίνακα H που έχουν βάρος i. Το μήκος length( h ) του διανύσματος h είναι ίσο με τη μέγιστη τιμή του βάρους των γραμμών του [31], [33] πίνακα H. Η κατανομή βαρών των στηλών είναι ένα διάνυσμα v = ( υ 1, υ 2,, υ length(v) ) του οποίου το στοιχείο υ i ισούται με το ποσοστό( το κλάσμα ) των στηλών του πίνακα H που έχουν βάρος i. Το μήκος length( v ) του διανύσματος v είναι ίσο με τη μέγιστη τιμή του βάρους των στηλών του [31], [33] πίνακα H. Παρακάτω δίνεται ένα παράδειγμα όπου δείχνει τον υπολογισμό της κατανομής βαρών των γραμμών και των στηλών ενός πίνακα H. Παράδειγμα 2.1 : Θεωρούμε τον παρακάτω πίνακα ελέγχου ισοτιμίας : Ο πίνακας αυτός έχει n = 10 στήλες από τις οποίες οι 7 έχουν βάρος 2 και οι 3 έχουν βάρος 3. Άρα η κατανομή βαρών των στηλών του πίνακα H θα περιγράφεται από το διάνυσμα v = ( 0, 0.7, 0.3 ). Επίσης ο πίνακας H έχει m = 5 γραμμές από τις οποίες οι 2 έχουν βάρος 4 και οι 3 έχουν βάρος 5. Άρα η κατανομή βαρών των γραμμών του πίνακα H θα περιγράφεται από το διάνυσμα h = ( 0, 0, 0, 0.4, 0.6 )

23 Ο πίνακας ελέγχου ισοτιμίας H ενός LDPC κώδικα, σύμφωνα με το Gallager, θα πρέπει να έχει τις εξής δομικές ιδιότητες [31], [32] : 1) Κάθε γραμμή του H αποτελείται από σταθερό αριθμό 1 που είναι ίσος με w r. Έτσι η κατανομή βαρών για τις γραμμές του πίνακα H θα είναι h = ( 0, 0,, 0, 1 ), όπου το διάνυσμα h έχει μήκος w r. 2) Κάθε στήλη του H αποτελείται από σταθερό αριθμό 1 ο οποίος είναι ίσος με w g. Έτσι η κατανομή βαρών για τις στήλες του πίνακα H θα είναι v = ( 0, 0,, 0, 1 ), όπου το μήκος του διανύσματος v είναι ίσο με w g. 3) Ο αριθμός των 1 που έχουν σε κοινή θέση δύο οποιεσδήποτε γραμμές( ή δύο οποιεσδήποτε στήλες ) δε θα πρέπει να είναι μεγαλύτερος από 1. Ο περιορισμός αυτός ονομάζεται περιορισμός γραμμών στηλών( Row Column Constraint RC Constraint ) και η σημασία έγκειται, όπως θα δούμε παρακάτω, στην αποφυγή των κύκλων μήκους 4 κατά τη γραφική αναπαράσταση των LDPC κωδίκων. 4) Θα πρέπει να ισχύει w r << n και w g << m έτσι ώστε το συνολικό πλήθος των 1 του πίνακα H να είναι μικρό. Οι LDPC κώδικες οι οποίοι έχουν σταθερό βάρος γραμμών και στηλών ονομάζονται κανονικοί( regular ) LDPC κώδικες. Ένας κανονικός LDPC κώδικας με βάρος γραμμών w r και βάρος στηλών w g, ονομάζεται (w g, w r ) κανονικός LDPC κώδικας και η κατανομή βαρών του κώδικα αυτού περιγράφεται μόνο από τα w g και w r. [33].Ο αριθμός των 1 του πίνακα H ενός (w g, w r ) κανονικού LDPC κώδικα θα είναι [31] : m. w r = n. w g ( 2.3 ) από την οποία προκύπτει ότι ο ρυθμός σχεδιασμού θα είναι : n m m w g r = = 1 = 1 ( 2.4 ) n n w r ενώ ο πραγματικός ρυθμός του κώδικα θα είναι : w g R 1 ( 2.5 ) w r

24 με την ισότητα στην παραπάνω σχέση να ισχύει όταν ο πίνακας H είναι full rank. [31] Η πυκνότητα του πίνακα H για έναν κανονικό LDPC θα είναι [32] : w r w g πυκνότητα πίνακα Η = = n m Οι LDPC κώδικες που εισήγαγε ο Gallager ήταν αποκλειστικά κανονικοί LDPC κώδικες. Όπως θα δούμε στο πέμπτο κεφάλαιο, οι κανονικοί LDPC κώδικες αναφέρονται μερικές φορές και ως κώδικες Gallager( Gallager codes ). Οι LDPC κώδικες οι οποίοι δεν έχουν σταθερά βάρη γραμμών και στηλών ονομάζονται μη κανονικοί( irregular ) LDPC κώδικες. Η κατανομή βαρών των μη κανονικών LDPC κωδίκων περιγράφεται πλήρως από τα διανύσματα v και h [33], όπως αυτά ορίστηκαν παραπάνω..οι μη κανονικοί LDPC κώδικες αποτελούν γενίκευση των κανονικών LDPC κωδίκων που είχε εισάγει ο Gallager. H γενίκευση αυτή εισήχθη, όπως προαναφέραμε, από τον MacKay κατά την επανεισαγωγή των LDPC στα μέσα της δεκαετίας του 1990 και καθιερώθηκε επίσημα από το 1998 και το Ο αριθμός των 1 του πίνακα ελέγχου ισοτιμίας H ενός μη κανονικού LDPC κώδικα θα είναι [31], [33] : n ( 2.6 ) από την οποία προκύπτει ότι ο ρυθμός σχεδιασμού θα είναι : n m m r = = 1 = 1 ( 2.7 ) n n ενώ ο πραγματικός ρυθμός του κώδικα θα είναι :

25 R 1 ( 2.8 ) με την ισότητα στην παραπάνω σχέση να ισχύει όταν ο πίνακας H είναι full rank. [31] Η πυκνότητα του πίνακα H για έναν μη κανονικό LDPC θα είναι [32] : Πυκνότητα πίνακα H = = n m Γραφική αναπαράσταση των LDPC κωδίκων Το 1981, ο Tanner αναπτύσσει την αναδρομική προσέγγιση( recursive approach ) της κωδικοποίησης ώστε να πετύχει την κατασκευή μεγάλου μήκους, ισχυρών κωδίκων. Λέγοντας αναδρομικότητα εννοούμε τη σύνθεση μεγάλου μήκους, ισχυρών κωδίκων από απλούστερους, μικρού μήκους κώδικες. Η τεχνική αυτή βέβαια ήταν ήδη γνωστή από το 1965 με τους αλυσιδωτούς κώδικες του D. Forney. Η σημαντική προσθήκη του Tanner, αφορά την εισαγωγή της θεωρίας γραφημάτων για την περιγραφή τέτοιων κωδίκων. Έτσι ο Tanner επεκτείνει περαιτέρω την ήδη γνωστή αναδρομική προσέγγιση για την κατασκευή κωδίκων, αναλύοντας τους κώδικες αυτούς με γραφήματα. [2] Το κύριο πλεονέκτημα της χρήσης της αναδρομικότητας για την κατασκευή ενός κώδικα είναι η σημαντική μείωση της πολυπλοκότητας που απαιτείται για την υλοποίηση του κώδικα αυτού. Από την άλλη το κύριο μειονέκτημα της αναδρομικότητας είναι ότι δεν επιτρέπει στους κώδικες να αποδίδουν το βέλτιστο των δυνατοτήτων τους και συνεπώς οι επιδόσεις τέτοιων κωδίκων είναι υποβέλτιστες. Αυτό συμβαίνει επειδή δε βλέπουμε το συνολικό κώδικα ως έναν ενιαίο, μεγάλου μήκους κώδικα( και επομένως δεν εκμεταλλευτούμε όλη την «ισχύ» του ) αλλά τον βλέπουμε ως κομμάτια πολλών μικρών κωδίκων( μικρής «ισχύος» ). [2] Ο Tanner, στην ανάλυσή του, χρησιμοποιεί πολλά στοιχεία από τη θεωρία γραφημάτων. Συγκεκριμένα υιοθετεί τη χρήση των διμερών γραφημάτων( bipartite graphs ). Να αναφέρουμε επιγραμματικά ότι ένα διμερές γράφημα είναι ένα γράφημα με δύο είδη ομάδες κόμβων( nodes ) τις οποίες συμβολίζουμε με

26 V 1 και V 2. Κάθε κόμβος από το σύνολο V 1 μπορεί να συνδεθεί μόνο με κόμβους του συνόλου V 2. Η σύνδεση δύο κόμβων γίνεται με τη χρήση συνδέσεων( edges ). Γείτονας ενός κόμβου i του συνόλου V 1 ( ή αντίστοιχα του συνόλου V 2 ) είναι κάθε κόμβος του συνόλου V 2 ( ή αντίστοιχα του συνόλου V 1 ) με τον οποίο [2], [32] συνδέεται ο κόμβος i. Σύμφωνα με τον Tanner λοιπόν, μπορούμε να θεωρήσουμε ένα μεγάλου μήκους κώδικα ως σύνθεση δύο ή περισσοτέρων επιμέρους υποκωδίκων( subcodes ). Κάθε υποκώδικας θα ελέγχει ένα επιλεγμένο υποσύνολο από ψηφία του συνολικού, μεγάλου κώδικα. Έτσι μπορούμε να θεωρήσουμε αυτούς τους επιμέρους υποκώδικες ως τους κόμβους του ενός συνόλου, π.χ. του V 1. Έτσι το σύνολο V 1 θα περιέχει τόσους κόμβους όσοι είναι και οι επιμέρους υποκώδικες που αποτελούν το συνολικό κώδικα, με κάθε κόμβο να αντιστοιχεί σε ένα συγκεκριμένο υποκώδικα. Από την άλλη πλευρά οι κόμβοι του συνόλου V 2 θα αντιστοιχούν στα ψηφία( κωδικά σύμβολα ) που σχηματίζουν τις κωδικές λέξεις του συνολικού κώδικα. Έτσι το σύνολο V 2 θα περιέχει τόσους κόμβους όσο είναι και το μήκος του συνολικού κώδικα, με κάθε κόμβο να αντιστοιχεί σε ένα συγκεκριμένο ψηφίο της κωδικής λέξης. [2] Σύμφωνα με τα παραπάνω, ένας κόμβος( υποκώδικας ) i του συνόλου V 1 θα συνδέεται με εκείνους τους κόμβους του συνόλου V 2 οι οποίοι αντιστοιχούν στα ψηφία τα οποία ελέγχει ο i. Είναι προφανές ότι ένα ψηφίο μπορεί να ελέγχεται από περισσότερους του ενός κόμβους( υποκώδικες ) του συνόλου V 1. [2] Εικόνα 2.1 Σύνθεση ενός κώδικα μήκους 6 από δύο επιμέρους κώδικες μήκους 5 ο καθένας. Παρατηρούμε ότι το μήκος κάθε υποκώδικα είναι ίσο με το πλήθος των συνδέσεων που εισέρχονται στον αντίστοιχο κόμβο. Οι αριθμοί που αντιστοιχούν σε κάθε σύνδεση ενός υποκώδικα δείχνουν τη σειρά με την οποία τοποθετούνται τα ψηφία του συνολικού κώδικα ώστε να σχηματίσουν μια λέξη του αντίστοιχου υποκώδικα. [2] Άρα λοιπόν, ένας μεγάλου μήκους κώδικας μπορεί να κατασκευαστεί με τη χρήση ενός διμερούς γραφήματος και δύο ή περισσοτέρων υποκωδίκων. Το

27 διμερές αυτό γράφημα ονομάζεται γράφημα Tanner και καθορίζει τον τρόπο με τον οποίο συνδέονται οι υποκώδικες ώστε να συνθέσουν το συνολικό κώδικα. [2], [31], [32] Αλληλένδετη με την αναδρομική προσέγγιση ενός κώδικα είναι και η επαναληπτική αποκωδικοποίηση αυτού. Η επαναληπτική αποκωδικοποίηση αναλύεται εκτενώς στο κεφάλαιο 4. Αυτό που μπορούμε να πούμε εδώ είναι ότι ο αποκωδικοποιητής χρησιμοποιεί κάθε κόμβο ως τοπικό επεξεργαστή ο οποίος, σε πρώτη φάση, δέχεται πληροφορία από τους γείτονές του την οποία και επεξεργάζεται. Σε δεύτερη φάση, οι κόμβοι που έχουν δεχτεί πληροφορία κατά την πρώτη φάση, αποστέλλουν την πληροφορία που έχουν παράγει στους γειτονικούς τους κόμβους. Η μεταφορά της πληροφορίας γίνεται μέσω των συνδέσεων του γραφήματος Tanner. Η επανάληψη της παραπάνω διαδικασία, οδηγεί στη λεγόμενη επαναληπτική αποκωδικοποίηση. Η χρήση της επαναληπτικής αποκωδικοποίησης ενθαρρύνεται από την απλότητα των [2], [31] επιμέρους υποκωδίκων που συνθέτουν το συνολικό κώδικα. Η παραπάνω γραφική αναπαράσταση μπορεί να χρησιμοποιηθεί για την περιγραφή των LDPC κωδίκων. Αυτό μπορεί να γίνει ρίχνοντας μια ματιά στον πίνακα ελέγχου ισοτιμίας H( διαστάσεων mxn ) ενός LDPC κώδικα. Παρατηρούμε ότι ο πίνακας H αποτελείται από m γραμμές, δηλαδή από m εξισώσεις ελέγχου ισοτιμίας. Κάθε εξίσωση ελέγχου ισοτιμίας ελέγχει μια ομάδα από ψηφία, τα οποία αποτελούν ένα υποσύνολο των συνολικών ψηφίων του κώδικα. Επομένως κάθε γραμμή του πίνακα H αποτελεί έναν απλό κώδικα ελέγχου ισοτιμίας( Single Parity Check SPC ). Αν θεωρήσουμε κάθε SPC κώδικα ως υποκώδικα τότε ο συνολικός LDPC κώδικας, που περιγράφεται από τον πίνακα H, μπορεί να θεωρηθεί ότι συντίθεται από τους επιμέρους m SPC υποκώδικες. Συνεπώς το πρώτο είδος κόμβων( έστω το V 1 ) του γραφήματος Tanner, που αντιστοιχούν στους επιμέρους υποκώδικες, θα αποτελεί ένα σύνολο με m στοιχεία κόμβους. Κάθε κόμβος θα αντιστοιχεί σε έναν SPC κώδικα, δηλαδή σε μια γραμμή του πίνακα H( σε μια εξίσωση ελέγχου ισοτιμίας ). Οι κόμβοι αυτοί ονομάζονται κόμβοι ελέγχου( Check Nodes CNs ) ή κόμβοι περιορισμού( Constraint Nodes CNs ) ακριβώς επειδή ο καθένας [31], [32], [36] αντιπροσωπεύει μια εξίσωση ελέγχου ισοτιμίας. Το δεύτερος είδος κόμβων( έστω το V 2 ) του γραφήματος Tanner, που αντιστοιχούν στα ψηφία των κωδικών λέξεων του κώδικα, θα αποτελεί ένα σύνολο από n στοιχεία κόμβους. Κάθε κόμβος θα αντιστοιχεί σε ένα ψηφίο της κωδικής λέξης. Συνήθως εφαρμόζεται κάποιος κανόνας ώστε να ληφθεί κάποια απόφαση σχετικά με την τιμή του ψηφίου ενός κόμβου, με βάση την πληροφορία που δέχεται ο κόμβος αυτός από τους γείτονές του. Ο κανόνας αυτός τις περισσότερες φορές είναι ο κανόνας της πλειοψηφίας( majority logic ). Για το λόγο αυτό λέμε ότι κάθε κόμβος του συνόλου V 2 αντιστοιχεί σε έναν κώδικα επανάληψης( Repetition Code ). Οι κόμβοι του συνόλου V 2, που αντιστοιχούν στα κωδικά ψηφία, ονομάζονται κόμβοι μεταβλητής( Variable Nodes VNs ). [31], [32] Άρα λοιπόν το Tanner γράφημα ενός LDPC κώδικα αποτελείται από m CNs και από n VNs. Οι συνδέσεις μεταξύ των κόμβων εξαρτώνται από τη δομή του πίνακα H. Έτσι ισχύει ο εξής κανόνας : ο CN i συνδέεται με το VN j αν το στοιχείο H( i, j ) του πίνακα H είναι ίσο με τη μονάδα. [31] Έτσι έχοντας τον πίνακα ελέγχου

28 ισοτιμίας ενός LDPC κώδικα, μπορούμε να κατασκευάσουμε το Tanner γράφημά του. Παράδειγμα 2.2 : Θεωρούμε τον παρακάτω πίνακα ελέγχου ισοτιμίας, ο οποίος αντιστοιχεί σε έναν κώδικα μήκους n, με βάρος γραμμών w r = 4 και βάρος στηλών w g = 2. Το γράφημα Tanner για τον κώδικα αυτό θα έχει την εξής μορφή : Κατ αντιστοιχία με την κατανομή βαρών των γραμμών και των στηλών του πίνακα H, στο γράφημα Tanner ορίζουμε την κατανομή βαθμών( degree distribution ) των CNs και των VNs. Να σημειώσουμε ότι ως βαθμός ενός κόμβου ορίζεται το πλήθος των συνδέσεων που σχετίζονται( συνδέονται ) με τον κόμβο αυτό [31], [32].Έτσι στο παραπάνω παράδειγμα ο CN 1 έχει βαθμό 4 ενώ ο VN 2 έχει βαθμό 2. Αν δούμε την κατανομή βαθμών των CNs και των VNs από τη σκοπιά των συνδέσεων( edge perspective ) τότε η κατανομή βαθμών των VNs θα ορίζεται από το πολυώνυμο( από τους συντελεστές αυτού ) [10, [31] :

29 ( 2.9 ) όπου ο συντελεστής λ d ισούται με το ποσοστό( κλάσμα ) των συνδέσεων που συνδέονται σε VNs βαθμού d, ενώ το d υ δηλώνει τη μέγιστη τιμή μεταξύ των βαθμών όλων των VNs [31]. Παρόμοια, η κατανομή βαθμών των CNs ορίζεται από το πολυώνυμο ( από τους συντελεστές αυτού ) [10, [31] : ( 2.10 ) όπου ο συντελεστής ρ d ισούται με το ποσοστό( κλάσμα ) των συνδέσεων που συνδέονται σε CNs βαθμού d, ενώ το d c δηλώνει τη μέγιστη τιμή μεταξύ των βαθμών όλων των CNs. [31] Αν δούμε την κατανομή βαθμών των CNs και των VNs από τη σκοπιά των κόμβων( node perspective ) τότε η κατανομή βαθμών των VNs θα ορίζεται από ένα πολυώνυμο της μορφής 2.9, του οποίου οι συντελεστές θα είναι [10, [31] : ( 2.11 ) Ο συντελεστής ισούται με το ποσοστό( κλάσμα ) των VNs που έχουν βαθμό d [31]. Η κατανομή βαθμών των CNs θα ορίζεται από ένα πολυώνυμο της μορφής 2.10, του οποίου οι συντελεστές θα είναι [10, [31] : ( 2.12 ) Ο συντελεστής ισούται με το ποσοστό( κλάσμα ) των CNs που έχουν βαθμό d. [31] Τα δύο παραπάνω ολοκληρώματα θα είναι :

30 = και = ( 2.13 ) Το πλήθος των συνδέσεων του γραφήματος Tanner θα είναι [31] : ( 2.14 ) Από τη σχέση 2.14 προκύπτει ότι ο πραγματικός ρυθμός του κώδικα θα είναι : ( 2.15 ) Αν έχουμε έναν (w g, w r ) κανονικό LDPC κώδικα, τότε όλοι οι συντελεστές λ d θα είναι 0 εκτός από τον λ wg 1 ο οποίος θα ισούται με 1. Παρόμοια όλοι οι συντελεστές ρ d θα είναι 0 εκτός από τον ρ wr 1 ο οποίος θα ισούται με 1. [31], [33] [31], [33] Να σημειώσουμε ότι για τους κανονικούς LDPC κώδικες θα ισχύει : = λd και = ρd για d = 1,, d υ και d = 1,, d c αντίστοιχα

31 2.2.3 Ισοδυναμία των δύο τρόπων αναπαράστασης των LDPC κωδίκων Στην προηγούμενη ενότητα είδαμε πως μπορούμε να κατασκευάσουμε το γράφημα Tanner ενός LDPC κώδικα, όταν γνωρίζουμε το πίνακα ελέγχου ισοτιμίας του κώδικα αυτού. Ο κανόνας που χρησιμοποιήσαμε είναι απλός : ο CN i συνδέεται με το VN j μόνο αν ισχύει H( i, j ) = 1. Ο παραπάνω κανόνας όμως ισχύει και αντίστροφα : το στοιχείο του πίνακα H H( i, j ) είναι ίσο με τη μονάδα μόνο αν ο CN i συνδέεται με το VN j. Έτσι λοιπόν η συνθήκη διαδικασία για την κατασκευή του γραφήματος Tanner ενός LDPC κώδικα από τον πίνακα H αυτού είναι αμφίδρομη. Αυτό σημαίνει ότι αν είναι γνωστός ο ένας τρόπος αναπαράστασης του LDPC κώδικα μπορούμε να κατασκευάσουμε και τον άλλο. Η συνθήκη ισοδυναμίας είναι η εξής απλή : ο CN [31], [32] i συνδέεται με το VN j αν και μόνο αν ισχύει H( i, j ) = 1. Ας θεωρήσουμε τώρα τις κατανομές βαρών των γραμμών και των στηλών του πίνακα H, οι οποίες είναι h = ( h 1, h 2,, h length(h) ) και v = ( υ 1, υ 2,, υ length(v) ) αντίστοιχα. Επίσης θεωρούμε ότι length( h ) = w hmax και length( v ) = w vmax, με w hmax και w vmax να είναι η μέγιστη τιμή του βάρους των γραμμών και των στηλών αντίστοιχα. Η κατανομή βαρών v των στηλών μπορεί να συσχετιστεί άμεσα με την κατανομή βαθμών των VNs από τη σκοπιά των κόμβων. Συγκεκριμένα οι συντελεστές θα είναι [31], [33] : = υ d για d = 1,, d υ ( 2.16 ) με το μέγιστο βαθμό d υ των VNs να ισούται με τη μέγιστη τιμή του βάρους w vmax των στηλών. Οι συντελεστές λ d της κατανομής βα θμών των VNs από τη σκοπιά των συνδέσεων μπορούν να υπολογιστούν από την εξίσωση 2.11, [31], [33] λύνοντας ως προς λ d. Με παρόμοιο τρόπο η κατανομή βαρών h των γραμμών μπορεί να συσχετιστεί άμεσα με την κατανομή βαθμών των CNs από τη σκοπιά των κόμβων. Έτσι οι συντελεστές θα είναι [31], [33] : = h d για d = 1,, d c ( 2.17 ) με το μέγιστο βαθμό d c των CNs να ισούται με τη μέγιστη τιμή του βάρους w hmax των γραμμών. Οι συντελεστές ρ d της κατανομής βαθμών των CNs από τη σκοπιά των συνδέσεων μπορούν να υπολογιστούν από την εξίσωση 2.12, [31], [33] λύνοντας ως προς ρ d. Έτσι από τα παραπάνω συμπεραίνουμε ότι αν είναι γνωστή η κατανομή βαρών των γραμμών και των στηλών του πίνακα H ενός LDPC κώδικα, τότε μπορούμε να υπολογίσουμε την κατανομή βαθμών των CNs και των VNs του γραφήματος Tanner του κώδικα αυτού. Φυσικά οι εξισώσεις 2.16 και 2.17 ισχύουν και προς την αντίστροφη κατεύθυνση. Αυτό σημαίνει πως αν είναι γνωστή η κατανομή βαθμών των CNs και των VNs του γραφήματος Tanner ενός LDPC κώδικα. τότε

32 μπορούμε να υπολογίσουμε την κατανομή βαρών των γραμμών και των στηλών [31], [33] του πίνακα H του κώδικα H. Έτσι, για παράδειγμα, η σχέση 2.15 μπορεί εύκολα να έρθει στη μορφή της σχέσης 2.8 αλλά και αντίστροφα. Οι δύο αυτές ισοδύναμες σχέσεις αναφέρονται σε ένα κάτω όριο του πραγματικού ρυθμού του κώδικα. Μια άλλη προφανής σχέση ισοδυναμίας είναι αυτή μεταξύ των μονάδων του πίνακα H και τον συνδέσεων του γραφήματος Tanner. Μια μονάδα σε μια θέση του πίνακα H( π.χ. στη θέση ( i, j ) ) ισοδυναμεί με σύνδεση των αντίστοιχων κόμβων( του CN i με τον VN j ). Αλλά και αντίστροφα, μια σύνδεση μεταξύ δύο κόμβων( π.χ. του CN i με τον VN j ) του γραφήματος Tanner, ισοδυναμεί με μια μονάδα στην αντίστοιχη θέση του πίνακα H( στη θέση ( i, j ) ). Έτσι λοιπόν το πλήθος των συνδέσεων του γραφήματος Tanner ενός LDPC κώδικα ισούται με το πλήθος των μονάδων του πίνακα H του κώδικα αυτού. Το πλήθος των συνδέσεων του γραφήματος Tanner ενός LDPC κώδικα θα δίνεται από τη σχέση 2.14 ενώ το πλήθος των μονάδων του πίνακα H του κώδικα αυτού θα δίνεται από τη σχέση 2.6. Οι σχέσεις αυτές είναι απολύτως ισοδύναμες και εύκολα μπορεί να προκύψει [31], [33] η μία από την άλλη. Ολοκληρώνοντας λοιπόν την ενότητα αυτή, μπορούμε να πούμε ότι οι δύο τρόποι αναπαράστασης των LDPC κωδίκων που περιγράψαμε παραπάνω, είναι απολύτως ισοδύναμοι. Όπως θα δούμε στη συνέχεια, άλλοτε είναι πιο βολικό να χρησιμοποιούμε τη γραφική αναπαράσταση και άλλοτε την αναπαράσταση μέσω του πίνακα H. 2.3 Οι κύκλοι πάνω στο γράφημα Tanner Ένα πολύ σημαντικό, δομικό στοιχείο του γραφήματος Tanner, το οποίο επηρεάζει την αποτελεσματικότητα της επαναληπτικής αποκωδικοποίησης, είναι η παρουσία κύκλων πάνω στο γράφημα Tanner. Ως κύκλος σε ένα γράφημα Tanner, ορίζεται μια ακολουθία από συνδέσεις και κόμβους πάνω σε αυτό, τέτοια ώστε να σχηματίζεται μια κλειστή διαδρομή. Αυτό σημαίνει ότι η πρώτη σύνδεση ενός κύκλου θα ξεκινά από έναν κόμβο( είτε CN είτε VN ) και η τελευταία σύνδεση του κύκλου αυτού θα καταλήγει στον ίδιο κόμβο από όπου ξεκίνησε η πρώτη σύνδεση. Επίσης θα πρέπει να σημειώσουμε ότι κάθε άλλος κόμβος( εκτός του αρχικού ο οποίος είναι και τελικός ) που ανήκει στον κύκλο δε θα πρέπει να περιέχεται στον κύκλο περισσότερες από μία φορές( θα πρέπει να συνδέεται στον κύκλο με δύο συνδέσεις, μία εισερχόμενη και μία εξερχόμενη ). [31], [33] Το μήκος ενός κύκλου ορίζεται ως ο αριθμός των συνδέσεων από τις οποίες αποτελείται ο κύκλος αυτός. Στο Tanner γράφημα του παραδείγματος 2.2 παρατηρούμε με έντονες γραμμές μια κλειστή διαδρομή η οποία αποτελεί έναν κύκλο μήκους 6. Ένα κύκλος μήκους l συχνά καλείται l κύκλος( l cycle ). Επίσης ένας κύκλος μήκους l θα περιέχει( θα διέρχεται από) l/2 CNs και l/2 VNs. [31] Αν θεωρήσουμε ένα διμερές γράφημα το οποίο περιέχει κύκλους, τότε το ελάχιστο μήκος όλων των κύκλων του γραφήματος ονομάζεται περιφέρεια( girth )

33 του γραφήματος. Όπως είναι προφανές, το girth ενός γραφήματος Tanner αντιστοιχεί στο μήκος του μικρότερου κύκλου που υπάρχει στο γράφημα. [31] Ο μικρότερος δυνατός κύκλος που μπορεί να υπάρχει σε ένα Tanner γράφημα είναι ένας κύκλος μήκους 4. Ένας τέτοιος κύκλος γίνεται εύκολα ορατός πάνω στον πίνακα ελέγχου ισοτιμίας H, ως τέσσερεις μονάδες οι οποίες βρίσκονται στις τέσσερεις κορυφές ενός ορθογώνιου υποπίνακα του πίνακα H. Εδώ μπορούμε να παρατηρήσουμε και τη σημασία των περιορισμών γραμμών στηλών( RC Constraints ). Οι RC περιορισμοί απαγορεύουν την ύπαρξη 2 ή περισσοτέρων μονάδων σε κοινές θέσεις μεταξύ δύο οποιωνδήποτε γραμμών ή στηλών. Έτσι αποκλείεται ο σχηματισμός ενός ορθογώνιου υποπίνακα του πίνακα H ο οποίος να έχει τέσσερεις μονάδες στις τέσσερεις κορυφές του. Με λίγα λόγια, οι RC [31], [32] περιορισμοί διασφαλίζουν την εξάλειψη των κύκλων μήκους 4. Όπως θα δούμε και θα εξηγήσουμε στο τέταρτο κεφάλαιο, η παρουσία των κύκλων είναι καταλυτική( αρνητικά ) για την απόδοση της επαναληπτικής αποκωδικοποίησης των LDPC κωδίκων. Στο πέμπτο κεφάλαιο, όπου εξετάζουμε την κατασκευή LDPC κωδίκων, θα δούμε ότι προσπαθούμε να αποφύγουμε την παρουσία των κύκλων( τουλάχιστον αυτών με μικρό μήκος ) όταν κατασκευάζουμε τον πίνακα H ή το Tanner γράφημα ενός LDPC κώδικα. 2.4 Η έννοια του συνόλου LDPC κωδίκων Συνήθως η μελέτη και η εκτίμηση των επιδόσεων των LDPC κωδίκων δε γίνεται μεμονωμένα, για έναν κώδικα. Αντίθετα συνηθίζουμε να μελετάμε τους LDPC κώδικες σε σύνολα. Ένα σύνολο( ensemble ) LDPC κωδίκων ορίζεται ως εξής : Ορισμός [7], [31] : Θεωρούμε ένα ζεύγος κατανομής βαθμών( από τη σκοπιά των κόμβων ) για τους CNs και τους VNs το οποίο θα είναι και αντίστοιχα. Το ζεύγος αυτό, μαζί με το μήκος n μιας κωδικής λέξης, ορίζουν ένα σύνολο από διμερή γραφήματα( γραφήματα Tanner ) τα οποία αντιστοιχούν σε ένα σύνολο LDPC κωδίκων. Το σύνολο αυτό συμβολίζεται με LDPC( n,, ) ή C n (, ). Παρόμοια μπορεί να οριστεί ένα σύνολο LDPC κωδίκων θεωρώντας τις κατανομές βαθμών των CNs και των VNs από τη σκοπιά των συνδέσεων. Το σύνολο θα συμβολίζεται με LDPC( n, λ, ρ ) ή Cn ( λ, ρ). Κάθε γράφημα του συνόλου θα έχει VNs βαθμού d, για d = 1,, d υ, και

34 CNs βαθμού d, για d = 1,, d c. [31] Άρα λοιπόν κάθε γράφημα Tanner του συνόλου LDPC( n,, ) θα έχει συνολικά d υ d υ N υ ( d ) = Eλ d /d = n d=1 d=1 VNs. Για την εύρεση της παραπάνω έκφρασης χρησιμοποιήσαμε τις εξισώσεις 2.13 και 2.14.Επίσης κάθε γράφημα Tanner του συνόλου LDPC( n,, ) θα έχει συνολικά d c d c N c ( d ) = E.ρ d /d = m = n. ( 1 r ) d=1 d=1 CNs, όπου και πάλι χρησιμοποιήσαμε τις εξισώσεις 2.13 και Ένα στοιχείο του συνόλου LDPC( n,, ) αποτελεί έναν συγκεκριμένο LDPC κώδικα ο οποίος περιγράφεται από ένα πλήρως συνδεδεμένο γράφημα Tanner( ή ισοδύναμα από ένα συγκεκριμένο πίνακα ελέγχου ισοτιμίας ). [31] Αυτό που θα διαφέρει μεταξύ των στοιχείων ενός συνόλου LDPC κωδίκων είναι το πώς θα ανατεθούν οι βαθμοί στους n VNs και στους m CNs αλλά και ο τρόπος με τον οποίο οι VNs θα συνδεθούν με τους CNs. Έτσι αν ορίσουμε το διάνυσμα a μήκους n να περιέχει τους βαθμούς των n VNs και το διάνυσμα b μήκους m να περιέχει τους βαθμούς των m CNs, τότε αν πάρουμε δύο διαφορετικά στοιχεία, i και j, του συνόλου LDPC( n,, ) θα ισχύει ότι a i a j ή b i b j, όπου τα διανύσματα a i και b i αντιστοιχούν στο στοιχείο i ενώ τα διανύσματα a j και b j αντιστοιχούν στο στοιχείο j. Αλλά ακόμα και αν ισχύει a i = a j και b i = b j για δύο διαφορετικά στοιχεία i και j του LDPC( n,, ), ο τρόπος με τον οποίο θα πραγματοποιηθούν οι συνδέσεις στο γράφημα Tanner του στοιχείου i θα είναι διαφορετικός από τον τρόπο με τον οποίο θα πραγματοποιηθούν οι συνδέσεις στο γράφημα Tanner του στοιχείου j. Για παράδειγμα στο γράφημα Tanner του στοιχείου i, ο VN k θα συνδέεται με διαφορετικούς CNs από αυτούς με τους οποίους θα συνδέεται ο ίδιος VN στο γράφημα Tanner του στοιχείου j. Ο αριθμός των γειτονικών CNs όμως, για τον VN k, θα είναι ο ίδιος και στα δύο [31], [33] γραφήματα. Άρα λοιπόν, το να επιλέξουμε ένα LDPC κώδικα από το σύνολο LDPC( n,, ) ισοδυναμεί με την κατασκευή του γραφήματος Tanner( ή ισοδύναμα του πίνακα ελέγχου ισοτιμίας ) με βάση τις προδιαγραφές που θέτει το σύνολο αυτό( συγκεκριμένη κατανομή βαθμών για τους CNs και τους VNs ). Όπως θα δούμε στο πέμπτο κεφάλαιο, η εξεύρεση ενός συνόλου LDPC κωδίκων ισοδυναμεί με τη σχεδίαση LDPC κωδίκων ενώ η επιλογή ενός συγκεκριμένου LDPC κώδικα από

35 ένα σύνολο LDPC( n, [33], ) ισοδυναμεί με την κατασκευή LDPC κωδίκων. [31], Μελετάμε τους LDPC κώδικες σε μορφή συνόλων γιατί μας ενδιαφέρει η μέση συμπεριφορά των LDPC κωδίκων ενός συνόλου. Η διαδικασία αυτή είναι πιο συστηματική και πιο εύκολη από το να μελετάμε κάθε LDPC κώδικα ξεχωριστά. Φυσικά θα υπάρχουν κάποιοι κώδικες, σε ένα σύνολο, οι οποίοι θα παρουσιάζουν πολύ καλύτερη ή πολύ χειρότερη συμπεριφορά σε σχέση με τη μέση συμπεριφορά του συνόλου. Η μέση συμπεριφορά ενός συνόλου LDPC( n,, ) καθορίζεται από τις κατανομές βαθμών και ενώ η συμπεριφορά κάθε συγκεκριμένου LDPC κώδικα θα καθορίζεται επιπλέον και από τη μορφή του γραφήματος Tanner( ή ισοδύναμα του πίνακα ελέγχου ισοτιμίας ) του κώδικα αυτού. Να σημειώσουμε ότι η μορφή του γραφήματος Tanner( ή ισοδύναμα του πίνακα ελέγχου ισοτιμίας ) καθορίζει χαρακτηριστικά όπως την ελάχιστη απόσταση [31], [33] Hamming του κώδικα καθώς και την παρουσία και το μήκων των κύκλων

36 ΚΕΦΑΛΑΙΟ 3 Κωδικοποίηση LDPC κωδίκων 3.1 Εισαγωγή Η διαδικασία της κωδικοποίησης( encoding ) αναφέρεται στην παραγωγή των κωδικών λέξεων του κώδικα, από τα μηνύματα πληροφορίας( information messages ). Θα αναφερθούμε στην διαδικασία της κωδικοποίησης των LDPC κωδίκων πάνω στο GF( 2 ) αλλά εύκολα η ανάλυση μπορεί να επεκταθεί και στους μη-δυαδικούς LDPC κώδικες. Έτσι θα μελετήσουμε πως παράγεται μία n άδα με στοιχεία από το GF( 2 ), από μια k άδα με στοιχεία επίσης από το GF( 2 ) για έναν ( n, k ) LDPC κώδικα, ρυθμού R = k / n. Στα παρακάτω το σύμβολο θα παριστάνει modulo-2 πρόσθεση( δηλαδή πράξη XOR ) και το σύμβολο. θα παριστάνει είτε modulo-2 πολλαπλασιασμό( δηλαδή πράξη AND ) είτε πολλαπλασιασμό στο δεκαδικό σύστημα( το αποτέλεσμα και στις δύο περιπτώσεις είναι το ίδιο ). Είδαμε λοιπόν ότι οι LDPC κώδικες είναι στην ουσία γραμμικοί block κώδικες. Αν πάμε λοιπόν να τους κωδικοποιήσουμε όπως έναν τυπικό block κώδικα( μέσου του πίνακα G ή του πίνακα H ) τότε, όπως θα δούμε παρακάτω, η πολυπλοκότητα της κωδικοποίησης θα είναι τετραγωνικού χρόνου( Ο( n 2 ) ), θα αυξάνει δηλαδή τετραγωνικά με την αύξηση του block length n. Από την άλλη πλευρά, στις περισσότερες εφαρμογές που χρησιμοποιούμε του LDPC κώδικες, αυτοί έχουν αρκετά μεγάλα μήκη n( φτάνουν έως και n~10 5 ). Άρα λοιπόν, φαίνεται ότι οι LPDC κώδικες αντιμετωπίζουν ένα σημαντικό ζήτημα σε ότι αφορά την πολυπλοκότητα και κατ επέκταση και την ταχύτητα της κωδικοποίησης. Θα δούμε λοιπόν πως, εκμεταλλευόμενοι την αραιότητα του πίνακα H, μπορούμε να πετύχουμε πολυπλοκότητα κωδικοποίησης γραμμικού χρόνου( O( n ) ), έτσι ώστε οι LDPC κώδικες να μπορούν να χρησιμοποιηθούν σε εφαρμογές που απαιτούν γρήγορη κωδικοποίηση. Στο κεφάλαιο αυτό θα μελετήσουμε πως, χρησιμοποιώντας την αραιότητα του πίνακα H των LDPC κωδίκων, μπορούμε να υλοποιήσουμε όσο το δυνατό πιο αποδοτικούς και απλούς κωδικοποιητές( encoders ). Θα μελετήσουμε διάφορους τρόπους υλοποίησης της κωδικοποίησης καθώς και την πολυπλοκότητά τους. Σε όλους τους παρακάτω τρόπους κωδικοποίησης, η διαδικασία της κωδικοποίησης πραγματοποιείται γενικά σε δύο στάδια [10] : 1) Ένα στάδιο προ-επεξεργασίας( preprocessing step ) το οποίο πραγματοποιείται μόνο μια φορά και περιλαμβάνει offline υπολογισμούς ώστε να φέρουμε τους πίνακες στη μορφή που θέλουμε. Το στάδιο αυτό δεν έχει καμία συσχέτιση και «επαφή» με τα δεδομένα που θα κωδικοποιηθούν. [10]

37 2) Το πραγματικό στάδιο της κωδικοποίησης το οποίο περιλαμβάνει online υπολογισμούς για την παραγωγή των κωδικών λέξεων. Το στάδιο αυτό έχει άμεση «επαφή» με τα δεδομένα που πρόκειται να κωδικοποιηθούν. [10] 3.2 Κωδικοποίηση μέσω του πίνακα G Οι LDPC κώδικες, όπως προαναφέραμε, είναι γραμμικοί, block κώδικες που περιγράφονται από έναν αραιό πίνακα ελέγχου ισοτιμίας H, διαστάσεων mxn. Αν μπορούσαμε να βρούμε το γεννήτορα πίνακα G( διαστάσεων kxn ) που αντιστοιχεί στον πίνακα H που περιγράφει τον LDPC κώδικα, τότε η διαδικασία της κωδικοποίησης θα μπορούσε να πραγματοποιηθεί πολύ απλά μέσω της έκφρασης [32] : v = u. G ( 3.1 ) όπου u = ( u 1, u 2,, u k ) είναι το μήνυμα πληροφορίας που πρόκειται να κωδικοποιηθεί και v = ( υ 1, υ 2,, υ n ) είναι η κωδική λέξη που παράγεται. Ο πίνακας G αποτελείται από 0 και 1 που καθορίζουν αν ένα bit πληροφορίας θα μετέχει στην παραγωγή ενός κωδικού bit ή όχι. Γενικά αν gi,j = 1 τότε το i-στο bit της ακολουθίας πληροφορίας θα μετέχει στην παραγωγή του j-στου bit της κωδικής λέξης ενώ αν gi,j = 0 τότε το i-στο bit της ακολουθίας πληροφορίας δε θα μετέχει στην παραγωγή του j-στου bit της κωδικής λέξης. [32], [36] Ουσιαστικά η τιμή των gi,j καθορίζει αν θα έχουμε σύνδεση της i-στης εισόδου στην j-στη έξοδο. Γενικά η 3.1 γράφεται : υ 1 = g 1,1. u1 g 2,1. u2 g k,1. uk υ 2 = g 1,2. u1 g 2,2. u2 g k,2. uk.... ( 3.2).. υ n = g 1,n. u1 g 2,n. u2 g k,n. uk

38 Οι εξισώσεις 3.2 δεν αποτελούν τίποτε άλλο από τον πίνακα αληθείας ενός συνδυαστικού, ψηφιακού κυκλώματος με k εισόδους και n εξόδους που υλοποιεί τον κωδικοποιητή. [32] Η παραγωγή του γεννήτορα πίνακα G από τον πίνακα H πραγματοποιείται με τα εξής βήματα : 1) Αρχικά έχουμε έναν αραιό πίνακα H ο οποίος περιγράφει τον LDPC κώδικα και αποτελείται από m γραμμές και n στήλες. Οι m γραμμές του πίνακα H δεν είναι απαραίτητο να είναι όλες γραμμικά ανεξάρτητες μεταξύ τους. [33] 2) Με την εφαρμογή της απαλοιφής Gauss( Gauss elimination ) μετατρέπουμε τον H σε συστηματική μορφή [33] : H = [ P I n-k ] ( 3.3 ) Η διαδικασία της απαλοιφής Gauss περιγράφεται αναλυτικά στο παράρτημα Β. Να υπενθυμίσουμε ότι οι στοιχειώδεις πράξεις μεταξύ των γραμμών ( κατά ην απαλοιφή Gauss ) αφήνουν ανεπηρέαστο τον κώδικα. Αντίθετα αν κατά τη διάρκεια της απαλοιφής Gauss πραγματοποιήσουμε στοιχειώδεις πράξεις μεταξύ των στηλών τότε θα οδηγηθούμε σε διαφορετικό κώδικα, αλλά ισοδύναμης ικανότητας διόρθωσης λαθών. Έτσι, όπως αναφέρεται στο Παράρτημα Β, θα πρέπει να αποθηκεύσουμε τις όποιες αντιμεταθέσεις στηλών πραγματοποιηθούν κατά τη διάρκεια της απαλοιφής Gauss, ώστε να τις μεταφέρουμε στον αρχικό πίνακα Η. Έτσι οι πίνακες H και H ( τελικός πίνακας ) θα περιγράφουν τον ίδιο κώδικα. [31] Μετά την απαλοιφή Gauss ο πίνακας H έχει rank( H ) = n-k m γραμμές( οι οποίες είναι και γραμμικά ανεξάρτητες ) και n στήλες. Παραπάνω rank(h ) είναι ο βαθμός του πίνακα H, I n-k είναι ο μοναδιαίος πίνακας με n-k [31], [33] γραμμές και P είναι ένας ( n-k ) x k πίνακας. Όπως περιγράφουμε στο Παράρτημα Α και στην επόμενη ενότητα( εξίσωση 3.8 ), τα στοιχεία του πίνακα P συσχετίζουν τα bits ελέγχου ισοτιμίας με τα bits πληροφορίας. Συγκεκριμένα τα στοιχεία του πίνακα P καθορίζουν τον τρόπο με τον οποίο παράγονται τα bits ελέγχου ισοτιμίας από τα bits πληροφορίας, από ποιους συνδυασμούς δηλαδή bits πληροφορίας προκύπτουν τα bits ελέγχου ισοτιμίας. [32] 3) Ο πίνακας G θα δίνεται από τη σχέση [32] : G = [ I k P T ] ( 3.4 ) και θα αποτελείται από k γραμμές και n στήλες. Παραπάνω I k είναι ο μοναδιαίος πίνακας με k γραμμές και P T είναι ο ανάστροφος πίνακας του P

39 Η παραπάνω διαδικασία χρησιμοποιήθηκε στα αρχικά στάδια της υλοποίησης των LDPC κωδίκων αλλά είχε ένα πολύ βασικό μειονέκτημα : ο πίνακας G που προέκυπτε από την παραπάνω διαδικασία ήταν μη αραιός( με μεγάλη πιθανότητα ) παρ ότι ο πίνακας H ήταν αραιός.. [10] Η μη-αραιότητα του πίνακα G είχε ως αποτέλεσμα ( όπως παρατηρούμε από τις εξισώσεις 3.2 ) για την παραγωγή ενός κωδικού bit υ i να χρειάζονται k πύλες AND και k-1 πύλες XOR. Συνεπώς για την παραγωγή και των n κωδικών bit που αποτελούν μια κωδική λέξη απαιτούνται : ( k( πύλες AND ) + k 1( πύλες XOR ) ). n συνολικά πύλες k=n. R ( 2. k 1 ). n = ( 2. n. R 1 ). n = 2. R. n 2 - n συνολικά πύλες Όταν το μήκος της κωδικής λέξης γίνεται πολύ μεγάλο( όπως συμβαίνει στην πράξη ) τότε έχουμε : n 2. R. n 2 - n συνολικά πύλες O( n 2 ) Αυτό σημαίνει ότι η πολυπλοκότητα της κωδικοποίησης είναι τετραγωνικής τάξης ή τετραγωνικού χρόνου( quadratic time ). Έτσι διαπιστώνουμε ότι δεν εκμεταλλευόμαστε( στη διαδικασία της κωδικοποίησης ) την ιδιότητα της αραιότητας που έχει ο πίνακας Η των LDPC κωδίκων, αφού η πολυπλοκότητα της κωδικοποίησης με την παραπάνω μέθοδο είναι ίδια με αυτή των κοινών, γραμμικών( ελέγχου ισοτιμίας parity check ) κωδίκων. Παρακάτω θα δούμε πως μπορούμε να βελτιώσουμε την πολυπλοκότητα της διαδικασίας της κωδικοποίησης των LDPC κωδίκων. [10] Να σημειώσουμε ότι οι εξισώσεις 3.2 αποτελούν το πραγματικό στάδιο της κωδικοποίησης, το οποίο όπως είδαμε έχει πολυπλοκότητα τετραγωνικής τάξης. Τα τρία βήματα, για την παραγωγή του πίνακα G από τον πίνακα H, αποτελούν το στάδιο της προ-επεξεργασίας το οποίο έχει ακόμη πιο μεγάλη πολυπλοκότητα αφού απαιτούνται πιο πολλές και πιο δύσκολες πράξεις-διαδικασίες μεταξύ πινάκων. [10]

40 3.3 Κωδικοποίηση μέσω του πίνακα Η Όπως είδαμε οι LDPC κώδικες περιγράφονται μέσω του πίνακα ελέγχου ισοτιμίας τους H( ο οποίος είναι και αραιός ). Θα θέλαμε λοιπόν να πραγματοποιήσουμε την κωδικοποίηση μέσω του πίνακα H( αντί του πίνακα G που είδαμε στην προηγούμενη ενότητα ) ώστε να μειώσουμε τα στάδια της προεπεξεργασίας της κωδικοποίησης αλλά και να εκμεταλλευτούμε την αραιότητα του [10], [32] πίνακα H. Θεωρούμε ότι έχουμε έναν LDPC κώδικα που περιγράφεται από έναν πίνακα ελέγχου ισοτιμίας H διαστάσεων mxn, ο οποίος είναι αραιός και έχει στοιχεία από το GF( 2 ). Άρα εξ ορισμού μια κωδική λέξη αυτού του κώδικα θα είναι μία n άδα v με στοιχεία από το GF( 2 ) για την οποία θα ισχύει [32] : v. H T = 0 ( 3.5 ) Το στάδιο της προ-επεξεργασίας περιλαμβάνει τη μετατροπή του πίνακα H σε συστηματική μορφή με την εφαρμογή της απαλοιφής Gauss [10]. Έτσι ο πίνακας H μετατρέπεται στον ισοδύναμο πίνακα H : H = [ P I n-k ] ( 3.6 ) Μετά την απαλοιφή Gauss ο πίνακας H θα έχει rank( H ) = n-k m γραμμές( οι οποίες είναι και γραμμικά ανεξάρτητες ) και n στήλες. Οι πίνακες I n-k και P οι ίδιοι με αυτούς της εξίσωσης 3.3. Η εξίσωση 3.5 λοιπόν μπορεί να γραφεί ως εξής [32] : υ 1. p1,1 υ 2. p1,2 υ k. p1,k υ k+1 = 0 υ 1. p2,1 υ 2. p2,2 υ k. p2,k υ k+2 = ( 3.7 ).. υ 1. pn-k,1 υ 2. pn-k,2 υ k. pn-k,k υ n = 0 Οι εξισώσεις 3.7 δεν αποτελούν τίποτε άλλο από τις εξισώσεις ελέγχου ισοτιμίας( parity check equations ) και μπορούν να ξαναγραφούν ως εξής [32] :

41 υ k+1 = υ 1. p1,1 υ 2. p1,2 υ k. p1,k υ k+2 = υ 1. p2,1 υ 2. p2,2 υ k. p2,k.... ( 3.8 ).. = υ 1. pn-k,1 υ 2. pn-k,2 υ k. pn-k,k υ n Μια κωδική λέξη v = ( υ 1, υ 2,, υ n ) ενός κώδικα σε συστηματική μορφή θα έχει τη μορφή v = ( u 1, u 2,, u k, υ k+1, υ k+2,, υ n ) όπου u = ( u 1, u 2,, u k ) είναι η ακολουθία πληροφορίας. [32] Η κωδικοποίηση μπορεί να γίνει σε δύο απλά βήματα [10], [32] : 1) Τα πρώτα k bits( υ 1, υ 2,, υ k ) της κωδικής λέξης είναι ίδια με τα k bits της ακολουθίας πληροφορίας u. 2) Τα υπόλοιπα n-k bits( υ k+1, υ k+2,, υ n ) της κωδικής λέξης υπολογίζονται από τις εξισώσεις 3.8 και αποτελούν τα bits ελέγχου ισοτιμίας( parity check bits ). Τα bits δηλαδή μιας κωδικής λέξης θα υπολογίζονται από τις εκφράσεις : υ i = u i, i = 1,, k υ k+i k = p i,j. υj, i = 1,, n-k, όπου το σύμβολο παριστάνει j=1 modulo-2 πρόσθεση ( 3.9 ) Τα στοιχεία p i,j του πίνακα P παίρνουν τιμές 0 και 1 και δηλώνουν τη συμμετοχή( σύνδεση ) ή όχι του j-στου bit πληροφορίας u j στη δημιουργία του κωδικού bit υ k+i, για i = 1,, n k. Οι εξισώσεις 3.8 αποτελούν τον πίνακα αληθείας του συνδυαστικού, ψηφιακού κυκλώματος το οποίο χρησιμοποιείται για [32], [36] την παραγωγή των bits ελέγχου ισοτιμίας

42 Όμως μετά την εφαρμογή της απαλοιφής Gauss( στάδιο της προ-επεξεργασίας ) ο πίνακας P δε θα είναι πλέον αραιός. [10] Έτσι για την παραγωγή των n-k bits ελέγχου ισοτιμίας θα απαιτούνται : k. ( n-k )( πύλες AND ) + ( k 1 ). ( n-k ) ( πύλες XOR ) k=n. R ( 1-R ). R. n 2 ( πύλες AND ) + ( ( 1-R ). R. n 2 - ( 1-R ). n ) ( πύλες XOR ) 2. R. ( 1-R ). n 2 - ( 1-R ). n συνολικά πύλες ( ή συνολικές λειτουργίες ) Όταν το μήκος της κωδικής λέξης γίνεται πολύ μεγάλο τότε έχουμε : n 2. R. ( 1-R ). n 2 - ( 1-R ). n συνολικά πύλες ( ή συνολικές λειτουργίες ) O( n 2 ) Αυτό σημαίνει ότι η πολυπλοκότητα της κωδικοποίησης είναι και πάλι τετραγωνικού χρόνου. Απλά, σε σχέση με την κωδικοποίηση μέσω του πίνακα G, έχουμε βελτιώσει( ελαττώσει ) το συντελεστή του n 2 από 2. R σε 2. R. ( 1-R ). [10] Μια εναλλακτική, ισοδύναμη διαδικασία είναι να μετατρέψουμε τον πίνακα H ( στο στάδιο της προ-επεξεργασίας ) σε κάτω τριγωνική μορφή με την εφαρμογή της απαλοιφής Gauss. [10] Παρακάτω υποθέτουμε ότι ο πίνακας H δεν έχει γραμμικά εξαρτημένες γραμμές, οπότε n-m = k. Αν ο H έχει γραμμικά εξαρτημένες αυτές θα απαλειφθούν με την απαλοιφή Gauss, οπότε το m θα είναι ίσο με rank( H ). Ο πίνακας H που θα προκύψει θα έχει την παρακάτω μορφή :

43 Εικόνα 3.1 Ισοδύναμος πίνακας H σε κάτω τριγωνική μορφή. [10] Η εξίσωση 3.5 θα χρησιμοποιηθεί και πάλι για την παραγωγή των κωδικών λέξεων, οι οποίες θα είναι σε συστηματική μορφή. Η κωδικοποίηση μπορεί να γίνει και πάλι σε δύο απλά βήματα. [10] : 1) Τα πρώτα k bits( υ 1, υ 2,, υ k ) της κωδικής λέξης είναι ίδια με τα k bit της ακολουθίας πληροφορίας u. Δηλαδή θα έχουμε υ i = u i, για i = 1,, k 2) Τα υπόλοιπα n-k = m bits( υ k+1, υ k+2,, υ n ) της κωδικής λέξης θα υπολογιστούν με εφαρμογή της προς τα πίσω αντικατάστασης( back substitution ) μέσω της παρακάτω σχέσης : n - m i - 1 υ k+i = h i,j. υj j=1 j=1 h i,j+n-m. υk+j, i = 1,, m ( 3.10) όπου το σύμβολο παριστάνει modulo-2 πρόσθεση. Οι εξισώσεις 3.10 χρησιμοποιούνται ως πίνακας αληθείας του ψηφιακού, συνδυαστικού κυκλώματος για την παραγωγή των bits ελέγχου ισοτιμίας. [32] Παρατηρούμε ότι για την παραγωγή του κωδικού bit υ k+i για i = 2,, m, απαιτείται η γνώση των bit πληροφορίας υ i = u iπ για i = 1,, k καθώς και ο υπολογισμός των κωδικών bits υ k+i-1, υ k+i-2,, υ k+1. Γίνεται δηλαδή ένας υπολογισμός των κωδικών bits( για τα bits ελέγχου ισοτιμίας ) με μια διαδικασία

44 προς τα πίσω αντικατάστασης. Τα k πρώτα bits της κωδικής λέξης παραμένουν ίδια με τα bits της ακολουθίας πληροφορίας. [10] Και πάλι η εφαρμογή της απαλοιφής Gauss στον πίνακα H, έχει ως αποτέλεσμα ο προκύπτων, ισοδύναμος πίνακας H να είναι μη αραιός( με μεγάλη πιθανότητα [10] ). Έτσι ο αριθμός των πυλών( ή των διαδικασιών-πράξεων ) XOR, για το σχηματισμό μιας κωδικής λέξης θα είναι : ( n m -1 ) + ( n - m ) + ( n m +1 ) ( n 1 ) = ( n m -1 ) + ( n m 1 ) ( n m -1 ) ( n m 1 ) + m = m. ( m + 1 ) m ( n m 1 ). ( m + 1 ) + = ( m + 1). ( n m 1 + = 2 2 m k = n. R 1 R - 1 ) = [ 1 + n. ( 1 R ) ].[ n ( m + 1 ). ( n -. n 1 ] = 2 2 ( 1 R ). ( 1 + R ) 3. R 1. n 2 +. n - 1 πύλες XOR ( ή πράξεις XOR ) 2 2 Με ανάλογο τρόπο ο αριθμός των πυλών AND( ή των πράξεων AND ), για το σχηματισμό μιας κωδικής λέξης, θα είναι : m. ( m 1 ) m = ( 1 R ). n m. ( n m ) + = 2 ( 1 R ). n. [ ( 1 R ). n 1 ] R. ( 1 R ). n =

45 ( 1 - R ). ( 1 + R ) 1 R. n 2 -. n 2 2 πύλες AND( ή πράξεις AND ) Άρα ο συνολικός αριθμός πυλών( ή ο συνολικός αριθμός λειτουργιών-πράξεων ) θα είναι το άθροισμα των πυλών( πράξεων ) XOR και AND : ( 1 R ). ( 1 + R ). n 2 + ( 2. R 1 ). n - 1 συνολικά πύλες( ή συνολικές πράξεις ) Όταν το μήκος της κωδικής λέξης γίνεται πολύ μεγάλο τότε έχουμε : n ( 1 R ). ( 1 + R ). n 2 + ( 2. R 1 ). n - 1 συνολικά πύλες Ο( n 2 ) Παρατηρούμε ότι η πολυπλοκότητα της κωδικοποίησης είναι και πάλι τετραγωνικού χρόνου. Ο συντελεστής του n 2 είναι ( 1- R ). ( 1 + R ), δηλαδή είναι λίγο μεγαλύτερος σε σχέση με την προηγούμενη περίπτωση( όπου μετατρέψαμε τον πίνακα H σε συστηματική μορφή ). Να τονίσουμε ότι για να φέρουμε τον πίνακα H σε κάτω τριγωνική μορφή απαιτούνται Ο( n 3 ) λειτουργίες στο στάδιο της προ- επεξεργασίας. [10] 3.4 Αποδοτική κωδικοποίηση των LDPC κωδίκων Σε όλες τις παραπάνω περιπτώσεις παρατηρήσαμε ότι παρ ότι ο αρχικός πίνακας H που περιγράφει έναν LDPC κώδικα είναι αραιός, εντούτοις ο ισοδύναμος συστηματικός( ή ο ισοδύναμος κάτω τριγωνικός ) πίνακας H είναι μη αραιός( με μεγάλη πιθανότητα ). Αυτό οφείλεται στην εφαρμογή της απαλοιφής Gauss στον αρχικό πίνακα H, η οποία εκτός από αντιμεταθέσεις γραμμών περιλαμβάνει και αντικατάσταση μιας γραμμής με το modulo-2 άθροισμα της γραμμής αυτής με μία άλλη γραμμή. [10] Έτσι παρατηρούμε ότι δεν αξιοποιούμε την αραιότητα του πίνακα H έτσι ώστε να καταφέρουμε τελικά να πετύχουμε πολυπλοκότητα κωδικοποίησης γραμμικού χρόνου( linear time O( n ) ). Το 2001 οι T. Richardson και R. Urbanke παρουσίασαν στο [10] μια πιο αποδοτική διαδικασία κωδικοποίη σης η οποία μπορεί να προσεγγίσει την

46 πολυπλοκότητα O( n ). Αλλά ακόμη και όταν δεν πετυχαίνει αυτή την πολυπλοκότητα γραμμικού χρόνου, πετυχαίνει πολυπλοκότητα O( n 2 ) στην οποία ο συντελεστής του n 2 είναι πολύ μικρός έτσι ώστε η πολυπλοκότητα της κωδικοποίησης να παραμένει σε διαχειρίσιμα επίπεδα ακόμη και για πολύ μεγάλα block lengths n. Τη διαδικασία αυτή, με βάση το [10], θα περιγράψουμε παρακάτω. Στο στάδιο της προ-επεξεργασίας έχουμε τον πίνακα H( ο οποίος περιγράφει τον LDPC κώδικα και είναι full rank ) στον οποίο πραγματοποιούμε μόνο αντιμεταθέσεις γραμμών και στηλών ώστε να τον φέρουμε στη μορφή που φαίνεται στην εικόνα 3.2. Η μορφή αυτή του πίνακα H ονομάζεται προσεγγιστική κάτω τριγωνική( approximate lower triangular ) μορφή. Να τονίσουμε ότι στην προσεγγιστική κάτω τριγωνική μορφή του, ο πίνακας H παραμένει αραιός επειδή οι μόνες διαδικασίες που έχει υποστεί είναι μόνο αντιμεταθέσεις γραμμών ή στηλών. Εικόνα 3.2 [10] ισοτιμίας. Προσεγγιστική κάτω τριγωνική μορφή ενός πίνακα ελέγχου Πιο συγκεκριμένα, ο ισοδύναμος πίνακας H θα έχει την εξής μορφή : Η = ( 3.10 ) Όπου ο A είναι ένας ( m g )x( n m ) πίνακας, ο B είναι ένας ( m g )xg πίνακας, ο T είναι ένας ( m g )x( m g ) πίνακας, ο C είναι ένας gx( n m ) πίνακας, ο D είναι ένας gxg πίνακας και ο E είναι ένας gx( m g ) πίνακας. Ο πίνακας T είναι σε κάτω τριγωνική μορφή ενώ όλοι οι πίνακες είναι αραιοί. Η παράμετρος g ονομάζεται κενό( gap ) γιατί δείχνει κατά πόσο ο πίνακας H της έκφρασης 3.10 αποκλίνει από την κάτω τριγωνική μορφή. Για g = 0 ο H είναι

47 κάτω τριγωνικός. Όταν κάνουμε τις αντιμεταθέσεις γραμμών και στηλών για να φέρουμε τον H στη μορφή 3.10 φροντίζουμε να πετύχουμε όσο το δυνατό μικρότερο g. Στο [10] παρουσιάζονται διάφοροι αλγόριθμοι για τη μετατροπή του πίνακα H σε προσεγγιστική κάτω τριγωνική μορφή με όσο το δυνατό μικρότερο g. Παρακάτω θα δούμε το σημαντικό ρόλο που παίζει η παράμετρος g στον υπολογισμό της πολυπλοκότητας της κωδικοποίησης.. Ο πολλαπλασιασμός του πίνακα H με τον πίνακα : θα μας δώσει τον πίνακα : ( 3.11 ) Η μετατροπή αυτή του H στη μορφή 3.11 μπορεί να γίνει με εφαρμογή της απαλοιφής Gauss( αντί του πολλαπλασιασμού ) έτσι ώστε να καταστήσουμε τον πίνακα E ίσο με το μηδενικό πίνακα και να αφήσουμε τους πίνακες A, B και T ανέπαφους. Αν μετά το μηδενισμό του πίνακα E, ο πίνακας φ = -Ε. Τ -1 + D δεν είναι full rank( έχει μηδενική ορίζουσα ) τότε πραγματοποιούμε επιπλέον αντιμεταθέσεις στηλών έτσι ώστε ο φ να γίνει full rank. Να σημειώσουμε ότι αυτό είναι πάντα εφικτό όταν ο αρχικός πίνακας H είναι full rank. Αν θεωρήσουμε μια κωδική λέξη v τότε αυτή μπορεί να γραφεί σε συστηματική μορφή ως εξής : v = ( s, p 1, p 2 ) ( 3.12 ) όπου s είναι τα bit πληροφορίας ενώ ο συνδυασμός των p 1 και p 2 είναι τα bits ελέγχου ισοτιμίας. Η εξίσωση ορισμού( 3.5 ) μιας κωδικής λέξης( που μπορεί να γραφεί και ως H. v T = 0 ), αν αντικαταστήσουμε τις εξισώσεις 3.11 και 3.12, παίρνει τη μορφή : T

48 T A. s T + B. p 1 + T. p 2 T = 0 και ( 3.13 ) -1 T -1 T ( -Ε. Τ. A + C ). s + ( -E. Τ. B + D ). p 1 = 0 Εφ όσον έχουμε φροντίσει ο πίνακας φ = -Ε.Τ -1 + D να είναι full rank, από τη δεύτερη εξίσωση των σχέσεων 3.13 έχουμε : T p 1 = - φ -1. ( -Ε. -1 Τ. A + C ). T s ( 3.14 ) Συνεπώς, εφ όσον έχει προ-υπολογιστεί ο πίνακας -φ -1. ( -Ε. Τ -1. A + C ) διαστάσεων gx(n m ), ο υπολογισμός του p 1 μπορεί να επιτευχθεί με πολυπλοκότητα O( g. T ( n m ) ) εκτελώντας ένα πολλαπλασιασμό του s με ένα( γενικά πυκνό ) πίνακα. Η πολυπλοκότητα αυτή μπορεί να μειωθεί περαιτέρω, με μια διαδικασία όπως φαίνεται στον πίνακα 1. Αντί να προ-υπολογίσουμε τον πίνακα -φ -1. ( -Ε. -1 Τ. A + C ) και μετά να εκτελέσουμε τον πολλαπλασιασμό με το s T, μπορούμε να καθορίσουμε το p 1 σπάζοντας τον υπολογισμό σε αρκετά, μικρότερα βήματα καθένα από τα οποία μπορεί να υπολογιστεί με πολύ χαμηλή πολυπλοκότητα. Τα βήματα αυτά και η αντίστοιχη πολυπλοκότητά τους περιγράφονται στον πίνακα 1. Αρχικά προσδιορίζουμε το A. s T με πολυπλοκότητα O( n ), αφού ο πίνακας A είναι αραιός. Έπειτα πολλαπλασιάζουμε το αποτέλεσμα με Τ -1. Επειδή T -1. [A. s T ] = y T είναι ισοδύναμο με το σύστημα [A. s T ] = T. y T, η διαδικασία αυτή μπορεί να πραγματοποιηθεί με πολυπλοκότητα O( n ) με προς τα πίσω αντικατάσταση, αφού ο T είναι κάτω τριγωνικός πίνακας και αραιός. Τα υπόλοιπα βήματα μπορούν να πραγματοποιηθούν απ ευθείας με πολυπλοκότητα O( n ) εκτός από το τελευταίο βήμα που πραγματοποιείται με πολυπλοκότητα O( g 2 ). Άρα η συνολική πολυπλοκότητα, για τον υπολογισμό του p 1, θα είναι O( n + g 2 )

49 [10] ΠΙΝΑΚΑΣ 1 T Αποδοτικός υπολογισμός του p 1 = - φ -1. ( -Ε. Τ -1. A + C ). T s ΒΗΜΑ ΛΕΙΤΟΥΡΓΙΑ ΣΧΟΛΙΟ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 1 A. s T Πολλαπλασιασμός με έναν αραιό πίνακα O( n ) 2 T -1. [A. s T ] T -1. [A. s T ] = y T <=> [A. s T ] = T. y T O( n ) 3 -E. [T -1. A. s T ] Πολλαπλασιασμός με έναν αραιό πίνακα O( n ) T 4 C. s Πολλαπλασιασμός με έναν αραιό πίνακα O( n ) T 5 [-E. T -1. A. s T ] + [C. s ] Πρόσθεση O( n ) -1-1 T T 2 6 -φ. [-Ε. Τ. A. s + C. s ] Πολλαπλασιασμός με έναν πυκνό gxg πίνακα O( g ) Επίσης, από την πρώτη εξίσωση της 3.13, θα έχουμε : T p 2 = -T -1. [ A. s T + B. p1 T ] ( 3.15 ) Με παρόμοιο τρόπο( όπως για το p 1 ), ο υπολογισμός του p 2 μπορεί να γίνει σε σταδιακά βήματα, όπως φαίνεται στον πίνακα 2. Η πολυπλοκότητα που απαιτείται για τον υπολογισμό του p 2 είναι O( n ). [10] ΠΙΝΑΚΑΣ 2 T -1 Αποδοτικός υπολογισμός του p 2 = -T. [ A. T s + B. T p1 ] ΒΗΜΑ ΛΕΙΤΟΥΡΓΙΑ ΣΧΟΛΙΟ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 1 A. s T Πολλαπλασιασμός με έναν αραιό πίνακα O( n ) 2 B. p 1 T Πολλαπλασιασμός με έναν αραιό πίνακα O( n ) 3 [ A. s T ] + [ B. T p 1 ] Πολλαπλασιασμός με έναν αραιό πίνακα O( n ) 4 -T -1. [ A. s T + B. T p 1 ] -T -1. [ A. s T + B. T p 1 ] <=> [ A. s T + B. T p 1 ]=T. y T O( n )

50 Τα βήματα της συνολικής διαδικασίας της κωδικοποίησης παρουσιάζονται στον παρακάτω πίνακα. ΠΙΝΑΚΑΣ 3 [10] Περιγραφή της συνολικής διαδικασίας κωδικοποίησης Προ-επεξεργασία : Είσοδος : ένας full rank πίνακας ελέγχου ισοτιμίας H. Έξοδος : Ένας ισοδύναμος πίνακας ελέγχου ισοτιμίας της μορφής 3.10 τέτοιος ώστε ο πίνακας φ = -Ε. Τ -1 + D να είναι full rank. 1. [ Τριγωνοποίηση ] : Πραγματοποιούμε αντιμεταθέσεις γραμμών και στηλών ώστε να φέρουμε τον πίνακα H σε προσεγγιστική, κάτω τριγωνική μορφή( 3.10 ), με όσο το δυνατό μικρότερο g. 2. [ Έλεγχος του rank ] : Με τη χρήση της απαλοιφής Gauss, φέρουμε τον προσεγγιστικά, κάτω τριγωνικό πίνακα στη μορφή 3.11, ώστε να ελέγξουμε αν ο πίνακας φ = -Ε. Τ -1 + D είναι full rank. Αν δεν είναι full rank, εκτελούμε επιπλέον αντιμεταθέσεις στηλών ώστε να πετύχουμε αυτή την ιδιότητα. Κωδικοποίηση : Είσοδος : 1) Ένας πίνακας ελέγχου ισοτιμίας της μορφής 3.10, τέτοιος ώστε ο πίνακας φ = -Ε. Τ -1 + D να είναι full rank και 2) η ακολουθία πληροφορίας s. Έξοδος : Η κωδική λέξη v = ( s, p 1, p 2 ) όπως ορίστηκε παραπάνω, τέτοια ώστε H. v T = 0 T. 1. Καθορισμός του p 1 όπως φαίνεται στον πίνακα Καθορισμός του p 2 όπως φαίνεται στον πίνακα 2. Επομένως η συνολική πολυπλοκότητα για τον υπολογισμό μιας κωδικής λέξης, θα είναι O( n + g 2 ). Παρατηρούμε λοιπόν τη μεγάλη σημασία που διαδραματίζει η παράμετρος g στον καθορισμό της πολυπλοκότητας της κωδικοποίησης. Γι αυτό προσπαθούμε να φέρουμε τον πίνακα H στη μορφή 3.10 με όσο το δυνατό μικρότερο g. για να πετύχουμε πολυπλοκότητα όσο το δυνατό πιο κοντά στην O( n ). Στο [10] προτείνονται ορισμένοι αλγόριθμοι για την προσεγγιστική τριγωνοποίηση του πίνακα ελέγχου ισοτιμίας H με τους οποίους επιτυγχάνονται αρκετά μικρές τιμές της παραμέτρου g. Στο [10] επίσης αποδεικνύεται ότι με τον βέλτιστο από αυτούς τους αλγόριθμους, για έναν ( 3, 6 ) κανονικό( regular ) LDPC κώδικα επιτυγχάνεται g = n. Αυτό σημαίνει ότι η πολυπλοκότητα είναι μεν τετραγωνικής τάξης αλλά είναι της μορφής n 2 + O( n ). Επομένως ο συντελεστής του n 2 είναι πολύ μικρός και αυτό επιτρέπει την κωδικοποίηση να παραμένει πρακτικά εφικτή, ακόμη και για μεγάλα block lengths n( της τάξης n ~ 10 5 )

51 Τέλος στο [10] αποδεικνύεται ότι για τους βελτιστοποιημένους, μη-κανονικούς LDPC κώδικες, που προσεγγίζουν τη χωρητικότητα, η παράμετρος g είναι τάξης μικρότερης από n ( οπότε το g2 είναι τάξης μικρότερης από n ) οδηγώντας έτσι σε πολυπλοκότητα κωδικοποίησης γραμμικού χρόνου ( O( n ) )

52 ΚΕΦΑΛΑΙΟ 4 Αποκωδικοποίηση LDPC κωδίκων 4.1 Εισαγωγή Η διαδικασία της αποκωδικοποίησης( decoding ) αναφέρεται στην παραγωγή των μηνυμάτων πληροφορίας από τις ληφθείσες κωδικές λέξεις. Επειδή όμως η απεικόνιση μεταξύ των κωδικών λέξεων v και των μηνυμάτων πληροφορίας u είναι αμφιμονοσήμαντη, αρκεί ο αποκωδικοποιητής( decoder ) να καθορίσει την κωδική λέξη που έχει αποσταλεί από τον πομπό, παρατηρώντας τη λαμβανόμενη ακολουθία r. Στη λαμβανόμενη αυτή ακολουθία r, υπάρχει πιθανότητα( λόγω της παρουσίας του θορύβου του καναλιού ) ένα ή περισσότερα κωδικά bits( codebits ) να έχουν αλλάξει τιμή( σε σχέση με την κωδική λέξη που έχει αποσταλεί ). Άρα αυτό που κάνει εν τέλει ο αποκωδικοποιητής, είναι να ανιχνεύει αν υπάρχουν κωδικά bits που έχουν αλλάξει τιμή( ανίχνευση λαθών ) και αν είναι δυνατόν να διορθώνει την τιμή αυτών των bits( διόρθωση λαθών ). [32] Όπως αναφέραμε στο κεφάλαιο 1, η χρήση του βέλτιστου σχήματος αποκωδικοποίησης( MAP ή ML decoding ) οδηγεί μεν στην επίτευξη βέλτιστων επιδόσεων( χαμηλή πιθανότητα σφάλματος bit BER ) αλλά το αντίτιμο είναι η υψηλή πολυπλοκότητα αποκωδικοποίησης, η οποία αυξάνει εκθετικά με το block length n του κώδικα( πολυπλοκότητα O( 2 n ) ). [32] Το γεγονός αυτό περιορίζει την εφαρμογή της βέλτιστης αυτής τεχνικής αποκωδικοποίησης σε σχετικά μικρά block length n( για n > 20 η πολυπλοκότητα γίνεται πλέον απαγορευτική). Στο Παράρτημα 3 περιγράφουμε πιο αναλυτικά τη βέλτιστη MAP αποκωδικοποίηση καθώς και την προκύπτουσα πολυπλοκότητα.. Η σημαντική καινοτομία που εισήγαγε ο Gallager με τους LDPC κώδικες, ήταν η επαναληπτική( iterative ), message-passing αποκωδικοποίηση. Αυτό τον τύπο αποκωδικοποίησης θα αναλύσουμε στο κεφάλαιο αυτό και θα δούμε τους κυριότερους αλγόριθμους επαναληπτικής, message-passing αποκωδικοποίησης. Η χρήση και η επιτυχία της message-passing αποκωδικοποίησης ενθαρρύνεται από την αραιότητα του πίνακα H των LDPC κωδίκων. Για την επαναληπτική, messagepassing αποκωδικοποίηση των LDPC κωδίκων θα χρησιμοποιήσουμε την γραφική αναπαράσταση αυτών, η οποία περιλαμβάνει τη χρήση του διαγράμματος Tanner. [31] Η δυνατότητα χρήσης της επαναληπτικής, message-passing αποκωδικοποίησης αποτελεί το κυριότερο συστατικό των LDPC κωδίκων καθώς μειώνει δραματικά την πολυπλοκότητα της αποκωδικοποίησης( η οποία είναι γραμμικού χρόνου Ο( n ) ), καθιστώντας εφικτή την υλοποίηση συστημάτων με αρκετά μεγάλα block lengths n ( n ~ 10 5 ). Από την άλλη πλευρά θα δούμε ότι παρ ότι οι αλγόριθμοι επαναληπτικής, message-passing αποκωδικοποίησης οδηγούν σε υποβέλτιστες επιδόσεις εν τούτοις με την αύξηση του block length n και την κατάλληλη σχεδίαση των LDPC κωδίκων οι αλγόριθμοι αυτοί οδηγούν τελικά σε σχεδόν-βέλτιστες( near

53 optimal ) επιδόσεις για ένα μεγάλο εύρος καναλιών και ρυθμών σφαλμάτων( [31], [33] error rates ). 4.2 Επαναληπτική, message-passing αποκωδικοποίηση Όπως αναφέραμε οι αλγόριθμοι που χρησιμοποιούνται για την αποκωδικοποίηση των LDPC κωδίκων, καλούνται με τον όρο message-passing αλγόριθμοι. Αυτό οφείλεται στο γεγονός ότι η λειτουργία τους μπορεί να ερμηνευτεί με τη μεταφορά( passing ) μηνυμάτων( messages ) μεταξύ των κόμβων ενός γραφήματος Tanner δια μέσου των συνδέσεων αυτού. [31] Η message-passing αποκωδικοποίηση δεν αφορά συγκεκριμένα μόνο τους LDPC κώδικες, αλλά οποιονδήποτε κώδικα που προκύπτει ως αποτέλεσμα αλυσιδωτής σύνδεσης επιμέρους υποκωδίκων. Αναφέρεται λοιπόν σε μια πιο γενική διαδικασία σύμφωνα με την οποία ένα σύνολο από αποκωδικοποιητές, χαμηλής πολυπλοκότητας, λειτουργεί με ένα διανεμημένο τρόπο( distributed fashion ) έτσι ώστε να εκτιμήσει την κωδική λέξη που έχει αποσταλεί με την παρατήρηση της λαμβανόμενης ακολουθίας r. Με απλά λόγια μπορούμε να πούμε ότι έχουμε πολλούς απλούς αποκωδικοποιητές, οι οποίοι συνεργάζονται μεταξύ τους( ανταλλάσσοντας τοπική πληροφορία που διαθέτει ο καθένας ) ώστε να αποκωδικοποιήσουν τη λαμβανόμενη ακολουθία r. Η συνεργασία μεταξύ των επιμέρους, απλούστερων αποκωδικοποιητών επιτυγχάνεται με τη σύνδεση αυτών [2], [31] σε ένα σχήμα αλυσιδωτής κωδικοποίησης( concatenated coding ). Όπως αναφέραμε στο κεφάλαιο 2, κάθε CN του γραφήματος Tanner ενός LDPC κώδικα αντιστοιχεί σε μια γραμμή του πίνακα H και αποτελεί στην ουσία έναν απλό κωδικα ελέγχου ισοτιμίας( SPC ). Αντίστοιχα κάθε VN του γραφήματος Tanner ενός LDPC κώδικα αντιστοιχεί σε μια στήλη( ή σε ένα κωδικό bit της κωδικής λέξης ) του πίνακα H και αποτελεί έναν κώδικα επανάληψης( Repetition Code ). Κάθε κόμβος του γραφήματος Tanner έχει πρόσβαση μόνο σε μηνύματα τα οποία έρχονται δια μέσου των συνδέσεων οι οποίες φθάνουν σε αυτόν. [31] Η message-passing αποκωδικοποίηση λειτουργεί επαναληπτικά. Αυτό σημαίνει ότι μηνύματα κινούνται από τους VNs στους CNs( στο πρώτο μισό κάθε επανάληψης ) αλλά και από τους CNs στους VNs( στο δεύτερο μισό κάθε επανάληψης ). Η διαδικασία συνεχίζεται έως ότου επιτευχθεί ένα αποτέλεσμα( π.χ. να βρεθεί μια κωδική λέξη ) ή ολοκληρωθεί ο μέγιστος αριθμός επαναλήψεων που [31], [33] έχουμε ορίσει. Κάθε κόμβος του γραφήματος Tanner λειτουργεί ως ένας τοπικός επεξεργαστής : λαμβάνει πληροφορία από τους γείτονές του, την επεξεργάζεται κατάλληλα( με βάση τους κανόνες που του έχουμε ορίσει ) και περνά στους γείτονές του την πληροφορία που παράγει( θα δούμε παρακάτω πως ορίζεται αυτή η πληροφορία και τι είδους επεξεργασία υφίσταται στους κόμβους). [31] Η ιδέα λοιπόν του Gallager ήταν ο επαναληπτικός διαμοιρασμός των αποτελεσμάτων-μηνυμάτων της τοπικής αποκωδικοποίησης που λαμβάνει χώρα σε κάθε κόμβο. Ο διαμοιρασμός αυτός των μηνυμάτων επιτυγχάνεται, περνώντας τα μηνύματα διαμέσου των συνδέσεων που συνδέουν τους κόμβους του γραφήματος Tanner. [31]

54 Αφού λοιπόν οι κόμβοι ενός LDPC κώδικα μπορούν να θεωρηθούν SPC κώδικες( για τους CNs ) και Repetition κώδικες( για τους VNs ) μπορούμε να θεωρήσουμε τους LDPC κώδικες ως μια γενικευμένη αλυσιδωτή σύνδεση SPC και Repetition κωδίκων. Ένας message-passing αποκωδικοποιητής για έναν LDPC κώδικα περιλαμβάνει ένα ξεχωριστό, ανεξάρτητο αποκωδικοποιητή για κάθε SPC κώδικα. Κάθε SPC αποκωδικοποιητής λαμβάνει πληροφορία από ένα υποσύνολο των VNs( πρόκειται για τους VNs που συνδέεται ) και λαμβάνει μια απόφαση σχετικά με τα μηνύματα που θα στείλει πίσω στους VNs με τους οποίους συνδέεται. Όλοι αυτοί οι SPC αποκωδικοποιητές λειτουργούν σε συνεργασία μεταξύ τους, με ένα διανεμημένο τρόπο ώστε να καθορίσουν τις σωστές τιμές των κωδικών bits( να αποκωδικοποιήσουν δηλαδή τη λαμβανόμενη ακολουθία r ). Αυτό γίνεται στους VNs οι οποίοι όπως είδαμε λειτουργούν ως Repetition κώδικες. Συγκεκριμένα κάθε Repetition αποκωδικοποιητής λαμβάνει πληροφορία από ένα υποσύνολο των CNs( πρόκειται για τους CNs που συνδέεται ) και λαμβάνει μια απόφαση σχετικά με την τιμή του κωδικού bit που αντιπροσωπεύει ο αντίστοιχος VNs. Επίσης, αν επρόκειτο να συνεχιστεί η επαναληπτική αποκωδικοποίηση, κάθε Repetition αποκωδικοποιητής λαμβάνει μια απόφαση σχετικά με τα [31], [33], μηνύματα που θα στείλει πίσω στους CNs με τους οποίους συνδέεται. [45] Όπως παρατηρούμε παραπάνω, το γράφημα Tanner αποτελεί ένα μοντέλο, ένα είδος οδηγού-χάρτη για την αποκωδικοποίηση. Η φύση της πληροφορίας που διακινείται στο εσωτερικό του γραφήματος Tanner καθορίζει και τους διάφορους αλγόριθμους επαναληπτικής αποκωδικοποίησης που θα εξετάσουμε. Έτσι για παράδειγμα αν τα μηνύματα που διακινούνται στο γράφημα Tanner είναι πιθανότητες σχετικά με την τιμή ενός bit θα μιλάμε για τον αλγόριθμο sumproduct( ή αλλιώς belief-propagation ) ενώ αν τα μηνύματα αυτά είναι τιμές bits( 0 ή 1 ) τότε θα μιλάμε για τον αλγόριθμο bit-flipping. Επίσης στους αλγόριθμους αυτούς, που θα περιγράψουμε παρακάτω, θα δούμε τη λεπτομερή λειτουργία των CNs και VNs αποκωδικοποιητών οι οποίοι όπως αναφέραμε αντιστοιχίζονται σε SPC και Repetition αποκωδικοποιητές αντίστοιχα. [31]

55 Εικόνα 4.1 Αναπαράσταση LDPC, Turbo και Repeat-accumulate κωδίκων ως αλυσιδωτή σύνδεση επιμέρους κωδίκων. Στους LDPC κώδικες οι επιμέρους κώδικες είναι SPC και Repetition κώδικες ενώ στους Turbo κώδικες οι επιμέρους κώδικες είναι συνελικτικοί κώδικες. Με Π αναπαριστάνουμε έναν inter leaver. [45] Μια πολύ σημαντική πλευρά της πληροφορίας που ανταλλάσσεται μεταξύ των κόμβων του γραφήματος Tanner έχει να κάνει με τη λεγόμενη εξωγενή πληροφορία( extrinsic information ) και την αρχή turbo( turbo principle ). [31] Η ιδέα της εξωγενούς πληροφορίας βασίζεται στο γεγονός ότι ένας τοπικός αποκωδικοποιητής X( σε ένα σύστημα επαναληπτικής, message-passing αποκωδικοποίησης ) δεν περνά σε ένα γειτονικό του τοπικό αποκωδικοποιητή Y πληροφορία την οποία ο Y ήδη κατέχει. Αυτό σημαίνει ότι μόνο εξωγενής πληροφορία περνά από τον X στον Y, δηλαδή πληροφορία που αφορά τον Y, αλλά προέρχεται έξω από αυτόν. Επομένως ο αποκωδικοποιητής Y λαμβάνει από τον αποκωδικοποιητή X το άθροισμα όλων των μηνυμάτων που φθάνουν στον X( από τους γείτονές του ) μείον την πληροφορία την οποία έχει ήδη ο Y( και την οποία έχει στείλει στον X ). [31] Η εξωγενής πληροφορία που περνά από τον αποκωδικοποιητή X στον Y θα είναι [31] : ( 4.1 )

56 όπου N( X ) είναι το σύνολο των γειτόνων του αποκωδικοποιητή X, I X Y είναι η εξωγενής πληροφορία που ο αποκωδικοποιητής X περνάει στον Y( παρόμοιοι ορισμοί ισχύουν και για τα I Z Y και I Y X ) και I X είναι η πληροφορία που προσθέτει ο ίδιος ο X και η οποία ονομάζεται ενδογενής( intrinsic ) πληροφορία. Για τους Repetition αποκωδικοποιητές( σε έναν LDPC αποκωδικοποιητή ) η ενδογενής πληροφορία είναι αυτή που λαμβάνουν από το κανάλι( π.χ. η τιμή των κωδικών bits στην έξοδο του ανιχνευτή ή οι πιθανότητες για τις τιμές των κωδικών bits στην είσοδο του αποκωδικοποιητή ) ενώ για τους SPC αποκωδικοποιητές η ενδογενής πληροφορία είναι μηδενική καθώς δεν έχουν καμιά σύνδεση με το [31], [33] κανάλι. Η παραπάνω ιδέα, με το πέρασμα μόνο εξωγενούς πληροφορίας από έναν τοπικό αποκωδικοποιητή σε ένα γείτονά του, ονομάστηκε αρχή turbo στα πλαίσια της επαναληπτικής αποκωδικοποίησης των αλυσιδωτών κωδίκων. [33] Μια απεικόνιση της αρχής turbo φαίνεται στην παρακάτω εικόνα. Εικόνα 4.2 Απεικόνιση της αρχής turbo για ένα σχήμα αλυσιδωτής κωδικοποίησης. ( a ) Εξωγενής πληροφορία I X Y που περνά από τον αποκωδικοποιητή X στον αποκωδικοποιητή Y. ( b ) Εξωγενής πληροφορία I Y X που περνά από τον αποκωδικοποιητή Y στον αποκωδικοποιητή X. ( c ) Ένας συμμετρικός συνδυασμός των ( a) και ( b ). [31] Να τονίσουμε ότι στο παραπάνω σχήμα ισχύει ότι, ( το ίδιο ισχύει αντίστοιχα και για το ) και παριστάνει τη συνολική πληροφορία που φθάνει στον τοπικό αποκωδικοποιητή X. Επίσης τα I X και I Y παριστάνουν την ενδογενή πληροφορία που λαμβάνουν οι αποκωδικοποιητές από το κανάλι. [31]

57 Σε ένα σύστημα επαναληπτικής αποκωδικοποίησης( με πολλαπλούς, τοπικούς αποκωδικοποιητές ) η κατάσταση είναι σχεδόν ταυτόσημη. Δηλαδή, το πέρασμα των μηνυμάτων από τον αποκωδικοποιητή X στον αποκωδικοποιητή Y στην εικόνα 4.2, θα γίνεται πολλαπλές φορές έως ότου ικανοποιηθεί κάποιο κριτήριο ολοκλήρωσης( stopping criterion ). [31], [33] Στον πίνακα που ακολουθεί δίνονται τα γενικά βήματα της διαδικασίας της επαναληπτικής, message-passing αποκωδικοποίησης για έναν LDPC κώδικα. Στις επόμενες ενότητες θα συγκεκριμενοποιήσουμε τα βήματα αυτά αλλά και το είδος των μηνυμάτων που διακινούνται και τον τύπο της επεξεργασίας που υφίστανται. [31], [33] ΠΙΝΑΚΑΣ 4.1 Βήματα της διαδικασίας της επαναληπτικής, message-passing αποκωδικοποίησης για έναν LDPC κώδικα. ΒΗΜΑ ΛΕΙΤΟΥΡΓΙΑ 1 Αρχικοποίηση των VNs Repetition αποκωδικοποιητών με τα μηνύματα του καναλιού 2 Επεξεργασία των εισερχόμενων μηνυμάτων από τους VNs Repetition αποκωδικοποιητές και αποστολή εξωγενούς πληροφορίας στους γειτονικούς CNs SPC αποκωδικοποιητές 3 Επεξεργασία των εισερχόμενων μηνυμάτων από τους CNs SPC αποκωδικοποιητές και αποστολή εξωγενούς πληροφορίας στους γειτονικούς VNs Repetition αποκωδικοποιητές 4 Υπολογισμός της συνολικής πληροφορίας που φθάνει σε κάθε VN Repetition αποκωδικοποιητή και εκτίμηση της κωδικής λέξης που έχει αποσταλεί 5 Εξέταση του κριτηρίου ολοκλήρωσης. Αν αυτό δεν ικανοποιείται τότε επιστρέφουμε στο βήμα 2. Διαφορετικά έχουμε ολοκλήρωση της διαδικασίας. Τα πιο συνηθισμένα κριτήρια ολοκλήρωσης στην επαναληπτική αποκωδικοποίηση είναι : 1 ) η ικανοποίηση όλων των εξισώσεων ελέγχου T ισοτιμίας( s = y. H = 0 όπου s είναι το σύνδρομο του y και y είναι η εκτίμηση του αποκωδικοποιητή για την κωδική λέξη που έχει αποσταλεί ) και 2 ) το πέρας του μέγιστου αριθμού επαναλήψεων της επαναληπτικής διαδικασίας αποκωδικοποίησης. [31], [33] Επομένως η διαδικασίας αποκωδικοποίησης σταματά αμέσως μόλις βρεθεί μια έγκυρη κωδική λέξη( s = y. H T = 0 η εκτίμηση y είναι μια έγκυρη κωδική λέξη ). Διαφορετικά θα περνάμε στην επόμενη επανάληψη έως ότου ολοκληρωθεί ο μέγιστος αριθμός επαναλήψεων. Μόλις ολοκληρωθεί αυτός ο μέγιστος αριθμός επαναλήψεων, χωρίς να έχει βρεθεί μια έγκυρη κωδική λέξη( s = y. H T 0 ) τότε λέμε ότι ο αλγόριθμος δε συγκλίνει( non convergence ) και δεχόμαστε ως αποσταλθείσα κωδική λέξη την εκτίμηση y( η οποία σαφώς θα [31], [33] περιέχει λάθη )

58 Τα δύο αυτά κριτήρια εφαρμόζονται σε όλες τις περιπτώσεις επαναληπτικής, message passing αποκωδικοποίησης των LDPC κωδίκων και έχουν δύο πλεονεκτήματα. [31] : 1. Αν βρεθεί μια λύση( μια έγκυρη κωδική λέξη ) τότε αποφεύγονται επιπλέον, άσκοπες επαναλήψεις. 2. Πάντα ανιχνεύεται η μη σύγκλιση του αλγορίθμου σε μια έγκυρη κωδική λέξη. Στη συνέχεια θα εξετάσουμε συγκεκριμένους message passing αλγόριθμους για την αποκωδικοποίηση των LDPC κωδίκων, για τους πιο συνηθισμένους τύπους καναλιών. 4.3 Ο αλγόριθμος Bit flipping Ο αλγόριθμος bit flipping βασίζεται στην επαναληπτική message passing αποκωδικοποίηση. Στον αλγόριθμο bit flipping τα μηνύματα που διακινούνται μέσω των συνδέσεων του γραφήματος Tanner είναι τιμές bit( 0 ή 1 ), πρόκειται δηλαδή για δυαδικά μηνύματα. Αυτό σημαίνει ότι ο αλγόριθμος bit flipping είναι ένας hard decision αλγόριθμος αποκωδικοποίησης και πριν τον αποκωδικοποιητή θα πρέπει να υπάρχει ένας ανιχνευτής( detector ) ο οποίος λαμβάνει μια απόφαση για την τιμή κάθε λαμβανόμενου bit, παρατηρώντας το λαμβανόμενο διάνυσμα r( [31], [33] του οποίου τα n στοιχεία είναι πραγματικοί αριθμοί ). Η γενική αρχή λειτουργίας του αλγορίθμου bit flipping είναι η εξής : στο πρώτο μισό μιας επανάληψης κάθε VN στέλνει ένα μήνυμα στους γείτονες του CNs δηλώνοντας αν έχει την τιμή 1 ή 0.Στο δεύτερο μισό μιας επανάληψης κάθε CN στέλνει ένα μήνυμα σε κάθε γείτονά του VN δηλώνοντας την απόφασή του για την τιμή του bit αυτού του VN. Η λήψη μιας απόφασης σε ένα CN ή VN γίνεται με βάση την αντίστοιχη πληροφορία που είναι διαθέσιμη στους κόμβους αυτούς και [31], [33] προέρχεται από τους γείτονές τους. Πιο συγκεκριμένα, ο j στος CN καθορίζει την απόφασή του για το i στο bit( VN ) θεωρώντας ότι το i στο bit έχει διαγραφεί. Επομένως ο j στος CN επιλέγει την τιμή 0 ή 1 για το i στο bit κατά τέτοιο τρόπο ώστε να ικανοποιείται η j στη εξίσωση ελέγχου ισοτιμίας( κάθε CN αντιπροσωπεύει έναν Single Parity Check κώδικα ). Δηλαδή η απόφαση του j στου CN για το i στο bit θα ισούται με το modulo 2 άθροισμα των bits( εκτός του i στου bit ) που συνδέονται στο j στο CN. Αυτό σημαίνει ότι η απόφαση του j στου CN για το i στο bit( VN ) βασίζεται μόνο στις τιμές των άλλων bits τα οποία περιλαμβάνονται στη j στη εξίσωση ελέγχου ισοτιμίας. Συνεπώς ο j στος CN καθορίζει μια τιμή για το i στο bit η οποία είναι τελείως ανεξάρτητη από την τιμή την οποία έλαβε έλαβε ο j στος CN από τον i στο VN. Λέμε λοιπόν ότι ο j στος CN μεταδίδει στον i στο VN μόνο εξωγενή [31], [33] πληροφορία, όπως ακριβώς ορίσαμε στην προηγούμενη ενότητα. Σε ότι αφορά τους VNs, όπως αναφέραμε κάθε VN αντιπροσωπεύει έναν Repetition κώδικα. Αυτό σημαίνει ότι ένας VN λαμβάνει ένα σύνολο μηνυμάτων(

59 εξωγενής πληροφορία σχετικά με την τιμή του bit του ) από τους γείτονές του CNs τα οποία και συγκρίνει με τη τιμή του bit που έλαβε από το κανάλι. Το αποτέλεσμα αυτής της σύγκρισης είναι ο καθορισμός της πιο πιθανής τιμής για το bit του VN. Η σύγκριση αυτή πραγματοποιείται σύμφωνα με τον κανόνα της πλειοψηφίας. αν η πλειοψηφία των μηνυμάτων που λαμβάνει ο VN από τους γείτονές του CNs διαφέρουν από τη λαμβανόμενη από το κανάλι τιμή για το bit του VN, τότε ο VN αλλάζει την τρέχουσα τιμή του bit που του αντιστοιχεί. Με πιο απλά λόγια, αν η πλειοψηφία των μηνυμάτων( τιμών bit ) που φθάνουν στο VN( από τους γείτονές του και από το κανάλι ) είναι 1 τότε το αντίστοιχο bit του VN τίθεται 1, [31], [33] διαφορετικά τίθεται 0. Άρα κάθε CN λειτουργεί ως ένας τοπικός επεξεργαστής ο οποίος παράγει εξωγενή πληροφορία για τους γείτονές του VNs χρησιμοποιώντας μια εξίσωση ελέγχου ισοτιμίας. Ουσιαστικά η λειτουργία ενός CN τοπικού επεξεργαστή περιλαμβάνει την υλοποίηση modulo 2 αθροισμάτων( XOR ) μεταξύ των bit που λαμβάνονται [31], [32] από τους γείτονες του CN αυτού. Επίσης κάθε VN λειτουργεί ως ένας τοπικός επεξεργαστής ο οποίος λαμβάνει όλα τα μηνύματα από τους γείτονές του CNs και λαμβάνει μια απόφαση σχετικά με την τιμή του bit που αντιστοιχεί σε αυτόν τον VN με βάση τον κανόνα της πλειοψηφίας. Έτσι η λειτουργία ενός VN τοπικού επεξεργαστή περιλαμβάνει την υλοποίηση ενός κυκλώματος πλειοψηφίας με εισόδους τις τιμές των γειτονικών CNs και την τιμή [31], [32] του καναλιού. Ο αλγόριθμος bit flipping χρησιμοποιεί τα δύο κριτήρια ολοκλήρωσης που περιγράψαμε στην προηγούμενη ενότητα έτσι ώστε να καθοριστεί αν θα πάμε στην επόμενη επανάληψη ή θα έχουμε ολοκλήρωση της διαδικασίας. Επομένως ο αλγόριθμος bit flipping σταματά αμέσως μόλις βρεθεί μια έγκυρη κωδική λέξη( s = y. H T = 0 η εκτίμηση y είναι μια έγκυρη κωδική λέξη ). Διαφορετικά θα περνάμε στην επόμενη επανάληψη έως ότου ολοκληρωθεί ο μέγιστος αριθμός επαναλήψεων. Η ολοκλήρωση του μέγιστου αριθμού επαναλήψεων, χωρίς να έχει βρεθεί μια έγκυρη κωδική λέξη οδηγεί στη μη σύγκλιση του αλγορίθμου και στην αποδοχή ως αποσταλθείσας κωδικής λέξης της εκτίμησης y( η οποία σαφώς θα [31], [33] περιέχει λάθη ). Ο αλγόριθμος bit flipping βασίζεται στην αρχή ότι ένα λανθασμένο κωδικό bit( incorrect codeword bit ) θα περιέχεται σε ένα μεγάλο αριθμό 2 εξισώσεων ελέγχου ισοτιμίας στις οποίες δεν υπάρχουν άλλα λανθασμένα κωδικά bits. Έτσι κάθε μια από αυτές τις εξισώσεις ελέγχου ισοτιμίας θα μπορεί να υπολογίσει τη σωστή τιμή γι αυτό το λανθασμένο bit. Οι «γνώμες» των εξισώσεων ελέγχου ισοτιμίας CNs αποστέλλονται στο VN που αντιστοιχεί στο λανθασμένο κωδικό bit η τιμή του οποίου υπολογίζεται όπως αναφέραμε σύμφωνα με τον κανόνα της [31], [32] πλειοψηφίας. 2 Η συμμετοχή ενός λανθασμένου κωδικού bit σε ένα μεγάλο αριθμό εξισώσεων ελέγχου ισοτιμίας στις οποίες δεν υπάρχουν άλλα λανθασμένα κωδικά bits ενισχύεται από την αραιότητα του πίνακα H και την απουσία κύκλων μήκους 4. Οι παράμετροι αυτές διασκορπίζουν τα κωδικά bits σε διαφορετικές εξισώσεις ελέγχου ισοτιμίας έτσι ώστε δύο τέτοιες εξισώσεις να μην είναι πιθανό να περιέχουν το ίδιο σύνολο από κωδικά bits [32]

60 Στον παρακάτω πίνακα παρουσιάζονται συνοπτικά τα βήματα του αλγορίθμου bit flipping : [31], [33] ΠΙΝΑΚΑΣ 4.1 Αλγόριθμος Bit flipping Είσοδος : το block length n, το πλήθος m των γραμμών του πίνακα H, ο πίνακας H, η hard decision απόφαση y = [ y 1, y 2,, y n ] (y i = 0 ή 1 για i = 1,, n ) για το λαμβανόμενο διάνυσμα r και ο μέγιστος αριθμός των επαναλήψεων I max. ΒΗΜΑ ΠΕΡΙΓΡΑΦΗ ΛΕΙΤΟΥΡΓΙΑ 1 Αρχικοποίηση των VNs με τις hard decision τιμές for i = 1 : n do ( διάνυσμα y ) του καναλιού M i = y i end for l =0 repeat 2 CN update : Αποστολή των μηνυμάτων των VNs στους for j = 1 : m do γείτονες CNs και υπολογισμός από τους CNs των for i = 1 : n do εξερχόμενων μηνυμάτων προς τους γειτονικούς VNs E j,i = Σ i Bj, i i (Mi mod 2) end for end for 3 VN update : Αποστολή των μηνυμάτων των CNs στους for i = 1 : n do γειτονικούς VNs και υπολογισμός από τους VNs των if ( the majority of E j,i τιμών των κωδικών bits disagree with y i ) then M i = ( y i + 1 mod 2 ) end if end for 4 Stopping criteria : Αν τα κωδικά bits σχηματίζουν μια for j = 1 : m do έγκυρη κωδική λέξη ή αν συμπληρωθεί ο μέγιστος s j = Σ i Bj ( Mi mod 2 ) αριθμός των επαναλήψεων ολοκληρώνεται η end for διαδικασία, διαφορετικά πηγαίνουμε στο βήμα 2 if ( all s j = 0 or l = I max ) then Finished else l = l + 1 end if until Finished Το διάνυσμα B περιέχει τους γείτονες VNs ενός CN, το διάνυσμα M περιέχει τα μηνύματα που παράγουν οι VNs και ο πίνακας E περιέχει τα μηνύματα που παράγουν οι CNs και τα αποστέλλουν στους γειτονικούς VNs

61 Έξοδος : η εκτίμηση για την αποσταλθείσα κωδική λέξη n ] Να σημειώσουμε ως κατακλείδα ότι ο αλγόριθμος bit flipping, ως δυαδικός hard decision αλγόριθμος, εφαρμόζεται στην περίπτωση του BSC( Binary Symmetric Channel ). Παρακάτω θα εξετάσουμε αλγόριθμους επαναληπτικής, message passing αποκωδικοποίησης των LDPC κωδίκων και για άλλους τύπους καναλιών. 4.4 Ο αλγόριθμος Sum Product Ο αλγόριθμος Sum Product ( SPA ) εισήχθη από τον ίδιο το Gallager, μαζί με την εργασία του με την οποία εισήγαγε τους LDPC κώδικες το Ο αλγόριθμος Sum Product είναι ένας soft decision αλγόριθμος, που σημαίνει ότι ο αποκωδικοποιητής χρησιμοποιεί απ ευθείας τη λαμβανόμενη ακολουθία r από το κανάλι χωρίς να μεσολαβεί ανιχνευτής μεταξύ του αποδιαμορφωτή και του αποκωδικοποιητή. Όπως θα ορίσουμε παρακάτω, τα μηνύματα που διακινούνται μεταξύ των κόμβων του γραφήματος Tanner( στην περίπτωση του αλγορίθμου Sum Product ) είναι πιθανότητες( ή λόγοι πιθανοτήτων ) σχετικά με τις τιμές που λαμβάνουν τα bits κάθε VN. Να σημειώσουμε ότι ο αλγόριθμος Sum Product είναι γνωστός και ως αλγόριθμος Belief Propagation ( BPA ). [31] Η φύση των μηνυμάτων στον SPA Το κριτήριο βελτιστοποίησης που συνοδεύει τον SPA, είναι ο υπολογισμός των a posteriori πιθανοτήτων( a posteriori probabilities APPs ) για τις τιμές των bits των VNs και η επιλογή εκείνων των τιμών για τα κωδικά bits με τις μέγιστες APPs( κριτήριο MAP ). [31], [33] Έτσι αν v = ( υ 1, υ 2,, υ n ), με υ i = 0 ή 1 για i = 1,, n, είναι η μεταδιδόμενη κωδική λέξη και y = ( y 1, y 2,, y n ), με y i IR για i = 1,, n, είναι το λαμβανόμενο διάνυσμα, τότε η APP του j στου bit υ j να είναι 1 και 0 θα είναι αντίστοιχα [31] : Pr( υ j = 1 y ) και Pr( υ j = 0 y ) με j = 1,, n Συνήθως, αντί να παίρνουμε τις APPs ενός κωδικού bit υ j να είναι 0 ή 1, παίρνουμε το λόγο αυτών των APPs που ονομάζεται λόγος πιθανοφάνειας( Likelihood Ratio LR ) και ο οποίος είναι [31] :

62 ( 4.2 ) Για καλύτερη αριθμητική ευστάθεια 3 αντί του LR χρησιμοποιούμε το λογάριθμο αυτού ο οποίος ονομάζεται λογαριθμικός λόγος πιθανοφάνειας( log Likelihood Ratio LLR ) και ισούται με [31], [33] : ( 4.3 ) Να τονίσουμε ότι ο λογάριθμος που χρησιμοποιείται στο SPA είναι ο φυσικός λογάριθμος. Ο SPA λοιπόν είναι ένας message passing αλγόριθμος στον οποίο τα μηνύματα που ανταλλάσσονται μεταξύ των CN και των VNs είναι πιθανότητες( συγκεκριμένα LLRs ) και γίνεται χρήση της αρχής turbo( αποστολή μεταξύ των [31], [33] γειτονικών κόμβων μόνο εξωγενούς πληροφορίας ). Έτσι ο j στος VN( Repetition αποκωδικοποιητής ) δέχεται μηνύματα LLRs από όλους τους γειτονικούς του CNs και από το κανάλι. Στη συνέχεια ο VN επεξεργάζεται( θα δούμε τον τρόπο ) αυτά τα μηνύματα και στέλνει στους γειτονικούς του CNs LLRs. Η εξωγενής πληροφορία( LLR ) L j i που στέλνει ο j στος VN στον i στο CN θα υπολογιστεί χωρίς τη συμμετοχή του LLR L i j που έλαβε ο j στος VN από τον i στο CN. [31] Αυτό μπορεί να φανεί καλύτερα στην παρακάτω εικόνα : 3 Για παράδειγμα η χρήση του λογαρίθμου μετατρέπει ένα γινόμενο LRs σε άθροισμα από LLRs

63 Εικόνα 4.3 Ένας VN( Repetition ) αποκωδικοποιητής. Ο VN j λαμβάνει πληροφορία σε μορφή LLR από το κανάλι και από όλους τους γειτονικούς CNs. Για να παράγει ο VN j το μήνυμα L j i που θα στείλει στον CN i δε θα χρησιμοποιήσει το μήνυμα L i j που έλαβε από τον CN i. [31] Αντίστοιχα ο i στος CN( Single Parity Check αποκωδικοποιητής ) δέχεται μηνύματα LLRs από όλους τους γειτονικούς του VNs αλλά όχι από το κανάλι. Έπειτα ο CN επεξεργάζεται( θα δούμε τον τρόπο ) αυτά τα μηνύματα και στέλνει στους γειτονικούς του CNs μηνύματα LLRs. Η εξωγενής πληροφορία( LLR ) L i j που στέλνει ο i στος CN στον j στο VN θα υπολογιστεί χωρίς τη συμμετοχή του LLR L j i που έλαβε ο i στος CN από τον j στο VN. [31] Αυτό φαίνεται καλύτερα στην παρακάτω εικόνα : Εικόνα 4.4 Ένας CN( Single Parity Check ) αποκωδικοποιητής. Ο CN i λαμβάνει πληροφορία σε μορφή LLR από όλους τους γειτονικούς VNs. Για να παράγει ο CN i το μήνυμα L i j που θα στείλει στον VN j δε θα χρησιμοποιήσει το μήνυμα L j i που έλαβε από τον VN j. [31]

64 Οι VNs και οι CNs λειτουργούν επαναληπτικά και σε συνεργασία μεταξύ τους με σκοπό να υπολογίσουν LLRs για τα κωδικά bit κάθε VN( L(υ j y ) με j = 1,, n ). Η συνεργασία μεταξύ των VNs και των CNs γίνεται με βάση το σχέδιο πρόγραμμα πλημμύρας( flooding schedule ) [31]. Σύμφωνα με αυτό το σχέδιο, στο πρώτο μισό κάθε επανάληψης, όλοι οι VNs επεξεργάζονται τα LLRs που διαθέτουν στις εισόδους τους και μεταδίδουν εξωγενή πληροφορία προς τους γειτονικούς τους CNs. Έπειτα, στο δεύτερο μισό κάθε επανάληψης, οι CNs επεξεργάζονται τα LLRs που διαθέτουν στις εισόδους τους και μεταδίδουν εξωγενή πληροφορία προς τους γειτονικούς τους VNs. Η διαδικασία αυτή συνεχίζεται έως ότου ικανοποιηθεί κάποιο από τα δύο γνωστά κριτήρια ολοκλήρωσης. Τότε ο αποκωδικοποιητής υπολογίζει τα LLRs L( υ j y ) για κάθε κωδικό bit. Με βάση αυτά τα LLRs λαμβάνεται μια απόφαση για την τιμή των κωδικών bits υ j με j = 1,, n. Συγκεκριμένα αν L(υ j y ) > 0 τότε υ j = 0 σύμφωνα με το κριτήριο MAP( αφού Pr( υ j = 0 y ) > Pr( υ j = 1 y ) ) ενώ αν L(υ j y ) < 0 τότε υ j = 1 σύμφωνα με το κριτήριο MAP( αφού Pr( υ j = 0 y ) < [31], [33] Pr( υ j = 1 y ) ). Η ανάπτυξη του SPA βασίζεται στην παραδοχή ότι τα LLRs τα οποία λαμβάνονται σε κάθε κόμβο( είτε CN είτε VN ) από τους γείτονές του, είναι ανεξάρτητα μεταξύ τους. [31] Στην ενότητα 4.6 θα εξετάσουμε την επίδραση αυτής της υπόθεσης στην απόδοση της αποκωδικοποίησης, θα δούμε πότε ο αλγόριθμος SPA οδηγεί σε βέλτιστη και πότε σε υποβέλτιστη απόδοση καθώς επίσης και την ακρίβεια των εκτιμήσεων του αποκωδικοποιητή SPA. Στη συνέχεια θα περιγράψουμε τον τρόπο με τον οποίο επεξεργάζονται οι VNs και οι CNs τα εισερχόμενα σε αυτούς LLRs ώστε να παράγουν τα εξερχόμενα προς τους γείτονες τους μηνύματα LLRs Επεξεργασία των LLRs στους VNs Για να καθορίσουμε τον τρόπο με τον οποίο οι VNs επεξεργάζονται τα εισερχόμενα LLRs αρκεί να σκεφτούμε ότι κάθε VN είναι ένας Repetition αποκωδικοποιητής. Γνωρίζουμε λοιπόν πως για έναν Repetition δυαδικό κώδικα( με σύμβολα c { 0, 1 } ) με μήκος κωδικής λέξης d, ο οποίος χρησιμοποιείται για μετάδοση σε κανάλι χωρίς μνήμη, ένας αποκωδικοποιητής MAP θα υπολογίζει το LLR [31] : Θεωρώντας ισοπίθανα τα αποστελλόμενα σύμβολα c = 0 και c = 1 τότε θα έχουμε :

65 ( 4.4 ) Επειδή το κανάλι δεν έχει μνήμη, τα r i ( για i = 1,, n ) θα είναι ανεξάρτητα μεταξύ τους, οπότε η παραπάνω σχέση γράφεται : ( 4.5 ) Άρα ο MAP αποκωδικοποιητής για ένα Repetition κώδικα υπολογίζει το LLR εξόδου του, L ( c r ), προσθέτοντας τα LLRs που λαμβάνει στις εισόδους του( L ( r l x ) για l = 1,, n ). [31] Άρα κάθε VN( κατά την αποκωδικοποίηση ενός LDPC κώδικα ) θα αθροίζει τα εισερχόμενα LLRs ώστε να παράγει τα εξερχόμενα μηνύματα προς τους γειτονικούς VNs. [31], [33] Συγκεκριμένα η εξωγενής πληροφορία που μεταδίδει ο VN j στον CN i θα είναι [31] : VN UPDATE ( 4.6 ) όπου N( j ) είναι οι γείτονες του VN j. Η εξίσωση αυτή αποτελεί την εξίσωση ανανέωσης ενός VN( VN update equation ) κατά τη χρήση του SPA για την αποκωδικοποίηση ενός LDPC κώδικα. Η ποσότητα L j παριστάνει το λαμβανόμενο LLR από το κανάλι( το οποίο υπολογίζεται από την τιμή y j στην έξοδο του αποδιαμορφωτή ) και ισούται με [31] : ( 4.7 )

66 Να σημειώσουμε ότι το συνολικό LLR του VN j, με βάση το οποίο θα εκτιμηθεί η πιο πιθανή τιμή για το κωδικό bit υ j θα είναι [31], [33] : ( 4.8 ) Επεξεργασία των LLRs από τους CNs Κατ αντιστοιχία με τους VNs, για να καθορίσουμε τον τρόπο με τον οποίο οι CNs επεξεργάζονται τα εισερχόμενα LLRs αρκεί να σκεφτούμε ότι κάθε CN είναι ένας Single Parity Check αποκωδικοποιητής. Στην περίπτωση των CNs όμως θα χρειαστούμε και το ακόλουθο λήμμα που το οφείλουμε στο Gallager : ΛΗΜΜΑ [31] : Θεωρούμε ένα διάνυσμα από d ανεξάρτητες, δυαδικές τυχαίες μεταβλητές a = [ α 0, α 1,, α d-1 ] έτσι ώστε Pr( α l = 1 ) = p 1 ( l ) και Pr( αl = 0 ) = p 0 ( l ) για l = 0, 1,, d 1. Τότε η πιθανότητα το a να περιέχει άρτιο αριθμό από 1 είναι : ( 4.9 ) και η πιθανότητα το a να περιέχει περιττό αριθμό από 1 είναι : ( 4.10 ) Αν λοιπόν έχουμε ένα Single Parity Check κώδικα, με το βάρος της μοναδικής γραμμής του πίνακα H να είναι d, τότε η πιθανότητα ένα κωδικό bit( έστω το c 0 χωρίς βλάβη της γενικότητας ) να έχει την τιμή 0, θα είναι ίση με την πιθανότητα όλα τα άλλα κωδικά bits που μετέχουν στη μοναδική εξίσωση ελέγχου ισοτιμίας να έχουν άρτιο αριθμό 1. [31], [33] Όμως σύμφωνα με το παραπάνω λήμμα αυτό θα ισούται με [31], [33] :

67 όπου η δεύτερη γραμμή προέκυψε από την εφαρμογή της 4.9. Με αναδιάταξη, η παραπάνω εξίσωση παίρνει τη μορφή : ( 4.11 ) όπου χρησιμοποιήσαμε το γεγονός ότι p( c 0 = 0 r, SPC ) = 1 p( c 0 = 1 r, SPC ). Για να μετατρέψουμε την σχέση 4.9( η οποία είναι σχέση μεταξύ πιθανοτήτων ) σε μια μορφή που να περιέχει τα LLRs, μπορούμε να χρησιμοποιήσουμε την παρακάτω σχέση η οποία ισχύει για μια οποιαδήποτε, δυαδική, τυχαία μεταβλητή με τις πιθανότητες να πάρει τιμές 1 ή 0 να είναι p 1 και p 0 αντίστοιχα [31], [33] : Εφαρμόζοντας αυτή τη σχέση, στην εξίσωση 4.9 θα έχουμε : ή ( 4.12 ) Άρα ο MAP αποκωδικοποιητής για ένα SPC κώδικα υπολογίζει τα LLRs εξόδου του( L ( c l r ), για l = 0, 1,, d 1, τα οποία είναι τα d LLRs που θα στείλει ο CN στους γειτονικούς VNs ) χρησιμοποιώντας τη σχέση 4.12 για τα LLRs που [31], [33] λαμβάνει στις εισόδους του( L ( c l r l ) για l = 0, 1,, d 1 ). Άρα κάθε CN( κατά την αποκωδικοποίηση ενός LDPC κώδικα ) θα χρησιμοποιεί την εξίσωση 4.12 ώστε να παράγει τα εξερχόμενα μηνύματα προς τους γειτονικούς VNs. Συγκεκριμένα η εξωγενής πληροφορία που μεταδίδει ο CN i στον VN j θα είναι [31], [33] :

68 CN UPDATE ( 4.13 ) όπου N( i ) είναι οι γείτονες του CN i. Η εξίσωση αυτή αποτελεί την εξίσωση ανανέωσης ενός CN( CN update equation ) κατά τη χρήση του SPA για την αποκωδικοποίηση ενός LDPC κώδικα Υπολογισμός των λαμβανόμενων LLRs από το κάνάλι Ένα τελευταίο βήμα που απομένει, προτού προχωρήσουμε στην τελική παρουσίαση του SPA, είναι ο υπολογισμός των LLRs που λαμβάνουν οι VNs από το κανάλι. Ο υπολογισμός αυτός γίνεται με βάση το λαμβανόμενο διάνυσμα y = ( y 1, y 2,, y n ) στην έξοδο του αποδιαμορφωτή. Τo LLR L j που λαμβάνει ο VN j ( για j = 1,, n ) από το κανάλι θα ισούται με [31] : ( 4.14 ) Όπως αναφέραμε το LLR L j εξαρτώνται από τη λαμβανόμενη από το κανάλι τιμή y j η οποία λαμβάνεται στην έξοδο του αποδιαμορφωτή. Η τιμή y j εξαρτάται από τον τύπο του καναλιού που εξετάζουμε. Παρακάτω αναφέρουμε εν συντομία δύο ειδικές περιπτώσεις καναλιών καθώς και τις αντίστοιχες τιμές y j : 1. BI AWGN. Σε αυτή την περίπτωση το y j παίρνει πραγματικές τιμές. Αν υ j είναι η τιμή του μεταδιδόμενου κωδικού bit( υ j = 0 ή 1 ) τότε η τιμή του μεταδιδόμενου συμβόλου, που αντιστοιχεί στο υ j για BPSK διαμόρφωση, θα είναι χ j = ( -1 ) υ j + 1. Έτσι για AWGN κανάλι( χωρίς μνήμη ) η λαμβανόμενη τιμή y j θα είναι y j = χ j + n j, όπου n j είναι μια τυχαία μεταβλητή με κανονική κατανομή N( 0, σ 2 ). Να σημειώσουμε ότι τα n j είναι ανεξάρτητα μεταξύ τους για j = 1,, n. Το λαμβανόμενο LLR από το κανάλι L j, θα είναι [31] :

69 P r ( υ j = 0 y j ) P r ( y j υ j = 0 ) L j = L ( υ j y j ) = log ) = log ) P r ( υ j = 1 y j ) P r ( y j υ j = 1 ) f y ( y j υ j = 0 ) exp( - (y j + 1) 2 / 2σ 2 ) = log ( ) = log( ) f y ( y j υ j = 0 ) exp( - (y j - 1) 2 / 2σ 2 ) (y j + 1) 2 - (y j - 1) 2 2 y j = = 2σ 2 σ 2 Απαραίτητη είναι μια εκτίμηση της μεταβλητότητας σ 2, η οποία γίνεται μέσω της σηματοθορυβικής σχέσης E b / N o ( όπου E b είναι η ενέργεια μετάδοσης για ένα bit ) : N o E b. No E b / N o σ 2 = = = 2 2. E b E b / 2 2. BSC. Ο SPA μπορεί να εφαρμοστεί και στην περίπτωση του BSC, για το οποίο όπως είδαμε στην προηγούμενη ενότητα υπάρχει ο ειδικός αλγόριθμος bit flipping. Στην περίπτωση του BSC ισχύει y j { 0, 1 }. Επίσης χρειαζόμαστε την πιθανότητα σφάλματος ε = Pr(y j = b c υ j = b ) με b = 0 ή 1. Τότε θα έχουμε [31] : όπου b c είναι το συμπληρωματικό του b. Συνεπώς το LLR L j θα ισούται με [31] :

70 4.4.5 Ο αλγόριθμος Sum Product του Gallager Είμαστε πλέον έτοιμοι να προχωρήσουμε στην παρουσίαση του αυθεντικού αλγορίθμου Sum Product όπως αυτός εισήχθη από τον ίδιο τον Gallager. Οι CN και VN εξισώσεις ανανέωσης( 4.6 και 4.13 ) αποτελούν την καρδιά του SPA και είναι αυτές που χρησιμοποιούνται για τον υπολογισμό των μεταδιδόμενων [31], [33] μηνυμάτων μεταξύ των κόμβων του γραφήματος Tanner. Η πληροφορία L j i την οποία αποστέλλει ο VN j στον CN i σε κάθε επανάληψη αποτελεί τη θεωρητικά καλύτερη( πιο αξιόπιστη ) εκτίμηση σχετικά με την τιμή του κωδικού bit υ j, την οποία «προμηθεύει» ο VN j στον CN i. Συγκεκριμένα, το πρόσημο του L j i καθορίζει την τιμή του κωδικού bit υ j ενώ το πλάτος του L j i εκφράζει την αξιοπιστία αυτής της τιμής εκτίμησης. Η εξαγωγή αυτής της πληροφορίας( L j i ) βασίζεται : 1) στους περιορισμούς( Repetition περιορισμοί που καταλήγουν σε άθροισμα LLRs ) που θέτει ο VN j και 2) σε όλες τις εισόδους που λαμβάνει ο VN j από τους γείτονές του( και από το κανάλι ), εκτός του CN i. [31] Με παρόμοιο συλλογισμό η πληροφορία L i j την οποία αποστέλλει ο CN i στον VN j σε κάθε επανάληψη αποτελεί τη θεωρητικά καλύτερη( πιο αξιόπιστη ) εκτίμηση σχετικά με την τιμή του κωδικού bit υ j, την οποία «προμηθεύει» ο CN i στον VN j. Το πρόσημο του L i j καθορίζει την τιμή του κωδικού bit υ j ενώ το πλάτος του L i j εκφράζει την αξιοπιστία αυτής της τιμής εκτίμησης. Η εξαγωγή αυτής της πληροφορίας( L i j ) βασίζεται : 1) στους περιορισμούς( Single Parity Check ) που θέτει ο CN i και 2) σε όλες τις εισόδους που λαμβάνει ο CN i από τους γείτονές του, εκτός του VN j. [31] Η επαναληπτική διαδικασία της ανταλλαγής LLRs μεταξύ των CNs και των VNs συνεχίζεται μέχρι να ικανοποιηθεί κάποιο από τα γνωστά κριτήρια ολοκλήρωσης [31], [33] τα οποία αναφέραμε στην ενότητα 4.2. Τα βήματα του SPA δίνονται στον παρακάτω πίνακα : [31], [33] ΠΙΝΑΚΑΣ 4.2 Ο αλγόριθμος Sum Product του Gallager Είσοδος : το block length n, το πλήθος m των γραμμών του πίνακα H, ο πίνακας H, το λαμβανόμενο διάνυσμα y = [ y 1, y 2,, y n ] (y i IR για i = 1,, n ) από το οποίο υπολογίζονται τα λαμβανόμενα από το κανάλι LLRs και ο μέγιστος αριθμός των επαναλήψεων I max. ΒΗΜΑ ΠΕΡΙΓΡΑΦΗ ΛΕΙΤΟΥΡΓΙΑ

71 1 Αρχικοποίηση κάθε VN j, με τo λαμβανόμενο LLR από το κανάλι( για τον τύπο καναλιού που L j i = L j για εξετάζουμε ) L j για j = 1,, n. Έπειτα ακολουθεί j = 1,, n και i = 1,, m αποστολή του LLR κάθε VN j προς όλους τους such that H( i, j ) = 1 γειτονικούς CNs i. 2 CN update : Υπολογισμός των εξερχόμενων μηνυμάτων L i j για κάθε CN και αποστολή L i j = 2tanh -1 ( Π tanh ( L j i ) ) j N ( i ) { j } αυτών των μηνυμάτων προς τους γειτονικούς VNs. j = 1,, n και i = 1,, m such that H( i, j ) = 1 3 LLR total : Υπολογισμός του συνολικού LLR total L j για κάθε VN j με j = 1,, n. Ακολουθεί total Lj = Lj + Σ L i j εκτίμηση της πιο πιθανής τιμής για τα κωδικά bits υ j i N( j ) 4 Stopping criteria : Εξέταση των κριτηρίων ολο- s = κλήρωσης. Αν πληρείται κάποιο από αυτά η if ( s = 0 or I = I max ) διαδικασία ολοκληρώνεται, διαφορετικά συνεχί- Finish ζεται με το βήμα 5. 5 VN upadate : Υπολογισμός των εξερχόμενων total μηνυμάτων L j i για κάθε VN και αποστολή L j i = L j L i j αυτών των μηνυμάτων προς τους γειτονικούς CNs. Έπειτα συνεχίζουμε με το βήμα 2. j = 1,, n και i = 1,, m such that H( i, j ) = 1 go to 2 Έξοδος : η εκτίμηση για την αποσταλθείσα κωδική λέξη n ] Ένα πρόβλημα που παρουσιάζει ο παραπάνω( πρωτότυπος ) αλγόριθμος Sum Product έχει να κάνει με την παρουσία της υπερβολικής, της αντίστροφης υπερβολικής εφαπτομένης και του γινομένου που εμφανίζονται στην εξίσωση ανανέωσης των CNs. Η παρουσία αυτών των δύο συναρτήσεων και του γινομένου δημιουργεί δύο κύρια προβλήματα [11], [31], [33] :

72 1. Αύξηση της πολυπλοκότητας αφού η υλοποίηση αυτών των δύο συναρτήσεων είναι σχετικά δύσκολη κυρίως με τη χρήση υλικού( hardware ) αλλά και λογισμικού( software ). 2. Αριθμητική αστάθεια( numerical instability ). Αυτό οφείλεται στο γεγονός ότι η υπερβολική εφαπτομένη τείνει πολύ γρήγορα στο ± 1ενώ η αντίστροφη υπερβολική εφαπτομένη τείνει πολύ γρήγορα στο ±. Αυτό έχει ως αποτέλεσμα τα LLRs των CNs προς τους VNs να απειρίζονται συχνά όταν υλοποιούμε τον SPA στον υπολογιστή. Έτσι είναι πολύ συχνό το φαινόμενο οι VNs να δέχονται μηνύματα που είναι άπειρο( ± Inf ) με αποτέλεσμα τα συνολικά LLRs που παράγουν οι VNs( και τα οποία θα χρησιμοποιηθούν στην εκτίμηση των κωδικών bits ) να είναι άπειρο( ± Inf ) ή ακόμη χειρότερα απροσδιόριστης μορφής( Not a Number NaNs ). Γι αυτό λέμε ότι ο αλγόριθμος παρουσιάζει αριθμητική αστάθεια. Ο ίδιος ο Gallager πρότεινε έναν τρόπο για να αντιμετωπιστούν τα δύο [11], [31], [33] παραπάνω προβλήματα. Συγκεκριμένα παραγοντοποιούμε το μήνυμα L j i, χωρίζοντας το πρόσημο από το μέτρο : L j i = α ji. β ji, α ji = sign(l j i ) β ji = L j i Έτσι η εξίσωση 4.13 μπορεί να γραφεί ως εξής : Ορίζοντας τη συνάρτηση φ(x) ως εξής :

73 και χρησιμοποιώντας το γεγονός ότι φ -1 (x) = φ(x) για x > 0, η εξίσωση ανανέωσης των CNs θα πάρει τη μορφή [11], [31], [33] : CN UPDATE ( 4.15 ) Η εξίσωση 4.15 οδηγεί σε πολύ καλύτερη αριθμητική ευστάθεια του αλγορίθμου κατά την υλοποίησή αυτού στον υπολογιστή αφού εμφανίζονται πολύ λιγότεροι απειρισμοί των μηνυμάτων( LLRs ) και πολύ λιγότερα NaNs. Επίσης η υλοποίηση της συνάρτησης φ(x) είναι πιο εύκολη( από την υπερβολική εφαπτομένη, την αντίστροφή της και το γινόμενο ) κυρίως όμως για [11], [31] προσομοιώσεις με λογισμικό( και όχι τόσο για υλοποίηση με υλικό ). Στην επόμενη ενότητα θα δούμε διαφορετική προσέγγιση της εξίσωσης ανανέωσης των CNs η οποία οδηγεί σε χαμηλής πολυπλοκότητας υλοποίηση και με υλικό Η εξίσωση ανανέωσης των CNs από μια άλλη σκοπιά Η εξίσωση 4.15, όπως αναφέραμε, οδηγεί σε σημαντική αντιμετώπιση των προβλημάτων του αρχικού SPA. Παρ όλα αυτά η υλοποίηση της συνάρτησης φ(x) με τη χρήση υλικού είναι ιδιαίτερα δύσκολη και προβληματική λόγω του μεγάλου δυναμικού εύρους( dynamic range ) της συνάρτησης αυτής. Αυτό προκαλεί υποβάθμιση της απόδοσης ειδικά στα υψηλότερα SNR( E b / N o ). [31] Μια διαφορετική προσέγγιση της εξίσωσης ανανέωσης των CNs μπορεί να προκύψει με τη χρήση του παρακάτω λήμματος : ΛΗΜΜΑ [31] : Θεωρούμε δύο ανεξάρτητες, δυαδικές, τυχαίες μεταβλητές ( l ) α 1 και α 2 με πιθανότητες P r ( α l = b ) = p b, b { 0, 1 }, και LLRs Ll = L(α l ) ( l ) ( l ) = log(p 0 / p 1 ) με l = 0 ή 1. Τότε το LLR της δυαδικής τυχαίας μεταβλητής Α2 = α 1 α 2 θα ισούται με : = ( 4.16 ) Όπως ήδη γνωρίζουμε ένας CN είναι ένας Single Parity Check κώδικας. Συνεπώς κάθε CN με δύο ή περισσότερες εισόδους θα παράγει ως έξοδο( προς ένα VN ) εξωγενή πληροφορία που θα ισούται με το modulo 2 άθροισμα των bits που δέχεται από τους υπόλοιπους γειτονικούς VNs. Στην ουσία δηλαδή, η έξοδος

74 ενός CN προς κάθε VN είναι μια δυαδική, τυχαία μεταβλητή που προκύπτει ως άθροισμα, δυαδικών, ανεξάρτητων, τυχαίων μεταβλητών. Άρα το LLR για την τυχαία μεταβλητή εξόδου κάθε CN προς ένα VN μπορεί να υπολογιστεί με απ ευθείας χρήση του παραπάνω λήμματος. [11], [31] Έτσι, αν για παράδειγμα ένας CN συνδέεται με τρεις VNs, τότε το LLR που θα στείλει ο CN σε έναν από τους VNs θα υπολογιστεί από τη σχέση 4.16, χρησιμοποιώντας ως L 1 και L 2 τα LLRs των άλλων δύο VNs. Στη γενική περίπτωση, αν έχουμε το modulo 2 άθροισμα περισσότερων από δύο δυαδικών, τυχαίων μεταβλητών, τότε μπορεί να γίνει επαναλαμβανόμενη χρήση της εξίσωσης [11], [31] Για παράδειγμα αν έχουμε το άθροισμα Α 3 = α 1 α 2 α 3 τότε το L(Α 3 ) θα υπολογιστεί ως εξής [11], [31] : 1. Υπολογίζουμε πρώτα το L(Α 2 ) = L(α 1 α 2 ) μέσω της σχέσης 4.16 με L 1 να είναι το LLR της α 1 και L 2 το LLR της α Υπολογίζουμε το L(Α 3 ) = L(Α 2 α 3 ) με εφαρμογή της σχέσης 4.16 με L 1 να είναι το LLR της Α 2 και L 2 το LLR της α 3. Οπότε θα έχουμε : Συμβολίζουμε τη λειτουργία πράξη L(Α 2 ) = L(α 1 α 2 ) με L 1 L 2 η οποία περιλαμβάνει τον υπολογισμό του L(Α 2 ) από τα L 1 = L(α 1 ) και L 2 = L(α 2 ). Ο τελεσ τής ονομάζεται box plus operator [31] και συμβολίζει την εξής πράξη : Παρόμοια για τρεις μεταβλητές θα έχουμε L(Α 3 ) = L 1 L 2 L 3 = L(α 1 [31] α 2 α 3 ) με L 1 = L(α 1 ), L 2 = L(α 2 ) και L 3 = L(α 3 ). Επομένως η εξίσωση ανανέωσης των CNs( με τη χρήση του box plus operator ) μπορεί να πάρει τη μορφή [11], [31] : CN UPDATE ( 4.17 ) Η παραπάνω εξίσωση είναι πολύ πιο εύκολη στην υλοποίησή της και με υλικό και οδηγεί σε πιο χαμηλή πολυπλοκότητα υλοποίησης του αποκωδικοποιητή. Από πλευράς αριθμητικής ευστάθειας, η εξίσωση 4.17 οδηγεί σε απειρισμούς( κατά την υλοποίηση του SPA σε υπολογιστή ) των LLRs επειδή η εκθετική συνάρτηση

75 τείνει κι αυτή αρκετά γρήγορα στο άπειρο. Έτσι εμφανίζονται και σε αυτή την περίπτωση απροσδιόριστες μορφές( NaNs ), περισσότερες σε σχέση με τη χρήση της εξίσωσης 4.15 αλλά λιγότερες σε σχέση με τη χρήση της εξίσωσης [11], [31] Να τονίσουμε πάντως ότι, από θεωρητικής πλευράς, οι εξισώσεις ανανέωσης των CNs 4.13, 4.15 και 4.17 είναι ισοδύναμες αφού σε καμία από αυτές δεν έχει γίνει καμιά προσέγγιση για να απλοποιηθεί Πλήρως, αριθμητικά ευσταθής SPA Το 2005 στο [11] παρουσιάστηκε μια διαδικασία παραλλαγή του SPA, για τον υπολογισμό των LLRs που αποστέλλονται από τους CNs προς τους VNs, η οποία οδηγεί σε πλήρη αριθμητική ευστάθεια( κανένα NaN ) κατά την υλοποίηση του SPA στον υπολογιστή. Αν θεωρήσουμε δύο δυαδικές, ανεξάρτητες, τυχαίες μεταβλητές U και V τότε στα [11] και [31] δείχνεται( με τη χρήση του Ιακωβιανού λογαρίθμου ) ότι το L( U V ) μπορεί να γραφεί : L( U V ) = L( U ) L( V ) = sign( L( U )). sign( L( V )). min( L( U ), L( V ) ) + + log( 1 + e L( U ) + L( V ) ) log( 1 + e L( U ) L( V ) ) ( 4.18 ) Η παραπάνω εξίσωση αποτελεί ουσιαστικά ένα διαφορετικό τρόπο ορισμού υπολογισμού του box plus operator. Χρησιμοποιώντας λοιπόν την εξίσωση 4.18 για τον υπολογισμό του L( U ) L( V ) μπορούμε να υπολογίσουμε τα μηνύματα που στέλνει ένας CN σε όλους τους γειτονικούς του VNs με την παρακάτω διαδικασία. [11], [31] ΠΙΝΑΚΑΣ 4.3 Υπολογισμός των μηνυμάτων ενός CN προς τους γειτονικούς VNs Θεωρούμε ένα CN j με d c συνδέσεις( CN βαθμού d c ) με γειτονικούς VNs. Επομένως ο CN δέχεται d c εισόδους { L l }με l = 1,, d c και θα παράγει d c εξόδους L out, l με l = 1,, d c

76 ΒΗΜΑ ΠΕΡΙΓΡΑΦΗ ΛΕΙΤΟΥΡΓΙΑ 1 Υπολογισμός των βοηθητικών μεταβλητών F 1 για l = 1,, d c 1 L l για l = 1 L l F l 1 για l = 2,, d c 1 2 Υπολογισμός των βοηθητικών μεταβλητών B 1 για l = d c, d c 1,, 2 L l για l = d c B l = F l = L l B l+1 για l = d c 1,, 2 3 Υπολογισμός των LLRs εξόδου L out, l με l = B l+1, για l = 1 1,, d c προς τους γειτονικούς VNs Lout,l = F l 1 B l+1 για l = 2,, d c 1 F l 1 για l = d c Πραγματοποιούμε την παραπάνω διαδικασία για όλους CNs j με j = 1,, m. Έτσι λοιπόν με την παραπάνω διαδικασία μπορούμε να αντικαταστήσουμε τη χρήση των εξισώσεων ανανέωσης των CNs. 4.13, 4.15 και Η χρήση της διαδικασίας αυτής επιτρέπει πλήρη αριθμητική ευστάθεια αφού δεν εμφανίζονται καθόλου NaNs κατά την υλοποίηση του SPA με υπολογιστή. Σημαντικό ρόλο σε αυτό διαδραματίζει και η εξίσωση 4.18 η οποία δύσκολα οδηγεί σε απειρισμούς [11], [31] των μηνυμάτων. Επίσης η διαδικασία αυτή οδηγεί και σε μειωμένη πολυπλοκότητα, αφού απαιτούνται 3( d c 2 ) λειτουργίες σε αντίθεση με την περίπτωση της [11], [31] ενότητας όπου απαιτούνται d c ( d c 1 ) λειτουργίες

77 4.5 Message passing αποκωδικοποίηση για το Binary Erasure Channel( BEC ) Στην ιδιαίτερα ενδιαφέρουσα περίπτωση του BEC, ένα κωδικό bit λαμβάνεται είτε σωστά με πιθανότητα 1 ε είτε πλήρως διεγραμμένο( erased ) με πιθανότητα ε. Ένα διεγραμμένο bit μπορεί να είναι είτε 0 είτε 1 με πιθανότητα 50%. Εφόσον τα bits που λαμβάνονται είναι πάντα σωστά, η δουλειά του αποκωδικοποιητή στο [31], [33] BEC είναι να καθορίσει την τιμή των διεγραμμένων bits( erasures ). Όπως μπορούμε να παρατηρήσουμε, μια εξίσωση ελέγχου ισοτιμίας( ένας CN ) που περιλαμβάνει μόνο ένα erasure, μπορεί να καθορίσει την τιμή του διεγραμμένου bit. Αυτό μπορεί να γίνει επιλέγοντας την τιμή εκείνη για το erasure που θα ικανοποιεί την εξίσωση ελέγχου ισοτιμίας. Δηλαδή το διεγραμμένο bit θα ισούται με το modulo 2 άθροισμα των υπολοίπων, σωστών τιμών bits που [31], [33] φθάνουν στον αντίστοιχο CN. Από την άλλη πλευρά, αν μια μια εξίσωση ελέγχου ισοτιμίας περιλαμβάνει δύο ή περισσότερα erasures, τότε ο αντίστοιχος CN δε μπορεί να καθορίσει την τιμή [31], [33] κανενός διεγραμμένου bit( erasure ). Επίσης μπορούμε να παρατηρήσουμε, ότι ένας VN( ως Repetition αποκωδικοποιητής ) ο οποίος λαμβάνει erasure από το κανάλι, μπορεί να καθορίσει την τιμή αυτού του erasure αν τουλάχιστο ένα από τα μηνύματα που λαμβάνει ο VN από τους γειτονικούς CNs δεν είναι erasure. To διεγραμμένο bit( erasure ) θα ισούται τότε με την τιμή που θα έχει η πλειοψηφία των μηνυμάτων που [31], [33] λαμβάνονται από τον VN και τα οποία δεν είναι erasures. Από τα παραπάνω συμπεραίνουμε ότι ένας CN μπορεί να διορθώσει ένα erasure που λαμβάνει από έναν VN μόνο αν τα μηνύματα που λαμβάνει ο CN από τους υπόλοιπους VNs δεν περιέχουν κανένα erasure. Δηλαδή ένας CN μπορεί να διορθώσει ένα erasure μόνο αν αυτό είναι το μοναδικό erasure μεταξύ των μηνυμάτων που λαμβάνει από τους γειτονικούς VNs. Από την άλλη ένας VN μπορεί να καθορίσει την τιμή του erasure που λαμβάνει από το κανάλι αν τα [31], [33] μηνύματα που λαμβάνει από τους γειτονικούς CNs δεν είναι όλα erasures. Άρα στην επαναληπτική message passing αποκωδικοποίηση για το BEC τα μηνύματα που ανταλλάσσονται μεταξύ των VNs και των CNs του γραφήματος Tanner ενός LDPC κώδικα, είναι τιμές bits και erasures. Ένας VN αποστέλλει το ίδιο εξερχόμενο μήνυμα προς όλους τους γειτονικούς CNs, το οποίο μήνυμα είναι είτε η τιμή του bit του VN είτε ένα erasure αν η τιμή του bit του VN δεν έχει καθοριστεί ακόμη. Όπως αναφέραμε, αν ένας CN λαμβάνει μόνο ένα erasure, τότε μπορεί να υπολογίσει την τιμή του διεγραμμένου bit επιλέγοντας την τιμή εκείνη που ικανοποιεί την εξίσωση ελέγχου ισοτιμίας που [31], [33] αντιπροσωπεύει ο CN. Ένας CN αποστέλλει διαφορετικά εξερχόμενα μηνύματα σε κάθε συνδεδεμένο σε αυτόν VN. Το μήνυμα που αποστέλλει ένας CN σε ένα VN δηλώνει την εκτίμηση του CN για την τιμή του bit του VN η οποία μπορεί να είναι 1, 0 ή erasure. Αν ένας VN( ο οποίος έχει λάβει από το κανάλι ένα διεγραμμένο bit ) λάβει τουλάχιστο ένα εισερχόμενο μήνυμα το οποίο είναι 0 ή 1, τότε ο VN μπορεί να καθορίσει την τιμή του διεγραμμένου bit. Η τιμή, όπως αναφέραμε παραπάνω, θα είναι ίση με την τιμή που θα έχει η πλειοψηφία των μηνυμάτων που λαμβάνονται από τον VN [31], [33] και τα οποία δεν είναι erasures

78 Έτσι στο πρώτο μισό μιας επανάληψης οι VNs αποστέλλουν τα μηνύματά τους προς τους γειτονικούς CNs οι οποίοι με τη σειρά υπολογίζουν τα μηνύματα που επρόκειτο να αποστείλουν. Στο δεύτερο μισό μιας επανάληψης οι CNs αποστέλλουν τα μηνύματα που έχουν υπολογίσει προς τους γειτονικούς VNs οι οποίοι με τη σειρά τους προσπαθούν να εκτιμήσουν την τιμή ενός διεγραμμένου bit. Η διαδικασία αυτή συνεχίζεται έως ότου ικανοποιηθεί κάποιο από τα 2 κριτήρια ολοκλήρωσης που ορίσαμε στην ενότητα 4.2 ή ένα τρίτο κριτήριο ολοκλήρωσης το οποίο ορίζει ότι η επαναληπτική διαδικασία σταματά αν δεν μπορούν να διορθωθούν άλλα erasures από ένα σημείο και μετά. [33] Όπως παρατηρούμε στον message passing αλγόριθμο για το BEC έχουμε ένα επιπλέον κριτήριο ολοκλήρωσης σε σχέση με τους άλλους message passing αλγόριθμους. Αυτό οφείλεται στο γεγονός ότι ο αποκωδικοποιητής μπορεί να φθάσει σε ένα σημείο, από το οποίο και μετά σε κάθε επανάληψη να υπάρχουν erasures αλλά ο αλγόριθμος να μη μπορεί να διορθώσει κανένα. Επειδή αυτά τα erasures θα διαδίδονται από επανάληψη σε επανάληψη, χωρίς να διορθώνονται, ο αλγόριθμος σταματά. Στον παρακάτω πίνακα δίνονται συνοπτικά του messge passing αλγορίθμου για το BEC : [31], [33] ΠΙΝΑΚΑΣ 4.3 Αλγόριθμος message passing αποκωδικοποίησης για το BEC Είσοδος : το block length n, το πλήθος m των γραμμών του πίνακα H, ο πίνακας H, το λαμβανόμενο διάνυσμα y = [ y 1, y 2,, y n ] (y i = 0, 1 ή e για i = 1,, n ) από την έξοδο του ανιχνευτή και ο μέγιστος αριθμός των επαναλήψεων I max. ΒΗΜΑ ΠΕΡΙΓΡΑΦΗ ΛΕΙΤΟΥΡΓΙΑ 1 Αρχικοποίηση των VNs με τις αντίστοιχες τιμές for i = 1 : n do του διανύσματος y( τιμές από την έξοδο του M i = y i ανιχνευτή end for l =0 repeat 2 CN update : Αποστολή των μηνυμάτων των VNs for j = 1 : m do στους γείτονες CNs και υπολογισμός από τους CNs for all i Bj do των εξερχόμενων μηνυμάτων προς τους γειτονικούς if ( all messages into CN j other VNs than M i are known ) then E j,i = Σ i Bj, i i (Mi mod 2) else E j,i = e end if end for end for

79 3 VN update : Αποστολή των μηνυμάτων των CNs στους for i = 1 : n do γειτονικούς VNs και υπολογισμός από τους VNs των if M i = e then τιμών των κωδικών bits if ( there exists at least one j A i s.t. E j,i e ) then M i = ( the majority of E j,i, with j A i s.t. E j,i e ) end if end if end for 3 Stopping criteria : Αν όλες οι τιμές των κωδικών if ( all M i are known or l = I max bits είναι γνωστές ή αν συμπληρωθεί ο μέγιστος or Ne l 1 = Ne l ) then αριθμός των επαναλήψεων ή δε μπορούν να διορθωθούν Finished άλλα erasures από ένα σημείο και μετά, τότε ολοκληρώ- else νεται η διαδικασία, διαφορετικά πηγαίνουμε στο βήμα 2 l = l + 1 end if until Finished Το διάνυσμα B περιέχει τους γείτονες VNs ενός CN, το διάνυσμα M περιέχει τα μηνύματα που παράγουν οι VNs, το διάνυσμα A περιέχει τους γείτονες CNs ενός VN, ο πίνακας E περιέχει τα μηνύματα που παράγουν οι CNs και τα αποστέλλουν στους γειτονικούς VNs και τέλος οι μεταβλητές Ne l 1 και Ne l περιέχουν τον αριθμό των μη διορθωμένων erasures( των VNs ) στην ( l 1 ) στη και l στη επανάληψη αντίστοιχα. Επίσης e erasure. Έξοδος : η εκτίμηση για την αποσταλθείσα κωδική λέξη λέξη n ]. Τα i για i = 1,, n μπορεί να είναι 0, 1 ή e Παρακάτω δίνεται ένα παράδειγμα με το οποίο γίνεται πιο κατανοητή η εύρεση των τιμών των erasures με τη χρήση επαναληπτικής message passing αποκωδικοποίησης. Παράδειγμα 4.1 : Στο παρακάτω σχήμα φαίνεται η επαναληπτική message passing αποκωδικοποίηση για το BEC για έναν LDPC κώδικα μέσω του γραφήματος Tanner αυτού. Υποθέτουμε ότι αποστέλλεται η κωδική λέξη c = [ ] μέσω του BEC και λαμβάνεται το διάνυσμα y = [ e e e ]. Στην εικόνα 4.5 φαίνεται η χρήση της message passing αποκωδικοποίησης( μέσω του γραφήματος Tanner ) για την ανάκτηση των διεγραμμένων bits

80 Εικόνα 4.5 Message passing αποκωδικοποίηση για την ανάκτηση των διεγραμμένων bits στο BEC. Κάθε επιμέρους εικόνα δείχνει την απόφαση που λαμβάνεται σε ένα βήμα του αλγορίθμου η οποία βασίζεται στα μηνύματα που λαμβάνονται από το προηγούμενο βήμα. Τα βέλη με τελείες αντιστοιχούν σε μηνύματα 0 ενώ τα συμπαγή βέλη αντιστοιχούν σε μηνύματα 1 και τα βέλη με διακεκομμένες γραμμές αντιστοιχούν σε μηνύματα e. [33] 4.6 Παράγοντες που επηρεάζουν την απόδοση της αποκωδικοποίησης Μετά την παρουσίαση της διαδικασίας αποκωδικοποίησης των LDPC για ορισμένους από τους πιο συνηθισμένους τύπους καναλιών, στην ενότητα αυτή θα αναλύσουμε τους πιο κοινούς παράγοντες που επιδρούν στην αποκωδικοποίηση των LDPC κωδίκων και καθορίζουν την απόδοσή της Παρουσία κύκλων στο Tanner γράφημα Όπως αναφέραμε και στην εισαγωγή, οι LDPC κώδικες οδηγούν σε σχεδόν βέλτιστη απόδοση. Τί είναι όμως αυτό που εμποδίζει τους LDPC κώδικες( αλλά και γενικά την επαναληπτική message passing αποκωδικοποίηση ) να επιτυγχάνουν βέλτιστες επιδόσεις( επιδόσεις δηλαδή ίδιες με αυτές που επιτυγχάνονται με τη χρήση Maximum Likelihood αποκωδικοποίησης) ;

81 Ένας από τους πιο σημαντικούς λόγους του παραπάνω ερωτήματος είναι η παρουσία κύκλων( και ιδιαίτερα αυτών μικρού μήκους ) στο Tanner γράφημα που [31], [33] περιγράφει τον LDPC κώδικα. Ας δούμε πρώτα ένα παράδειγμα( πάνω στον αλγόριθμο bit flipping ) για να καταλάβουμε πως η παρουσία κύκλων μήκους 4 επιδρά αρνητικά κατά τη διάρκεια της αποκωδικοποίησης. Παράδειγμα 4.2 : Επίδραση των κύκλων μήκους 4 στην αποτελεσματικότητα της επαναληπτικής αποκωδικοποίησης για τον αλγόριθμο bit flipping. Θεωρούμε ότι αποστέλλεται η κωδική λέξη c = [ ] ενώ το λαμβανόμενο διάνυσμα στην έξοδο του αποδιαμορφωτή είναι r = [ ]. Με τη διέλευση του r από τον ανιχνευτεί λαμβάνεται μια hard decision εκτίμηση του r που είναι y = [ ]. Στην εικόνα που ακολουθεί φαίνονται τα βήματα του αλγορίθμου bit flipping. Εικόνα 4.6 Τα βήματα κατά την αποκωδικοποίηση του λαμβανόμενου hard decision διανύσματος y = [ ]. Το σύμβολο ( x ) δείχνει ότι μια εξίσωση ελέγχου ισοτιμίας δεν ικανοποιείται ενώ το σύμβολο ( ) καταδεικνύει την ικανοποίηση μιας εξίσωσης ελέγχου ισοτιμίας. Επίσης τα διακεκομένα βέλη αντιστοιχούν σε τιμή μηνύματος bit = 0 ενώ τα συμπαγή βέλη αντιστοιχούν σε τιμή μηνύματος bit = 1. [33]

82 Παρατηρούμε ότι οι VNs 1 και 2 μαζί με τους CNs 1 και 2, σχηματίζουν έναν κύκλο μήκους 4. Παρατηρούμε λοιπόν ότι σε κάθε επανάληψη οι εξισώσεις ελέγχου ισοτιμίας που αντιστοιχούν στους CNs 1 και 2 δεν ικανοποιούνται ποτέ( από την αρχή της διαδικασίας, με την αρχικοποίηση των VNs με τα μηνύματα του y μέχρι την τελευταία επανάληψη). Έτσι αυτό που θα συμβαίνει, είναι οι VNs 1 και 2 να αλλάζουν την τιμή των κωδικών bits τους σε κάθε επανάληψη. Αυτό σημαίνει ότι πάντα ένα από τα δύο αυτά bits θα είναι λανθασμένο και συνεπώς ο αλγόριθμος δε θα συγκλίνει. [33] Το πρόβλημα που δημιουργείται από τους κύκλους μήκους 4 στον αλγόριθμο bit flipping, είναι η εμπλοκή δύο κωδικών bits( στο παράδειγμα τα υ 1 και υ 2 ) σε δύο εξισώσεις ελέγχου ισοτιμίας( στο παράδειγμα οι εξισώσεις 1 και 2 ). Έτσι αν αρχικά το ένα από τα δύο αυτά κωδικά bits είναι λανθασμένο( ενώ όλα τα άλλα είναι σωστά ) τότε οι 2 εξισώσεις ελέγχου ισοτιμίας θα είναι πάντα λάθος και έτσι ο αποκωδικοποιητής δε θα γνωρίζει πoιο από τα δύο κωδικά bits είναι λάθος για [32], [33] να το διορθώσει. Ο τρόπος όμως. με τον οποίο επηρεάζεται η επαναληπτική message passing αποκωδικοποίηση, από την παρουσία των κύκλων σε ένα γράφημα Tanner είναι πιο περίπλοκος. Συγκεκριμένα έχει να κάνει με την ανεξαρτησία των μηνυμάτων που λαμβάνει κάθε VN( ή CN ) από τους γειτονικούς του CNs( ή VNs ). Για παράδειγμα η ανάπτυξη του αλγορίθμου SPA βασίστηκε στην παραδοχή ότι τα μηνύματα LLRs τα οποία λαμβάνονται σε κάθε κόμβο( είτε CN είτε VN ) από τους γείτονές του, είναι ανεξάρτητα μεταξύ τους. Υποθέτοντας αυτή την ανεξαρτησία μπορούμε να γράψουμε την εξίσωση 4.4 με τη μορφή της εξίσωσης 4.5( από την οποία έπειτα θα προκύψει η εξίσωση ανανέωσης των VNs 4.6 ). Με βάση αυτή την ανεξαρτησία ισχύουν οι εξισώσεις 4.9 και 4.10( το λήμμα υποθέτει ανεξαρτησία των στοιχείων του διανύσματος α ) από τις οποίες στη συνέχεια θα προκύψει η εξίσωση ανανέωσης των CNs 4.13 ή Υποθέτοντας την ανεξαρτησία δύο δυαδικών, τυχαίων μεταβλητών ισχύει η εξίσωση 4.16 την οποία στη συνέχεια χρησιμοποιούμε για να καταλήξουμε σε μια άλλη μορφή της εξίσωσης ανανέωσης των CNs που είναι η [31] Άρα λοιπόν, σύμφωνα με τα παραπάνω, οι εξισώσεις ανανέωσης των VNs και των CNs είναι ακριβείς( υπολογίζουν σωστά τα εξερχόμενα μηνύματα LLRs προς τους γείτονές τους ) μόνο όταν τα εισερχόμενα προς τους κόμβους μηνύματα από τους γείτονές τους είναι ανεξάρτητα μεταξύ τους. Διαφορετικά οι εξισώσεις αυτές δεν ισχύουν και υπολογίζουν μια προσέγγιση των πραγματικών μηνυμάτων. [31] Στην ανάλυση που κάνουμε υποθέτουμε ότι το κανάλι που εξετάζουμε δεν έχει μνήμη και συνεπώς τα μηνύματα του καναλιού που αρχικοποιούν τους VNs είναι ανεξάρτητα μεταξύ τους. Αν το γράφημα Tanner δεν έχει κύκλους, τότε ένα μήνυμα που «εκπέμπεται» από έναν VN ή έναν CN δε θα επιστρέψει ποτέ ξανά πίσω σε αυτό τον κόμβο, σε καμία επανάληψη. Έτσι, επειδή και τα αρχικά μηνύματα που «εκπέμπονται» από τους VNs είναι ανεξάρτητα μεταξύ τους, τα μηνύματα που φθάνουν σε κάθε VN ή σε κάθε CN( σε οποιαδήποτε επανάληψη ) θα είναι ανεξάρτητα μεταξύ τους

83 Συνεπώς οι εξισώσεις ανανέωσης των CNs και VNs θα είναι ακριβείς και τα [31], [45] μηνύματα που υπολογίζονται( LLRs ) θα είναι και αυτά πλήρως ορθά. Αντιθέτως, αν το γράφημα Tanner περιέχει κύκλους, τότε ένα μήνυμα που «εκπέμπεται» από έναν VN ή έναν CN θα επιστρέψει πίσω σε αυτό τον κόμβο, σε κάποια επανάληψη. Η επιστροφή ενός μηνύματος πίσω σε έναν κόμβο έχει ως αποτέλεσμα το μήνυμα αυτό να μην είναι ανεξάρτητο από τουλάχιστο ένα άλλο μήνυμα που φτάνει στον κόμβο αυτό. Για παράδειγμα ο VN 1( ο οποίος ανήκει σε έναν κύκλο μήκους γ ) στέλνει αρχικά το μήνυμα καναλιού L 1 σε έναν CN που μετέχει στον κύκλο. Τα επόμενα μηνύματα στα οποία θα συμμετέχει αυτό το μήνυμα θα εξαρτώνται από το L 1. Έτσι μετά από γ / 2 επαναλήψεις ο VN 1 θα λάβει από κάποιο γείτονά του( ο οποίος μετέχει στον κύκλο ) ένα μήνυμα M το οποίο θα εξαρτάται από το L 1. Ο VN 1 όμως θα λάβει και το αρχικό μήνυμα L 1 από το κανάλι. Παρατηρούμε λοιπόν ότι τα L 1 και M δεν είναι ανεξάρτητα [31], [45] μεταξύ τους. Άρα λοιπόν, αυτό που επιφέρει η παρουσία των κύκλων σε ένα Tanner γράφημα, είναι η εξάρτηση μεταξύ δύο ή περισσοτέρων μηνυμάτων τα οποία φθάνουν σε έναν κόμβο( είτε VN είτε CN ). Η μη ανεξαρτησία μεταξύ αυτών των μηνυμάτων, έχει ως αποτέλεσμα τα τελικά μηνύματα που υπολογίζουν οι κόμβοι( για να στείλουν στους γείτονές τους ή για να κάνουν εκτίμηση ) να μην είναι σωστά και ακριβή. Άρα τα τελικά LLRs L( υ j y ) στους VNs, με βάση τα οποία λαμβάνεται η απόφαση για την τιμή των κωδικών bits υ j ( για j = 1,, n ) δε θα είναι τα πραγματικά και συνεπώς ο αποκωδικοποιητής δε θα έχει απόδοση ίδια με αυτή του βέλτιστου MAP( ή ML ) αποκωδικοποιητή. [31] Εφόσον λοιπόν ένα γράφημα Tanner δεν περιέχει κύκλους, τα υπολογιζόμενα LLRs κατά την αποκωδικοποίηση θα είναι πλήρως ακριβή και ορθά. Άρα για έναν LDPC κώδικα, του οποίου το γράφημα Tanner δεν περιέχει κύκλους, η επαναληπτική message passing αποκωδικοποίηση θα ταυτίζεται σε απόδοση με [31], [45] τη βέλτιστη MAP( ή ML ) αποκωδικοποίηση. Αν το Tanner γράφημα ενός LDPC κώδικα περιέχει κύκλους τα υπολογιζόμενα LLRs θα αποτελούν εκτιμήσεις των πραγματικών LLRs. Η ακρίβεια αυτών των εκτιμήσεων εξαρτάται από το μέγεθος των κύκλων που υπάρχουν στο γράφημα Tanner και κυρίως από το girth. Αν έχουμε έναν κώδικα με girth γ( και τα αρχικά μηνύματα από το κανάλι είναι ανεξάρτητα μεταξύ τους ) τότε η ανεξαρτησία των μηνυμάτων( που δέχονται οι κόμβοι του γραφήματος Tanner ) «σπάει» όταν ο αριθμός των επαναλήψεων υπερβαίνει το γ / 2. Από εκεί και μετά θα υπάρχει εξάρτηση των μηνυμάτων που λαμβάνονται από τους κόμβους του γραφήματος Tanner. Αυτό ακριβώς αποτρέπει την επαναληπτική message passing αποκωδικοποίηση να ταυτίζεται με τη βέλτιστη MAP( ή ML ) αποκωδικοποίηση. Όταν οι κύκλοι είναι μεγάλοι( μεγάλο girth ) τότε οι εκτιμήσεις για τα LLRs θα είναι αρκετά κοντά στις πραγματικές τιμές και ο αποκωδικοποιητής θα έχει σχεδόν βέλτιστη απόδοση. Έτσι ο αποκωδικοποιητής θα είναι πολύ κοντά( σε [31], [45] απόδοση ) στο βέλτιστο MAP( ή ML ) αποκωδικοποιητή. Αν θέλουμε να ρίξουμε μια ακόμη πιο βαθιά ματιά στο θέμα της παρουσίας των κύκλων κατά την επαναληπτική message passing αποκωδικοποίηση γενικά, μπορούμε να δούμε τους κύκλους ως ένα είδος θετικής ανάδρασης. Το γεγονός αυτό καθιστά τη διαδικασία της επαναληπτικής message passing αποκωδικοποίησης μη συγκλίνουσα. [31]

84 Να σημειώσουμε τέλος ότι, σύμφωνα με τα παραπάνω, φαίνεται ότι θα ήταν λογικά ορθό να προτιμούμε να κατασκευάζουμε LDPC κώδικες, των οποίων τα γραφήματα Tanner δεν έχουν καθόλου κύκλους. Πράγματι η επαναληπτική message passing αποκωδικοποίηση σε αυτή την περίπτωση θα δίνει τα ίδια αποτελέσματα με τη βέλτιστη MAP( ή ML ) αποκωδικοποίηση. Όμως ο κώδικας που θα έχουμε φτιάξει είτε αποκωδικοποιείται με MAP αποκωδικοποίηση είτε με επαναληπτική message passing αποκωδικοποίηση, δε θα είναι ένας καλός( από άποψη σχεδίασης ) κώδικας αφού θα έχει ιδιαίτερα μικρή ελάχιστη απόσταση Hamming d. Συγκεκριμένα στο [12] αποδεικνύεται ότι αν R = k / n είναι ο ρυθμός του κώδικα( ο οποίος δεν περιέχει κύκλους ) τότε : αν R 0.5 η ελάχιστη απόσταση του κώδικα θα είναι d 2 ενώ αν R < 0.5 η ελάχιστη απόσταση του κώδικα θα είναι : Όπως γνωρίζουμε, ένας block κώδικας με μικρή ελάχιστη απόσταση θα έχει χαμηλές επιδόσεις( στα υψηλότερα SNR ) ανεξάρτητα με τον τρόπο με τον οποίο αποκωδικοποιείται Stopping Sets Ένα άλλος σημαντικός παράγοντας που επηρεάζει την επαναληπτική message passing αποκωδικοποίηση( ιδιαίτερα στην περίπτωση των erasure channels ), είναι τα stopping sets. Προτού ορίσουμε τα stopping sets θα πρέπει να εισάγουμε κάποιους ορισμούς. Ορισμός 4.1. [31], [32] Ένας εξωγενής( extrinsic ) CN σε ένα σύνολο S από VNs, είναι ένας CN ο οποίος συνδέεται στο S με μια μόνο σύνδεση. Ορισμός 4.2. [31], [32] Ένας ενδογενής( intrinsic ) CN σε ένα σύνολο S από VNs, είναι ένας CN ο οποίος συνδέεται στο S με τουλάχιστο δύο συνδέσεις. Ορισμός 4.3. [31], [32] Ένα stopping set S είναι ένα υποσύνολο του συνόλου όλων των VNs, τέτοιο ώστε όλοι οι γειτονικοί( με τους VNs του S ) CNs να συνδέονται στο S με τουλάχιστο δύο συνδέσεις. Δηλαδή ένα stopping set S είναι στην ουσία, ένα υποσύνολο του συνόλου των VNs, τέτοιο ώστε να μην υπάρχει κανένας εξωγενής CN που να συνδέεται στο S. Για να εξετάσουμε την επίδραση των stopping sets κατά την επαναληπτική αποκωδικοποίηση των LDPC κωδίκων, ας θεωρήσουμε την ειδική περίπτωση του Binary Erasure Channel. Ας θεωρήσουμε ότι όλοι οι VNs ενός stopping set είναι erasures. Γνωρίζουμε ότι οι VNs του stopping set παίρνουν πληροφορία μόνο από ενδογενείς CNs. Αυτοί οι ενδογενείς CNs, όπως είπαμε, συνδέονται

85 τουλάχιστο με δύο συνδέσεις με το stopping set και συνεπώς αν όλοι οι VNs του stopping set είναι erasures, τότε οι ενδογενείς CNs θα δέχονται ως μηνύματα τουλάχιστο δύο erasures. Αυτό όμως( όπως είδαμε στην αποκωδικοποίηση για το BEC ) σημαίνει ότι οι ενδογενείς CNs δε θα μπορούν να ανακτήσουν την τιμή για κανένα από τα erasures που δέχονται. Έτσι οι VNs του stopping set( οι οποίοι δέχονται μηνύματα μόνο από ενδογενείς CNs ) θα έχουν όλα τα εισερχόμενα σε αυτούς μηνύματα ως erasures και συνεπώς δε θα μπορούν να καθορίσουν την τιμή των κωδικών bits που αντιπροσωπεύουν. Άρα λοιπόν αν όλοι οι VNs ενός stopping set είναι erasures, τότε οι τιμές τους δεν μπορούν να ανακτηθούν. [31], [32] Η πιθανότητα r VNs να είναι erasures( σε ένα BEC ) είναι ε r, με r n και ε να είναι η πιθανότητα διαγραφής για το BEC. Άρα η πιθανότητα να είναι erasures λίγα κωδικά bits είναι αυξημένη. Συνεπώς, για να δημιουργήσουμε έναν καλό κώδικα, θα πρέπει να αποφεύγουμε τα μικρά( μικρού αριθμού από VNs ) stopping sets γιατί τα μικρά stopping sets έχουν αυξημένη πιθανότητα να έχουν να έχουν όλους τους VNs με erasures. [31] Σύμφωνα με τα παραπάνω, τα stopping set προσπαθούν να αποτρέψουν την επιτυχή επαναληπτική, message passing αποκωδικοποίηση για το BEC. Τα stopping sets όμως, έχουν επίδραση όχι μόνο στην επαναληπτική αποκωδικοποίηση για το BEC αλλά στη γενική περίπτωση της επαναληπτικής message passing αποκωδικοποίησης( όπως στον αλγόριθμο bit flipping και στον SPA ). Στην περίπτωση αυτή τα stopping sets είναι γνωστά ως trapping sets. Με απλά λόγια ένα trapping set, για έναν αλγόριθμο επαναληπτικής αποκωδικοποίησης, είναι ένα σύνολο VNs σε ένα Tanner γράφημα οι οποίοι δεν μπορούν να διορθωθούν για οποιοδήποτε μέγιστο αριθμό επαναλήψεων. Ένα ( a, b ) trapping set είναι ένα σύνολο από a VNs οι οποίοι σχηματίζουν ένα υπογράφημα( του γραφήματος Tanner ) με b CNs περιττού βαθμού, έτσι ώστε όταν τα a κωδικά bits είναι όλα λανθασμένα τότε θα υπάρχουν b μη [17], [31] ικανοποιημένες εξισώσεις ελέγχου ισοτιμίας. Μια ισοδύναμη έννοια με το trapping set είναι η σχεδόν κωδική λέξη ( near codeword ). Μια ( a, b ) near codeword είναι ένας τύπος λάθους( error pattern ) βάρους a το οποίο όταν εμφανιστεί οδηγεί σε b μη ικανοποιημένους CNs, με τα a και b να είναι μικρά. [31] Η σημασία του μικρού a είναι ότι αυτός ο τύπος λάθους είναι πιο πιθανός 4. Η σημασία του μικρού b είναι ότι λίγες μόνο εξισώσεις ελέγχου ισοτιμίας επηρεάζονται( είναι λανθασμένες ) από αυτόν τον τύπο λάθους με αποτέλεσμα να είναι πολύ πιθανό αυτός ο τύπος λάθους να μη διορθωθεί( επειδή λίγοι CNs ανιχνεύουν αυτό το λάθος ) και να ξεφύγει από τον επαναληπτικό αποκωδικοποιητή. Στην περίπτωση αυτή o αλγόριθμος της επαναληπτικής αποκωδικοποίησης θα συγκλίνει σε μία κωδική λέξη η οποία όμως δε θα είναι η [17], [31] σωστή( θα περιέχει ένα μικρό αριθμό λαθών ). 4 Οι τύποι λαθών με μικρά βάρη είναι πιο πιθανοί από τους τύπους λαθών με μεγάλα βάρη

86 Από τον ορισμό του trapping( stopping ) set, παρατηρούμε ότι οι VNs που ανήκουν σε αυτό δέχονται πληροφορία μόνο από ενδογενείς CNs( και από το κανάλι βέβαια ). Έτσι αν οι VNs ενός trapping set αποτελούν όλους τους VNs τους οποίους περιέχει ένας κύκλος, τότε αυτοί οι VNs θα δέχονται πληροφορία μόνο από το «εσωτερικό» του κύκλου επειδή δεν έχουν συνδέσεις με CNs που δεν ανήκουν στον κύκλο. Έτσι η πληροφορία που θα λαμβάνουν οι VNs του stopping set είναι ιδιαίτερα ανακριβής και αναξιόπιστη επειδή πρόκειται για πληροφορία που προέρχεται μόνο από CNs που ανήκουν σε κύκλο( το πρόβλημα από αυτή την κατάσταση εξηγείται σύμφωνα με αυτά που αναφέραμε στην προηγούμενη ενότητα ). [31] Στο επόμενο κεφάλαιο, θα δούμε ότι όταν κατασκευάζουμε έναν LDPC κώδικα που περιέχει κύκλους, τότε προσπαθούμε αυτοί οι κύκλοι να «δέχονται» όσο το δυνατό περισσότερη πληροφορία από το εξωτερικό τους( από εξωτερικούς CNs ). Η επαναληπτική αποκωδικοποίηση γενικά, είναι επιρρεπής στα trapping sets καθώς ο ένας επαναληπτικός αποκωδικοποιητής λειτουργεί τοπικά, με ένα διανεμημένο τρόπο σε αντίθεση με τον MAP βέλτιστο αποκωδικοποιητή ο οποίος βρίσκει μια ολική βέλτιστη λύση. [31] Τέλος να τονίσουμε ότι τα stopping sets επιδρούν και στην ελάχιστη απόσταση του κώδικα. Για έναν κώδικα με ελάχιστη απόσταση d min, κάθε σύνολο από d min στήλες του πίνακα H που το άθροισμά τους είναι το μηδενικό διάνυσμα στήλη, αντιστοιχεί σε ένα stopping set. Άρα λοιπόν, αν υπάρχουν μικρά stopping sets, η ελάχιστη απόσταση του κώδικα θα είναι μικρή. Έτσι στην επόμενη ενότητα θα δούμε ότι προσπαθούμε να αποφύγουμε μικρά stopping sets ώστε να μην έχουμε [31], [32] μικρή ελάχιστη απόσταση για τον LDPC κώδικα που κατασκευάζουμε. 4.7 Καμπύλη BER vs. SNR για τους LDPC κώδικες Η μορφή που έχει η BER καμπύλη των LDPC κωδίκων είναι ιδιαίτερα χαρακτηριστική( Εικόνα 4.7 ). Συγκεκριμένα, αυτή η μορφή της BER καμπύλης δεν αποτελεί αποκλειστική ιδιότητα των LDPC κωδίκων, αλλά εκφράζει όλους τους κώδικες που αποκωδικοποιούνται με επαναληπτική αποκωδικοποίηση( όπως [31], [33] για παράδειγμα οι Turbo κώδικες ). Έτσι λοιπόν, η BER καμπύλη των LDPC κωδίκων χωρίζεται σε τρεις περιοχές. Η πρώτη περιοχή ονομάζεται περιοχή μη σύγκλισης( non convergence region ). Στην περιοχή αυτή το BER είναι υψηλό( κοντά στο 10-1 ) και η BER καμπύλη παραμένει σχετικά επίπεδη( πολύ μικρή μείωση του BER με την αύξηση του SNR ). Το όνομα της περιοχής οφείλεται στο γεγονός ότι ο αλγόριθμος της επαναληπτικής message passing αποκωδικοποίησης αποτυγχάνει να συγκλίνει σε κάποια κωδική λέξη( λόγω του μεγάλου αριθμού των σφαλμάτων ) με αποτέλεσμα να συμπληρώνεται ο μέγιστος αριθμός των επαναλήψεων και να ολοκληρώνεται ο αλγόριθμος. Έτσι αυτό που θα πάρουμε ως έξοδος του αποκωδικοποιητή δε θα είναι μια έγκυρη κωδική λέξη και συνεπώς θα έχουμε σφάλματα στην [31], [33] αποκωδικοποίηση

87 Η δεύτερη περιοχή ονομάζεται περιοχή καταρράκτη( waterfall region ). Στην περιοχή αυτή παρατηρείται μια ραγδαία μείωση του BER με μια μικρή αύξηση του SNR. Η κλίση της BER καμπύλης στη περιοχή καταρράκτη είναι πολύ μεγάλη. Η κλίση αυτή αυξάνεται με την αύξηση του block length n ενώ το SNR από το οποίο αρχίζει η περιοχή καταρράκτη μειώνεται. Η τιμή στην οποία μπορεί να μειωθεί το SNR της περιοχής καταρράκτη( αυξάνοντας μόνο το block length n ) φθάνει σε ένα όριο κατώφλι το οποίο εξαρτάται από την κατανομή βαρών των κόμβων του LDPC κώδικα. Οριακά λοιπόν, όταν n, η BER καμπύλη θα είναι κατακόρυφη και θα βρίσκεται σε αυτό το κατώτατο όριο κατώφλι για το SNR. Άρα αυξάνοντας το block length n του LDPC κώδικα, η βελτίωση των επιδόσεων [31], [33] μπορεί να φτάσει μέχρι ένα όριο. Η τρίτη περιοχή ονομάζεται περιοχή error floor. Στην περιοχή αυτή η κλίση της BER καμπύλης μειώνεται πολύ γρήγορα και η καμπύλη τείνει να επιπεδοποιηθεί, με αποτέλεσμα η μείωση του BER να είναι μικρή όταν αυξάνεται το SNR. [31] Η συμπεριφορά αυτή των LDPC( και των επαναληπτικά αποκωδικοποιημένων ) κωδίκων στην περιοχή error floor οφείλεται σε δύο λόγους : 1. Στη μικρή ελάχιστη απόσταση του κώδικα. Ο λόγος αυτός όμως είναι δευτερεύων αφού είναι δυνατόν να έχουμε τη δημιουργία περιοχής error floor ακόμη και όταν ο LDPC κώδικας έχει μεγάλη ελάχιστη απόσταση. [33] 2. Ο κύριος λόγος για τη δημιουργία της περιοχής error floor είναι τα trapping sets. Τα trapping sets( ή ισοδύναμα οι near codewords ) έχουν ως αποτέλεσμα την εισαγωγή του αποκωδικοποιητή σε καταστάσεις λαθών [31], [33] από τις οποίες δεν μπορεί να ξεφύγει. Η απόδοση( πόσο χαμηλά θα είναι το BER ) στην περιοχή error floor εξαρτάται κυρίως από την κατανομή βαρών των κωδικών λέξεων( πως θα επιλέξουμε τις 2 k κωδικές λέξεις από τα 2 n δυνατά n διάστατα διανύσματα πάνω στο GF( 2 ) ). Αυτό με τη σειρά του καθορίζεται τόσο από την κατανομή βαρών των CNs και των [31], [33] VNs όσο και από δομή του πίνακα ελέγχου ισοτιμίας H. Να σημειώσουμε ότι, όπως παρατηρούμε στην εικόνα 4.8, βελτίωση των επιδόσεων του επαναληπτικού αποκωδικοποιητή μπορεί να επιτευχθεί με την αύξηση του μέγιστου αριθμού των επαναλήψεων. Ο ρυθμός της βελτίωσης αυτής είναι μεγάλος για μικρό μέγιστο αριθμό επαναλήψεων, μειώνεται όμως καθώς αυξάνει ο αριθμός αυτός και φθάνει σε ένα όριο από το οποίο και μετά οποιαδήποτε αύξηση στον αριθμό των επαναλήψεων οδηγεί σε πολύ μικρή βελτίωση. Η συμπεριφορά αυτή μπορεί να ερμηνευτεί με τον εξής συλλογισμό : κατά τη διάρκεια των αρχικών girth / 2 επαναλήψεων, τα μηνύματα που λαμβάνονται από έναν κόμβο του γραφήματος Tanner, κατά την επαναληπτική αποκωδικοποίηση, είναι όλα ανεξάρτητα μεταξύ τους. Έτσι αυξάνοντας το μέγιστο αριθμό των επαναλήψεων έως και girth / 2, σε κάθε επανάληψη κάθε κόμβος θα λαμβάνει σημαντικό ποσό νέας πληροφορίας την οποία δε «γνώριζε» πριν. Αντίθετα αν ο μέγιστος αριθμός των επαναλήψεων ξεπεράσει τις girth / 2, τότε τα μηνύματα που λαμβάνονται από έναν κόμβο δε θα είναι όλα ανεξάρτητα μεταξύ τους. Αυτό σημαίνει ότι αυξάνοντας το μέγιστο αριθμό επαναλήψεων πάνω από girth / 2,

88 τότε σε κάθε επανάληψη κάθε κόμβος θα λαμβάνει συνεχώς λιγότερη νέα πληροφορία. Έτσι θα χρειαστούμε πολύ μεγάλο αριθμό επαναλήψεων για να προκύπτει κάποια νέα πληροφορία για έναν κόμβο( και συνεπώς να έχουμε κάποια βελτίωση των επιδόσεων ). Στο όριο, όταν ο μέγιστος αριθμός των επαναλήψεων τείνει στο άπειρο, τότε η BER καμπύλη τείνει( στην καλύτερη των περιπτώσεων ) στη BER καμπύλη της βέλτιστης MAP αποκωδικοποίησης. Το αντίτιμο βέβαια, της χρήσης μεγάλου αριθμού επαναλήψεων, είναι η αύξηση της καθυστέρησης της [31], [33] αποκωδικοποίησης. Εικόνα 4.7 Bit Error Rate καμπύλες( γραμμές με τελείες ) και Word Error Rate καμπύλες( συνεχείς γραμμές ) που περιγράφουν την απόδοση της αποκωδικοποίησης( με τη χρήση του SPA ) ενός ( 3, 6 ) κανονικού LDPC κώδικα για μήκη του διανύσματος πληροφορίας k = 100( I max = 100 ), k = 500( I max = 100 ) και k = 5000( I max = 1000 ). [33]

89 Εικόνα 4.8 Bit Error Rate καμπύλες( γραμμές με τελείες ) και Word Error Rate καμπύλες( συνεχείς γραμμές ) που περιγράφουν την απόδοση της αποκωδικοποίησης( με τη χρήση του SPA ) ενός ( 3, 6 ) κανονικού LDPC κώδικα για διάφορες τιμές του μέγιστου αριθμού επαναλήψεων I max. Παρατηρούμε ότι για τη μετάβαση από I max = 5 σε I max = 10 η βελτίωση είναι ιδιαίτερα σημαντική σε σχέση με τη βελτίωση που προκύπτει για τη μετάβαση από I max = 10 σε I max = 15 ή για τη μετάβαση από I max = 25 σε I max = 500. [33] 4.8 Παρατηρήσεις πάνω στην απόδοση της αποκωδικοποίησης των LDPC κωδίκων Σύμφωνα με τα παραπάνω, καταλήξαμε στο συμπέρασμα ότι η επαναληπτική message passing αποκωδικοποίηση οδηγεί γενικά σε υποβέλτιστες επιδόσεις σε σχέση με τη βέλτιστη MAP αποκωδικοποίηση. Με την κατάλληλη όμως σχεδίαση και κατασκευή ενός LDPC κώδικα( π.χ. ο κώδικας να μην έχει μικρούς κύκλους και μικρά stopping sets ) μπορούμε να πετύχουμε απόδοση αποκωδικοποίησης πολύ κοντά στη βέλτιστη. Το γεγονός αυτό σε συνδυασμό με τη χρήση μεγάλων τιμών για το block length n( n ~ 10 5 ) οδηγεί τους LDPC κώδικες( με τη χρήση του soft decision αλγορίθμου Sum Product ) να αποδίδουν πολύ κοντά( μερικά δέκατα έως και μερικά εκατοστά των db ) στο όριο Shannon. Ως soft decision αλγόριθμος, ο SPA μπορεί να προσεγγίσει το όριο Shannon( capacity approaching [8], [31], [45] ) όταν το block length n του κώδικα τείνει στο άπειρο

90 Επίσης παρατηρήσαμε ότι η απόδοση του αλγόριθμου bit flipping επηρεάζεται σημαντικά από την παρουσία των κύκλων και ιδιαίτερα αυτών με μικρό μήκος( μήκος 4 ή 6 ). Ακόμη όμως κι όταν το γράφημα Tanner δεν περιέχει κύκλους, ο αλγόριθμος bit flipping δεν μπορεί ποτέ να μας οδηγήσει στο όριο Shannon ούτε να το προσεγγίσει ακόμη και για πολύ μεγάλα block lengths n. Αυτό γιατί πολύ απλά ο bit flipping είναι ένας hard decision αλγόριθμος και συνεπώς θα υστερεί [31], [33] από τους soft decision αλγορίθμους τουλάχιστο κατά 2 db. Σε ότι αφορά την επαναληπτική αποκωδικοποίηση των LDPC κωδίκων για το BEC, είδαμε ότι αυτό που την αποτρέπει να είναι βέλτιστη( MAP ) είναι η παρουσία των stopping sets και ιδιαίτερα αυτών με μικρό μέγεθος. Αν αυξήσουμε όμως σημαντικά το block length n του κώδικα τότε μπορούμε να αποφύγουμε τα stopping sets, κυρίως αυτά με μικρό μέγεθος. Έτσι όταν θεωρητικά n η επαναληπτική αποκωδικοποίηση των LDPC κωδίκων, για το BEC, ταυτίζεται με τη βέλτιστη. [31] Άλλωστε για έναν κώδικα που κατασκευάζεται με τυχαίο τρόπο( randomly constructed ) όταν χρησιμοποιούμε πολύ μεγάλο block length n( θεωρητικά n ) τότε ο κώδικάς μας θα έχει πολύ καλή ελάχιστη απόσταση και συνεπώς θα έχει και καλές επιδόσεις. [36] Άρα όταν n πετυχαίνουμε να φτιάξουμε έναν πολύ καλό, τυχαίο κώδικα ο οποίος θα αποκωδικοποιείται με βέλτιστο τρόπο με τη χρήση επαναληπτικής message passing αποκωδικοποίησης πάνω στο BEC. Για το λόγο αυτό λέμε ότι οι LDPC κώδικες οδηγούν στο όριο Shannon( capacity achieving ) για το BEC. [31], [33] Με βάση όλα τα παραπάνω λοιπόν μπορούμε να καταλήξουμε στο εξής συμπέρασμα : όταν σχεδιάζουμε και κατασκευάζουμε έναν κώδικα ο οποίος πρόκειται να αποκωδικοποιηθεί με βέλτιστο MAP τρόπο τότε η πιο σημαντική παράμετρος που μας ενδιαφέρει είναι η ελάχιστη απόσταση d min του κώδικα. Αυτή η παράμετρος αποτελεί μέτρο της διακριτότητας μεταξύ των κωδικών λέξεων και εξαρτάται από τα δομικά χαρακτηριστικά του κώδικα( κατανομή βαρών των κωδικών λέξεων ). Έτσι όταν έχουμε έναν κώδικα με καλή ελάχιστη απόσταση, ο οποίος αποκωδικοποιείται με βέλτιστο MAP τρόπο, τότε μπορούμε να φθάσουμε το όριο Shannon, αρκεί το block length n. [36] Αντίθετα, όταν σχεδιάζουμε και κατασκευάζουμε έναν κώδικα ο οποίος πρόκειται να αποκωδικοποιηθεί με επαναληπτική message passing αποκωδικοποίηση, εκτός από την ελάχιστη απόσταση, ενδιαφερόμαστε και για παραμέτρους που διευκολύνουν αυτόν τον τρόπο αποκωδικοποίησης. Τέτοιες παράμετροι είναι η παρουσία ή μη των κύκλων, το girth του κώδικα, η κατανομή βαρών των CNs και των VNs, η εξωγενής πληροφορία που εισέρχεται σε έναν κύκλο( ένα μέτρο αυτής θα ορίσουμε στο επόμενο κεφάλαιο ) και το μέγεθος των stopping sets. Να τονίσουμε και πάλι ότι θα πρέπει να προσέχουμε να μην προκύψει μικρή ελάχιστη απόσταση( για τον κώδικα που κατασκευάζουμε ) κατά την προσπάθειά μας να βελτιστοποιήσουμε τις παραπάνω παραμέτρους γιατί τότε ο κώδικας που θα έχουμε φτιάξει θα είναι γενικά ένας κακός κώδικας, ανεξάρτητα με [31], [33] τον τρόπο που αποκωδικοποιείται. Να σημειώσουμε τέλος, ότι η απόδοση της βέλτιστης MAP αποκωδικοποίησης μπορεί να χρησιμοποιηθεί ως ένα άνω φράγμα για την απόδοση της επαναληπτικής message passing αποκωδικοποίησης

91 ΚΕΦΑΛΑΙΟ 5 Κατασκευή LDPC κωδίκων 5.1 Εισαγωγή Όταν αναφερόμαστε στην κατασκευή των LDPC κωδίκων, εννοούμε την κατασκευή του πίνακα ελέγχου ισοτιμίας H( ή ισοδύναμα του γραφήματος Tanner ) που περιγράφει έναν LDPC κώδικα. Πριν το στάδιο της κατασκευής βεβαίως, προηγείται το στάδιο της σχεδίασης του κώδικα το οποίο περιλαμβάνει την εύρεση μιας «καλής» κατανομής βαθμών για τους VNs και τους CNs( για τον τύπο καναλιού που μελετάμε ). Η εύρεση αυτής της κατανομής οδηγεί στην εύρεση ενός βελτιστοποιημένου συνόλου( optimized ensemble ) κωδίκων για το κανάλι το οποίο εξετάζουμε. [7], [33] Η σχεδίαση LDPC κωδίκων δε θα εξεταστεί στην παρούσα εργασία διότι το περιεχόμενο και η ανάλυσή της ξεφεύγουν από τους στόχους τις εργασίας αυτής. Έτσι θα θεωρούμε δεδομένη την κατανομή βαρών των γραμμών και των στηλών του πίνακα H, για τους κώδικες και τα κανάλια που αναλύουμε. Αυτό που θα μας απασχολήσει στο κεφάλαιο αυτό είναι η κατασκευή ενός πίνακα H( ή ισοδύναμα ενός γραφήματος Tanner ) που να έχει όσο το δυνατό καλύτερες ιδιότητες δοθέντος ενός συνόλου LDPC κωδίκων. Με αυτό εννοούμε ότι για παράδειγμα ο κώδικας θα πρέπει να έχει όσο το δυνατό μεγαλύτερους κύκλους, να έχει όσο το δυνατό μεγαλύτερη ελάχιστη απόσταση Hamming, ακόμη και το πώς θα συνδεθούν μεταξύ τους οι VNs με τους CNs επηρεάζει την απόδοση του κώδικα. Ουσιαστικά με την κατασκευή ενός κώδικα επιλέγουμε από το σύνολο κωδίκων που έχουμε σχεδιάσει ένα συγκεκριμένο κώδικα που να οδηγεί σε όσο το δυνατό καλύτερες επιδόσεις. Έχουν προταθεί διάφορες τεχνικές κατασκευής LDPC κωδίκων, οι περισσότερες από τις οποίες βασίζονται στη χρήση υπολογιστή. Γενικά οι τεχνικές κατασκευής LDPC κωδίκων μπορούν να διακριθούν σε δύο κύριες κατηγορίες : Ψευδοτυχαίες τεχνικές κατασκευής. Οι τεχνικές αυτές προσπαθούν να προσεγγίσουν τις κατασκευαστικές απαιτήσεις του θεωρήματος κωδικοποίησης ενθόρυβου καναλιού, επιτρέποντας μια πιο τυχαία κατασκευή ενός μεγάλου πίνακα H. Αλγεβρικές τεχνικές κατασκευής. Οι τεχνικές αυτές οδηγούν στη δημιουργία καλά δομημένων LDPC κωδίκων. Τα οφέλη της εμφάνισης ισχυρής δομής σε αυτούς τους LPDC κώδικες χρησιμοποιούνται τόσο κατά τη διαδικασία της κωδικοποίησης όσο και της αποκωδικοποίησης. Στην κατηγορία αυτή ανήκουν ορισμένες ιδιαίτερα σημαντικές ομάδες LDPC κωδίκων, όπως οι σχεδόν κυκλικοί LDPC κώδικες και οι LDPC κώδικες που βασίζονται σε πεπερασμένες γεωμετρίες( Ευκλείδειες και Προοδευτικές γεωμετρίες )

92 Στο κεφάλαιο αυτό θα εξετάσουμε ορισμένες από τις πιο δημοφιλείς ψευδοτυχαίες μεθόδους κατασκευής LDPC κωδίκων παρουσιάζοντας τα πλεονεκτήματα και τα μειονεκτήματά τους. 5.2 Η μέθοδος του Gallager Η μέθοδος του Gallager αποτελεί την αρχική πρόταση-μέθοδο για την κατασκευή LDPC κωδίκων όπως αυτή εισήχθη από τον ίδιο το Gallager το Σύμφωνα με το Gallager ένας LDPC κώδικας είναι ένας γραμμικός block κώδικας ο οποίος περιγράφεται από έναν πίνακα ελέγχου ισοτιμίας H mxn, με βάρος στηλών g<<m και βάρος γραμμών r<<n. O Gallager λοιπόν πρότεινε ο πίνακας H να έχει την ακόλουθη δομή [1], [31], [33] : ( 5.1 ) Οι g υποπίνακες H α, με α = 1,, g, έχουν τη δομή που περιγράφεται παρακάτω. Για κάθε ακέραιο μ και r μεγαλύτερων του 1, κάθε υποπίνακας H α είναι ένας μxμr πίνακας με βάρος γραμμών r και βάρος στηλών 1. Επομένως κάθε υποπίνακας H α έχει μ. r 1. Συγκεκριμένα ο υποπίνακας H 1 έχει την ακόλουθη δομή : για i = 1,, μ η i-στη γραμμή του H 1 περιέχει και τα r 1 αυτής στις στήλες ( i 1 ). r + 1 έως i. r. Οι υπόλοιποι g 1 υποπίνακες που απαιτούνται για τη σύνθεση του πίνακα Η προκύπτουν απλά από αντιμεταθέσεις στηλών του H 1. [1], [31], [33] Η κατασκευή ενός πίνακα H με την παραπάνω μέθοδο φαίνεται στο παράδειγμα 5.1. Παράδειγμα 5.1 : Κατασκευή ενός πίνακα H με τη μέθοδος του Gallager

93 Ο πίνακας αυτός αντιστοιχεί σε έναν ( 20, 7 ) κώδικα με g = 3, r = 4 και μ = 5. Παρατηρούμε ότι ο H 1 έχει όλα τα 1 του στις στήλες ( i 1 ) έως i. 4 για i = 1, 2, 3, 4, 5. Από τον παραπάνω τρόπο κατασκευής του πίνακα H προκύπτει ότι m = μ. g και n = μ. r, δηλαδή ο πίνακας H θα είναι διαστάσεων μ. gxμ. r. Επίσης από τα παραπάνω προκύπτει ότι με τη μέθοδο του Gallager μπορούμε να κατασκευάσουμε μόνο κανονικούς( regular ) LDPC κώδικες. Γι αυτό ορισμένες φορές οι κανονικοί LDPC κώδικες αναφέρονται και ως κώδικες Gallager( Gallager codes ). Όπως είναι [31], [33] προφανές, ο πίνακας H θα έχει βάρος γραμμών r και βάρος στηλών g. Επειδή ο συνολικός αριθμός των 1 στον πίνακα H θα είναι μ. r. g και ο συνολικός αριθμός των στοιχείων του πίνακα H είναι μ 2. r. g, η πυκνότητα του πίνακα H θα είναι 1 / μ. Διαλέγοντας το μ να είναι αρκετά μεγαλύτερο του 1, ο πίνακας H θα έχει αρκετά μικρή πυκνότητα και θα είναι ένας αραιός πίνακας. [32] Η μέθοδος του Gallager δε μπορεί να εγγυηθεί την απουσία κύκλων μήκους 4, επειδή κατά την κατασκευή του πίνακα H δεν παρέχεται καμιά εγγύηση για το αν ο πίνακας H θα ικανοποιεί τους RC περιορισμούς( όπου δύο στήλες ή γραμμές δεν μπορούν έχουν πάνω από ένα 1 σε κοινή θέση ) όπως αυτοί ορίσθηκαν στο κεφάλαιο 2. Όμως οι κύκλοι μήκους 4 μπορούν να αποφευχθούν μέσω της κατασκευής του πίνακα H με υπολογιστή, όπου εισάγουμε ελέγχους στον [31], [32] αλγόριθμο έτσι ώστε να μη δημιουργούνται κύκλοι μήκους 4. Επίσης ο πίνακας H που κατασκευάζεται με τη μέθοδο του Gallager δεν είναι full rank, δεδομένου ότι η ανεξαρτησία των γραμμών του H δεν είναι εγγυημένη και θα υπάρχουν εξαρτημένες γραμμές. Έτσι ο ρυθμός σχεδίασης( design rate ) του κώδικα

94 θα διαφέρει( θα είναι μεγαλύτερος ) από τον πραγματικό ρυθμό( actual rate ) αυτού. [1], [31] Ο Gallager δεν έδειξε κάποια μέθοδο ώστε να επιλέγουμε τις αντιμεταθέσεις στηλών του υποπίνακα H 1, για να δημιουργήσουμε τους υποπίνακες H i, με i = 2,, g, κατά τέτοιο τρόπο ώστε ο συνολικός πίνακας H να δίνει έναν LDPC κώδικα με καλή ελάχιστη απόσταση και τις επιθυμητές δομικές ιδιότητες( όπως αυτές ορίσθηκαν στο κεφάλαιο 2 ). Γενικά υπάρχουν n! δυνατές αντιμεταθέσεις στηλών του H 1 και από αυτές πρέπει να επιλέξουμε g 1 αντιμεταθέσεις για να δημιουργήσουμε τους υπόλοιπους g 1 υποπίνακες του πίνακα H. Η επιλογή αυτή των αντιμεταθέσεων καθορίζει και τις ιδιότητες του LDPC κώδικα. Επίσης ο Gallager έδειξε ότι το σύνολο των ( g, r ) κανονικών LDPC κωδίκων έχει καλές ιδιότητες ελάχιστης απόστασης, όταν g 3( συγκεκριμένα η ελάχιστη απόσταση [31], [32] αυξάνει γραμμικά με το block length n ). Γενικά η κατασκευή του πίνακα H με τη μέθοδο Gallager με τη χρήση υπολογιστή μπορεί να οδηγήσει στην κατασκευή LDPC κωδίκων με πολύ καλές ιδιότητες και επιδόσεις, ιδιαίτερα για μεγάλα block lengths n. 5.3 Η μέθοδος MacKay Neal Όπως αναφέραμε, το 1995 στο [3], οι MacKay και Neal επανεισήγαγαν τους LDPC κώδικες τονίζοντας τα οφέλη της χρήσης ενός αραιού πίνακα ελέγχου ισοτιμίας H και την επίτευξη επιδόσεων πολύ κοντά στη χωρητικότητα( capacity ) από τέτοιου είδους κώδικες για το BSC και το BI AWGN. Επίσης το 1999 ο MacKay στο [6] περιγράφει τη μορφή και τις ιδιότητες που πρέπει να έχει ο πίνακας ελέγχου ισοτιμίας H. Στη μέθοδο αυτή έχουμε ως δεδομένα τις κατανομές βαθμών v και h των VNs και CNs αντίστοιχα( τα v και h αποτελούν επίσης τις κατανομές βαρών των στηλών και των γραμμών αντίστοιχα του πίνακα H ). Επομένως η μέθοδος MacKay Neal μπορεί να χρησιμοποιηθεί για την κατασκευή τόσο κανονικών όσο και μηκανονικών LDPC κωδίκων. Επίσης δεδομένα θεωρούνται το block length n και ο ρυθμός σχεδιασμού r. [33] Αρχικά υπολογίζουμε τα βάρη των m = ( 1 r ). n γραμμών και των n στηλών του πίνακα H. Αυτό γίνεται πολλαπλασιάζοντας τα v και h με n και m αντίστοιχα, οπότε το v = v. n θα έχει ως στοιχεία το πλήθος των στηλών με βάρος i( v ( i ) = αριθμός στηλών με βάρος i ), για i = 1,, length(v ) ενώ το h = h. n θα έχει ως στοιχεία το πλήθος των γραμμών με βάρος i ( h ( i ) = αριθμός γραμμών με βάρος i ), για i = 1,, length(h ). Στη συνέχεια μια στήλη βάρους i μπορεί να αποτελέσει μια οποιαδήποτε από τις n στήλες του πίνακα H( στην οποία δεν έχει ήδη ανατεθεί ένα βάρος ). Παρόμοια μια γραμμή βάρους i μπορεί να αποτελέσει μια οποιαδήποτε από τις m γραμμές του πίνακα H( στην οποία δεν έχει ήδη ανατεθεί ένα βάρος ). Έτσι καταλήγουμε να έχουμε τα βάρη όλων των γραμμών( σε ένα m διάστατο διάνυσμα ) και όλων των στηλών( σε ένα n διάστατο διάνυσμα ). [33] Η μέθοδος MacKay Neal περιλαμβάνει τη συμπλήρωση( με τον αντίστοιχο αριθμό από 1 ) μιας στήλης σε κάθε βήμα ξεκινώντας από αριστερά και πηγαίνοντας προς τα δεξιά. Η τοποθέτηση των 1 σε μια στήλη γίνεται με τυχαίο τρόπο επιλέγοντας μεταξύ των γραμμών που δεν έχουν ακόμη γεμίσει με τον

95 αριθμό των 1 που τις αντιστοιχεί. Αν σε κάποιο σημείο της διαδικασίας οι γραμμές έχουν περισσότερες ή λιγότερες κενές θέσεις από τον αριθμό των 1 που υπολείπονται να προστεθούν, τότε η κατανομή βαρών h, των γραμμών του πίνακα H δεν μπορεί να επιτευχθεί με ακρίβεια και η διαδικασία μπορεί να επαναληφθεί από την αρχή ή από κάποιο ενδιάμεσο σημείο έως ότου επιτευχθεί η επιθυμητή [31], [33] κατανομή βαρών των γραμμών. Συνήθως όμως, η τοποθέτηση των 1 σε μια στήλη( κατά την εφαρμογή της μεθόδου MacKay Neal ) δε γίνεται με εντελώς τυχαίο τρόπο αλλά με βάση κάποιους κλιμακωτούς περιορισμούς που εισάγουμε ώστε ο πίνακας H που θα προκύψει να έχει ορισμένες επιθυμητές ιδιότητες. Οι περιορισμοί αυτοί, κατά σειρά αύξουσας πολυπλοκότητας του αλγορίθμου κατασκευής του πίνακα H, είναι οι εξής [6], [33] : 1. Τα 1 τοποθετούνται στις στήλες του πίνακα H κατά τυχαίο τρόπο, λαμβάνοντας μέριμνα ώστε να προκύψει όσο το δυνατό πιο ομοιόμορφη κατανομή βαρών για τις γραμμές του πίνακα H. Όπως είναι φανερό, με τον τρόπο αυτό δεν μπορούμε να πετύχουμε την επιθυμητή κατανομή βαρών για τις γραμμές του πίνακα H. 2. Τα 1 τοποθετούνται στις στήλες του πίνακα H κατά τυχαίο τρόπο, λαμβάνοντας μέριμνα ώστε να προκύψει η επιθυμητή κατανομή βαρών για τις γραμμές του πίνακα H. 3. Τα 1 τοποθετούνται στις στήλες του πίνακα H όπως στο 1, αλλά επιπλέον λαμβάνουμε μέριμνα ώστε να ικανοποιούνται οι RC περιορισμοί( η επικάλυψη των 1 μεταξύ δύο οποιονδήποτε στηλών να είναι το πολύ σε ένα σημείο ) και συνεπώς να αποφεύγονται οι κύκλοι μήκους Τα 1 τοποθετούνται στις στήλες του πίνακα H όπως στο 2, αλλά επιπλέον λαμβάνουμε μέριμνα ώστε να ικανοποιούνται οι RC περιορισμοί( η επικάλυψη των 1 μεταξύ δύο οποιονδήποτε στηλών να είναι το πολύ σε ένα σημείο ) και συνεπώς να αποφεύγονται οι κύκλοι μήκους Τα 1 τοποθετούνται στις στήλες του πίνακα H όπως στο 3 ή στο 4, αλλά επιπλέον προσπαθούμε να αποφύγουμε κύκλους μικρού μήκους( π.χ. κύκλους μήκους 6 ). 6. Τα 1 τοποθετούνται στις στήλες του πίνακα H όπως στο 5, φροντίζοντας επιπλέον ο πίνακας H να έχει τη μορφή H = [ H 1 H 2 ], με τον υποπίνακα H 2 να είναι αντιστρέψιμος. Να τονίσουμε ότι όσο πιο πολύπλοκοι περιορισμοί εισάγονται στον αλγόριθμο της μεθόδου MacKay Neal τόσο πιο δύσκολο είναι να επιτευχθεί σύγκλιση του αλγορίθμου σε έναν τελικό πίνακα H. Έτσι ακόμη και όταν εισάγουμε απλούς περιορισμούς ώστε να αποφύγουμε κύκλους μήκους 4, είναι πιθανό ο αλγόριθμος [31], [33] να μη συγκλίνει σε κάποιον τελικό πίνακα H

96 Με τη μέθοδο MacKay Neal είναι εγγυημένη η απουσία κύκλων μήκους 4, αφού φροντίζουμε να ικανοποιούνται οι RC περιορισμοί. Επίσης μπορεί να εξασφαλισθεί και η απουσία επιπλέον μικρών κύκλων( όπως κύκλων μήκους 6 ) αλλά με αυτό τον τρόπο αυξάνει σημαντικά η πολυπλοκότητα του αλγορίθμου αλλά και η πιθανότητα αυτού να μη συγκλίνει σε κάποιον τελικό πίνακα H. Τέλος, η μέθοδος MacKay Neal εξασφαλίζει ότι ο πίνακας H που θα προκύψει θα είναι full rank( det( H ) 0 ) και συνεπώς το design rate θα ισούται με τον πραγματικό [31], [33] ρυθμό του κώδικα. Ένας τρόπος για να υλοποιηθεί ο περιορισμός 6 είναι ο εξής : φτάνοντας μέχρι και τον περιορισμό 5, αν ο υποπίνακας H 2 είναι αντιστρέψιμος( det( H 2 ) 0 ) τότε δεν εκτελούμε καμία διαδικασία και έχουμε τον πίνακα H στη μορφή που θέλουμε. Αν ο υποπίνακας H 2 δεν είναι αντιστρέψιμος( det( H 2 ) = 0 ) τότε εφαρμόζουμε την απαλοιφή Gauss στον πίνακα H ώστε να τον φέρουμε σε συστηματική μορφή. Κατά την απαλοιφή Gauss αποθηκεύουμε τις ενδεχόμενες αντιμεταθέσεις στηλών τις οποίες στο τέλος της διαδικασίας μεταφέρουμε στον αρχικό πίνακα H. Με τον τρόπο αυτό προκύπτει ο πίνακας H από τον πίνακα H με εφαρμογή τον συγκεκριμένων αντιμεταθέσεων στηλών. Ο νέος πίνακας H θα ικανοποιεί πλέον και τον περιορισμό 6. [6] Παράδειγμα 5.2 : Ένας πίνακας ελέγχου ισοτιμίας H με τη μέθοδο MacKay Neal για έναν ( 3, 4 ) κανονικό LDPC κώδικα με block length n = 12. Όταν προσθέτουμε τα 1 στην ενδέκατη στήλη, οι γραμμές που μπορούν να δεχτούν 1 είναι η δεύτερη, η τέταρτη, η πέμπτη, η έκτη και η ένατη γραμμή. Από αυτές επιλέγουμε τη δεύτερη, την τέταρτη και την έκτη γραμμή για να τοποθετήσουμε τα 1( φαίνονται με έντονα γράμματα ) που αντιστοιχούν στην ενδέκατη στήλη

97 5.4 Διαχωρισμός γραμμών ή στηλών Κατά την κατασκευή των LDPC κωδίκων ορισμένες φορές είναι δύσκολο να αποφύγουμε την εισαγωγή κύκλων μικρού μήκους( π.χ. κύκλοι μήκους 4 ή 6 ) ή γενικά άλλων ανεπιθύμητων ιδιοτήτων του πίνακα ελέγχου ισοτιμίας H. Μια τεχνική για την απομάκρυνση αυτών των ανεπιθύμητων ιδιοτήτων είναι ο διαχωρισμός γραμμών ή στηλών( column or row splitting ). Στο διαχωρισμό στηλών μια απλή στήλη του πίνακα H αντικαθίσταται από δύο στήλες οι οποίες μοιράζονται μεταξύ τους τα στοιχεία της αρχικής στήλης. Έτσι κάποια 1 θα τοποθετηθούν στη μία στήλη( μένοντας στην ίδια γραμμή ) ενώ τα υπόλοιπα 1 θα τοποθετηθούν στην άλλη στήλη( μένοντας πάλι στην ίδια γραμμή ). Εφόσον προστίθεται μια επιπλέον στήλη στον πίνακα H, αυτός θα είναι ελαφρά πιο αραιός από τον αρχικό πίνακα H αφού ο αριθμός των 0 του H θα αυξηθεί ενώ ο αριθμός των 1 θα παραμείνει σταθερός. Ο νέος κώδικας που θα προκύψει θα έχει [31], [33] block length n μεγαλύτερο από τον αρχικό κώδικα. Εικόνα 5.1 Διαχωρισμός στηλών του πίνακα H για έναν κώδικα μήκους 6. Η πρώτη στήλη διαχωρίζεται σε δύο στήλες οι οποίες μοιράζονται τα στοιχεία της πρώτης στήλης. Οι δύο αυτές στήλες εισάγονται στον πίνακα H. Ο νέος πίνακας H ext θα περιγράφει έναν κώδικα με μήκος 7 Παράδειγμα 5.3 : Γραφική αναπαράσταση( Tanner γράφημα ) του διαχωρισμού στηλών για να εξαλείψουμε έναν κύκλο μήκους

98 Εικόνα 5.2 Διαχωρισμός στηλών ώστε να εξαλείψουμε τον κύκλο μήκους 4 [33] Στο διαχωρισμό γραμμών του πίνακα H, μια απλή γραμμή αυτού μπορεί να αντικατασταθεί από δύο γραμμές οι οποίες μοιράζονται μεταξύ τους τα στοιχεία της αρχικής γραμμής. Έτσι κάποια 1 θα τοποθετηθούν στη μία γραμμή( μένοντας στην ίδια στήλη ) ενώ τα υπόλοιπα 1 θα τοποθετηθούν στην άλλη γραμμή( μένοντας πάλι στην ίδια στήλη ). Επειδή προστίθεται μια επιπλέον γραμμή στον αρχικό πίνακα H, ο νέος κώδικας που θα προκύψει θα έχει μικρότερο ρυθμό από τον αρχικό κώδικα ενώ ο νέος πίνακας ελέγχου ισοτιμίας H θα είναι ελαφρώς πιο αραιός από τον αρχικό αφού ο αριθμός των 1 παραμένει σταθερός ενώ ο αριθμός [31], [33] των 0 αυξάνεται. Εικόνα 5.3 Διαχωρισμός γραμμών του πίνακα H για έναν κώδικα μήκους 6. Η πρώτη γραμμή διαχωρίζεται σε δύο γραμμές οι οποίες μοιράζονται τα στοιχεία της πρώτης γραμμής. Οι δύο αυτές γραμμές εισάγονται στον πίνακα H. Ο νέος πίνακας H ext θα περιγράφει έναν κώδικα με μήκος 6 αλλά με 5 εξισώσεις ελέγχου ισοτιμίας

99 Παράδειγμα 5.4 : Γραφική αναπαράσταση( Tanner γράφημα ) του διαχωρισμού γραμμών για να εξαλείψουμε έναν κύκλο μήκους 4. Εικόνα 5.4 Διαχωρισμός γραμμών ώστε να εξαλείψουμε τον κύκλο μήκους 4 [33] 5.5 Ο αλγόριθμος PEG Το PEG αποτελεί ακρωνύμιο για το Progressive Edge Growth το οποίο αποτελεί μια τεχνική για την κατασκευή κωδίκων με γραφήματα Tanner τα οποία έχουν σχετικά μεγάλο girth. Επομένως η μέθοδος αυτή στηρίζεται στη γραφική αναπαράσταση των LDPC κωδίκων και προτάθηκε στο [14] το Η κατασκευή ξεκινά με ένα σύνολο από n VNs και ένα σύνολο από m CNs μεταξύ των οποίων δεν υπάρχει αρχικά καμία σύνδεση( έχουμε ουσιαστικά ένα μηδενικό πίνακα H ). Στη συνέχεια προστίθενται προοδευτικά συνδέσεις ώστε να συνδέσουν τους VNs με τους CNs εφαρμόζοντας ένα σύνολο κανόνων( που θα εξετάσουμε παρακάτω ) και χρησιμοποιώντας τη δοθείσα ακολουθία κατανομής βαρών d υ ( το d υ είναι ένα n διάστατο διάνυσμα που περιέχει τα βάρη των VNs ) για τους VNs. Οι συνδέσεις προστίθενται σε ένα VN μία-μία κάθε φορά, χρησιμοποιώντας μια διαδικασία επιλογής μεταξύ των διαθέσιμων συνδέσεων( edge selection procedure ) έως ότου ο αριθμός των συνδέσεων που προστέθηκαν στον VN είναι ίσος με αυτόν που προβλέπεται από το d υ. Αυτή η προοδευτική πρόσθεση συνδέσεων σε ένα VN ονομάζεται αύξηση συνδέσεων( edge growth ). Η αύξηση συνδέσεων πραγματοποιείται σε ένα VN κάθε φορά( σε κάθε βήμα ). Με την ολοκλήρωση της αύξησης συνδέσεων σε ένα VN περνάμε στον επόμενο VN με την αύξηση συνδέσεων να «κινείται» από τους VNs με το μικρότερο βαθμό βάρος προς τους VNs με το μεγαλύτερο βάρος βαθμό. Έτσι στην ανάλυση που θα κάνουμε θα θεωρήσουμε ότι τα στοιχεία του n διάστατου διανύσματος d υ είναι ταξινομημένα κατά αύξουσα σειρά. Όταν έχουμε ολοκληρώσει με την αύξηση συνδέσεων για όλους τους VNs, έχουμε ένα γράφημα Tanner του οποίου οι VNs έχουν τους ζητούμενους, προκαθορισμένους βαθμούς. Όπως θα δούμε παρακάτω η

100 διαδικασία επιλογής μεταξύ των διαθέσιμων συνδέσεων ορίζεται με κριτήριο τη [14], [31] μεγιστοποίηση του girth του τελικού γραφήματος Tanner. Μια έννοια που πρέπει να ορίσουμε προτού προχωρήσουμε στην παρουσίαση του αλγόριθμου PEG, είναι αυτή του τοπικού girth( local girth ). Θεωρούμε ένα διμερές γράφημα G = ( V 1, V 2 ) με το σύνολο των VNs να είναι το V 1 = { υ 1, υ 2,, υ n } και το σύνολο των CNs να είναι το V 2 = { c 1, c 2,, c m }. Αν θεωρήσουμε ένα VN υ i και με λ i συμβολίσουμε το μήκους του μικρότερου κύκλου που περιέχει το υ i τότε το λ i ονομάζεται τοπικό girth. Το girth λ, του γραφήματος G θα ισούται με λ = min{ λ i : 1 i n }. Η κεντρική ιδέα του αλγορίθμου PEG έγκειται στη μεγιστοποίηση του τοπικού για κάθε VN υ i. Μεγιστοποιώντας το τοπικό girth για κάθε VN στην ουσία πετυχαίνουμε να μεγιστοποιήσουμε το girth του συνολικού γραφήματος G. [31] ( l ) Αν θεωρήσουμε ένα VN υ i σε ένα Tanner γράφημα G, τότε με N i συμβολίζουμε το σύνολο των CNs στο G που συνδέονται στο υ i μέσα σε μια απόσταση 5 2. l + 1. Οι πιο κοντινές διαδρομές που συνδέουν το υ i με τους CNs που ( l ) περιέχονται στο N i μπορούν να παρασταθούν με ένα δένδρο Ri με το υ i να αποτελεί τη ρίζα του δένδρου( Εικόνα 5.5 ). [31] Εικόνα 5.5 Γραφική αναπαράσταση ως δένδρο των γειτόνων ενός VN v i μέσα σε ένα βάθος l. [31] 5 Όπως ορίσαμε στο κεφάλαιο 2 η απόσταση μεταξύ δύο κόμβων σε ένα γράφημα, ορίζεται ως το μήκος της πιο κοντινής διαδρομής που συνδέει τους κόμβους αυτού

101 Το δένδρο αυτό αποτελείται από l + 1 επίπεδα( levels ) και κάθε επίπεδο από δύο από δύο στρώματα( layers ) κόμβων. ένα στρώμα από VNs και ένα στρώμα από CNs. Τα επίπεδα αριθμούνται από το 0 μέχρι το l από κάτω προς τα πάνω. Κάθε διαδρομή στο R i αποτελείται από μια ακολουθία από εναλλασσόμενους VNs και CNs. Στο τέλος κάθε μονοπάτι στο R i τερματίζεται σε ένα CN του N i ( l ). Κάθε κόμβος, σε μια διαδρομή στο R i, εμφανίζεται μια και μόνο φορά. Αυτό το δένδρο R i λοιπόν, μπορεί να κατασκευαστεί προοδευτικά. ξεκινώντας από τον VN υ i σχηματίζουμε όλες τις συνδέσεις (υ i, c i1 ), (υ i, c i2 ),, (υ i, c idυi ) που συνδέουν το υ i με τους dυ i πιο κοντινούς γείτονες CNs c i1, c i2,, c idυi. Έτσι έχουμε κατασκευάσει το μηδενικό επίπεδο του δένδρου R i. [31] Στη συνέχεια σχηματίζουμε όλες τις συνδέσεις που συνδέουν τους CNs του μηδενικού επιπέδου με τους αντίστοιχους πιο κοντινούς γείτονες VNs του πρώτου επιπέδου. Έπειτα σχηματίζουμε όλες τις συνδέσεις που συνδέουν τους VNs του πρώτου επιπέδου με τους αντίστοιχους πιο κοντινούς γείτονες CNs του πρώτου επιπέδου. Έτσι ολοκληρώνεται το πρώτο επίπεδο του δένδρου R i. [31] Η διαδικασία συνεχίζεται προχωρώντας από το ένα επίπεδο στο άλλο έως ότου ολοκληρώσουμε και το l στο επίπεδο ή έως ότου φθάσουμε σε ένα επίπεδο από το οποίο και μετά το δένδρο δε μπορεί να «αναπτυχθεί» περαιτέρω. [31] Η απόσταση μεταξύ του υ i και ενός VN του l στου επιπέδου είναι 2. l και η απόσταση μεταξύ του υ i και ενός CN του l στου επιπέδου είναι 2. l + 1. Αν υπάρχει μια δυνατή σύνδεση στο γράφημα G η οποία συνδέει ένα CN του l στου επιπέδου του δένδρου R i με το VN υ i ( που αποτελεί τη ρίζα του δένδρου ), τότε η υλοποίηση αυτής της σύνδεσης δημιουργεί έναν κύκλο μήκους 2. ( l + 1 ) στο G ο (l) οποίος περιέχει το υ i. Το σύνολο N i αναφέρεται ως γειτονιά του υi μέσα σε ένα ( l ) [31] βάθος l ενώ το σύνολο είναι το συμπληρωματικό του N i. Ο αλγόριθμος PEG χρησιμοποιεί τις έννοιες του τοπικού girth ενός VN υ i, της ( l ) γειτονιάς N i του υi μέσα σε ένα βάθος l και της αναπαράστασης με τη χρήση ( l ) δένδρου των διαδρομών που συνδέουν το υ i με τους CNs του N i για να πετύχει την κατασκευή ενός γραφήματος Tanner με όσο το δυνατό μεγαλύτερο girth. Στον αλγόριθμο PEG τα δοθέντα στοιχεία είναι το block length n( που ισούται με τον αριθμό των VNs ), το πλήθος των CNs( το πλήθος των γραμμών του πίνακα H ) [14], [31] και τα βάρη των VNs d υ = (d υ1, d υ2,, d υn ). Υποθέτουμε λοιπόν ότι έχουμε ολοκληρώσει την αύξηση των συνδέσεων για τους για τους πρώτους i 1 VNs ( υ 1, υ 2,, υ i 1 ) με τη χρήση του αλγορίθμου PEG. Στο σημείο αυτό έχουμε ένα μερικώς συνδεδεμένο γράφημα Tanner στο οποίο έχουν ολοκληρωθεί ορισμένες μόνο από τις συνολικές συνδέσεις. Στη συνέχεια δημιουργούμε τις συνδέσεις που σχετίζονται με το VN υ i. Ο VN υ i θα συνδέεται απ ευθείας με d υi CNs. Οι συνδέσεις πραγματοποιούνται μία μία κάθε φορά. Υποθέτουμε ότι k 1 συνδέσεις έχουν προστεθεί στο VN υ i με 1 k d υi. Πριν την εισαγωγή της k στης σύνδεσης στο υ i, κατασκευάζουμε ένα δένδρο διαδρομών R i με το υ i ως ρίζα αυτού βασιζόμενοι στο μερικώς συνδεδεμένο γράφημα Tanner που έχουμε κατασκευάσει μέχρι αυτό το σημείο( το οποίο και συμβολίζουμε G i,k 1 ). [14], [31] Συνεχίζουμε την ανάπτυξη του δένδρου έως ότου φθάσει σε ένα

102 επίπεδο( π.χ. το l στο επίπεδο ) τέτοιο ώστε να ισχύει μια από τις ακόλουθες δύο καταστάσεις : 1. Το δένδρο δε μπορεί να αναπτυχθεί περαιτέρω αλλά η πληθυκότητα( cardinality ) N i ( l ), του Ni ( l ) είναι μικρότερη του m. Η συνθήκη αυτή υπονοεί ότι ο VN υ i δε μπορεί να φθάσει όλους τους CNs χρησιμοποιώντας το τρέχων, μερικώς συνδεδεμένο γράφημα Tanner G i,k 1. Σε αυτή την περίπτωση επιλέγουμε ένα CN c j από το να έχει το μικρότερο βαθμό και συνδέουμε το υ i με το c j ( δηλαδή θέτουμε H( j, i ) = 1 ). Με αυτό τον τρόπο αποτρέπουμε τη δημιουργία ενός επιπρόσθετου κύκλου που θα περιέχει το υ i. [31] 2. αλλά =. Η συνθήκη αυτή υπονοεί ότι o VN υ i μπορεί να φθάσει όλους τους CNs. Σε αυτή την περίπτωση επιλέγουμε ένα CN c j από το l στο επίπεδο που να έχει το μικρότερο βαθμό. Η επιλογή ενός CN από το l στο επίπεδο( το πλέον «μακρινό» από το VN υ i ) γίνεται επειδή ένας CN από το l στο επίπεδο έχει τη μέγιστη δυνατή απόσταση από το VN υ i. Στη συνέχεια προσθέτουμε μια σύνδεση μεταξύ του επιλεγμένου CN c j και του VN υ i ( δηλαδή θέτουμε H( j, i ) = 1 ). Προσθέτοντας μια τέτοια σύνδεση δημιουργούμε έναν κύκλο μήκους 2. ( l + 1 ) στο γράφημα Tanner που κατασκευάζουμε. Επειδή επιλέγουμε ένα CN από το πλέον «μακρινό»( ως προς το VN υ i ) επίπεδο, μεγιστοποιούμε το μήκος του δημιουργούμενου κύκλου και άρα μεγιστοποιούμε το τοπικό girth λ i του VN υ i. [31] που Παρακάτω δίνεται η διαδικασία που περιγράψαμε παραπάνω σε μορφή βημάτων αλγορίθμου. Αλγόριθμος PEG [14], [31] for i = 1 : n, do begin for k = 1 : d υi, do begin if k = 1, then ( 1 ) ( 1 ) E i σύνδεση ( υi, c j ), όπου E i είναι η πρώτη σύνδεση του VN υi και c j είναι ένας CN που έχει το μικρότερο βαθμό στο μερικώς συνδεδεμένο γράφημα Tanner που έχουμε κατασκευάσει μέχρι εκείνη τη στιγμή. else

103 αναπτύσσουμε ένα δένδρο διαδρομών R i ( με το VN υ i ως ρίζα αυτού ) βασιζόμενοι στο μερικώς συνδεδεμένο γράφημα Tanner που έχουμε κατασκευάσει μέχρι εκείνη τη στιγμή. Το δένδρο αναπτύσσεται έως ένα επίπεδο( π.χ. το l στο επίπεδο ) τέτοιο ώστε είτε η πληθυκότητα του N i ( l ) να σταματήσει να αυξάνει( η κατάσταση συνθήκη 1 που περιγράψαμε πιο πάνω ) αλλά να είναι μικρότερη του m είτε αλλά = ( η κατάσταση συνθήκη 2 που περιγράψαμε πιο πάνω ). Τότε E i ( k ) σύνδεση ( υi, c j ), όπου E i ( k ) είναι η k στη σύνδεση του VN υ i και c j είναι ένας CN από το end end που έχει το μικρότερο βαθμό. Να τονίσουμε ότι κατά την κατασκευή του γραφήματος Tanner, η τοποθέτηση των συνδέσεων γίνεται πρώτα για τους VNs με τα μικρότερα βάρη( γι αυτό θεωρούμε ότι τα στοιχεία του n διάστατου διανύσματος d υ, που περιέχει τα βάρη των VNs, είναι ταξινομημένα κατά αύξουσα σειρά ). Αυτό συμβαίνει επειδή οι VNs με μικρά βάρη έχουν μικρό αριθμό συνδέσεων προς αυτούς και συνεπώς δέχονται «μικρό» ποσό πληροφορίας από τους CNs με τους οποίους συνδέονται. Έτσι, επειδή οι VNs με μικρά βάρη δέχονται μικρό ποσό πληροφορίας, θέλουμε η πληροφορία αυτή να είναι όσο το δυνατό πιο αξιόπιστη. Συνεπώς δε θέλουμε οι VNs με μικρά βάρη να συμμετέχουν σε κύκλους( ή θέλουμε να συμμετέχουν σε κύκλους με μεγάλα μήκη ) και γι αυτό το λόγο οι VNs με μικρά βάρη τοποθετούνται ως αρχικοί VNs( επειδή οι πρώτοι VNs στους οποίους τοποθετούνται συνδέσεις δε συμμετέχουν σε κύκλους ή συμμετέχουν σε κύκλους μεγάλου μήκους ). [31] Ο αλγόριθμος PEG μπορεί να χρησιμοποιηθεί για την κατασκευή τόσο κανονικών όσο και μη-κανονικών LDPC κωδίκων. Με τη χρήση του αλγορίθμου PEG κατασκευάζουμε κώδικες με όσο το δυνατό μεγαλύτερο girth. Έτσι η χρήση αυτού του αλγορίθμου είναι ιδιαίτερα ενδεδειγμένη σε περιπτώσεις που θέλουμε να αποφύγουμε την εισαγωγή κύκλων μικρού μήκους( π.χ. κύκλοι μήκους 4 ή 6 ). Επίσης, η χρήση του αλγορίθμου PEG εξασφαλίζει ότι ο πίνακας H που θα προκύψει θα είναι full rank( det( H ) 0 ) και συνεπώς το design rate θα ισούται με [14], [31] τον πραγματικό ρυθμό του κώδικα. Ένα μειονέκτημα του αλγορίθμου PEG είναι δεν μπορούμε να καθορίσουμε εξ αρχής το επιθυμητό girth του κώδικα που κατασκευάζουμε αφού αυτό είναι γνωστό μόνο όταν ολοκληρωθεί η διαδικασία του αλγορίθμου. 5.5 Ο αλγόριθμος ACE Ο αλγόριθμος ACE( θα ορίσουμε παρακάτω τι σημαίνει το ακρωνύμιο ) αποτελεί έναν αλγόριθμο κατασκευής LDPC κωδίκων ο οποίος προσπαθεί να αποφύγει όσο γίνεται περισσότερο τις παγίδες που προκύπτουν κατά την επαναληπτική

104 αποκωδικοποίηση. Οι παγίδες και οι δυσκολίες κατά την επαναληπτική αποκωδικοποίηση προκύπτουν όχι μόνο από την παρουσία των κύκλων αλλά και από την επικάλυψη πολλαπλών κύκλων. Αυτό συμβαίνει επειδή, όπως αναφέραμε σε προηγούμενες ενότητες, οι κύκλοι( και ιδιαίτερα οι μικρού μήκους κύκλοι ) είναι επιρρεπείς στα λάθη κατά την επαναληπτική αποκωδικοποίηση. Ο αλγόριθμος ACE εισήχθη στο [15] το Ο αλγόριθμος ACE διαμορφώθηκε με βάση τις ακόλουθες παρατηρήσεις που έγιναν στο [15] : 1. Σε ένα γράφημα Tanner, του οποίου κάθε VN έχει βαθμό τουλάχιστο 2( κάθε VN έχει τουλάχιστο 2 συνδέσεις με CNs ), κάθε stopping set περιέχει πολλαπλούς κύκλους, εκτός από την ειδική περίπτωση στην οποία όλοι οι VNs που ανήκουν στο stopping set έχουν βαθμό ακριβώς 2( στην περίπτωση αυτή το stopping set περιέχει έναν απλό κύκλο). 2. Για έναν κώδικα με ελάχιστη απόσταση d min, κάθε σύνολο από d min στήλες του πίνακα H των οποίων το άθροισμα δίνει το μηδενικό διάνυσμα, αντιστοιχεί σε ένα σύνολο των VNs το οποίο αποτελεί ένα stopping set. 3. Το προηγούμενο αποτέλεσμα υπονοεί ότι με την αποφυγή μικρών stopping sets κατά τη σχεδίαση και την κατασκευή ενός LDPC κώδικα, αποφεύγουμε ο κώδικας που κατασκευάζουμε να έχει μικρή ελάχιστη απόσταση d min. Από τις παραπάνω παρατηρήσεις προκύπτει το συμπέρασμα ότι ένας κώδικας ο οποίος είναι κατάλληλα σχεδιασμένος για επαναληπτική αποκωδικοποίηση, θα πρέπει να έχει ελάχιστο μέγεθος για τα stopping sets όσο το δυνατό μεγαλύτερο. Ένας τρόπος για να επιτευχθεί αυτό είναι με τη μεγιστοποίηση του girth του γραφήματος Tanner του κώδικα χρησιμοποιώντας τον αλγόριθμο PEG. Παρ όλα αυτά όμως, αυτό δεν είναι αρκετό. [31] Ο αλγόριθμος ACE προσπαθεί να πετύχει όσο το δυνατό μεγαλύτερη συνδεσιμότητα των VNs που περιέχονται σε ένα κύκλο με CNs που βρίσκονται έξω από τον κύκλο αυτό. Με αυτό τον τρόπο, πληροφορία από το εξωτερικό του κύκλου εισέρχεται στον κύκλο αυτό. Αυτή την πληροφορία την ονομάζουμε [15], [31] εξωγενή( extrinsic ) πληροφορία και είναι ιδιαίτερα χρήσιμη. Για την περιγραφή του αλγορίθμου ACE χρειάζεται να προβούμε στους παρακάτω ορισμούς. Ένας εξωγενής( σχετικά με τους VNs ενός κύκλου ) CN είναι ένας CN ο οποίος συνδέεται στον μια και μόνο φορά. Ο εξωγενής βαθμός μηνύματος( extrinsic message degree EMD ) για έναν κύκλο είναι ο αριθμός των εξωγενών CNs οι οποίοι συνδέονται στον κύκλο αυτό. Το προσεγγιστικό EMD για έναν κύκλο( approximate cycle EMD ACE ) μήκους 2δ είναι το μέγιστο δυνατό EMD για τον κύκλο αυτό. [31] Επειδή ένας VN βαθμού d ο οποίος ανήκει σε κύκλο, μπορεί να συνδέεται το πολύ με d 2 εξωγενείς CNs, το ACE για έναν κύκλο μήκους 2δ θα [31] δίν εται από τη σχέση : di 2 i 1 ( 5.1 )

105 όπου d i είναι ο βαθμός του i στου VN που ανήκει στον κύκλο μήκους 2δ. Παρατηρούμε ότι το άθροισμα ε είναι απλά ο αριθμός των συνδέσεων που συνδέουν τον κύκλο μήκους 2δ με το υπόλοιπο γράφημα Tanner, εξωτερικά του κύκλου. Το ACE αποτελεί ένα μέτρο για τη συνδεσιμότητα ενός κύκλου με το υπόλοιπο γράφημα Tanner. Όσο μεγαλύτερο είναι το ACE ενός κύκλου τόσο περισσότερη πληροφορία από το εξωτερικό του κύκλου αυτού είναι διαθέσιμη για τους VNs που ανήκουν στον κύκλο. [31] Ο αλγόριθμος ACE δημιουργεί ένα γράφημα Tanner( ισοδύναμα έναν πίνακα H ) κατά τέτοιο τρόπο ώστε οι κύκλοι( και κυρίως οι μικρού μήκους κύκλοι ) να έχουν όσο το δυνατό πιο μεγάλο EMD. [15], [31] Έτσι οδηγεί σε ( δ ACE, ε ) LDPC κώδικες, οι οποίοι ορίζονται ως LDPC κώδικες των οποίων οι κύκλοι μήκους δ ACE ή λιγότερο έχουν τιμές ACE ε ή περισσότερο. Ο αλγόριθμος ξεκινά με το VN μικρότερου βαθμού( στήλη του H με το μικρότερο βάρος ) και προχωρά προς τους VNs( στήλες του H ) με αυξανόμενο βαθμό( μη μειούμενο ). [31] Κάθε( τυχαία παραγόμενη ) υποψήφια στήλη για τον πίνακα H, προστίθεται μόνο αν : 1. Η προσθήκη αυτής της στήλης δε δημιουργεί κανένα κύκλο ή δημιουργεί κύκλο μήκους μεγαλύτερο από δ ACE. [31] 2. Η προσθήκη αυτής της στήλης δημιουργεί ένα κύκλο μήκους δ ACE ή λιγότερο και η τιμή ACE αυτού του κύκλου είναι ε ή περισσότερο. [31] Μια αξιοσημείωτη περίπτωση, που αξίζει να αναφέρουμε, είναι ο συνδυασμός του αλγορίθμου PEG με τον αλγόριθμο ACE, ο οποίος οδηγεί σε έναν υβριδικό PEG/ACE αλγόριθμο. Ο αλγόριθμος αυτός προτάθηκε στο [16] το 2004 και οδηγεί σε ένα βελτιωμένο αλγόριθμο PEG( improved PEG algorithm ). Ο αλγόριθμος PEG/ACE είναι ίδιος με τον αλγόριθμο PEG με εξαίρεση την περίπτωση όπου k 2, και =, όταν δημιουργούμε το δένδρο διαδρομών R i με το υ i ως ρίζα. Σε αυτή την περίπτωση, ενδέχεται να υπάρχουν περισσότεροι από ένας υποψήφιοι CNs με το μικρότερο βαθμό. Αν συμβολίσουμε ( l, k ) με V 2,i το σύνολο των υποψήφιων( με το μικρότερο βαθμό ) CNs που ανήκουν ( l, k ) στο τότε για κάθε CN c j V 2,i, υπάρχει τουλάχιστον μια διαδρομή μήκους 2. l + 1 μεταξύ του υ i και του c j, αλλά δεν υπάρχει καμιά άλλη μικρότερη διαδρομή ( k ) μεταξύ των δύο αυτών κόμβων. Συνεπώς η τοποθέτηση μιας σύνδεσης E i μεταξύ των υ i και c j θα δημιουργήσει τουλάχιστον έναν κύκλο μήκους 2. ( l + 1 ), αλλά κανένα κύκλο μικρότερου μήκους. Στον αλγόριθμο PEG επιλέγουμε τυχαία ένα CN ( l, k ) από το V 2,i. Στον βελτιωμένο αλγόριθμο PEG όμως η επιλογή ενός CN cmax από ( l, k ) το V 2,i γίνεται κατά τέτοιο τρόπο ώστε οι δημιουργούμενοι, νέοι κύκλοι( που προκύπτουν από τη σύνδεση του υ i με το c max ) να έχουν το μέγιστο δυνατό ACE. [31] Ο βελτιωμένος αλγόριθμος PEG οδηγεί σε LDPC κώδικες με καλύτερη απόδοση στην περιοχή των υψηλών SNR( περιοχή error floor ) από τους LDPC κώδικες που κατασκευάζονται με τον κλασσικό αλγόριθμο PEG. [16], [31] Η βελτίωση αυτή

106 έρχεται χωρίς υποβάθμιση της απόδοσης στα χαμηλά SNR και μπορεί να φανεί στην παρακάτω εικόνα. Εικόνα 5.2 Σύγκριση της απόδοσης δύο ( 4088, 2044 ) μη κανονικών LDPC κωδίκων εκ των οποίων ο ένας κατασκευάζεται με τον κλασσικό αλγόριθμο PEG και ο άλλος με το βελτιωμένο αλγόριθμο PEG. [31] 5.6 Παρατηρήσεις πάνω στην κατασκευή μη κανονικών LDPC κωδίκων Όπως αναφέραμε στο πρώτο κεφάλαιο, η επιλογή μη κανονικών LDPC κωδικών μπορεί να οδηγήσει σε σημαντική βελτίωση των επιδόσεων του κώδικα και πολύ κοντά στο όριο Shannon. Η βασική ιδέα που βρίσκεται πίσω από τους μη κανονικούς LDPC κώδικες είναι η εξής : τα κωδικά bits που αντιστοιχούν σε στήλες με μεγάλο βάρος θα ελέγχονται από περισσότερες εξισώσεις ελέγχου ισοτιμίας και συνεπώς θα μπορούν να αποκωδικοποιηθούν πιο αξιόπιστα. Τα μηνύματα( που θεωρούνται αρκετά αξιόπιστα ) αυτά στη συνέχεια χρησιμοποιούνται για την αποκωδικοποίηση των κωδικών bits που αντιστοιχούν σε [31], [33] στήλες με μικρό βάρος. Η παραπάνω ιδέα μπορεί να χρησιμοποιηθεί αποτελεσματικά για να μειώσουμε σημαντικά την επίδραση των κύκλων κατά την αποκωδικοποίηση του LDPC

107 κώδικα. Έτσι λοιπόν οι VNs με μεγαλύτερο βαθμό λαμβάνουν περισσότερη πληροφορία από γειτονικούς CNs σε σχέση με VNs με μικρό βαθμό. Γι' αυτό φροντίζουμε οι VNs με μικρότερα βάρη να μη συμμετέχουν σε κύκλους ή να συμμετέχουν σε κύκλους με όσο το δυνατό μεγαλύτερο μήκος, έτσι ώστε να λαμβάνουν όσο το δυνατό πιο αξιόπιστη πληροφορία( δέχονται λίγη πληροφορία γι' αυτό πρέπει να είναι και αξιόπιστη). Για το λόγο αυτό, ξεκινάμε την κατασκευή του πίνακα H ενός LDPC κώδικα, κατασκευάζοντας πρώτα τις στήλες με μικρά βάρη και προχωράμε στη συνέχεια προς τις στήλες με μεγαλύτερα βάρη. [31] Να σημειώσουμε ότι για να βελτιώσουμε το κατώφλι της περιοχής καταρράκτη για έναν μη κανονικό LDPC κώδικα, μας ενδιαφέρει να βελτιστοποιήσουμε την κατανομή βαρών( ή ισοδύναμα την κατανομή βαθμών ) του κώδικα αυτού. Ενώ όμως ένα μεγάλο εύρος της κατανομής βαρών των στηλών μπορεί να βελτιώσει το κατώφλι του κώδικα στην περιοχή καταρράκτη, τα βάρη των γραμμών δε χρειάζεται να διαφέρουν πολύ μεταξύ τους. Έτσι μια σχεδόν ομοιόμορφη κατανομή [31], [33] βαρών των γραμμών του πίνακα H είναι αρκετά ικανοποιητική

108 ΚΕΦΑΛΑΙΟ 6 Αποτελέσματα προσομοίωσης 6.1 Εισαγωγή Στο κεφάλαιο αυτό θα παρουσιάσουμε τις επιδόσεις των LDPC κωδίκων όπως αυτές προέκυψαν μέσω προσομοιώσεων που πραγματοποιήθηκαν με τη χρήση υπολογιστή. Συγκεκριμένα θα μελετήσουμε τις BER καμπύλες των LDPC κωδίκων και θα δούμε πως επιδρούν σε αυτές σημαντικοί παράγοντες, όπως το μήκος n του κώδικα, η τεχνική κατασκευής του πίνακα Η και η χρήση soft decision ή hard decision αποκωδικοποίησης. Οι πηγαίοι κώδικες των προσομοιώσεων γράφτηκαν με τη χρήση του λογισμικού Matlab. Το κανάλι με το οποίο ασχοληθήκαμε καθ όλη τη διάρκεια των προσομοιώσεων ήταν το AWGN κανάλι( είτε ως Binary Input AWGN για τη soft decision αποκωδικοποίηση είτε Binary Input Binary Output AWGN για τη hard decision αποκωδικοποίηση ). Επίσης η διαμόρφωση που χρησιμοποιήσαμε για τη μετάδοση των ψηφιακών δεδομένων μέσα από το συγκεκριμένο κανάλι ήταν η BPSK διαμόρφωση. 6.2 Επίδραση του μήκους n του κώδικα Η επίδραση του μήκους n του κώδικα είναι καθοριστικότατη σε ότι αφορά τις επιδόσεις του κώδικα. Όπως αναφέραμε, η εκρηκτική ανάπτυξη των LDPC κωδικών οφείλεται στη δυνατότητα που παρέχουν για τη χρήση σχεδόν βέλτιστης, επαναληπτικής αποκωδικοποίησης. Αυτό με τη σειρά του μας επιτρέπει να χρησιμοποιήσουμε αρκετά μεγάλα μήκη για τους κώδικες και συνεπώς να επιτυγχάνουμε αρκετά υψηλές επιδόσεις. Στην παρακάτω εικόνα φαίνονται οι επιδόσεις ενός ( 3, 6 ) κανονικού LDPC κώδικα με ρυθμό 1 / 2, για διάφορες τιμές του μήκους n. Ο πίνακας ελέγχου ισοτιμίας H του κώδικα κατασκευάστηκε με τη μέθοδο MacKay Neal. Η αποκωδικοποίηση του κώδικα έγινε με τη χρήση του soft decision αλγορίθμου SPA με μέγιστο επαναλήψεων I max =

109 ( Eb / No ) Shannon ( Eb / No ) soft n = 1000 n = 500 n = BER Eb / No db Εικόνα 6.1 BER καμπύλες ενός ( 3, 6 ) κανονικού LDPC κώδικα για μήκη κώδικα n = 100, n = 500 και n = Επίσης φαίνεται το όριο Shannon και το όριο για soft decision αποκωδικοποίηση για έναν κώδικα ρυθμού 1 / 2. Όπως μπορούμε να παρατηρήσουμε, καθώς το μήκος n του κώδικα αυξάνει οι επιδόσεις αυτού βελτιώνονται σημαντικά. Μάλιστα η «απόσταση» μεταξύ των καμπυλών αυξάνει με την αύξηση του E b / N o. Αυτό συμβαίνει μέχρι και την περιοχή του error floor όπου από εκεί και μετά η απόσταση των καμπυλών αυξάνει με πολύ μικρό ρυθμό. Οι παραπάνω καμπύλες βέβαια απέχουν αρκετά από το όριο για soft decision αποκωδικοποίηση ενός κώδικα ρυθμού 1 / 2 το οποίο είναι στα db. Αυτό οφείλεται στο γεγονός ότι τα μήκη n που έχουμε επιλέξει για τον κώδικά μας δεν είναι επαρκώς μεγάλα( π.χ. της τάξης του 10 5 ). Επίσης, για να προσεγγίσουμε το παραπάνω όριο, μπορούμε να πραγματοποιήσουμε καλύτερο σχεδιασμό του LDPC κώδικα( π.χ. να χρησιμοποιήσουμε ένα μη κανονικό LDPC κώδικα με κατάλληλη κατανομή βαθμών ) ή να χρησιμοποιήσουμε μια διαφορετική τεχνική κατασκευής του πίνακα H( π.χ. με τη χρήση του αλγορίθμου PEG ή του Improved PEG ). Τα παραπάνω οδηγούν σε βελτίωση των δομικών χαρακτηριστικών του κώδικα

110 6.3 Επίδραση του τρόπου κατασκευής του κώδικα Κατά τη διάρκεια των προσομοιώσεων, ασχοληθήκαμε κυρίως με τρεις τρόπους κατασκευής του πίνακα ελέγχου ισοτιμίας H : 1) τη μέθοδο του Gallager, 2) τη μέθοδο MacKay Neal και 3) τη μέθοδο με χρήση του αλγορίθμου PEG. Οι τρεις αυτές τεχνικές αναλύθηκαν διεξοδικά στο πέμπτο κεφάλαιο. Η παρακάτω εικόνα δείχνει τις επιδόσεις ενός ( 3, 6 ) κανονικού LDPC κώδικα με ρυθμό 1 / 2 και μήκος n = 1000, του οποίου ο πίνακας H κατασκευάζεται με τις τρεις προαναφερθείσες τεχνικές. Η αποκωδικοποίηση του κώδικα έγινε με τη χρήση του soft decision αλγορίθμου SPA με μέγιστο επαναλήψεων I max = Gallager MacKay PEG ( Eb / No ) Shannon ( Eb / No ) soft 10-2 BER Eb / No db Εικόνα 6.2 BER καμπύλες ενός ( 3, 6 ) κανονικού LDPC κώδικα για μήκος κώδικα n = 1000 ο οποίος κατασκευάζεται είτε με τη μέθοδο του Gallager είτε με τη μέθοδο MacKay Neal είτε με τη χρήση του αλγορίθμου PEG. Επίσης φαίνεται το όριο Shannon και το όριο για soft decision αποκωδικοποίηση για έναν κώδικα ρυθμού 1 / 2. Από τα αποτελέσματα των προσομοιώσεων παρατηρούμε ότι οι τρεις τεχνικές οδηγούν σε παρόμοιες επιδόσεις( για το συγκεκριμένο ( 3, 6 ) κανονικό LDPC κώδικα ). Οι BER καμπύλες αρχίζουν να διαχωρίζονται από τα 2.6 db και μετά. Έτσι παρατηρούμε ότι, από τα 2.6 db και μετά, η χρήση του αλγορίθμου PEG οδηγεί σε ελαφρώς καλύτερες επιδόσεις από τις άλλες δύο τεχνικές, αν και η

111 καμπύλη της μεθόδου MacKay Neal είναι πάρα πολύ κοντά σε αυτήν του αλγορίθμου PEG. Η καμπύλη της μεθόδου του Gallager βρίσκεται κάπως πιο μακριά από τις άλλες δύο καμπύλες( στα υψηλότερα SNR ). 6.4 Σύγκριση των αλγορίθμων SPA και Bit Flipping Όπως είδαμε και στο τέταρτο κεφάλαιο, ο αλγόριθμος SPA είναι ένας soft decision αλγόριθμος αποκωδικοποίησης ενώ ο αλγόριθμος Bit Flipping είναι ένας hard decision αλγόριθμος αποκωδικοποίησης. Κατά τη διάρκεια της εργασίας αυτής, προσομοιώσαμε τη συμπεριφορά τόσο του αλγορίθμου SPA όσο και του αλγορίθμου Bit Flipping. Τα αποτελέσματα φαίνονται στην παρακάτω εικόνα για έναν ( 3, 6 ) κανονικό LDPC κώδικα με ρυθμό 1 / 2 και μήκος n = 500, του οποίου ο πίνακας H κατασκευάστηκε με τη μέθοδο MacKay Neal Uncoded BPSK Bit Flipping SPA ( Eb / No ) Shannon ( Eb / No ) soft ( Eb / No ) hard 10-2 BER Eb / No db Εικόνα 6.3 BER καμπύλες ενός ( 3, 6 ) κανονικού LDPC κώδικα για μήκος κώδικα n = 500 ο οποίος κατασκευάζεται τη μέθοδο MacKay Neal και αποκωδικοποιείται είτε με τη χρήση του αλγορίθμου SPA είτε με τη χρήση του αλγορίθμου Bit Flipping. Παράλληλα δίνεται και η BER καμπύλη για μη κωδικοποιημένη BPSK μετάδοση. Επίσης φαίνεται το όριο Shannon, το όριο για soft decision αποκωδικοποίηση και το όριο για hard decision αποκωδικοποίηση για έναν κώδικα ρυθμού 1 /

112 Κατ αρχήν παρατηρούμε ότι η χρήση του αλγορίθμου SPA οδηγεί σε πολύ καλύτερες επιδόσεις τόσο σε σχέση με τη χρήση του αλγορίθμου Bit Flipping όσο και σε σχέση με τη μη χρήση κωδικοποίησης κατά τη μετάδοση της πληροφορίας. Παρατηρούμε όμως ότι η χρήση του αλγορίθμου Bit Flipping οδηγεί σε πολύ κακές επιδόσεις. Μάλιστα οδηγεί σε χειρότερες επιδόσεις ακόμη και σε σχέση με το μη κωδικοποιημένο BPSK. Φαίνεται ο αλγόριθμος Bit Flipping να δίνει κάπως καλύτερες επιδόσεις από το μη κωδικοποιημένο BPSK όταν το SNR ξεπερνά τα 5.5 db. Έτσι μέσα από τις προσομοιώσεις καταλήξαμε στο συμπέρασμα ότι ενώ ο αλγόριθμος SPA λειτουργεί ικανοποιητικά. Αντίθετα ο αλγόριθμος Bit Flipping δε φαίνεται να αποδίδει τα αναμενόμενα αποτελέσματα, αφού οδηγεί σε χειρότερα αποτελέσματα ακόμη και σε σχέση με το μη κωδικοποιημένο BPSK το οποίο φαίνεται να ξεπερνάει σε επιδόσεις στα πολύ υψηλά SNR Παρατηρήσεις και δυσκολίες πάνω στις προσομοιώσεις Κατά τη διάρκεια της υλοποίησης των προσομοιώσεων αντιμετωπίστηκαν δύο κύρια προβλήματα. Το πρώτο ζήτημα είχε να κάνει με τον τρόπο εφαρμογής της απαλοιφής Gauss. Κατά την απαλοιφή Gauss, εκτός από στοιχειώδης πράξεις επί των γραμμών στον πίνακα H, επιτρέψαμε και την εφαρμογή αντιμεταθέσεων στηλών. Με αυτό τον τρόπο όμως ο τελικός και αρχικός πίνακας H δεν περιέγραφαν τον ίδιο κώδικα. Έτσι τα αποτελέσματα που παίρναμε κατά την αποκωδικοποίηση ήταν πολύ άσχημα. Η λύση στο θέμα αυτό προέκυψε με την αποθήκευση των αντιμεταθέσεων των στηλών που εφαρμόστηκαν κατά τη διάρκεια της απαλοιφής Gauss και στη συνέχεια με τη μεταφορά των αντιμεταθέσεων αυτών στον αρχικό πίνακα H. Έτσι ο αρχικός και τελικός πίνακας H περιέγραφαν πλέον τον ίδιο κώδικα. Το θέμα αυτό παρουσιάζεται αναλυτικά στο Παράρτημα B αλλά και στο κεφάλαιο 3. Το δεύτερο πρόβλημα είχε να κάνει με την εμφάνιση απροσδιόριστων μορφών( NaNs ) κατά την υλοποίηση του αλγορίθμου SPA. Έτσι όλες οι μορφές του αλγορίθμου SPA( από αυτές που περιγράψαμε στο κεφάλαιο 4 ) οδηγούσαν στην εμφάνιση NaNs ως τιμές των LLRs. Το γεγονός αυτό οδηγούσε σε λανθασμένα αποτελέσματα για την εκτίμηση των επιδόσεων των LDPC κωδίκων. Η λύση στο θέμα αυτό δόθηκε με την εφαρμογή της μεθόδου υλοποίησης του SPA που περιγράφεται στην ενότητα Η εφαρμογή αυτής της μεθόδου είχε ως αποτέλεσμα τη μη εμφάνιση NaNs και συνεπώς την αριθμητική ευστάθεια του αλγορίθμου. Τέλος ένα γεγονός που αξίζει να αναφέρουμε είναι η σύγκριση της ταχύτητας του αλγορίθμου SPA όπως εμείς τον υλοποιήσαμε με την ταχύτητα του SPA που διαθέτει το MATLAB. Έτσι ο αλγόριθμος αποκωδικοποίησης των LDPC κωδίκων( με χρήση του SPA ) που διαθέτει το MATLAB είναι αρκετά πιο γρήγορος από τον αλγόριθμο αποκωδικοποίησης που υλοποιήσαμε εμείς

113 ΚΕΦΑΛΑΙΟ 7 Εφαρμογές 7.1 Εισαγωγή Όπως είδαμε και στο πρώτο κεφάλαιο, από το 2001( όπου έγιναν εμφανείς οι εντυπωσιακές δυνατότητες των μη κανονικών LDPC κωδίκων ) και μετά η ανάπτυξη και η χρήση των LDPC κωδίκων ήταν εκρηκτική. Στο κεφάλαιο αυτό θα παρουσιάσουμε τους τομείς και τα πρότυπα πάνω στα οποία βρίσκουν εφαρμογές οι LDPC κώδικες. 7.2 Εφαρμογές στην ψηφιακή τηλεόραση Οι LDPC κώδικες βρίσκουν εφαρμογή τόσο στην επίγεια όσο και στη δορυφορική ψηφιακή τηλεόραση. Το 2003 οι LDPC κώδικες κατόρθωσαν να ξεπεράσουν( σε επιδόσεις ) έξι Turbo κώδικες και έτσι αποτέλεσαν το βασικό σχήμα κωδικοποίησης για το πρότυπο DVB-S2( Digital Video Broadcasting Satellite 2 ). [43] Πιο συγκεκριμένα, το πρότυπο DVB S2 χρησιμοποιεί ένα σχήμα αλυσιδωτής κωδικοποίησης. Ο εσωτερικός κώδικας είναι ένας LDPC κώδικας με σύνηθες μήκος n = Εναλλακτικά μπορεί να χρησιμοποιηθεί μικρότερο μήκος κώδικα n = Ο κώδικας αυτός είναι ικανός να διορθώνει ένα μεγάλο αριθμό λαθών, αλλά υποφέρει στα σχετικά υψηλά SNR από το error floor. Ο εξωτερικός είναι ένας αλγεβρικός BCH κώδικας που εισάγεται για την αποφυγή του error-floor στα χαμηλά BER( σχετικά υψηλά SNR ) και είναι ικανός να διορθώνει πρακτικά όλα τα λάθη που ξεφεύγουν από τον LDPC κώδικα. [37], [43], [44] Ο αλυσιδωτός συνδυασμός των δύο αυτών κωδίκων οδηγεί σε έναν ισχυρό κώδικα με PEC( packet error rate ) της τάξης του 10-7 στα 0.7 db 1.2 db από το όριο Shannon. [37] Τυπικοί ρυθμοί για τον LDPC κώδικα είναι : 1) για μήκος κώδικα οι ρυθμοί είναι 1/5, 1/3, 2/5, 4/9, 3/5, 2/3, 11/15, 7/9, 37/45, 8/9 ενώ 2) για μήκος κώδικα οι ρυθμοί είναι 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10. [44] Το πρότυπο DVB T2( Digital Video Broadcasting Terrestrial 2 ) για την επίγεια ψηφιακή τηλεόραση εγκρίθηκε επισήμως το Το πρότυπο αυτό υιοθετεί ένα σχήμα αλυσιδωτής κωδικοποίησης για να πετύχει Forward Error Correction όπως ακριβώς και το DVB S2. Έτσι ως εξωτερικός κώδικας χρησιμοποιείται ένας αλγεβρικός BCH κώδικας ώστε να αντιμετωπιστεί το error floor στα χαμηλά BER. Ως εσωτερικός κώδικας χρησιμοποιείται ένας LDPC κώδικας με σύνηθες μήκος n = Εναλλακτικά μπορεί να χρησιμοποιηθεί [38], [43], [44] μικρότερο μήκος κώδικα n =

114 Οι ρυθμοί που χρησιμοποιούνται στην πράξη για τον LDPC κώδικα είναι : 1) για μήκος κώδικα οι ρυθμοί είναι 1/5, 4/9, 3/5, 2/3, 11/15, 7/9, 37/45 ενώ 2) για μήκος κώδικα οι ρυθμοί είναι 1/2, 3/5, 2/3, 3/4, 4/5, 5/6. [44] [40], [44] ΠΙΝΑΚΑΣ 7.1 Τεχνικά χαρακτηριστικά του προτύπου DVB T2 Το πρότυπο DVB C2( Digital Video Broadcasting Cable 2 ) για την καλωδιακή ψηφιακή τηλεόραση εγκρίθηκε επισήμως το Το πρότυπο αυτό υιοθετεί επίσης ένα σχήμα αλυσιδωτής κωδικοποίησης όπως ακριβώς και τα DVB S2 και DVB T2. Έτσι ως εξωτερικός κώδικας χρησιμοποιείται ένας αλγεβρικός BCH κώδικας ενώ ως εσωτερικός κώδικας χρησιμοποιείται ένας LDPC κώδικας με σύνηθες μήκος n = 64800( ή εναλλακτικά μπορεί να χρησιμοποιηθεί μικρότερο [39], [43], [44] μήκος κώδικα n = ). Οι ρυθμοί που χρησιμοποιούνται για τον LDPC κώδικα στο DVB C2 είναι μεγαλύτεροι από ότι στα DVB S2 και DVB Τ2. Αυτό συμβαίνει διότι στα καλωδιακά δίκτυα μπορούν να χρησιμοποιηθούν υψηλότερα SNR και άρα και υψηλότεροι ρυθμοί. Οι ρυθμοί που χρησιμοποιούνται στην πράξη για τον LDPC κώδικα είναι : 1) για μήκος κώδικα οι ρυθμοί είναι 4/9, 2/3, 11/15, 7/9, 37/45, 8/9 ενώ 2) για μήκος κώδικα οι ρυθμοί είναι 2/3, 3/4, 4/5, 5/6, 9/10. [44] Τα πρότυπα DVB S2, DVB T2 και DVB C2 χρησιμοποιούν την ίδια μορφή πίνακα ελέγχου ισοτιμίας. Η μορφή αυτή είναι ιδιαίτερα χαρακτηριστική και [40], [44] φαίνεται στην παρακάτω εικόνα

115 Εικόνα 7.1 Γενική μορφή του πίνακα ελέγχου ισοτιμίας H για τα πρότυπα DVB S2, DVB T2 και DVB C2 για n = και ρυθμό 2 / 3. Οι μπλε γραμμές δηλώνουν τις θέσεις των 1 στον πίνακα H. Παρόμοια μορφή έχει ο πίνακας Η και για n = και για τους υπόλοιπους ρυθμούς. [40] Συγκεκριμένα ο πίνακας H έχει τη μορφή Η = [ Α (n k)xk B (n k)x(n k) ], όπου ο πίνακας Α είναι ένας αραιός πίνακας τυχαίας μορφής και ο πίνακας Β είναι ένας σκαλωτός, κάτω τριγωνικός πίνακας που έχει τη μορφή [40], [44] : Η παραπάνω μορφή του πίνακα H επιλέχθηκε ώστε να εξυπηρετεί την γρήγορη κωδικοποίηση. Έτσι, όπως προκύπτει από τη μορφή του πίνακα H, για την παραγωγή ενός bit ελέγχου ισοτιμίας απαιτείται μόνο η γνώση των bits πληροφορίας και του προηγούμενου bit ελέγχου ισοτιμίας. Με τον τρόπο αυτό [40], [44] επιτυγχάνεται πολυπλοκότητα κωδικοποίησης γραμμικού χρόνου( Ο( n ) )

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

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

Διαβάστε περισσότερα

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

Τμήμα Μηχανικών Η/Υ και Πληροφορικής Τμήμα Μηχανικών Η/Υ και Πληροφορικής Εργαστήριο Επεξεργασίας Σημάτων και Τηλεπικοινωνιών Ασύρματες και Κινητές Επικοινωνίες Κωδικοποίηση καναλιού Τι θα δούμε στο μάθημα Σύντομη εισαγωγή Γραμμικοί κώδικες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Nέες Τεχνολογίες. στις Επικοινωνίες Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Τμήμα Πληροφορικής & Επικοινωνιών Nέες Τεχνολογίες στις Επικοινωνίες Δρ. Δημήτριος Ευσταθίου Επίκουρος Καθηγητής Κώδικες Διόρθωσης Λαθών Τεχνολογικό Εκπαιδευτικό

Διαβάστε περισσότερα

ΚΩΔΙΚΕΣ LDPC Τεχνικές Κωδικοποίησης

ΚΩΔΙΚΕΣ LDPC Τεχνικές Κωδικοποίησης ΚΩΔΙΚΕΣ LDPC Τεχνικές Κωδικοποίησης 2010-2011 1 Καράς Δημήτριος, ΑΕΜ 6375 Χρόνης Θεόδωρος, ΑΕΜ 2628 Ημερομηνία: 25-10-2011 Κώδικες LDPC Ιστορικά στοιχεία LDPC: Low Density Parity Check, χαμηλής πυκνότητας

Διαβάστε περισσότερα

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

Τηλεπικοινωνιακά Συστήματα ΙΙ Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 13: Συνελικτικοί Κώδικες Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Κώδικες: Εισαγωγή Συνελικτικοί κώδικες Ατζέντα Ιστορική αναδρομή Μαθηματικό υπόβαθρο Αναπαράσταση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Θεωρία Πληροφορίας. Διάλεξη 12:Κωδικοποίηση Καναλιού με Κώδικες Turbo. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής Θεωρία Πληροφορίας Διάλεξη 12:Κωδικοποίηση Καναλιού με Κώδικες Turbo Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα 1. Κώδικες turbo 2 Κώδικες Turbo Η ιδέα για τους κώδικες turbo διατυπώθηκε για

Διαβάστε περισσότερα

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

Τηλεπικοινωνιακά Συστήματα ΙΙ Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 1: Χωρητικότητα Καναλιών Το θεώρημα Shannon - Hartley Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα 1. Δυαδική σηματοδοσία 2. Μορφές δυαδικής σηματοδοσίας 3.

Διαβάστε περισσότερα

Αντικείμενο και συνεισφορά της Διπλωματικής Εργασίας Οι LDPC κώδικες χρησιμοποιούνται ευρέως στις μέρες μας σε ψηφιακά τηλεπικοινωνιακά συστήματα ασύρ

Αντικείμενο και συνεισφορά της Διπλωματικής Εργασίας Οι LDPC κώδικες χρησιμοποιούνται ευρέως στις μέρες μας σε ψηφιακά τηλεπικοινωνιακά συστήματα ασύρ ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΓΙΑ LDPC ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΕΣ ΔΙΑΚΟΓΙΑΝΝΗΣ ΑΡΤΕΜΙΟΣ Μεταπτυχιακό Πρόγραμμα ΟΣΥΛ Πανεπιστήμιο Πατρών - Πολυτεχνική Σχολή Μεταπτυχιακή Εργασία στα πλαίσια απονομής Διπλώματος στα Ολοκληρωμένα

Διαβάστε περισσότερα

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

Μάθημα Εισαγωγή στις Τηλεπικοινωνίες Κωδικοποίηση πηγής- καναλιού Μάθημα 9o Μάθημα Εισαγωγή στις Τηλεπικοινωνίες Κωδικοποίηση πηγής- καναλιού Μάθημα 9o ΕΘΝΙΚΟ & ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τομέας Επικοινωνιών και Επεξεργασίας Σήματος Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Μοντέλο Επικοινωνίας Δεδομένων. Επικοινωνίες Δεδομένων Μάθημα 6 ο Μοντέλο Επικοινωνίας Δεδομένων Επικοινωνίες Δεδομένων Μάθημα 6 ο Εισαγωγή Με τη βοήθεια επικοινωνιακού σήματος, κάθε μορφή πληροφορίας (κείμενο, μορφή, εικόνα) είναι δυνατόν να μεταδοθεί σε απόσταση. Ανάλογα

Διαβάστε περισσότερα

Σχεδίαση αποκωδικοποιητή VLSI για κώδικες LDPC

Σχεδίαση αποκωδικοποιητή VLSI για κώδικες LDPC ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Μεταπτυχιακό Δίπλωμα Ειδίκευσης «Ολοκληρωμένα Συστήματα Υλικού & Λογισμικού» Σχεδίαση αποκωδικοποιητή VLSI για κώδικες LDPC Τσατσαράγκος Ιωάννης Μεταπτυχιακή

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ. Εργαστήριο 8 ο. Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ. Εργαστήριο 8 ο. Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα Τμήμα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ Εργαστήριο 8 ο Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα Βασική Θεωρία Σε ένα σύστημα μετάδοσης

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Θ.Ε. ΠΛΗ22 (2012-13) ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ #4. Έκδοση v2 με διόρθωση τυπογραφικού λάθους στο ερώτημα 6.3 Στόχος: Βασικό στόχο της 4 ης εργασίας αποτελεί η εξοικείωση με τα μέτρα ποσότητας πληροφορίας τυχαίων

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΥΛΟΠΟΙΗΣΗ (ΣΕ ΛΟΓΙΣΜΙΚΟ) ΚΩ ΙΚΑ ΤΥΠΟΥ TURBO ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΗΣ ΚΟΥΤΡΟΥΜΑΝΗ ΟΛΓΑΣ του ΑΘΑΝΑΣΙΟΥ

Διαβάστε περισσότερα

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

Ψηφιακές Τηλεπικοινωνίες. Πιθανότητα Σφάλματος για Δυαδική Διαμόρφωση Ψηφιακές Τηλεπικοινωνίες Πιθανότητα Σφάλματος για Δυαδική Διαμόρφωση Σύνδεση με τα Προηγούμενα Σχεδιάστηκε ο βέλτιστος δέκτης για κανάλι AWGN Επειδή πάντοτε υπάρχει ο θόρυβος, ακόμη κι ο βέλτιστος δέκτης

Διαβάστε περισσότερα

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

Συστήματα Επικοινωνιών Συστήματα Επικοινωνιών Ενότητα 5: Μαθιόπουλος Παναγιώτης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιγραφή ενότητας Πλεονεκτήματα-Μειονεκτήματα ψηφιακών επικοινωνιών, Κριτήρια Αξιολόγησης

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Σχολή Θετικών Επιστημών Τεχνολογίας Τηλεπικοινωνιών Τμήμα Επιστήμης και Τεχνολογίας Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΠΙΚΟΙΝΩΝΙΕΣ ΙI Εργαστήριο 8 ο : Προσαρμοσμένα Φίλτρα Βασική

Διαβάστε περισσότερα

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

Ψηφιακές Τηλεπικοινωνίες. Βέλτιστος Δέκτης Ψηφιακές Τηλεπικοινωνίες Βέλτιστος Δέκτης Σύνδεση με τα Προηγούμενα Επειδή το πραγματικό κανάλι είναι αναλογικό, κατά τη διαβίβαση ψηφιακής πληροφορίας, αντιστοιχίζουμε τα σύμβολα σε αναλογικές κυματομορφές

Διαβάστε περισσότερα

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

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM) Παλμοκωδική Διαμόρφωση Pulse Code Modulation (PCM) Pulse-code modulation (PCM) Η PCM είναι ένας στοιχειώδης τρόπος διαμόρφωσης που δεν χρησιμοποιεί φέρον! Το μεταδιδόμενο (διαμορφωμένο) σήμα PCM είναι

Διαβάστε περισσότερα

"Μελέτη της Συμπεριφοράς Αποκωδικοποιητών LDPC στην περιοχή του Error Floor"

Μελέτη της Συμπεριφοράς Αποκωδικοποιητών LDPC στην περιοχή του Error Floor ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ "ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ" Διπλωματική Εργασία "Μελέτη

Διαβάστε περισσότερα

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

Ψηφιακές Τηλεπικοινωνίες Ψηφιακές Τηλεπικοινωνίες Θεωρία Πληροφορίας: Χωρητικότητα Καναλιού Χωρητικότητα Καναλιού Η θεωρία πληροφορίας περιλαμβάνει μεταξύ άλλων: κωδικοποίηση πηγής κωδικοποίηση καναλιού Κωδικοποίηση πηγής: πόση

Διαβάστε περισσότερα

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Δρ. Στέλιος Τιμοθέου ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΑ ΘΕΜΑΤΑ ΜΑΣ ΣΗΜΕΡΑ Αναλογικά και ψηφιακά συστήματα Μετατροπή

Διαβάστε περισσότερα

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

Τηλεπικοινωνιακά Συστήματα ΙΙ Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 3: Εισαγωγή στην Έννοια της Διαμόρφωσης Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα 1. Η ανάγκη για διαμόρφωση 2. Είδη διαμόρφωσης 3. Διαμόρφωση με ημιτονοειδές

Διαβάστε περισσότερα

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

Εξομοίωση Τηλεπικοινωνιακού Συστήματος Βασικής Ζώνης Πανεπιστήμιο Πατρών Τμήμα Μηχ. Η/Υ & Πληροφορικής Ακαδημαϊκό Έτος 009-010 Ψ Η Φ Ι Α Κ Ε Σ Τ Η Λ Ε Π Ι Κ Ο Ι Ν Ω Ν Ι ΕΣ η Εργαστηριακή Άσκηση: Εξομοίωση Τηλεπικοινωνιακού Συστήματος Βασικής Ζώνης Στην άσκηση

Διαβάστε περισσότερα

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

Ψηφιακές Επικοινωνίες Ψηφιακές Επικοινωνίες Ενότητα 2: Παναγιώτης Μαθιόπουλος Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εισαγωγή (1) Οι Ψηφιακές Επικοινωνίες (Digital Communications) καλύπτουν σήμερα το

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ : Η/Υ : Ε VLSI Δ Ε ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ : Η/Υ : Ε VLSI Δ Ε του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής

Διαβάστε περισσότερα

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

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM) Παλμοκωδική Διαμόρφωση Pulse Code Modulation (PCM) Pulse-code modulation (PCM) Η PCM είναι ένας στοιχειώδης τρόπος διαμόρφωσης που δεν χρησιμοποιεί φέρον! Το μεταδιδόμενο (διαμορφωμένο) σήμα PCM είναι

Διαβάστε περισσότερα

Διόρθωση λαθών με τη χρήση κωδίκων RS-LDPC

Διόρθωση λαθών με τη χρήση κωδίκων RS-LDPC ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Μεταπτυχιακό Δίπλωμα Ειδίκευσης «Ολοκληρωμένα Συστήματα Υλικού & Λογισμικού» Διόρθωση λαθών με τη χρήση κωδίκων RS-LDPC Μεταπτυχιακή Διπλωματική Εργασία

Διαβάστε περισσότερα

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

Τηλεπικοινωνιακά Συστήματα ΙΙ Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 11: Κωδικοποίηση Πηγής Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα 1. Αλγόριθμοι κωδικοποίησης πηγής Αλγόριθμος Fano Αλγόριθμος Shannon Αλγόριθμος Huffman

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ Κεφάλαιο 5 : Θόρυβος Χρήστος Ξενάκης Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων Περιεχόμενα Ομιλίας Είδη θορύβου Περιγραφή θορύβου Θεώρημα Shannon Hartley Απόδοση ισχύος και εύρους

Διαβάστε περισσότερα

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

Ψηφιακή Μετάδοση Αναλογικών Σηµάτων Ψηφιακή Μετάδοση Αναλογικών Σηµάτων Τα σύγχρονα συστήµατα επικοινωνίας σε πολύ µεγάλο ποσοστό διαχειρίζονται σήµατα ψηφιακής µορφής, δηλαδή, σήµατα που δηµιουργούνται από ακολουθίες δυαδικών ψηφίων. Τα

Διαβάστε περισσότερα

Ευρυζωνικά δίκτυα (2) Αγγελική Αλεξίου

Ευρυζωνικά δίκτυα (2) Αγγελική Αλεξίου Ευρυζωνικά δίκτυα (2) Αγγελική Αλεξίου alexiou@unipi.gr 1 Σήματα και πληροφορία Βασικές έννοιες 2 Αναλογικά και Ψηφιακά Σήματα Στις τηλεπικοινωνίες συνήθως χρησιμοποιούμε περιοδικά αναλογικά σήματα και

Διαβάστε περισσότερα

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

Συστήματα Επικοινωνιών Συστήματα Επικοινωνιών Ενότητα 10: Ψηφιακή Μετάδοση Βασικής Ζώνης Μιχαήλ Λογοθέτης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Παρουσίαση των πινάκων αναζήτησης

Διαβάστε περισσότερα

Σταθερή περιβάλλουσα (Constant Envelope)

Σταθερή περιβάλλουσα (Constant Envelope) Διαμόρφωση ολίσθησης φάσης (Phase Shift Keying-PSK) Σταθερή περιβάλλουσα (Constant Envelope) Ίση Ενέργεια συμβόλων 1 Binary Phase Shift keying (BPSK) BPSK 2 Quaternary Phase Shift Keying (QPSK) 3 Αστερισμός-Διαγράμματα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ ΠΕΜΠΤΟ ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ ΚΕΦΑΛΑΙΟ ΠΕΜΠΤΟ ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ 5. Εισαγωγή Ο σκοπός κάθε συστήματος τηλεπικοινωνιών είναι η μεταφορά πληροφορίας από ένα σημείο (πηγή) σ ένα άλλο (δέκτης). Συνεπώς, κάθε μελέτη ενός τέτοιου συστήματος

Διαβάστε περισσότερα

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

Ψηφιακές Τηλεπικοινωνίες. Θεωρία Ρυθμού Παραμόρφωσης Ψηφιακές Τηλεπικοινωνίες Θεωρία Ρυθμού Παραμόρφωσης Θεωρία Ρυθμού-Παραμόρφωσης Θεώρημα Κωδικοποίησης Πηγής: αν έχω αρκετά μεγάλο μπλοκ δεδομένων, μπορώ να φτάσω κοντά στην εντροπία Πιθανά Προβλήματα: >

Διαβάστε περισσότερα

«ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ»

«ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ» ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΤΟΥ ΤΜΗΜΑΤΟΣ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ «ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ» Αρχιτεκτονικές υλικού χαμηλής ισχύος για την αποκωδικοποίηση

Διαβάστε περισσότερα

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ.

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ. Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ. 1 Εισαγωγή Αναλογικό σήμα (analog signal): συνεχής συνάρτηση στην οποία η ανεξάρτητη μεταβλητή και η εξαρτημένη μεταβλητή (π.χ.

Διαβάστε περισσότερα

Κωδικοποίηση Χώρου-Χρόνου. Χρόνου

Κωδικοποίηση Χώρου-Χρόνου. Χρόνου Κωδικοποίηση Χώρου-Χρόνου Χρόνου Μέρος Ι: Σχήμα Alamouti Ομάδα Ασύρματων Τηλεπικοινωνιακών Συστημάτων Τμήμα Ηλεκτρολόγων Μηχανικών & Μ/Υ Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γιώργος Καραγιαννίδης Βασίλειος

Διαβάστε περισσότερα

Συστηματική Σχεδίαση Αρχιτεκτονικών Αποκωδικοποιητών LDPC

Συστηματική Σχεδίαση Αρχιτεκτονικών Αποκωδικοποιητών LDPC ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ «ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ» Συστηματική Σχεδίαση Αρχιτεκτονικών Αποκωδικοποιητών LDPC ΔΙΠΛΩΜΑΤΙΚΗ

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Σχολή Θετικών Επιστημών Τεχνολογίας Τηλεπικοινωνιών Τμήμα Επιστήμης και Τεχνολογίας Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΠΙΚΟΙΝΩΝΙΕΣ ΙI Εργαστήριο 5 ο : Προσαρμοσμένα Φίλτρα Βασική

Διαβάστε περισσότερα

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

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΣΧΕΔΙΑΣΜΟΥ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΚΥΚΛΩΜΑΤΩΝ ΜΕΓΑΛΗΣ ΚΛΙΜΑΚΑΣ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων

Διαβάστε περισσότερα

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

Συστήματα Επικοινωνιών ΙI + Διδάσκων: Δρ. Κ. Δεμέστιχας e-mail: cdemestichas@uowm.gr Συστήματα Επικοινωνιών ΙI Παλμοκωδική διαμόρφωση (PCM) I + Ιστοσελίδα nιστοσελίδα του μαθήματος: n https://eclass.uowm.gr/courses/icte302/ + Περιεχόμενα

Διαβάστε περισσότερα

ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. της ϕοιτήτριας του Τµήµατος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστηµίου Πατρών

ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. της ϕοιτήτριας του Τµήµατος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστηµίου Πατρών ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΧΕ ΙΑΣΜΟΥ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΚΥΚΛΩΜΑΤΩΝ ΜΕΓΑΛΗΣ ΚΛΙΜΑΚΑΣ (VLSI) ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της

Διαβάστε περισσότερα

Αρχιτεκτονικές VLSI για την Αποκωδικοποίηση Κωδικών LDPC µε Εφαρµογή σε Ασύρµατες Ψηφιακές Επικοινωνίες

Αρχιτεκτονικές VLSI για την Αποκωδικοποίηση Κωδικών LDPC µε Εφαρµογή σε Ασύρµατες Ψηφιακές Επικοινωνίες ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΙΠΛΩΜΑ ΕΙ ΙΚΕΥΣΗΣ «ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ» Αρχιτεκτονικές VLSI για την Αποκωδικοποίηση Κωδικών LDPC µε Εφαρµογή

Διαβάστε περισσότερα

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

Θεώρημα κωδικοποίησης πηγής Κωδικοποίηση Kωδικοποίηση πηγής Θεώρημα κωδικοποίησης πηγής Καθορίζει ένα θεμελιώδες όριο στον ρυθμό με τον οποίο η έξοδος μιας πηγής πληροφορίας μπορεί να συμπιεσθεί χωρίς να προκληθεί μεγάλη πιθανότητα

Διαβάστε περισσότερα

22Α004 - Προχωρημένα Θέματα Θεωρίας Πληροφορίας Τελική Εξέταση

22Α004 - Προχωρημένα Θέματα Θεωρίας Πληροφορίας Τελική Εξέταση 22A004 (eclass EE278) Προχωρημένα Θέματα Θεωρίας Πληροφορίας Φυλλάδιο 11 Δ. Τουμπακάρης 6 Ιουνίου 2013 22Α004 - Προχωρημένα Θέματα Θεωρίας Πληροφορίας Τελική Εξέταση Διάρκεια Εξέτασης: 3 ώρες. 4 ασκήσεις

Διαβάστε περισσότερα

Γραφική αναπαράσταση ενός ψηφιακού σήµατος

Γραφική αναπαράσταση ενός ψηφιακού σήµατος γ) Ψηφιακάτα x (n) 3 2 1 1 2 3 n Γραφική αναπαράσταση ενός ψηφιακού σήµατος Αφού δειγµατοληπτηθεί και κβαντιστεί η έξοδος µιας αναλογικής πηγής πληροφορίας, δηµιουργείταιµιαακολουθίααπόκβαντισµένεςτιµές

Διαβάστε περισσότερα

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

2 η Εργαστηριακή Άσκηση Πανεπιστήμιο Πατρών Τμήμα Μηχ. Η/Υ & Πληροφορικής Ψ Η Φ Ι Α Κ Ε Σ Τ Η Λ Ε Π Ι Κ Ο Ι Ν Ω Ν Ι ΕΣ 2 η Εργαστηριακή Άσκηση Σύγκριση Ομόδυνων Ζωνοπερατών Συστημάτων 8-PSK και 8-FSK Στην άσκηση αυτή καλείστε

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ Τομέας: Ηλεκτρονικής και Υπολογιστών Εργαστήριο Ηλεκτρονικών Εφαρμογών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ Τομέας: Ηλεκτρονικής και Υπολογιστών Εργαστήριο Ηλεκτρονικών Εφαρμογών ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ Τομέας: Ηλεκτρονικής και Υπολογιστών Εργαστήριο Ηλεκτρονικών Εφαρμογών Διπλωματική Εργασία του Φοιτητή του Τμήματος Ηλεκτρολόγων

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Τμήμα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ Εργαστήριο 6 ο : Διαμόρφωση Θέσης Παλμών Βασική Θεωρία Μ-αδική Διαμόρφωση Παλμών Κατά την μετατροπή

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ 1 ΕΙΣΑΓΩΓΗ Ο πραγματικός κόσμος είναι ένας αναλογικός κόσμος. Όλα τα μεγέθη παίρνουν τιμές με άπειρη ακρίβεια. Π.χ. το ηλεκτρικό σήμα τάσης όπου κάθε

Διαβάστε περισσότερα

Παναγιώτης Μαθιόπουλος Ph.D.

Παναγιώτης Μαθιόπουλος Ph.D. ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ Παναγιώτης Μαθιόπουλος Ph.D. Καθηγητής Ψηφιακών Επικοινωνιών Τμήμα Πληροφορικής και Τηλεπικοινωνιών ΕΚΠΑ Professor (1989 2003) Department of Electrical and Computer Engineering The

Διαβάστε περισσότερα

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

Μέρος Β - Δίκτυα. Ασκήσεις I. Ποιος ο ρόλος του πομπού και του δέκτη στο μοντέλο επικοινωνίας που α- πεικονίζεται στο σχήμα που ακολουθεί; Μ Δεδομένα Μέρος Β - Δίκτυα 1 η Διδακτική Ενότητα Μοντέλο επικοινωνίας δεδομένων - Κώδικες - Σήματα Προβλεπόμενες διδακτικές ώρες: 1 Λέξεις Κλειδιά ASCII BCD Unicode αναλογικό σήμα ΕΛΟΤ-928 επικοινωνία δεδομένων

Διαβάστε περισσότερα

Μελέτη και Προσομοίωση n πομπού για ασύρματη πρόσβαση ΦΟΙΤΗΤΗΣ: ΛΑΖΑΡΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΕΥΣΤΑΘΙΟΥ ΔΗΜΗΤΡΙΟΣ

Μελέτη και Προσομοίωση n πομπού για ασύρματη πρόσβαση ΦΟΙΤΗΤΗΣ: ΛΑΖΑΡΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΕΥΣΤΑΘΙΟΥ ΔΗΜΗΤΡΙΟΣ Μελέτη και Προσομοίωση 802.11n πομπού για ασύρματη πρόσβαση ΦΟΙΤΗΤΗΣ: ΛΑΖΑΡΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΕΥΣΤΑΘΙΟΥ ΔΗΜΗΤΡΙΟΣ A) Προσομοίωση του φάσματος του καναλιού του προτύπου για να φανεί

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Σχολή Θετικών Επιστημών Τεχνολογίας Τηλεπικοινωνιών Τμήμα Επιστήμης και Τεχνολογίας Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΠΙΚΟΙΝΩΝΙΕΣ ΙI Εργαστήριο 7 ο : Διαμόρφωση Θέσης Παλμών

Διαβάστε περισσότερα

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

ΕΑΠ/ΠΛΗ22/ΑΘΗ.4/4η ΟΣΣ/ Κώδικες ελέγχου Σφαλμάτων / βλ. αρχείο PLH22_OSS4_slides διαφάνειες 47-57 ΕΑΠ/ΠΛΗ22/ΑΘΗ.4/4η ΟΣΣ/ Κώδικες ελέγχου Σφαλμάτων/ Ν.Δημητρίου σελ. 1 ΕΑΠ/ΠΛΗ22/ΑΘΗ.4/4η ΟΣΣ/ Κώδικες ελέγχου Σφαλμάτων/ Ν.Δημητρίου σελ. 2 ΕΑΠ/ΠΛΗ22/ΑΘΗ.4/4η

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ: Κυκλικός Έλεγχος Πλεονασμού CRC codes Cyclic Redundancy Check codes Ο μηχανισμός ανίχνευσης σφαλμάτων στις επικοινωνίες

Διαβάστε περισσότερα

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

Συστήματα Επικοινωνιών ΙI + Διδάσκων: Δρ. Κ. Δεμέστιχας e-mail: cdemestichas@uowm.gr Συστήματα Επικοινωνιών ΙI Ψηφιακή μετάδοση στη βασική ζώνη + Ιστοσελίδα nιστοσελίδα του μαθήματος: n https://eclass.uowm.gr/courses/icte302/ +

Διαβάστε περισσότερα

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

Συστήματα Επικοινωνιών ΙI + Διδάσκων: Δρ. Κ. Δεμέστιχας e-mail: cdemestichas@uowm.gr Συστήματα Επικοινωνιών ΙI Διαφορική Παλμοκωδική Διαμόρφωση + Ιστοσελίδα nιστοσελίδα του μαθήματος: n https://eclass.uowm.gr/courses/icte302/ +

Διαβάστε περισσότερα

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

ΕΑΠ/ΠΛΗ22/ΑΘΗ.4/4η ΟΣΣ/ Ν.Δημητρίου 1 (*) Οι σημειώσεις αυτές συνοψίζουν τα βασικά σημεία της παρουσίασης PLH22_OSS4_slides_2015_2016 που είναι διαθέσιμη στο study.eap.gr ΕΑΠ/ΠΛΗ22/ΑΘΗ.4/4η ΟΣΣ/ Ν.Δημητρίου 1 ΕΑΠ/ΠΛΗ22/ΑΘΗ.4/4η ΟΣΣ/ Ν.Δημητρίου

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

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

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Σημειώσεις Δικτύων Αναλογικά και ψηφιακά σήματα Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Χαρακτηριστικά

Διαβάστε περισσότερα

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

ΚΩΔΙΚΟΠΟΙΗΣΗ ΕΛΕΓΧΟΥ ΣΦΑΛΜΑΤΟΣ (2) ΚΩΔΙΚΟΠΟΙΗΣΗ ΕΛΕΓΧΟΥ ΣΦΑΛΜΑΤΟΣ () P e συνάρτηση των S/N και r b (B) Συμβάσεις κανονισμοί για τα S, B Φασματική πυκνότητα θορύβου καθορισμένη Πολυπλοκότητα και κόστος συστήματος ΚΩΔΙΚΟΠΟΙΗΣΗ ΚΑΝΑΛΙΟΥ Καλά

Διαβάστε περισσότερα

Συμπίεση Δεδομένων

Συμπίεση Δεδομένων Συμπίεση Δεδομένων 014-015 Μοναδικά Αποκωδικοποιήσιμοι Κώδικες Δρ. Ν. Π. Σγούρος Έλεγος μοναδικής Αποκωδικοποίησης Γενικοί ορισμοί Έστω δύο κωδικές λέξεις α,β με μήκη,m και

Διαβάστε περισσότερα

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

Τηλεπικοινωνιακά Συστήματα ΙΙ Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 3: Ψηφιακή Διαμόρφωση Πλάτους Amplitude Shift Keying (ASK) Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα Ψηφιακή Διαμόρφωση Πλάτους (ASK) Μαθηματική περιγραφή

Διαβάστε περισσότερα

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

ΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ ΑΝΑΣΚΟΠΗΣΗ ΘΕΩΡΙΑΣ ΣΥΝΟΡΘΩΣΕΩΝ ΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ ΑΝΑΣΚΟΠΗΣΗ ΘΕΩΡΙΑΣ ΣΥΝΟΡΘΩΣΕΩΝ Βασίλης Δ. Ανδριτσάνος Δρ. Αγρονόμος - Τοπογράφος Μηχανικός ΑΠΘ Επίκουρος Καθηγητής ΤΕΙ Αθήνας 3ο εξάμηνο http://eclass.teiath.gr Παρουσιάσεις,

Διαβάστε περισσότερα

Μάθημα Επισκόπηση των Τηλεπικοινωνιών

Μάθημα Επισκόπηση των Τηλεπικοινωνιών Μάθημα Επισκόπηση των Τηλεπικοινωνιών Κωδικοποίηση Πηγής & Καναλιού Μάθημα 8 ο 9 ο ΕΘΝΙΚΟ & ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τομέας Επικοινωνιών και Επεξεργασίας Σήματος Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Διαβάστε περισσότερα

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

2.0 ΔΙΑΝΥΣΜΑΤΙΚΟΙ ΧΩΡΟΙ ΚΑΙ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ .0 ΔΙΑΝΥΣΜΑΤΙΚΟΙ ΧΩΡΟΙ ΚΑΙ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ Έστω διανύσματα που ανήκουν στο χώρο δ i = ( a i, ai,, ai) i =,,, και έστω γραμμικός συνδυασμός των i : xδ + x δ + + x δ = b που ισούται με το διάνυσμα b,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α)

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α) ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α) 3.1. ΣΚΟΠΟΣ ΑΣΚΗΣΗΣ Σκοπός της εργαστηριακής αυτής άσκησης είναι η μελέτη της παλμοκωδικής διαμόρφωσης που χρησιμοποιείται στα σύγχρονα τηλεπικοινωνιακά

Διαβάστε περισσότερα

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

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET Κεφάλαιο 2: Στοιχεία Μετάδοσης Κώδικες 2 Κώδικες Κωδικοποίηση Δεδομένων: Όπως έχει ήδη αναφερθεί, προκειμένου τα δεδομένα να γίνουν κατανοητά από ένα ηλεκτρονικό

Διαβάστε περισσότερα

Δυαδικά Αντίποδα Σήματα. Προχωρημένα Θέματα Τηλεπικοινωνιών. Πιθανότητα Σφάλματος σε AWGN Κανάλι. r s n E n. P r s P r s.

Δυαδικά Αντίποδα Σήματα. Προχωρημένα Θέματα Τηλεπικοινωνιών. Πιθανότητα Σφάλματος σε AWGN Κανάλι. r s n E n. P r s P r s. Προχωρημένα Θέματα Τηλεπικοινωνιών Πιθανότητα Σφάλματος σε AWGN Κανάλι Δυαδικά Αντίποδα Σήματα Δυαδικά Αντίποδα Σήματα Βασικής Ζώνης) : s (t)=-s (t) Παράδειγμα: Δυαδικό PA s (t)=g T (t) (παλμός με ενέργεια

Διαβάστε περισσότερα

Κεφάλαιο 3 Πολυπλεξία

Κεφάλαιο 3 Πολυπλεξία Κεφάλαιο 3 Πολυπλεξία Μάθημα 3.1: Μάθημα 3.2: Μάθημα 3.3: Πολυπλεξία επιμερισμού συχνότητας χρόνου Συγκριτική αξιολόγηση τεχνικών πολυπλεξίας Στατιστική πολυπλεξία Μετάδοση Δεδομένων Δίκτυα Υπολογιστών

Διαβάστε περισσότερα

ΘΕΜΑ : ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ DIGITAL ELECTRONICS

ΘΕΜΑ : ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ DIGITAL ELECTRONICS ΘΕΜΑ : ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ DIGITAL ELECTRONICS ΔΙΑΡΚΕΙΑ: 1 περιόδους 16/11/2011 10:31 (31) καθ. Τεχνολογίας ΚΑΤΗΓΟΡΙΕΣ ΜΕΓΕΘΩΝ ΑΝΑΛΟΓΙΚΟ (ANALOGUE) ΨΗΦΙΑΚΟ (DIGITAL) 16/11/2011 10:38 (38) ΕΙΣΑΓΩΓΗ ΣΤΑ

Διαβάστε περισσότερα

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

Βασικές λειτουργίες Ανίχνευση πλαισίων Τι κάνει το επίπεδο ζεύξης Χρησιμοποιεί τις υπηρεσίες του φυσικού επιπέδου, ήτοι την (ανασφαλή) μεταφορά δεδομέ Αρχές σχεδιασμού, μοντέλα αναφοράς, τυποποίηση Μιλτιάδης Αναγνώστου 19 Μαΐου 2011 1/41 Βασικές λειτουργίες Ανίχνευση πλαισίων Επίδραση του θορύβου Παραδείγματα 2/41 Βασικές λειτουργίες Ανίχνευση πλαισίων

Διαβάστε περισσότερα

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο Πρόβλημα ο Ασκήσεις Φροντιστηρίου 5 o Φροντιστήριο Δίνεται το παρακάτω σύνολο εκπαίδευσης: # Είσοδος Κατηγορία 0 0 0 Α 2 0 0 Α 0 Β 4 0 0 Α 5 0 Β 6 0 0 Α 7 0 Β 8 Β α) Στον παρακάτω κύβο τοποθετείστε τα

Διαβάστε περισσότερα

1 η ΣΕΙΡΑ ΑΣΚΗΣΕΩΝ. / 2. Οι όροι Eb. και Ec

1 η ΣΕΙΡΑ ΑΣΚΗΣΕΩΝ. / 2. Οι όροι Eb. και Ec Τµήµα Μηχανικών Υπολογιστών, Τηλεπικοινωνιών και ικτύων ΗΥ 44: Ασύρµατες Επικοινωνίες Εαρινό Εξάµηνο -3 ιδάσκων: Λέανδρος Τασιούλας η ΣΕΙΡΑ ΑΣΚΗΣΕΩΝ. Θεωρήστε ένα κυψελωτό σύστηµα, στο οποίο ισχύει το

Διαβάστε περισσότερα

K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες

K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 4 Λειτουργία Πολυπλέκτης (Mul plexer) Ο

Διαβάστε περισσότερα

ΕΕ728 Προχωρηµένα Θέµατα Θεωρίας Πληροφορίας 11η διάλεξη

ΕΕ728 Προχωρηµένα Θέµατα Θεωρίας Πληροφορίας 11η διάλεξη ΕΕ728 Προχωρηµένα Θέµατα Θεωρίας Πληροφορίας 11η διάλεξη ηµήτρης-αλέξανδρος Τουµπακάρης Τµήµα ΗΜ&ΤΥ, Πανεπιστήµιο Πατρών 17 Μαΐου 2011 (2η έκδοση, 21/5/2011) ηµήτρης-αλέξανδρος Τουµπακάρης Προχωρηµένα

Διαβάστε περισσότερα

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

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ : ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΧΕΔΙΑΣΜΟΥ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΚΥΚΛΩΜΑΤΩΝ Διπλωματική Εργασία του φοιτητή του Τμήματος

Διαβάστε περισσότερα

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

Τηλεπικοινωνιακά Συστήματα Ι Τηλεπικοινωνιακά Συστήματα Ι Διάλεξη 10: Παλμοκωδική Διαμόρφωση, Διαμόρφωση Δέλτα και Πολύπλεξη Διαίρεσης Χρόνου Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Παλμοκωδική Διαμόρφωση (PCM) Παλμοκωδική Διαμόρφωση

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Τμήμα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ Εργαστήριο 9 ο : Διαμόρφωση BPSK & QPSK Βασική Θεωρία Εισαγωγή Κατά την μετάδοση ψηφιακών δεδομένων

Διαβάστε περισσότερα

Τμήμα Μηχανικών Η/Υ και Πληροφορικής. Κινητά Δίκτυα Επικοινωνιών

Τμήμα Μηχανικών Η/Υ και Πληροφορικής. Κινητά Δίκτυα Επικοινωνιών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Εργαστήριο Επεξεργασίας Σημάτων και Τηλεπικοινωνιών Κινητά Δίκτυα Επικοινωνιών Μέρος Α: Τηλεπικοινωνιακά Θέματα: Πολλαπλές Κεραίες και Επικοινωνίες Χώρου - Χρόνου Μετάδοση

Διαβάστε περισσότερα

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

Συνδυαστικά Λογικά Κυκλώματα Συνδυαστικά Λογικά Κυκλώματα Ένα συνδυαστικό λογικό κύκλωμα συντίθεται από λογικές πύλες, δέχεται εισόδους και παράγει μία ή περισσότερες εξόδους. Στα συνδυαστικά λογικά κυκλώματα οι έξοδοι σε κάθε χρονική

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Κ 17 Επικοινωνίες ΙΙ Χειμερινό Εξάμηνο Διάλεξη 3 η Νικόλαος Χ. Σαγιάς Επίκουρος Καθηγητής Webpage: http://eclass.uop.gr/courses/tst15

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Κ 17 Επικοινωνίες ΙΙ Χειμερινό Εξάμηνο Διάλεξη 8 η Νικόλαος Χ. Σαγιάς Επίκουρος Καθηγητής Webpage: http://eclass.uop.gr/courses/tst15

Διαβάστε περισσότερα

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 18

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 18 ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 18 14 Νοεµβρίου, 2006 Γεώργιος Έλληνας Επίκουρος Καθηγητής ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Θ.Ε. ΠΛΗ22 (2012-13) ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ #5 Στόχος Βασικό στόχο της 5 ης εργασίας αποτελεί η εξοικείωση με τις έννοιες και τα μέτρα επικοινωνιακών καναλιών (Κεφάλαιο 3), καθώς και με έννοιες και τεχνικές της

Διαβάστε περισσότερα

ΤΕΙ ΚΡΗΤΗΣ ΤΜ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡ/ΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΔΙΔΑΣΚΩΝ: Δρ. Γ. ΓΑΡΔΙΚΗΣ. Επίγεια ψηφιακή τηλεόραση

ΤΕΙ ΚΡΗΤΗΣ ΤΜ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡ/ΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΔΙΔΑΣΚΩΝ: Δρ. Γ. ΓΑΡΔΙΚΗΣ. Επίγεια ψηφιακή τηλεόραση ΤΕΙ ΚΡΗΤΗΣ ΤΜ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡ/ΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΔΙΔΑΣΚΩΝ: Δρ. Γ. ΓΑΡΔΙΚΗΣ 5 Επίγεια ψηφιακή τηλεόραση Επίγεια τηλεόραση: Η ασύρματη εκπομπή και λήψη του τηλεοπτικού σήματος αποκλειστικά από επίγειους

Διαβάστε περισσότερα

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

Αναγνώριση Προτύπων Ι Αναγνώριση Προτύπων Ι Ενότητα 1: Μέθοδοι Αναγνώρισης Προτύπων Αν. Καθηγητής Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα