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

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

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

Transcript

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

2 - 2 -

3 Διόρθωση λαθών με τη χρήση κωδίκων RS-LDPC Μεταπτυχιακή Διπλωματική Εργασία Γκίκα Ζαχαρούλα Α.Μ. 170 Επιβλέπων Καθηγητής: Παλιουράς Βασίλειος Μέλη Εξεταστικής Επιτροπής: Μπίρμπας Αλέξιος Μπερμπερίδης Κωνσταντίνος Πάτρα, Οκτώβριος

4 - 4 -

5 Ευχαριστίες Για την εκπόνηση της παρούσας διπλωματικής εργασίας, θα ήθελα να ευχαριστήσω θερμά τον επιβλέποντα καθηγητή μου, κ. Βασίλη Παλιουρά, για την πολύτιμη βοήθεια και τη συνεχή υποστήριξη που μου παρείχε. Θα ήθελα να ευχαριστήσω τους Γ. Τσατσαράγκο, A. Mahdi και τον Π. Σακελλαρίου, υποψήφιους διδάκτορες του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών για την άριστη συνεργασία, την συνεχή ενασχόληση τους για την επίλυση αποριών σε θέματα τηλεπικοινωνιακών συστημάτων, ειδικότερα για τα επιπρόσθετα έτοιμα τμήματα που χρησιμοποιήθηκαν στα πλαίσια αυτής της εργασίας καθώς και για την πολύτιμη βοήθεια τους σε θέματα σχεδιασμού και χειρισμού των εργαλείων που χρησιμοποιήθηκαν. Τέλος θα ήθελα να ευχαριστήσω τους κυρίους Κ. Μπερμπερίδη και Α. Μπίρμπα για την συμμετοχή τους στην τριμελή εξεταστική επιτροπή

6 - 6 -

7 Περιεχόμενα Εισαγωγή 11 I. Σκοπός και αντικείμενο της εργασίας...11 II. Συνεισφορά της εργασίας...12 III. Οργάνωση της εργασίας.13 Κεφάλαιο 1: Τηλεπικοινωνιακό σύστημα Βασικές έννοιες Σύστημα ψηφιακής επικοινωνίας Κωδικοποίηση καναλιού Διόρθωση σφαλμάτων Μπλοκ κώδικες Συστηματικοί μπλοκ κώδικες Πίνακας ελέγχου ισοτιμίας Απόσταση και βάρος Hammin...24 Κεφάλαιο 2: Κώδικες LDPC (Low-Density-Parity-Check) Αλγόριθμοι αποκωδικοποίησης Κώδικες LDPC Ιστορική αναδρομή Βασικά χαρακτηριστικά Αλγόριθμοι αποκωδικοποίησης Αποκωδικοποίηση Αλγόριθμοι αποκωδικοποίησης LDPC κωδίκων Αποκωδικοποίηση σε επίπεδα (Layered Decodin). 34 Κεφάλαιο 3: Κώδικες Reed-Solomon (RS) Στοιχεία άλγεβρας Πεπερασμένα πεδία Αναπαράσταση στοιχείων GF(2 m ) Ορισμός του πεδίου από ένα πρωτογενές πολυώνυμο Αριθμητικές πράξεις στο πεδίο GF(2 m ) Κώδικες Reed-Solomon (RS) 41 Κεφάλαιο 4: Κώδικες LDPC βασισμένοι σε Reed-Solomon με δύο σύμβολα πληροφορίας Εισαγωγή Shortened κώδικες RS Διανύσματα θέσης Κωδικές λέξεις C b (i) Κατασκευή πίνακα ελέγχου ισοτιμίας (parity check matrix) για κώδικες RS- LDPC Παράδειγμα (12,3,3) RS-LDPC κώδικα[2] Κατασκευή γεννήτορα πίνακα G για τον (12,3,3) RS-LDPC...54 Κεφάλαιο 5: Αρχιτεκτονική Υλικού

8 5.1 Εισαγωγή Κωδικοποιητής Κωδικοποίηση μηνύματος Μεταθέσεις στηλών Μετάδοση κωδικής λέξης Αποκωδικοποιητής Αρχιτεκτονικές για LDPC αποκωδικοποιητές Προτεινόμενη αρχιτεκτονική VLSI αποκωδικοποιητή για κώδικες LDPC βασισμένους σε Reed-Solomon με 2 σύμβολα πληροφορίας Χρονοπρογραμματισμός αποκωδικοποίησης Αρχιτεκτονική Variable Processin Unit Αρχιτεκτονική Check Processin Unit Αρχιτεκτονική Δικτύου Διασύνδεσης (permutation network) Μεταθέσεις στηλών για την αποκωδικοποιημένη λέξη Σύστημα μέτρησης λαθών.87 Κεφάλαιο 6: Χρονισμοί συστήματος Εισαγωγή Κωδικοποιητής Μεταθέσεις στηλών Αποκωδικοποιητής Συνολικό Σύστημα Κεφάλαιο 7: Ροή σχεδίασης Διαδικασία σχεδίασης συνολικού συστήματος Ροή σχεδίασης Ανάλυση σχεδίασης, προδιαγραφές, χρησιμοποιούμενοι αλγόθμοι Ανάλυση διαδικασίας σχεδίασης περιγραφή σε λογισμικό Ανάλυση διαδικασίας σχεδίασης περιγραφή σε υλικό Αναπτυξιακό περιβάλλον Xilinx Virtex Κεφάλαιο 8: Αποτελέσματα υλοποίησης και εξομοιώσεων σε fpa Εισαγωγή Αποτελέσματα υλοποίησης συνολικού συστήματος Αποτελέσματα υλοποίησης κωδικοποιητή-αποκωδικοποιητή ξεχωριστά Αποτελέσματα υλοποίησης αποκωδικοποιητή σε 3 διαφορετικά fpas Αποτελέσματα υλοποίησης δικτύου διασύνδεσης αποκωδικοποιητή Αποτελέσματα εξομοιώσεων που αφορούν στη διορθωτική ικανότητα του αλγορίθμου αποκωδικοποίησης Αποτελέσματα εξομοιώσεων που αφορούν στη διορθωτική ικανότητα του αλγορίθμου αποκωδικοποίησης Εξάρτηση των τιμών BER από τον αριθμό των επαναλήψεων που εκτελεί ο αλγόριθμος αποκωδικοποίησης Κεφάλαιο 9: Σύνοψη Συμπεράσματα

9 Παράρτημα Αναφορές Βιβλιογραφία..134 Κατάλογος Σχημάτων Σχήμα 1.1: Τυπικό τηλεπικοινωνιακό σύστημα Σχήμα 1.2: Απλοποιημένο ψηφιακό τηλεπικοινωνιακό σύστημα 19 Σχήμα 1.3: Μορφή γεννήτορα πίνακα..22 Σχήμα 2.1: Παράδειγμα πίνακα ελέγχου ισοτιμίας Σχήμα 2.2: Διάγραμμα Tanner για (9,2,3)- LDPC κώδικα[6] Σχήμα 2.3: Διάγραμμα Tanner- Αποστολή variable-to-check μηνυμάτων[6]..30 Σχήμα 2.4: Διάγραμμα Tanner- Αποστολή check-to-variable μηνυμάτων[6]...30 Σχήμα 3.1: Αντιστοιχία μεταξύ εκθετικής και πολυωνυμικής αναπαράστασης στοιχείων του GF...37 Σχήμα 3.2: LFSR για το πρωτογενές πολυώνυμο p(x)=1+x+x Σχήμα 4.1: Διάγραμμα Tanner-Παρουσία κύκλων μήκους Σχήμα 5.1: H 384x2048 για τον (6,32) κανονικό κώδικα RS-LDPC-Πίνακας «αραιότητας» Σχήμα 5.2: Ολισθητής γραμμικής ανάδρασης (LFSR) για την παραγωγή μηνυμάτων...59 Σχήμα 5.3: Μονάδα πολλαπλασιασμού του κωδικοποιητή Σχήμα 5.4: RTL διάγραμμα κωδικοποιητή & δικτύου μεταθέσεων.63 Σχήμα 5.5: Δίκτυο μεταθέσεων...64 Σχήμα 5.6: Κανάλι προσθετικού θορύβου Σχήμα 5.7: Hardware-Sharin αρχιτεκτονική[6]...68 Σχήμα 5.8: Αρχιτεκτονική αποκωδικοποιητή[6]...69 Σχήμα 5.9: Αρχιτεκτονική variable processin unit[5].73 Σχήμα 5.10: Αρχιτεκτονική check processin unit[5]..75 Σχήμα 5.11: RTL διάγραμμα για variable processin unit Σχήμα 5.12: RTL διάγραμμα για check processin unit...78 Σχήμα 5.13: Loarithmic Barrel Shifter[6] Σχήμα 5.14: Loarithmic Barrel Shifter για Ν=6 και shift=2[6]...81 Σχήμα 5.15: Αρχιτεκτονική Permutation Network Σχήμα 5.16: Σύστημα μέτρησης λαθών Σχήμα 6.1: Fsm κωδικοποιητή. 88 Σχήμα 6.2: Fsm για το κύκλωμα μεταθέσεων στηλών Σχήμα 6.3: Fsm για variable processin unit Σχήμα 6.4: Fsm για check processin unit 96 Σχήμα 6.5: Fsm για permutation network.99 Σχήμα 6.6: Fsm για decoder Σχήμα 6.7: Fsm συνολικού συστήματος.103 Σχήμα 7.1: Διάγραμμα ροής σχεδίασης συστήματος

10 Σχήμα 7.2: Αποτελέσματα εξομοιώσεων του VHDL κώδικα σε περιβάλλον Modelsim Σχήμα 7.3: Αποτελέσματα μετρήσεων στο fpa με τη χρήση του Chipscope της Xilinx 108 Σχήμα 7.4: Λεπτομερής απεικόνιση ενός αναπτυξιακού Virtex 5 συστήματος (μπροστά όψη)..109 Σχήμα 7.5: Λεπτομερής απεικόνιση ενός αναπτυξιακού Virtex 5 συστήματος (πίσω όψη)..109 Σχήμα 8.1: Διάγραμμα BER-Eb/No για τον (1723,2048) RS-LDPC.125 Σχήμα 8.2: Διάγραμμα throuhput-iterations number για τον (1723,2048) RS- LDPC Σχ. 8. 3: Διάγραμμα throuhput-iterations number για τον (1723,2048) RS-LDPC, για υλοποίηση σε διαφορετικά fpa Σχ. 8. 4: Διάγραμμα BER-Eb/No για Ν=5,10,15,20 iterations για τον (1723,2048) RS- LDPC Κατάλογος Πινάκων Πίνακας 3.1: Πρωταρχικά πολυώνυμα...38 Πίνακας 5.1: Χρονοδρομολόγηση μίας υποεπενάληψης της layered αποκωδικοποίησης..71 Πίνακας 7.1: Συστατικά μέρη του Virtex 5 XC5VLX 330T Πίνακας 8.1: Utilization Summary της αρχιτεκτονικής του συνολικού συστήματος.113 Πίνακας 8.2: Utilization Summary της αρχιτεκτονικής του κωδικοποιητή Πίνακας 8.3: Utilization Summary της αρχιτεκτονικής του αποκωδικοποιητή.116 Πίνακας 8.4: Utilization summary υλοποίησης του αποκωδικοποιητή σε Virtex 5 XC5VLX330T-1FF Πίνακας 8.5: Utilization summary υλοποίησης του αποκωδικοποιητή σε Virtex 5 XC5VFX70T-1FF Πίνακας 8.6: Utilization summary υλοποίησης του αποκωδικοποιητή σε Virtex 7 VC707 evaluation edition..122 Πίνακας 8.7: Σύγκριση 3 υλοποιήσεων.122 Πίνακας 8.8: Utilization Summary της αρχιτεκτονικής permutation network

11 Εισαγωγή I. Σκοπός και αντικείμενο της εργασίας Σήμερα, σε όλα σχεδόν τα τηλεπικοινωνιακά συστήματα τα οποία προορίζονται για αποστολή δεδομένων σε υψηλούς ρυθμούς, έχουν υιοθετηθεί κώδικες διόρθωσης λαθών για την αύξηση της αξιοπιστίας τους και τη μείωση της απαιτούμενης ισχύος εκπομπής τους. Οι κώδικες αυτοί δίνουν τη δυνατότητα ανίχνευσης και διόρθωσης των λαθών που μπορεί να δημιουργήσει το μέσο μετάδοσης (κανάλι) σε κάποιο τμήμα πληροφορίας που μεταφέρεται μέσω του τηλεπικοινωνιακού δικτύου. Μία κατηγορία τέτοιων κωδίκων, και μάλιστα με εξαιρετικές επιδόσεις, είναι η οικογένεια των LDPC (Low Density Parity Check) κωδίκων. Πρόκειται για γραμμικούς μπλοκ κώδικες, με απόδοση πολύ κοντά στο όριο Shannon. Στην παρούσα διπλωματική μελετώνται οι κώδικες LDPC και σχετικές αρχιτεκτονικές υλικού. Oι κώδικες LDPC χρησιμοποιούνται όλο και περισσότερο σε εφαρμογές που απαιτούν αξιόπιστη και υψηλής απόδοσης μετάδοση, υπό την παρουσία ισχυρού θορύβου. Η κατασκευή τους στηρίζεται στη χρήση πινάκων ελέγχου ισοτιμίας χαμηλής πυκνότητας, ενώ η αποκωδικοποίηση εκτελείται με τη χρήση επαναληπτικών αλγορίθμων. Σε υψηλά επίπεδα θορύβου παρουσιάζουν πολύ καλή διορθωτική ικανότητα, αλλά υστερούν σε χαμηλότερα επίπεδα θορύβου, όπου υποφέρουν από το φαινόμενο του error floor. Στη συγκεκριμένη εργασία μελετάται εκτενώς μία αλγεβρική μέθοδος για την κατασκευή reular LDPC κωδίκων που βασίζεται σε κώδικες Reed- Solomon με δύο σύμβολα πληροφορίας. Η μέθοδος αυτή μας επιτρέπει την κατασκευή ενός πίνακα ελέγχου ισοτιμίας Η για τον κώδικα LDPC, όπου το διάγραμμα Tanner που του αντιστοιχεί δεν περιέχει κύκλους μήκους 4 (ελάχιστο μήκος κύκλου 6). Οι κύκλοι μικρού μήκους στο διάγραμμα Tanner «εγκλωβίζουν» τον αποκωδικοποιητή σε καταστάσεις που δεν μπορεί να ανιχνεύσει και να διορθώσει τα λάθη που δημιουργήθηκαν στη μετάδοση. Έτσι χρησιμοποιώντας την παραπάνω μέθοδο μπορούμε να κατασκευάσουμε απλούς σε δομή κώδικες, που σε συνδυασμό με τους επαναληπτικούς αλγορίθμους αποκωδικοποίησης οδηγούν σε αποκωδικοποιητές με εξαιρετικές διορθωτικές ικανότητες και εμφάνιση error floor σε πολύ χαμηλές τιμές του BER. Ακόμα, αυτού του τύπου οι πίνακες ισοτιμίας επιβάλλουν μία συγκεκριμένη δομή για το γεννήτορα πίνακα G που χρησιμοποιείται για την κωδικοποίηση. Για το λόγο αυτό μελετάται επίσης ο τρόπος για να κατασκευάσουμε ένα συστηματικό πίνακα G, ο οποίος απλουστεύει κατά πολύ τη διαδικασία της κωδικοποίησης. Όλες οι παραπάνω διαδικασίες εφαρμόζονται για την κατασκευή του κώδικα (2048,1723) RS-LDPC. Πρόκειται για έναν κώδικα ρυθμού 0,84 που χρησιμοποιείται από το πρότυπο 802.3an της IEEE για το 10GBASE-T Ethernet και παρουσιάζει ιδιαίτερο ενδιαφέρον λόγω των επιδόσεών του. Για τον κώδικα αυτό προτείνεται σχεδίαση για τον κωδικοποιητή και τον αποκωδικοποιητή καθώς και για όλα τα εξωτερικά κυκλώματα που απαιτούνται ώστε να δημιουργηθεί ένα ολοκληρωμένο σύστημα αποστολής, λήψης και διόρθωσης δεδομένων

12 Έχοντας όλο το υπόβαθρο για την κατασκευή ενός RS-LDPC συστήματος κωδικοποίησης-αποκωδικοποίησης, υλοποιήσαμε τη σχεδίαση του συστήματος σε κώδικα VHDL ενώ εκτελέστηκαν οι απαραίτητες εξομοιώσεις (Modelsim). Στη συνέχεια εκτελέστηκαν οι διαδικασίες της σύνθεσης (εργαλείο XST του Xilinx ISE) και της πλήρους υλοποίησης σε fpa (Virtex 5 XC5VLX330T-1FF1738), δίνοντας μας έτσι τη δυνατότητα διεξαγωγής ταχύτατων εξομοιώσεων ειδικά σε χαμηλά επίπεδα θορύβου σε σχέση με τις αντίστοιχες υλοποιήσεις σε λογισμικό (MATLAB). Πραγματοποιώντας πειράματα στο υλικό παρατηρούμε τη διορθωτική ικανότητα του αλγορίθμου αποκωδικοποίησης και συγκρίνουμε τα αποτελέσματα με αυτά των υλοποιήσεων σε λογισμικό. Επίσης μελετάται ο τρόπος μεταβολής της διορθωτικής ικανότητας του αλγορίθμου ανάλογα με τον αριθμό των επαναλήψεων που εκτελεί. Τέλος, πήραμε κάποιες μετρήσεις για το throuhput του αποκωδικοποιητή, ώστε σε περίπτωση που θέλουμε να πετύχουμε ένα συγκεκριμένο ρυθμό επεξεργασίας δεδομένων να μπορούμε να υπολογίσουμε τον αριθμό των αποκωδικοποιητών που θα χρειαστούμε. II. Συνεισφορά της εργασίας Η συνεισφορά της παρούσας εργασίας συνίσταται αρχικά στη σχεδίαση ενός συστήματος διόρθωσης λαθών βασισμένου στον κώδικα (2048,1723) RS-LDPC, όπως αυτός προκύπτει από τη θεωρία που αναφέρεται, και η υλοποίησή του σε τεχνολογία fpa. Έμφαση δίνεται στην κατασκευή του δικτύου διασύνδεσης ανάμεσα στους κόμβους ελέγχου και μεταβλητής που χρησιμοποιούνται κατά την αποκωδικοποίηση. Η δομή του δικτύου αυτού και οι ιδιότητές του χαρακτηρίζουν την κατηγορία των κωδίκων RS-LDPC και τους διαφοροποιούν από τους LDPC. Για το λόγο αυτό παρουσιάζεται μία λεπτομερής ανάλυση του δικτύου αυτού και προτείνεται μια απλή σχεδίαση. Η σχεδίαση αυτή υλοποιεί το σύνολο των αλγεβρικών πράξεων που εκτελούνται στις λέξεις ενός κώδικα RS με σκοπό την κατασκευή του πίνακα ισοτιμίας για έναν RS-LDPC. Ένα ακόμα σημείο που δίνεται έμφαση είναι η παραμετρικότητα της σχεδίασης του δικτύου, ώστε η προτεινόμενη σχεδίαση να μη μας περιορίσει στο συγκεκριμένου μεγέθους κώδικα, αλλά με μικρές τροποποιήσεις να μπορεί να παραχθεί το δίκτυο διασύνδεσης ενός κώδικα RS-LDPC, οποιουδήποτε μήκους. Επίσης μελετάται η μέθοδος κατασκευής ενός συστηματικού γεννήτορα πίνακα κατάλληλου για έναν κώδικα RS-LDPC. Όλα τα συμπεράσματα και οι ιδιότητες που προέκυψαν από την παραπάνω μελέτη επιβεβαιώνονται από τη σχεδίαση σε VHDL κώδικα της αρχιτεκτονικής του συνολικού συστήματος που αποτελείται από τον (2048,1723) RS-LDPC αποκωδικοποιητή, τον αντίστοιχο κωδικοποιητή του καθώς και των υπολοίπων εξωτερικών κυκλωμάτων που απαιτούνται για την ορθή λειτουργία του συστήματος. Η υλοποίηση του παραπάνω συστήματος σε fpa επέτρεψε τη διεξαγωγή ταχύτατων εξομοιώσεων, ειδικά σε χαμηλά επίπεδα θορύβου, σε σχέση με τις αντίστοιχες υλοποιήσεις σε λογισμικό. Ακόμα δημιουργήθηκαν τα κατάλληλα μοντέλα σε λογισμικό που επιτρέπουν τον έλεγχο της σωστής λειτουργίας και παρέχουν τη δυνατότητα τροποποίησης για βελτίωση των χαρακτηριστικών πριν από την τελική σχεδίαση. Τέλος αξίζει να σημειωθεί η χρήση των μοντέλων λογισμικού για την παραγωγή αρχείων δεδομένων τα οποία χρησιμοποιήθηκαν από το VHDL κώδικα για τη διευκόλυνση της σχεδίασης και τον έλεγχο της ορθής λειτουργίας του συστήματος

13 III. Οργάνωση της εργασίας Η παρούσα διπλωματική εργασία πραγματεύεται το σχεδιασμό, την υλοποίηση ενός συστήματος κωδικοποίησης, αποκωδικοποίησης βασισμένο στο κώδικα (1723,2048) RS-LDPC με σκοπό την δημιουργία ενός κατά το δυνατό βέλτιστου συστήματος, όσον αφορά στη διορθωτική ικανότητα και το throuhput. Στο κεφάλαιο 1 παρουσιάζεται το λειτουργικό διάγραμμα και τα βασικά στοιχεία ενός συστήματος ψηφιακής επικοινωνίας, καθώς και ένα απλοποιημένο μοντέλο του προηγούμενο συστήματος που εστιάζει στη διαδικασία της κωδικοποίησης και της αποκωδικοποίησης της πληροφορίας. Επιπλέον αναλύονται οι βασικές έννοιες της κωδικοποίησης καναλιού και της διόρθωσης σφαλμάτων. Τέλος γίνεται μία εισαγωγή στους μπλοκ κώδικες και ακόμα περισσότερο στους συστηματικούς μπλοκ κώδικες και τα χαρακτηριστικά τους, καθώς αυτοί αποτελούν την οικογένεια των κωδίκων που θα εξετάσουμε στη συνέχεια. Στο κεφάλαιο 2 αναλύεται διεξοδικά η κατηγορία των LDPC κωδίκων καθώς και τα χαρακτηριστικά τους. Επίσης παρουσιάζεται μία μέθοδος απεικόνισης του πίνακα ελέγχου ισοτιμίας (parity check matrix) από ένα διάγραμμα (Tanner), ενώ περιγράφονται και δύο επαναληπτικοί αλγόριθμοι αποκωδικοποίησης που χρησιμοποιούνται από τους κώδικες LDPC. Πρόκειται για τον Lo Sum-Product (Lo-SP) αλγόριθμο και τον Min- Sum (MS) αλγόριθμο. Τέλος αναλύεται η λογική της αποκωδικοποίησης σε στρώματα (layered decodin) καθώς και τα πλεονεκτήματα-μειονεκτήματα της, εφόσον η μέθοδος αυτή σε συνδυασμό με τον αλγόριθμο MS θα χρησιμοποιηθούν για την εκτέλεση της αποκωδικοποίησης στην παρούσα σχεδίαση. Στο κεφάλαιο 3 γίνεται μία παρουσίαση των πεπερασμένων πεδίων, αναλύοντας τους τρόπους αναπαράστασης των στοιχείων τους, τον τρόπο εκτέλεσης των μαθηματικών πράξεων στα πεδία αυτά και γενικότερα τις ιδιότητες των στοιχείων τους. Όλη αυτή η ανάλυση αποτελεί μια εισαγωγή για τους κώδικες Reed-Solomon (RS) που περιγράφονται στη συνέχεια. Η αναφορά στους κώδικες RS είναι πολύ σύντομη και περιέχει μόνο εκείνα τα στοιχεία που μας είναι απαραίτητα για να κατανοήσουμε τη μέθοδο κατασκευής των LDPC κωδίκων που βασίζονται στους RS με δύο σύμβολα πληροφορίας. Στο κεφάλαιο 4 αναλύεται βήμα βήμα η διαδικασία κατασκευής του parity check matrix για έναν LDPC κώδικα βασισμένο σε κώδικα RS με δύο σύμβολα πληροφορίας. Για την κατανόηση της μεθόδου αυτής παρουσιάζεται και ένα αναλυτικό παράδειγμα κατασκευής ενός (4,12) RS-LDPC κώδικα. Με βάση το παράδειγμα αυτό αναλύονται και τα χαρακτηριστικά του parity check matrix που προκύπτει από τη διαδικασία αυτή. Τέλος περιγράφεται ο τρόπος για την κατασκευή ενός συστηματικού γεννήτορα πίνακα G, ο οποίος θα χρησιμοποιηθεί για τη διαδικασία της κωδικοποίησης στον κώδικα (4,12) RS-LDPC. Η κατασκευή του G όπως θα δειχθεί θα βασιστεί σε μία διαδικασία μετάθεσης στηλών η οποία τελικά θα εκτελεστεί πάνω στην προς μετάδοση κωδική λέξη ώστε να λειτουργήσει σωστά το συνολικό σύστημα. Μετά την κατασκευή του πίνακα G

14 για τον παραπάνω κώδικα, η μέθοδος θα γενικευτεί και για άλλους κώδικες RS-LDPC διαφορετικών μεγεθών. Στο κεφάλαιο 5 παρουσιάζεται λεπτομερώς η αρχιτεκτονική υλικού για καθένα από τα τμήματα του συστήματος που σχεδιάστηκαν. Έτσι αρχικά έχουμε την αρχιτεκτονική του κωδικοποιητή, του δικτύου μεταθέσεων που υλοποιήθηκε και του αποκωδικοποιητή. Ο αποκωδικοποιητής επειδή αποτέλεσε ένα πολύ πολύπλοκο σύστημα στο κεφάλαιο αυτό παρουσιάζονται οι αρχιτεκτονικές για καθένα από τα τμήματα που τον αποτελούν. Έτσι έχουμε την αρχιτεκτονική μίας επεξεργαστικής μονάδας μεταβλητής (variable processin unit), μίας επεξεργαστικής μονάδας ελέγχου (check processin unit) και του δικτύου διασυνδέσεων (permutation network) μεταξύ των μονάδων αυτών. Οι παραπάνω επεξεργαστικές μονάδες υλοποιούν, όπως αναφέρθηκε, τη μέθοδο του layered decodin. Τέλος περιγράφεται και η αρχιτεκτονική του συστήματος μέτρησης λαθών το οποίο χρησιμοποιείται μετά τη διαδικασία της αποκωδικοποίησης για την εξαγωγή των αποτελεσμάτων. Στο κεφάλαιο 6 αναλύονται τα σήματα χρονισμών για τις αρχιτεκτονικές του προηγούμενου κεφαλαίου. Συγκεκριμένα δίνονται τα σχήματα για τις μηχανές πεπερασμένων καταστάσεων (fsm) που χρησιμοποιούνται για κάθε τμήμα αρχιτεκτονικής, αλλά και για το συνολικό σύστημα κωδικοποίησης-αποκωδικοποίησης, και αναλύονται τα βασικά σήματα που χρησιμοποιούνται για το συγχρονισμό όλων των μονάδων που σχεδιάστηκαν. Στο κεφάλαιο 7 περιγράφονται τα επιμέρους βήματα που ακολουθήθηκαν για τη σχεδίαση του συστήματος, την εξαγωγή των εξομοιώσεων και την επιβεβαίωση της ορθής του λειτουργίας. Επιπρόσθετα γίνεται αναφορά στο σύνολο των εργαλείων που χρησιμοποιήθηκαν σε όλα τα στάδια της σχεδίασης είτε σε λογισμικό (matlab) είτε σε υλικό (modelsim), της σύνθεσης, της υλοποίησης, του «κατεβάσματος» στο XC5VLX330T-1FF1738 fpa (impact του ISE), της διεξαγωγής των τελικών εξομοιώσεων τους συστήματος και της παρατήρησης των αποτελεσμάτων (Chipscope Pro του ISE). Τέλος γίνεται μία γενική περιγραφή του fpa που χρησιμοποιήθηκε και των χαρακτηριστικών του. Στο κεφάλαιο 8 παρουσιάζονται τα αποτελέσματα της σχεδίασης του συνολικού συστήματος για τον κώδικα (1723,2048) RS-LDPC. Δίνεται ένας πίνακας που περιέχει αναλυτικά στοιχεία για την επιφάνεια που καταλαμβάνει το συνολικό σύστημα στο fpa καθώς και άλλοι δύο πίνακες με στοιχεία για τον κωδικοποιητή και αποκωδικοποιητή του συστήματος χωριστά. Ακόμα δίνονται και οι συχνότητες λειτουργίας του συνολικού συστήματος καθώς και του κωδικοποιητή και αποκωδικοποιητή. Τέλος παρουσιάζεται τρία διαγράμματα. Το πρώτο είναι ένα διάγραμμα BER-Eb/No που περιέχει το σύνολο των μετρήσεων που λάβαμε, για την περίπτωση όπου ο αλγόριθμος αποκωδικοποίησης εκτελεί ένα συγκεκριμένο αριθμό επαναλήψεων, και αποτελεί εκτίμηση της διορθωτικής ικανότητας του αλγορίθμου. Το δεύτερο, είναι πάλι ένα διάγραμμα BER-Eb/No το οποίο δείχνει τον τρόπο που αλλάζει η διορθωτική ικανότητα του αλγορίθμου μεταβάλλοντας τον αριθμό των επαναλήψεων που αυτός εκτελεί. Τέλος, το τρίτο διάγραμμα παρουσιάζει τον τρόπο εξάρτησης του throuhput από των αριθμό των επαναλήψεων που εκτελεί ο

15 αλγόριθμος αποκωδικοποίησης, έτσι ώστε να μπορεί να εκτιμηθεί η ταχύτητα αποκωδικοποίησης δεδομένων σε συγκεκριμένα επίπεδα θορύβου. Αυτό θα μπορέσει να φανεί χρήσιμο στην περίπτωση που θέλουμε να πετύχουμε συγκεκριμένους ρυθμούς επεξεργασίας δεδομένων, καθώς μπορούμε να εκτιμήσουμε τον αριθμό των αποκωδικοποιητών που θα χρειαστούν. Στο κεφάλαιο 9 γίνεται αρχικά μία σύνοψη της συνολικής μελέτης που εκτελέστηκε στην παρούσα εργασία, μια σύντομη περιγραφή της αρχιτεκτονικής που παρουσιάστηκε και στο τέλος αναφέρονται συνοπτικά τα συμπεράσματα και οι παρατηρήσεις που προέκυψαν

16 - 16 -

17 Κεφάλαιο 1 Τηλεπικοινωνιακό σύστημα Βασικές έννοιες 1.1 Σύστημα ψηφιακής επικοινωνίας Τα τελευταία χρόνια, η δημιουργία όλο και μεγαλύτερων και ταχύτερων δικτύων επικοινωνίας για την ανταλλαγή, επεξεργασία και αποθήκευση ψηφιακών δεδομένων έχει δημιουργήσει την ανάγκη για πιο αποδοτικά και αξιόπιστα συστήματα επικοινωνιών και αποθήκευσης δεδομένων. Ειδικότερα η χρήση του διαδικτύου και των εφαρμογών του, που εξυπηρετούν εκατομμύρια χρήστες, έχει δημιουργήσει την ανάγκη για υψηλού επιπέδου μετάδοση. Ένα μεγάλο ζήτημα που αφορά στη σχεδίαση συστημάτων μετάδοσης είναι ο έλεγχος των λαθών, ώστε να εξασφαλίζεται κατά το δυνατόν αξιόπιστη επικοινωνία. Ένα τυπικό μοντέλο τηλεπικοινωνιακού συστήματος φαίνεται στο παρακάτω σχήμα: Σχ Τυπικό τηλεπικοινωνιακό σύστημα Ο πομπός αναλαμβάνει να μετατρέψει την έξοδο της πηγής σε μία μορφή κατάλληλη για μετάδοση μέσα από το φυσικό κανάλι ή το οποιοδήποτε μέσο διάδοσης

18 Περιλαμβάνει τον κωδικοποιητή πηγής, τον κωδικοποιητή καναλιού και το διαμορφωτή ο ρόλος των οποίων είναι ο εξής: κωδικοποιητής πηγής: μετατροπή της αναλογικής πληροφορίας σε μία ακολουθία δυαδικών ψηφίων, ώστε να μπορέσει να μεταδοθεί μέσω του ψηφιακού συστήματος.. κωδικοποιητής καναλιού: προσθήκη επιπλέον δυαδικών ψηφίων στην προς μετάδοση πληροφορία με σκοπό να καταστεί δυνατή η ανίχνευση και διόρθωση σφαλμάτων που πιθανώς θα προκύψουν κατά τη μετάδοση. διαμορφωτής: μετατροπή της ακολουθίας ψηφιακών δεδομένων που εξέρχεται από τον κωδικοποιητή καναλιού σε μία συνεχή κυματομορφή, με βάση τα χαρακτηριστικά του καναλιού, έτσι ώστε να μπορεί να μεταδοθεί μέσω του καναλιού. Το κανάλι επικοινωνίας είναι το φυσικό μέσο που χρησιμοποιείται για τι μετάδοση της πληροφορίας από τον πομπό στο δέκτη. Ανάλογα με τον τρόπο μετάδοσης, ασύρματη ή ενσύρματη, το κανάλι μπορεί να είναι η ατμόσφαιρα, ενσύρματες γραμμές, καλώδια οπτικών ινών, κλπ. Κάθε κανάλι ανάλογα με το θόρυβο που εισάγει μπορεί αν μοντελοποιηθεί. Από τα πιο διαδεδομένα μοντέλα είναι αυτό του καναλιού δίχως μνήμη και του λευκού γκαουσιανού προσθετικού θορύβου (Additive White Gaussian Noise- AWGN). Τέλος, ο δέκτης αποτελεί το τρίτο βασικό τμήμα του συστήματος επικοινωνίας και αποτελείται και αυτός από τρία βασικά κομμάτια ανάλογα με αυτά του πομπού, τον αποδιαμορφωτή, τον αποκωδικοποιητή καναλιού και τον αποκωδικοποιητή πηγής, οι ρόλοι των οποίων είναι συνοπτικά: αποδιαμορφωτής: μετατροπή της ληφθείσας κυματομορφής από το κανάλι σε μία ακολουθία εξόδου, που αποκαλείται ληφθείσα ακολουθία, και ενδέχεται να είναι διακριτή ή συνεχής. αποκωδικοποιητής καναλιού: αυτός αναλαμβάνει αφενός να αφαιρέσει την πελονάζουσα πληροφορία που εισήγαγε ο κωδικοποιητής καναλιού και αφετέρου να μετατρέψει τη ληφθείσα πληροφορία σε δυαδική, αξιοποιώντας την πλεονάζουσα πληροφορία. Στην ιδανική περίπτωση η αποκωδικοποιημένη δυαδική ακολουθία θα είναι πανομοιότυπη με την αντίστοιχη που παρήγαγε ο κωδικοποιητής πηγής του πομπού. αποκωδικοποιητής πηγής: ανακατασκευή του αρχικού αναλογικού σήματος της πηγής, όσο το δυνατόν πιο πιστά, με βάση την έξοδο που λαμβάνει από τον αποκωδικοποιητή καναλιού. Τα τελικό αναλογικό σήμα πιθανότατα θα αποτελεί μία προσέγγιση του αρχικού σήματος αφού στην πληροφορία έχουν υπεισέλθει σφάλματα που δημιουργήθηκαν κατά τη μετάδοση. Η παρούσα διπλωματική έχει σα σκοπό τη σχεδίαση και υλοποίηση μιας συγκεκριμένης αρχιτεκτονικής για ένα συγκεκριμένο κωδικοποιητή και αποκωδικοποιητή καναλιού. Συνεπώς στη συνέχεια οι διαδικασίες της κωδικοποίησης και κυρίως της αποκωδικοποίησης είναι αυτές που θα μας απασχολήσουν

19 Η δομή ενός απλοποιημένου ψηφιακού τηλεπικοινωνιακού συστήματος φαίνεται στο ακόλουθο σχήμα, όπου ο κωδικοποιητής πηγής έχει ενσωματωθεί στην πηγή σχηματίζοντας την ψηφιακή πηγή, ο αποκωδικοποιητής πηγής στον προορισμό σχηματίζοντας τον ψηφιακό προορισμό, ενώ ο διαμορφωτής και ο αποδιαμορφωτής έχουν ενσωματωθεί στο κανάλι. 1.2 Κωδικοποίηση καναλιού Σχ Απλοποιημένο ψηφιακό τηλεπικοινωνιακό σύστημα Ένα από τα πιο βασικά κομμάτια ενός συστήματος ψηφιακής μετάδοσης είναι η κωδικοποίηση καναλιού. Αυτή υλοποιείται με τη χρήση κωδίκων, που ονομάζονται κώδικες ελέγχου λαθών (ή κώδικες καναλιού). Οι κώδικες αυτοί εισάγουν κάποια πλεονάζουσα πληροφορία στην προς μετάδοση πληροφορία, πριν αυτή μεταδοθεί. Το επιπλέον αυτό τμήμα μπορεί να το χρησιμοποιήσει στη συνέχεια ο δέκτης ώστε να ανιχνεύσει και ενδεχομένως και να διορθώσει τα λάθη που θα δημιουργηθούν κατά τη μετάδοση. Η δημιουργία τέτοιων κωδίκων είναι εφικτή σύμφωνα με το θεώρημα κωδικοποίησης διακριτού καναλιού με θόρυβο του Shannon. Ο Shannon απέδειξε πως η πιθανότητα λανθασμένης μετάδοσης δεδομένων μέσω ενός τηλεπικοινωνιακού καναλιού με θόρυβο μπορεί να περιοριστεί οσοδήποτε επιθυμούμε, αρκεί ο ρυθμός μετάδοσης των δεδομένων πληροφορίας (R) να μην ξεπερνάει ένα συγκεκριμένο όριο. Το όριο καλείται όριο Shannon ή χωρητικότητα του καναλιού και αποτελεί χαρακτηριστικό του καναλιού μετάδοσης. Έτσι χρησιμοποιώντας την κατάλληλη κωδικοποίηση πληροφορίας, ο ρυθμός εμφάνισης λαθών μπορεί να γίνει αυθαίρετα μικρός χωρίς όμως να μειωθεί ο ρυθμός μετάδοσης δεδομένων. Όσο μικρότερη όμως είναι η επιθυμητή πιθανότητα σφάλματος, τόσο πολυπλοκότερη θα πρέπει να είναι και η κωδικοποίηση

20 Ο λόγος λοιπόν για τον οποίο είναι σημαντική η αναφορά στην κωδικοποίηση του καναλιού και στο μαθηματικό μοντέλο είναι γιατί με τον τρόπο αυτό είναι δυνατή η ελαχιστοποίηση της λανθασμένης πληροφορίας που υπήρξε λόγω της μετάδοσης. Με βάση το θεώρημα του Shannon είναι εφικτή η μείωση της πιθανότητας του λάθους κατά τη μετάδοση αρκεί ο ρυθμός της μεταδιδόμενης πληροφορίας να μην υπερβαίνει τη χωρητικότητα C του καναλιού. Η χωρητικότητα C δίνεται από τη σχέση: (1.1) όπου το B συμβολίζει το εύρος ζώνης του καναλιού και το SNR το λόγο της ισχύος του σήματος προς μετάδοση προς την ισχύ του σήματος θορύβου. Για να υπάρχει η δυνατότητα ελαχιστοποίησης των λαθών στο μεταδιδόμενο σήμα με βάση το θεώρημα Shannon θα πρέπει να ισχύει: Με βάση την (1.1) η χωρητικότητα του καναλιού εξαρτάται από το εύρος ζώνης και την ισχύ του θορύβου. Έτσι για να περιορίσουμε την πιθανότητα σφάλματος θα πρέπει η μετάδοση να γίνεται με ρυθμό που να προσεγγίζει όσο το δυνατό περισσότερο το όριο του Shannon. Για να είναι αυτό εφικτό, χωρίς όμως να αλλάξει ο ρυθμός μετάδοσης ή ο θόρυβος στο κανάλι, θα πρέπει να αυξηθεί η υπολογιστική πολυπλοκότητα της κωδικοποίησης του καναλιού, κάτι που θα επιφέρει αύξηση του κόστους μετάδοσης. Η υπολογιστική πολυπλοκότητα και η ισχύς του μεταδιδόμενου σήματος είναι παράγοντες που όσο αυξάνονται βελτιώνουν την αξιοπιστία του συστήματος αλλά ταυτόχρονα αυξάνουν και το κόστος μετάδοσης. Το ζητούμενο σε κάθε περίπτωση είναι να επιτευχθεί αποδοτικότερη κωδικοποίηση με το μικρότερο υπολογιστικό κόστος. 1.3 Διόρθωση σφαλμάτων Ο δέκτης, σε περίπτωση που εμφανιστεί κάποιο σφάλμα στην πληροφορία που θα λάβει μπορεί να προβεί σε δύο διαφορετικές ενέργειες με σκοπό τη διόρθωση του. Μπορεί είτε να ζητήσει από τον πομπό την επανεκπομπή των δεδομένων που έλαβε, είτε να προβεί στη διόρθωση των σφαλμάτων που ανίχνευσε χρησιμοποιώντας του κανόνες κωδικοποίησης. Όσον αφορά στη δεύτερη τεχνική της διόρθωσης των σφαλμάτων που ακολουθεί ο δέκτης, υπάρχουν δύο μεγάλες κατηγορίες κωδίκων που χρησιμοποιούνται για τη διόρθωση των λαθών, οι μπλοκ κώδικες (block codes) και οι συνελικτικοί κώδικες (convolutional codes). Στους συνελικτικούς κώδικες η έξοδος του κωδικοποιητή κάθε χρονική στιγμή εξαρτάται όχι μόνο από την τρέχουσα πληροφορία εισόδου αλλά και από ένα σύνολο (block) δυαδικών ψηφίων που προηγήθηκαν. Μετατρέπουν δηλαδή μία ολόκληρη ροή δεδομένων σε μία κωδική λέξη. Αντίθετα στους μπλοκ κώδικες ο κωδικοποιητής δεν έχει μνήμη, δηλαδή κάθε διαδικασία κωδικοποίησης εξαρτάται μόνο από την τρέχουσα

21 πληροφορία εισόδου και όχι από κάποια προηγούμενη ή επόμενη τιμή της εισόδου. Στους κώδικες αυτούς όταν πρέπει να μεταδοθεί πληροφορία αποτελούμενη από k δυαδικά ψηφία προστίθενται σε αυτά (n-k) πλεονάζοντα δυαδικά ψηφία ώστε να προκύψει η προς μετάδοση πληροφορία η οποία αποτελείται συνολικά από n δυαδικά ψηφία. Οι κώδικες LDPC οι οποίοι αποτελούν το αντικείμενο της παρούσας διπλωματικής ανήκουν στην κατηγορία των μπλοκ κωδίκων και αναλυτική περιγραφή τους γίνεται στην ενότητα που ακολουθεί. 1.4 Μπλοκ κώδικες Όπως προαναφέρθηκε, το βασικό χαρακτηριστικό των μπλοκ κωδίκων είναι ότι δεν έχουν μνήμη διότι δε χρησιμοποιούν στοιχεία από προηγούμενα μπλοκ. Σε ένα μπλοκ κώδικα ο κωδικοποιητής δέχεται στην είσοδό του μία ακολουθία πληροφοριακών ψηφίων σταθερού μήκους η οποία καλείται μήνυμα (messae) και αποτελείται από k δυαδικά ψηφία-bits. Στη συνέχεια μετατρέπει την ακολουθία αυτή σε μία ακολουθία από n bits, προσθέτοντας n-k bits μοναδικά για το κάθε μήνυμα, και έτσι σχηματίζει την κωδική λέξη (codeword). Σε ένα (n,k) μπλοκ κώδικα υπάρχουν 2 k διαφορετικά μηνύματα. Εφόσον σε κάθε μήνυμα, όπως αναφέρθηκε, μπορεί να αντιστοιχιστεί μία και μόνο κωδική λέξη, θα υπάρχουν και 2 k διαφορετικές κωδικές λέξεις μήκους n bits η καθεμία. Ο ρυθμός R ενός κώδικα δίνεται από τη σχέση R=k/n και καθορίζει το βαθμό του πλεονασμού, δηλαδή τον αριθμό των επιπλέον στοιχείων που θα προστεθούν στο μήνυμα. Ένας μπλοκ κώδικας καλείται γραμμικός αν το άθροισμα δύο κωδικών του λέξεων αποτελεί επίσης κωδική λέξη του κώδικα και αν ο κώδικας περιέχει τη μηδενική κωδική λέξη. Στην περίπτωση δυαδικού κώδικα αυτό συνεπάγεται πως το αποτέλεσμα της συνιστώσας-προς-συνιστώσα XOR λογικής πράξης μεταξύ δύο κωδικών λέξεων, είναι επίσης κωδική λέξη. Ένας μπλοκ κώδικας παράγεται από ένα σύνολο k γραμμικώς ανεξάρτητων n- διάστατων διανυσμάτων 0, 1,, k-1, όπου οι κωδικές του λέξεις αποτελούν συνδυασμό αυτών των k διανυσμάτων. Συνεπώς για ένα μήνυμα u = (u 0, u 1,, u k-1 ) η αντίστοιχη κωδική λέξη θα είναι c = u u u k-1 k-1. Τα k n-διάστατα διανύσματα που αποτελούν τον κώδικα 0, 1,, k-1 μπορούν να δημιουργήσουν ένα πίνακα G, διάστασης kxn με γραμμές τα k διανύσματα, ο οποίoς καλείται γεννήτορας πίνακας (enerator matrix) όπως φαίνεται παρακάτω:

22 0 0,0 0,1... 0, n1 1 1,0 1,1... 1, n1 2 2,0,1... 2, n1 G k 1 k 1,0 k 1,1 k 1, n1 Σχ Μορφή γεννήτορα πίνακα Έτσι λοιπόν η κωδική λέξη c για το μήνυμα u μπορεί να προκύψει ως c u G = u u u k-1 k-1 (1.2) Δεδομένου του γεννήτορα πίνακα δηλαδή είμαστε σε θέση να υπολογίσουμε με βάση την παραπάνω σχέση τις κωδικές λέξεις που αντιστοιχούν σε οποιαδήποτε ακολουθία 0 και 1 ενός μπλοκ. 1.5 Συστηματικοί μπλοκ κώδικες Ένας μπλοκ κώδικας λέγεται συστηματικός (systematic) όταν το μήνυμα σε κάθε περίπτωση αποτελεί ένα διακριτό τμήμα της κωδικής λέξης. Τότε τα υπόλοιπα n-k δυαδικά ψηφία της κωδικής λέξης αποτελούν τα bits ισοτιμίας (parity bits). Μια τέτοια δομή επιτρέπει την άμεση εξαγωγή της πληροφορίας από την κωδική λέξη λαμβάνοντας τα συγκεκριμένα ψηφία της πληροφορίας. Ο γεννήτορας πίνακας ενός συστηματικού μπλοκ κώδικα έχει την ακόλουθη μορφή: k G I P (1.3) Ο πίνακας I k είναι ένας μοναδιαίος πίνακας (όλα του τα στοιχεία είναι 0 εκτός από αυτά της κύριας διαγωνίου που είναι 1 ), διάστασης kxk ενώ ο πίνακας P έχει διάσταση kx(n-k) και τα στοιχεία του είναι 0 και 1. Ο πίνακας P εκλέγεται κατάλληλα ώστε ο κώδικας να έχει τις επιθυμητές ιδιότητες, όπως για παράδειγμα εύκολη υλοποίηση και δυνατότητα διόρθωσης σφαλμάτων. Δοθέντος του πίνακα P μπορεί να καθοριστεί πλήρως και ο γεννήτορας πίνακας με βάση τη σχέση (1.3). Στην περίπτωση που έχουμε συστηματικό γεννήτορα πίνακα τότε η κωδική λέξη που θα προκύψει από τον πολλαπλασιασμό του πίνακα G με το αρχικό μήνυμα θα αποτελείται από δύο διακριτά τμήματα. Το πρώτο θα περιέχει τα δυαδικά σύμβολα πληροφορίας (όπως αυτά ήταν τοποθετημένα στο αρχικό μήνυμα) και το δεύτερο θα περιέχει n-k στο πλήθος δυαδικά σύμβολα ισοτιμίας (parity bits) τα οποία χρησιμοποιούνται για να βελτιωθεί η αξιοπιστία της μετάδοσης όπως έχουμε περιγράψει και όπως θα δούμε και στη συνέχεια (στην παρούσα διπλωματική θα ασχοληθούμε με

23 δυαδικούς κώδικες γι αυτό και οι έννοιες που ορίζονται αναφέρονται μόνο σε τέτοιους κώδικες). 1.6 Πίνακας ελέγχου ισοτιμίας Έστω ότι μετά από τον πολλαπλασιασμό ενός διανύσματος u i με το γεννήτορα πίνακα G προκύπτει η κωδική λέξη c i. Τα n δυαδικά ψηφία που συνιστούν τη c i ορίζουν ένα χώρο n-διαστάσεων. Ο n-διάστατος χώρος περιλαμβάνει 2 n στοιχεία, από τα οποία μόνο τα 2 k είναι έγκυρες κωδικές λέξεις. Οι 2 k λέξεις αυτές συνιστούν με τη σειρά τους ένα k-διάστατο χώρο (έστω C) ο οποίος είναι υποχώρος του προηγούμενου n-διάστατου. Οι γραμμές του γεννήτορα πίνακα G δεν είναι τίποτα περισσότερο από τα k διανύσματα που αποτελούν τη βάση του υποχώρου που αναφέρθηκε. Έστω τώρα μία οποιαδήποτε ακολουθία h από τις δυαδικές ακολουθίες μήκους n, οι οποίες είναι ορθογώνιες προς όλα τα διανύσματα του k-διάστατου υποχώρου. Για την h θα ισχύει: T hc i 0 (1.4) όπου i= 1, 2,, 2 k ενώ c i T είναι η ανάστροφη εκδοχή της έγκυρης κωδικής λέξης c i. Αποδεικνύεται ότι το πλήθος των μήκους n ακολουθιών που έχουν την παραπάνω ιδιότητα είναι 2 n-k. Οι 2 n-k ορθογώνιες ακολουθίες h i μπορεί αν θεωρηθεί ότι αποτελούν έγκυρες κωδικές λέξεις για έναν (n,n-k) γραμμικό κώδικα μπλοκ (έστω C T ), ο οποίος καλείται δυϊκός (dual) του αρχικού (n,k) κώδικα C. Έστω H ο γεννήτορας πίνακας για τον κώδικα C T. Ο Η αποτελείται από n-k γραμμές n στοιχείων, οι οποίες είναι διανύσματα βάσης του (n-k)-διάστατου χώρου και κάθε μία από αυτές αποτελεί μία έγκυρη κωδική λέξη του κώδικα C T. Επομένως κάθε γραμμή του πίνακα Η είναι ορθογώνια ως προς κάθε κωδική λέξη του κώδικα C. Κατά συνέπεια ο πίνακας Η μας παρέχει (n-k) σχέσεις, τις οποίες θα πρέπει να επαληθεύει μία κωδική λέξη για να είναι έγκυρη, και οι οποίες συνοψίζονται στην ακόλουθη σχέση: ci T H 0 (1.5) Πρακτικά, στην περίπτωση ενός δυαδικού κώδικα, λόγω της modulo-2 άθροισης που λαμβάνει χώρα, κάθε μία γραμμή του πίνακα Η ελέγχει αν μεταξύ συγκεκριμένων ψηφίων της κωδικής λέξης υπάρχει άρτιο πλήθος άσσων. Εφόσον λοιπόν ο Η ελέγχει την ισοτιμία των άσσων της κωδικής λέξης καλείται πίνακας ελέγχου ισοτιμίας (parity check matrix) του αρχικού κώδικα C. Ο λόγος που χρησιμοποιείται είναι η ανίχνευση σφαλμάτων, εξετάζοντας κάθε φορά αν η λέξη που φτάνει στο δέκτη αποτελεί κωδική λέξη ή όχι, Όπως γίνεται εύκολα αντιληπτό από τα παραπάνω, ο πίνακας Η έχει διάσταση (n-k)xn και τα στοιχεία του είναι 0 ή 1 εφόσον αναφερόμαστε σε δυαδική πληροφορία. Ανάμεσα στο γεννήτορα πίνακα και τον πίνακα ελέγχου ισοτιμίας ισχύει η σχέση:

24 (1.6) και όπως και ο G έτσι και ο Η αποτελεί χαρακτηριστικό πίνακα για τον κάθε κώδικα. Δεδομένου ότι θα ασχοληθούμε με δυαδικούς κώδικες, οι επί μέρους πράξεις που γίνονται για να ολοκληρωθεί ο πολλαπλασιασμός των πινάκων συμβαίνουν στο δυαδικό σύστημα και άρα θα είναι όλες modulo2 και ο συντελεστής υπονοεί τη συνιστώσα προς συνιστώσα xor λογική πράξη. 1.7 Απόσταση και βάρος Hammin Για οποιαδήποτε κωδική λέξη ορίζεται ένας συγκεκριμένος αριθμός ο οποίος καλείται βάρος Hammin (Hammin weiht) και αντιστοιχεί στον αριθμό των μη μηδενικών στοιχείων της κωδικής λέξης. Η απόσταση Hammin (Hammin distance) d μεταξύ δύο κωδικών λέξεων ορίζεται ως ο αριθμός των θέσεων στις οποίες διαφέρουν οι δύο λέξεις. Ως ελάχιστη απόσταση (minimum distance) d min ενός μπλοκ κώδικα ορίζεται η ελάχιστη απόσταση Hammin μεταξύ δύο ζευγών κωδικών λέξεων του κώδικα. Η ελάχιστη απόσταση αποτελεί σημαντική παράμετρο καθώς καθορίζει την ικανότητα ανίχνευσης και διόρθωσης σφαλμάτων του κώδικα. Συγκεκριμένα σε ένα γραμμικό μπλοκ κώδικα με ελάχιστη απόσταση d min αποδεικνύεται ότι σε κάθε κωδική λέξη υπάρχει δυνατότητα να ανιχνευθούν s (d min -1) σφάλματα και να διορθωθούν αντίστοιχα t (d min -1)/2. Σημαντική είναι επίσης η σχέση που υπάρχει μεταξύ του πίνακα ελέγχου ισοτιμίας και της ελάχιστης απόστασης, η οποία μπορεί να οριστεί ως ο ελάχιστος αριθμός στηλών του πίνακα Η που έχουν άθροισμα ίσο με το 0. Στην κατηγορία των μπλοκ κωδίκων ανήκουν οι κώδικες Hammin, οι κυκλικοί κώδικες, οι BCH, οι Reed-Solomon (RS), οι LDPC (Low-Density-Parity-Check) κώδικες και άλλοι. Συνδυασμός απλών κωδίκων έχει οδηγήσει στη δημιουργία εξαιρετικά επιτυχημένων σύνθετων σχημάτων κωδικοποίησης καναλιού. Οι κώδικες γινομένου, οι αλυσιδωτοί κώδικες και οι τούρμπο (turbo) κώδικες είναι ορισμένες χαρακτηριστικές περιπτώσεις. Οι τελευταίοι αποτέλεσαν τα τελευταία χρόνια τους πλέον αποδοτικούς κώδικες για κωδικοποίηση καναλιού, επιτυγχάνοντας σε αρκετές περιπτώσεις ρυθμούς μετάδοσης πολύ κοντά στο όριο του Shannon. Στην παρούσα διπλωματική θα ασχοληθούμε με μία ειδική κατηγορία κωδίκων τους RS-LDPC. Πρόκειται δηλαδή για reular κώδικες LDPC που κατασκευάζονται με μία αλγεβρική μέθοδο βασισμένη σε κώδικες Reed-Solomon με δύο σύμβολα πληροφορίας. Οι κώδικες αυτοί καθώς και η τεχνική κατασκευής των RS-LDPC θα αναλυθούν διεξοδικότερα σε επόμενα κεφάλαια

25 Κεφάλαιο 2 Κώδικες LDPC (Low-Density-Parity-Check) Αλγόριθμοι αποκωδικοποίησης 2.1 Κώδικες LDPC Ιστορική αναδρομή Οι κώδικες LDPC εφευρέθηκαν από τον R.G.Gallaer το 1963 και ήταν οι πρώτοι κώδικες διόρθωσης λαθών, οι οποίοι μπορούσαν να προσεγγίσουν ρυθμούς μετάδοσης δεδομένων πολύ κοντά στο θεωρητικό μέγιστο, το όριο Shannon. Παρόλα αυτά για κάποια χρόνια οι κώδικες αυτοί έμειναν στο περιθώριο καθώς για τα δεδομένα της εποχής απαιτούσαν υπερβολικά μεγάλο υπολογιστικό κόστος και οι υπολογιστικές μηχανές της εποχής δεν ήταν σε θέση αν ανταπεξέλθουν στην πολυπλοκότητα του αλγορίθμου στον οποίο βασίζονταν οι κώδικες LDPC. Με την εξέλιξη όμως της τεχνολογίας στα μέσα της δεκαετίας του 90 το ενδιαφέρον στράφηκε ξανά στους κώδικες LDPC αφού πλέον ήταν δυνατή η υλοποίηση τους. Το 1993 παρουσιάστηκε μία νέα κατηγορία κωδίκων, οι τούρμπο κώδικες (turbo codes). Οι αξιοσημείωτες επιδόσεις των κωδίκων αυτών προκάλεσε ποικίλα ερωτήματα και μεγάλο ενδιαφέρον για παρόμοιες επαναληπτικές μεθόδους. Στα τέλη της δεκαετίας του 90 οι κώδικες αυτοί αποτελούσαν τη βασική επιλογή κωδικοποίησης των σχεδιαστών. Παρόλα αυτά τα τελευταία χρόνια οι κώδικες LDPC κατάφεραν να γίνουν πρότυπο για σημαντικές νέες τηλεπικοινωνιακές εφαρμογές, καθώς υπερείχαν ως προς τους turbo κώδικες όσον αφορά στην απόδοση τους ως προς τη διόρθωση σφαλμάτων και την εμφάνιση του λεγόμενου error floor) και στην απόδοση σε υψηλότερους ρυθμούς μετάδοσης (code rate). Το 2003 οι κώδικες LDPC έγιναν το πρότυπο για το DVB_S2 (Diital Video Broadcastin δορυφορική μετάδοση ψηφιακής τηλεόρασης), κερδίζοντας τους turbo κώδικες ενώ το 2008 επιλέχθηκαν αντί των συνελικτικών turbo κωδίκων (convolutional turbo codes) για το πρότυπο ITU-T G.hn, λόγω μικρότερης υπολογιστικής πολυπλοκότητας τους, ειδικά για ρυθμούς μετάδοσης της τάξης του 1Gbps, καθώς και της καλύτερης απόδοσης τους ως προς τη διόρθωση σφαλμάτων. Οι κώδικες LDPC χρησιμοποιήθηκαν επίσης στο πρότυπο 802.3an της IEEE για το 10GBASE-T Ethernet όπου γίνεται αποστολή δεδομένων σε ρυθμούς των 10 iabits το δευτερόλεπτο μέσω συστρεμμένου ζεύγους καλωδίων (twisted-pair cables). Στη συνέχεια θα γίνει λεπτομερής ανάλυση της κατηγορίας των κωδίκων LDPC που χρησιμοποιήθηκαν από το πρότυπο αυτό, θα προταθεί σχεδίαση για κωδικοποιητή και αποκωδικοποιητή και θα γίνει ανάλυση των αντίστοιχων αποτελεσμάτων

26 2.1.2 Βασικά χαρακτηριστικά Οι κώδικες LDPC είναι κώδικες ελέγχου ισοτιμίας και μπορούν να αναπαρασταθούν πλήρως είτε μέσω πινάκων - μέσω του γεννήτορα πίνακα G ή του πίνακα ελέγχου ισοτιμίας (parity check matrix) Η - είτε μέσω μιας μεθόδου απεικόνισης η οποία χρησιμοποιεί γράφους Tanner. Όπως αναφέρθηκε και παραπάνω η κωδικοποίηση ενός κώδικα μπλοκ γίνεται με τη βοήθεια του γεννήτορα πίνακα G. Το προς μετάδοση μήνυμα μήκους k δυαδικών ψηφίων πολλαπλασιάζεται με τον kxn πίνακα G, σύμφωνα με την (1.2), και προκύπτει η κωδική λέξη διάστασης 1xn. Δεδομένου ότι γνωρίζοντας το γεννήτορα πίνακα μπορούμε να βρούμε όλες τις κωδικές λέξεις του κώδικα, ένας πρώτος τρόπος περιγραφής ενός κώδικα LDPC είναι ο πίνακας αυτός. Αντίστοιχα, ο κώδικας LDPC μπορεί να περιγραφεί πλήρως με τον πίνακα ελέγχου ισοτιμίας H. Το βασικό χαρακτηριστικό του πίνακα αυτού είναι ότι είναι «αραιός» (sparse), ότι δηλαδή περιέχει ένα πολύ μικρό αριθμό μη μηδενικών στοιχείων (δεδομένου ότι ασχολούμαστε με δυαδικούς κώδικες τα στοιχεία αυτά είναι άσσοι). Από το χαρακτηριστικό αυτό προκύπτει και η ονομασία των συγκεκριμένων κωδίκων. Δεδομένου ότι κάθε έγκυρη λέξη του κώδικα θα πρέπει να ικανοποιεί τη σχέση (1.5), γνωρίζοντας τον πίνακα Η μπορούμε να διακρίνουμε από το σύνολο των 2 n δυνατών συνδυασμών κωδικών λέξεων τις 2 k έγκυρες. Έτσι ο και πίνακας Η μπορεί να περιγράψει επαρκώς έναν LDPC κώδικα. Ένα παράδειγμα πίνακα ελέγχου ισοτιμίας για έναν (9,6) κώδικα φαίνεται στο επόμενο σχήμα: H Σχ Παράδειγμα πίνακα ελέγχου ισοτιμίας Κάθε γραμμή του πίνακα Η αντιστοιχεί σε μία εξίσωση ελέγχου ισοτιμίας (parity check equation) και κάθε άσσος στη θέση (i,j) σημαίνει ότι το j-οστο σύμβολο δεδομένων συμμετέχει στην i-οστη εξίσωση ελέγχου ισοτιμίας. Για το σύνολο των κωδικών λέξεων u που προκύπτουν από ένα LDPC κώδικα ισχύει η σχέση (1.5), που σημαίνει ότι τα μέρη της u που συμμετέχουν με βάση τη θέση τους στην αντίστοιχη εξίσωση ελέγχου ισοτιμίας θα έχουν είτε άρτιο πλήθος άσσων (άρτια ισοτιμία) είτε περιττό πλήθος άσσων (περιττή ισοτιμία)

27 Το μέγεθος του πίνακα είναι (n-k)xn, όπου το n δείχνει το μήκος του κώδικα (της κωδικής λέξης), το k το πλήθος των bit του μηνύματος (information bits) και το m=n-k το πλήθος των κόμβων ελέγχου που χρησιμοποιεί ο συγκεκριμένος κώδικας. Τα δεδομένα αυτά ισχύουν στην περίπτωση που ο πίνακας H είναι ένας full rank πίνακας. Σε κάθε περίπτωση το πλήθος των parity bits ισούται με την τάξη (rank) του H. Αν ο πίνακας Η αποτελείται από m=n-k γραμμικώς ανεξάρτητες γραμμές, δηλαδή το rank(η) ισούται με m, τότε και τα bit ελέγχου ισοτιμίας (parity bits) θα ταυτίζονται και με το πλήθος των γραμμών του Η. Κάθε σειρά του πίνακα είναι μια πράξη ελέγχου ισοτιμίας και κάθε στήλη αντιστοιχεί σε ένα bit της κωδικής λέξης. Κάθε στήλη και κάθε γραμμή του Η αποτελείται από ένα μικρό σταθερό αριθμό άσσων d u και d c αντίστοιχα. Για κάθε κώδικα LDPC έχει καθιερωθεί ο συμβολισμός (n, d u, d c ) ο οποίος ορίζει έναν πίνακα Η με n στήλες, m=n-k γραμμές, όπου κάθε στήλη του περιέχει d u άσσους και κάθε γραμμή d c. Για τον παραπάνω πίνακα ισχύει d u =2 και d c =3. Στην πραγματικότητα με το συμβολισμό αυτό δεν αναπαρίσταται ένας μόνο κώδικας αλλά μία ομάδα κωδίκων LDPC, αφού με την αλλαγή της θέσης σε έναν και μόνο άσσου του πίνακα δημιουργείται ένας νέος κώδικας. Δεδομένου ότι ο συνολικός αριθμός άσσων ενός πίνακα ελέγχου ισοτιμίας διαστάσεων (m, n) είναι σταθερός ισχύει: md c nd (2.1) u Ο ρυθμός κώδικα (code rate ή R) ορίζεται ως ο λόγος των δεδομένων πληροφορίας k προς τα συνολικά δεδομένα που μεταδίδονται (n) κάτι που φαίνεται και στην επόμενη σχέση: k n m m du R 1 R1 (2.2) n n n d Ένας κώδικας LDPC με σταθερές τις παραμέτρους d u και d c για όλες τις στήλες και τις γραμμές του πίνακα Η ονομάζεται κανονικός κώδικας (reular code). Σε διαφορετική περίπτωση ο κώδικας καλείται μη κανονικός κώδικας (irreular code). Σε αυτή την περίπτωση, ο αριθμός των άσσων κάθε γραμμής ή κάθε στήλης είναι συνάρτηση της γραμμής ή της στήλης αντίστοιχα και περιγράφεται συνήθως από συγκεκριμένα πολυώνυμα. Ο Tanner προσδιόρισε έναν πολύ πρακτικό τρόπο για την περιγραφή ενός μπλοκ κώδικα ο οποίος στη συνέχεια αποδείχθηκε εξαιρετικά χρήσιμος για τους κώδικες LDPC. Η περιγραφή του Tanner απεικονίζει τον πίνακα ελέγχου ισοτιμίας με ένα διμερή γράφο (bipartite raph), το διάγραμμα Tanner. Ο γράφος αυτός αποτελείται από δύο ειδών κόμβους-κορυφές και ακμές μεταξύ αυτών. Οι κόμβοι της μίας κατηγορίας ονομάζονται κόμβοι μεταβλητής (variable nodes) και αντιστοιχούν στις στήλες του πίνακα ισοτιμίας, και της δεύτερης ονομάζονται κόμβοι ελέγχου (check nodes) και αντιστοιχούν στις γραμμές του πίνακα H. Μπορούμε λοιπόν να θεωρήσουμε πως κάθε κόμβος μεταβλητής c

28 αναπαριστά ένα σύμβολο δεδομένων και κάθε κόμβος ελέγχου μία εξίσωση ελέγχου ισοτιμίας. Οι άσσοι του πίνακα αντιστοιχούν στις ακμές του γράφου. Έτσι αν το στοιχείο (i,j) του πίνακα Η είναι άσσος τότε στο γράφο θα υπάρχει μία ακμή που θα συνδέει τον κόμβο μεταβλητής ο οποίος αντιστοιχεί στη στήλη j με τον κόμβο ελέγχου ο οποίος αντιστοιχεί στη γραμμή i. Ο αριθμός των ακμών που συνδέονται σε κάθε κόμβο ονομάζεται βαθμός (deree) του συγκεκριμένου κόμβου. Στο επόμενο σχήμα φαίνεται ένα παράδειγμα ενός διαγράμματος Tanner για τον πίνακα H που δόθηκε παραπάνω. Πρόκειται για έναν (9,2,3)- LDPC κώδικα. Η βασική ιδιότητα όλων των κωδίκων LDPC ορίζει ότι όλα τα ψηφία που ελέγχονται με έναν κόμβο ελέγχου, έχουν modulo-2 άθροισμα ίσο με το μηδέν ή, ισοδύναμα, έχουν αποτέλεσμα μηδέν στην πράξη XOR. Αυτή η ιδιότητα ονομάζεται περιορισμός ισοτιμίας ελέγχου (parity check constraint) και κάθε λέξη των εννέα bits για το συγκεκριμένο κώδικα είναι έγκυρη κωδική λέξη αν και μόνο αν ικανοποιεί και τα έξι parity check constraints. Σχ Διάγραμμα Tanner για (9,2,3)- LDPC κώδικα[6] Με βάση την παραπάνω απεικόνιση μπορούμε να ορίσουμε δύο ακόμα παραμέτρους. Το βαθμό κόμβου ελέγχου (check deree) που ισούται με τον αριθμό των ακμών που συνδέονται στο συγκεκριμένο κόμβο ελέγχου και αντίστοιχα το βαθμό κόμβου μεταβλητής (variable deree) που ισούται με τον αριθμό των ακμών που συνδέονται στο συγκεκριμένο κόμβο μεταβλητής. Το check deree ισούται με το σύνολο των άσσων που έχει η γραμμή του πίνακα H που αντιστοιχεί στον κόμβο αυτό, ενώ το variable deree με τον αριθμό των άσσων της αντίστοιχης στήλης με το variable. Ένα πολύ σημαντικό χαρακτηριστικό ενός διαγράμματος Tanner είναι η ύπαρξη κύκλων. Ένας κύκλος μήκους είναι μια κλειστή διαδρομή η οποία περιλαμβάνει στο πλήθος ακμές. Η παρουσία κύκλων στο διάγραμμα Tanner ενός κώδικα είναι ανεπιθύμητη, επειδή περιορίζει την απόδοση της αποκωδικοποίησης. Είναι όμως και ανέφικτη καθώς η απουσία κύκλων προσθέτει απόλυτη ανεξαρτησία μεταξύ των bits που ελέγχει η κάθε γραμμή του πίνακα ισοτιμίας. Δεδομένου πλέον ότι η αποφυγή κύκλων δεν είναι δυνατή, επιδιώκεται η παρουσία κύκλων με το μέγιστο δυνατό μήκος (κάτι που υπονοεί λιγότερες εξαρτήσεις). Το μήκος όμως των κύκλων είναι ανάλογο των διαστάσεων του πίνακα ισοτιμίας, κάτι που θέτει όρια στο μέγιστο δυνατό του μήκος. Ο μικρότερος κύκλος που μπορεί να εμφανισθεί σε έναν κώδικα είναι ένας κύκλος μήκους τέσσερα. Το μήκος του μικρότερου κύκλου ενός κώδικα ενδιαφέρει ιδιαίτερα το

29 σχεδιαστή και για το λόγο αυτό αποτελεί χαρακτηριστικό του κώδικα και ονομάζεται irth. Όπως θα φανεί και στη συνέχεια ο πίνακας ελέγχου ισοτιμίας καθορίζει το κύκλωμα και κατά συνέπεια την πολυπλοκότητα του αποκωδικοποιητή. Πιο συγκεκριμένα η πολυπλοκότητα είναι ανάλογη των μη μηδενικών στοιχείων του πίνακα ισοτιμίας. Επομένως όσο μικρότερος είναι ο αριθμός των άσσων του πίνακα τόσο απλούστερος θα είναι ο αποκωδικοποιητής που θα προκύψει, κάτι που φανερώνει το σημαντικό πλεονέκτημα των κωδίκων LDPC ως προς την υλοποίηση σε σχέση με άλλους μπλοκ κώδικες του ίδιου μεγέθους. Ένα ακόμη σημαντικό πλεονέκτημα των κωδίκων LDPC είναι πως οι χρησιμοποιούμενοι αλγόριθμοι αποκωδικοποίησης προσφέρουν πέρα από την ανίχνευση σφαλμάτων έγκυρη ανίχνευση των περιπτώσεων όπου αποτυγχάνει η αποκωδικοποίηση. Τέλος, το βασικό πλεονέκτημα των κωδίκων LDPC είναι ότι είναι πολύ καλές οι επιδόσεις τους. Ενώ μέχρι πριν λίγα χρόνια οι κώδικες turbo ήταν εκείνοι που θεωρούνταν οι πρώτοι όσον αφορά στις επιδόσεις, πλέον οι κώδικες LDPC φαίνονται να τους ανταγωνίζονται επάξια, καθώς υποστηρίζουν ρυθμούς μετάδοσης οι οποίοι προσεγγίζουν τη χωρητικότητα του καναλιού (όριο Shannon). 2.2 Αλγόριθμοι αποκωδικοποίησης Αποκωδικοποίηση Η κατηγορία των αλγορίθμων αποκωδικοποίησης που χρησιμοποιούνται για την αποκωδικοποίηση από τους κώδικες LDPC ονομάζεται messae-passin αλγόριθμοι. Η λειτουργία τους μπορεί να περιγραφεί από τη διαδοχική ανταλλαγή μηνυμάτων μεταξύ των δύο ειδών κόμβων του διαγράμματος Tanner που αντιστοιχεί τον κώδικα καθώς και την εκτέλεση κάποιων υπολογισμών στους κόμβους αυτούς. Έστω ότι εκτελείται η μετάδοση μίας κωδικής λέξης μέσω ενός καναλιού επικοινωνίας με θόρυβο και ότι κάποια από τα ψηφία-σύμβολά της έχουν υποστεί αλλοίωση. Μόλις φτάσει η λανθασμένη λέξη στον αποκωδικοποιητή, κάθε σύμβολο της μπαίνει ως είσοδος στον αντίστοιχο κόμβο μεταβλητής. Με βάση τους messae-passin αλγόριθμους, κάθε κόμβος μεταβλητής προκειμένου να πάρει μία απόφαση σχετικά με το αν το bit που έλαβε είναι λανθασμένο ή όχι επικοινωνεί με τους γειτονικούς του κόμβους ελέγχου, ζητώντας τους μία εκτίμηση τους για το συγκεκριμένο bit. Οι κόμβοι ελέγχου, με τη σειρά τους, επικοινωνούν στη συνέχεια με τους γειτονικούς τους κόμβους μεταβλητής (ο κάθε κόμβος ελέγχου με τους δικούς του γειτονικούς κόμβους μεταβλητής) ζητώντας τις δικές τους τρέχουσες εκτιμήσεις για τα δικά τους bits (φάση Α), με βάση τις οποίες εξάγουν μία απάντηση-εκτίμηση, συναρτήσει των εκτιμήσεων που έλαβαν, την οποία στέλνουν τελικά στον αρχικό κόμβο μεταβλητής (φάση Β). Με τον τρόπο αυτό ελέγχεται η άρτια η περιττή ισοτιμία των άσσων της ελεγχόμενης μονάδας ψηφίων. Η παραπάνω διαδικασία αποτελεί μία επανάληψη του messae-passin αλγορίθμου. Με κάθε επιπλέον επανάληψη που εκτελείται αυξάνεται και η πιθανότητα να είναι σωστή η εκτίμηση των κόμβων μεταβλητής για τις τιμές των ψηφίων της κωδικής λέξης. Στο επόμενο σχήμα απεικονίζονται οι δύο φάσεις ανταλλαγής

30 μηνυμάτων όπως αυτές περιγράφηκαν για τον (9,2,3)-LDPC που αναφέρθηκε στην προηγούμενη ενότητα. Φάση Α Φάση Β Σχ Διάγραμμα Tanner-Αποστολή variable-to-check μηνυμάτων[6] Σχ Διάγραμμα Tanner-Αποστολή check-to-variable μηνυμάτων[6] Όπως φαίνεται από το παραπάνω σχήμα και από την περιγραφή του messaepassin αλγορίθμου υπάρχει μία αντιστοιχία ανάμεσα στο διάγραμμα Tanner ενός κώδικα LDPC και στο κύκλωμα που υλοποιεί την αποκωδικοποίηση. Το κύκλωμα αυτό θα μπορούσε να αποτελείται από δύο ειδών υπολογιστικές μονάδες, έναν τύπο για τους κόμβους ελέγχου (check processin unit CPU) και έναν τύπο για τους κόμβους μεταβλητής (variable processin unit VPU). Κάθε κόμβος του διαγράμματος Tanner αντιστοιχεί σε μία επεξεργαστική μονάδα (VPU ή CPU) του αντίστοιχου τύπου. Μεταξύ των δύο τύπων υπολογιστικών μονάδων ανταλλάσσονται τα μηνύματα-εκτιμήσεις τα οποία και επεξεργάζονται. Κάθε βήμα ανταλλαγής μηνυμάτων μεταξύ και των δύο τύπων επεξεργαστικών μονάδων αποτελεί μία επανάληψη του αλγορίθμου όπως προαναφέρθηκε. Για την εξαγωγή έγκυρου αποτελέσματος απαιτούνται συνήθως περισσότερες της μία επαναλήψεις. Προκύπτει λοιπόν ότι η παρουσία λίγων άσσων στον

31 πίνακα ισοτιμίας είναι σημαντική καθώς το πλήθος τους είναι ανάλογο με το πλήθος των ανταλλασσόμενων μηνυμάτων. Επιπλέον οι διαστάσεις του πίνακα καθορίζουν το πλήθος των υπολογιστικών μονάδων και κατά συνέπεια την πολυπλοκότητα του αλγορίθμου. Συμπερασματικά οι messae-passin αλγόριθμοι που χρησιμοποιούνται για να αποκωδικοποιήσουν τους κώδικες LDPC, είναι επαναληπτικοί αλγόριθμοι, οι οποίοι εκτελώντας διαδοχικά κάποιες πράξεις στους κόμβους προσπαθούν να ανακαλύψουν την απεσταλμένη λέξη, δηλαδή να συγκλίνουν μετά από ένα αριθμό επαναλήψεων σε έγκυρες κωδικές λέξεις (λέξεις που ικανοποιούν την (1.5)). Έστω ότι εκτελείται η μετάδοση μίας κωδικής λέξης μέσω ενός καναλιού επικοινωνίας με θόρυβο. Κατά τη μετάδοση των δεδομένων κάποια ή όλα τα λαμβανόμενα σύμβολα διαφέρουν από εκείνα που εισήχθησαν στο κανάλι. Στην περίπτωση που έχουμε δυαδικό κώδικα και διαμόρφωση BPSK (Binary Phase Shift Keyin) τα μεταδιδόμενα σύμβολα είναι το +1 (λογικό 1) και το -1 (λογικό 0). Λόγω του θορύβου στο κανάλι το σήμα που λαμβάνεται στην έξοδο του διαφέρει από το αρχικό (μπορεί να παίρνει ενδιάμεσες ή ακόμα και αντεστραμμένες τιμές). Υπάρχουν δύο διαφορετικές προσεγγίσεις για να εκφραστούν οι τιμές του κάθε λαμβανομένου συμβόλου καθώς και των ενδιάμεσων εκτιμήσεων κατά τη διάρκεια της αποκωδικοποίησης. Η πρώτη προσέγγιση, η οποία ονομάζεται hard decision, θεωρεί πως το πρόσημο του λαμβανομένου συμβόλου είναι αρκετό για να γίνει μία πρώτη εκτίμηση για το μεταδιδόμενο σύμβολο. Η προσέγγιση αυτή δίνει χαμηλής πολυπλοκότητας αποκωδικοποίηση αλλά οδηγεί σε σημαντική απώλεια της ληφθείσας πληροφορίας καθώς τα λαμβανόμενα σύμβολα κβαντίζονται άμεσα σε δυαδικές τιμές χάνοντας έτσι την όποια πληροφορία μπορούμε να αντλήσουμε από αυτά. Η δεύτερη προσέγγιση χρησιμοποιεί περισσότερα από ένα δυαδικά ψηφία, τα λεγόμενα soft bits, για την αναπαράσταση των λαμβανομένων συμβόλων και των μηνυμάτων που ανταλλάσσονται μεταξύ των κόμβων ελέγχου και μεταβλητής. Η ληφθείσα πληροφορία η οποία προκύπτει από την ακριβή τιμή του λαμβανόμενου συμβόλου διατηρείται καθ όλη τη διάρκεια της αποκωδικοποίησης. Προκειμένου να εκτιμηθεί κατά την αποκωδικοποίηση αν η κωδική λέξη στην οποία έχουμε καταλήξει είναι έγκυρη, γίνεται μία προσωρινή κβάντιση των εκτιμώμενων soft bits χωρίς όμως αυτά να χάνονται. Έτσι σε περίπτωση που δεν προκύπτει έγκυρη κωδική λέξη η αποκωδικοποίηση συνεχίζονται με τις soft τιμές των συμβόλων. Η εκτίμηση αυτή αποκαλείται soft decision και επιτυγχάνει αποτελεσματικότερη αποκωδικοποίηση, το κόστος της όμως, από άποψη υπολογιστικής πολυπλοκότητας, είναι μεγαλύτερο σε σχέση με αυτό της hard decision Αλγόριθμοι αποκωδικοποίησης LDPC κωδίκων Όπως αναφέρθηκε και παραπάνω, μία οικογένεια αλγορίθμων που χρησιμοποιείται για να αποκωδικοποιήσει τους κώδικες LDPC είναι οι messae-passin

32 αλγόριθμοι. Οι messae-passin αλγόριθμοι ποικίλουν ανάλογα με τις διεργασίες που εκτελούνται σε κάθε κόμβο και τη δομή των μηνυμάτων που αποστέλλονται ανάμεσα σε αυτούς. Ανάλογα με τις απαιτήσεις της εφαρμογής επιλέγεται συνήθως ο κατάλληλος αλγόριθμος λαμβάνοντας υπόψη τις απαιτήσεις της υλοποίησης του, την πολυπλοκότητα που επιβάλλει (σύνολο πράξεων που θα πρέπει να εκτελεστούν) καθώς και την απόδοση που επιτυγχάνει. Παρακάτω παρατίθενται δύο μεγάλες κατηγορίες αλγορίθμων αποκωδικοποίησης για κώδικες LDPC, ο Lo Sum-Product αλγόριθμος και ο Min-Sum αλγόριθμος. Lo Sum-Product (Lo-SP) Ο Αλγόριθμος Sum-Product υλοποιείται στο πεδίο των λογαρίθμων και έχει προκύψει ως εξέλιξη του Sum-Product. Στον Lo-SP τα ανταλλασσόμενα μηνύματα εκφράζονται ως φυσικοί λογάριθμοι λόγου πιθανοτήτων (LLR, Lo-Likelihood Ratio). Για ένα κανάλι Λευκού Προσθετικού Γκαουσιανού θορύβου (Additive White Gaussian Noise-AWGN) και BPSK διαμόρφωση, ο αλγόριθμος αποτελείται από τα εξής βήματα: Αρχικοποίηση: Ανάθεση αρχικών τιμών στα μηνύματα Q v f (μηνύματα που θα σταλούν κατά την 1 η επανάληψη του αλγορίθμου από τους κόμβους μεταβλητής στους κόμβους ελέγχου) με βάση τη λαμβανόμενη πληροφορία, σύμφωνα με τη σχέση: Q 0 v f 2y c 2 n (2.3) όπου y i είναι η τιμή του αντίστοιχου λαμβανομένου συμβόλου. Ενημέρωση των κόμβων ελέγχου: Υπολογισμός των μηνυμάτων R (μήνυμα το οποίο στέλνει ο κόμβος ελέγχου f στον κόμβο μεταβλητής v κατά τη n-ιοστή επανάληψη του αλγορίθμου) με βάση τη σχέση: n f v (2.4) R ( ( Q )) sin( Q ) n n1 n1 f v v' f v' f f f v' Su / v v' Su / v f όπου με S u συμβολίζεται το σύνολο των κόμβων μεταβλητής, εκτός του κόμβου v, με τους οποίους συνδέεται ο κόμβος ελέγχου f και sin(x) είναι μία συνάρτηση που επιστρέφει +1 για x 0 και -1 για x<0. Η συνάρτηση Φ δίνεται από τη σχέση: x 1 e x ( x) lo lo(tanh( )) x 1 e 2 (2.5) Ενημέρωση των κόμβων μεταβλητής: Υπολογισμός των μηνυμάτων n Qv f (μήνυμα το οποίο στέλνει ο κόμβος μεταβλητής v στον κόμβο ελέγχου f κατά τη n-ιοστή επανάληψη του αλγορίθμου) με βάση τη σχέση:

33 Q R (2.6) n n vf f ' v v f ' Sc / f v όπου f ' Sc / f συμβολίζει το σύνολο των κόμβων ελέγχου, εκτός του f, με τους οποίους συνδέεται ο κόμβος μεταβλητής v. Hard decision: Για κάθε bit ο αντίστοιχος κόμβος μεταβλητής κάνει μία εκτίμηση σύμφωνα με τη σχέση: Q n v Rf ' v v f ' Sc (2.7) όπου λαμβάνονται υπόψη όλα τα μηνύματα που λαμβάνει ο κόμβος μεταβλητής. Με βάση την τιμή της ποσότητας Q v λαμβάνεται μία hard απόφαση, και συγκεκριμένα: Q n v Rf ' v v f ' Sc (2.8) Αντίστοιχη απόφαση λαμβάνεται για όλα τα bits της κωδικής λέξης. Σε περίπτωση που η κωδική λέξη που θα προκύψει είναι έγκυρη ο αλγόριθμος τερματίζει και η συγκεκριμένη κωδική λέξη αποτελεί την αποκωδικοποιημένη. Διαφορετικά επαναλαμβάνεται η διαδικασία από το στάδιο της ενημέρωσης των κόμβων ελέγχου. Min-Sum (MS) Ο αλγόριθμος Min-Sum (MS) διαφέρει από το lo-sp μόνο κατά των υπολογισμό των μηνυμάτων στους κόμβους ελέγχου. Η συνάρτηση Φ είναι μία γνησίως φθίνουσα συνάρτηση, κάτι που σημαίνει ότι για μικρές τιμές του ορίσματος εισόδου της παίρνει μεγάλες τιμές, ενώ για μεγαλύτερες εισόδους παίρνει πολύ μικρότερες τιμές. Λόγω αυτής της ιδιότητας της στο άθροισμα της σχέσης (2.4) κυριαρχεί το μικρότερο από τα μηνύματα Q v f. Το άθροισμα επομένως μπορεί να απλοποιηθεί προσεγγιζόμενο με το μικρότερο από τους όρους του. Έτσι η σχέση υπολογισμού των μηνυμάτων από τους κόμβους ελέγχου προς τους κόμβους μεταβλητών γίνεται: R min ( Q ) sin( Q ) (2.9) n n1 n1 f v f v' f v' f v' Su / v f v' Su / v Τα υπόλοιπα στάδια του αλγορίθμου είναι ίδια με αυτά του lo-sp. Μπορούμε να πούμε πως ο αλγόριθμος Min-Sum αποτελεί μία προσέγγιση του lo-sp, η οποία μειώνει σημαντικά την πολυπλοκότητα της αποκωδικοποίησης λόγω απουσίας της συνάρτησης Φ

34 2.2.3 Αποκωδικοποίηση σε επίπεδα (Layered Decodin) Η αποκωδικοποίηση ενός αλγορίθμου, όπως περιγράφηκε, χαρακτηρίζεται ως αποκωδικοποίηση ανταλλαγής μηνυμάτων (messae passin) μεταξύ των κόμβων ελέγχου και των κόμβων μεταβλητής. Πραγματοποιείται σε δύο φάσεις υπολογισμών, στην πρώτη φάση ενημερώνονται όλοι οι κόμβοι μεταβλητής και στη δεύτερη οι κόμβοι ελέγχου. Μία διαφορετική προσέγγιση, που αφορά στον τρόπο ανταλλαγής μηνυμάτων στον κώδικα LDPC, ονομάζεται αποκωδικοποίηση σε επίπεδα (Layered Decodin). Η επεξεργασία ξεκινά από ένα υποσύνολο κόμβων ελέγχου και τα μηνύματα που υπολογίζονται αποστέλλονται άμεσα στους αντίστοιχους κόμβους μεταβλητής που συνδέονται με τους κόμβους ελέγχου του τρέχοντος υποσυνόλου. Η ενημέρωση των τιμών αυτών των κόμβων μεταβλητής γίνεται άμεσα, οπότε το επόμενο υποσύνολο των κόμβων ελέγχου θα λάβει τις ενημερωμένες τιμές. Ο όρος αποκωδικοποίηση σε στρώματα πηγάζει από τη θεώρηση του πίνακα ελέγχου ισοτιμίας Η ως μία ακολουθία στοιχειωδών πινάκων-στρωμάτων που ενημερώνονται με αλληλουχία. Κάθε στρώμα υποβάλλεται σε επεξεργασία με αύξουσα σειρά, λαμβάνοντας υπόψη και την πληροφορία που προέκυψε από την επεξεργασία του αμέσως προηγούμενου στρώματος. Αυτή η διαδικασία έχει ως αποτέλεσμα την επιτάχυνση της ταχύτητας σύγκλισης. Το μεγαλύτερο πρόβλημα που προκύπτει κατά τη χρησιμοποίηση της layered αποκωδικοποίησης είναι η διαθεσιμότητα των τρεχόντων μηνυμάτων. Πρόκειται για μερικώς παράλληλες υλοποιήσεις οι οποίες είναι σχεδιασμένες κατά τέτοιο τρόπο ώστε να εισάγεται μία καθυστέρηση στη μετάδοση δεδομένων μεταξύ των διαδοχικών στρωμάτων του πίνακα ελέγχου ισοτιμίας. Αυτό συμβαίνει γιατί προτού ξεκινήσει η επεξεργασία ενός στρώματος θα πρέπει να έχει τελειώσει η επεξεργασία του αμέσως προηγούμενου στρώματος. Οι αρχιτεκτονικές αποκωδικοποιητών που βασίζονται σε αυτή την προσέγγιση αποτελούνται από ένα σύνολο επεξεργαστικών μονάδων δύο τύπων VPUs και CPUs. Το πλήθος των μονάδων αυτών είναι μικρότερο από το συνολικό πλήθος των κόμβων ελέγχου και μεταβλητής. Προκειμένου να υπάρχει ευελιξία, οι VPUs και CPUs ακολουθούν ένα σειριακό σχήμα ανταλλαγής μηνυμάτων. Αυτό πρακτικά σημαίνει πως μπορούν να δεχτούν ή να στείλουν ένα μήνυμα ανά κύκλο ρολογιού. Έτσι για έναν κόμβο με βαθμό (deree) n απαιτούνται n κύκλοι ρολογιού για να γίνει επεξεργασία όλων των μηνυμάτων στη συγκεκριμένη CPU. Για αυτό το λόγο θα πρέπει για τους επόμενους τουλάχιστον n κύκλους καμία άλλη επεξεργαστική μονάδα να μην εκτελέσει κάποια πράξη η οποία θα απαιτήσει δεδομένα που δεν είναι ακόμα διαθέσιμα (θα προκύψουν δηλαδή μετά την ολοκλήρωση της επεξεργασίας των δεδομένων από τη CPU που τρέχει). Όλοι αυτοί οι χρονικοί περιορισμοί θα πρέπει να ληφθούν υπόψη κατά την υλοποίηση σε υλικό του αποκωδικοποιητή

35 Κεφάλαιο 3 Κώδικες Reed-Solomon (RS) 3.1 Στοιχεία άλγεβρας Πεπερασμένα πεδία Οι αρχές κωδικοποίησης - αποκωδικοποίησης των μη δυαδικών κωδίκων βασίζονται στη θεωρία των πεπερασμένων πεδίων (finite fields), γνωστά και ως πεδία Galois (Galois Fields ή GF). Για κάθε πρώτο αριθμό p υπάρχει ένα πεπερασμένο πεδίο GF(p) που περιέχει p στοιχεία συνολικά. Είναι δυνατό να ορίσουμε ένα «πεδίο επέκτασης του GF(p), το οποίο θα αποτελείται από p m στοιχεία και συμβολίζεται με GF(p m ), όπου m είναι ένας μη μηδενικός θετικός ακέραιος αριθμός. Τα στοιχεία του GF(p) αποτελούν υποσύνολο των στοιχείων του GF(p m ). Ως παράδειγμα μπορούμε να θεωρήσουμε το πεδίο GF(2) το οποίο αποτελεί υποσύνολο του πεδίου επέκτασης GF(2 m ). Τα σύμβολα που προέρχονται από τα στοιχεία του πεδίου επέκτασης GF(p m ) χρησιμοποιούνται για την κατασκευή των κωδίκων Reed-Solomon. Εκτός από τους αριθμούς 0 και 1 υπάρχουν και άλλα στοιχεία στο πεδίο επέκτασης (συνολικά 2 m -1 στοιχεία) τα οποία συμβολίζονται με τη χρήση του συμβόλου α. Κάθε μη-μηδενικό στοιχείο του GF(2 m ) μπορεί να αναπαρασταθεί ως μία δύναμη του α. Πιο συγκεκριμένα δημιουργείται ένα πεπερασμένο σύνολο στοιχείων F, ξεκινώντας με τα στοιχεία {0, 1, α}, ενώ κάθε επόμενο στοιχείο του συνόλου προκύπτει πολλαπλασιάζοντας κάθε φορά το τελευταίο στοιχείο με α. Έτσι για το σύνολο F ισχύει: F = { 0, 1, α, α 2,, α j, } = { 0, α 0, α 1, α 2,, α j, } (3.1) Για να προκύψουν όλα τα στοιχεία του GF(2 m ) πρέπει από το σύνολο F να ληφθούν μόνο τα πρώτα 2 m στοιχεία, ενώ το F θα πρέπει να είναι κλειστό ως προς την πράξη του πολλαπλασιασμού. Η συνθήκη η οποία εξασφαλίζει το κλειστό της πράξης του πολλαπλασιασμού περιγράφεται από το μη ανάγωγο πολυώνυμο: ή ισοδύναμα: α (2m-1) + 1 = 0 (3.2) α (2m-1) = 1 = α 0 (3.3)

36 Με βάση αυτόν τον περιορισμό, κάθε στοιχείο με δύναμη μεγαλύτερη ή ίση του 2 m -1 μπορεί να αναχθεί σε ένα στοιχείο δύναμης μικρότερης του 2 m -1, σύμφωνα με τη σχέση: α (2m+n) = α (2m-1) α (n+1) = α (n+1) (3.4) Με τη χρήση της παραπάνω σχέσης από τη μη πεπερασμένη ακολουθία F μία πεπερασμένη, την F*, ως εξής: F* = {0, α 0, α 1, α 2,, α (2m-2), α (2m-1), α 2m, } = {0, α 0, α 1, α 2,, α (2m-2), α 0, α 1, α 2, } (3.5) Επομένως από τη σχέση (3.5) προκύπτει ότι τα στοιχεία του πεπερασμένου πεδίου GF(2 m ) είναι τα ακόλουθα: GF(2 m ) = {0, 1, α, α 2,, α (2m-2) } (3.6) Αναπαράσταση στοιχείων GF(2 m ) Κάθε ένα από τα 2 m στοιχεία του πεπερασμένου πεδίου GF(2 m ) μπορεί να αναπαρασταθεί από ένα διακριτό πολυώνυμο βαθμού μικρότερου ή ίσου του m-1. Ο βαθμός του πολυωνύμου αντιστοιχεί στον εκθέτη της μεγαλύτερης δύναμης. Όλα τα μη μηδενικά στοιχεία του GF(2 m ) αναπαριστώνται ως ένα πολυώνυμο α i (Χ) του οποίου ένας τουλάχιστον από τους m συντελεστές είναι μη μηδενικός. Για i=0, 1, 2,, 2 m-2 ισχύει: α i = α i (X) = α i,0 + α i,1 X+ α i,2 X α i,m-1 X m-1 (3.7) Έστω για παράδειγμα ότι m=3. Καθένα από τα στοιχεία του πεδίου GF(2 3 ) μπορεί να αναπαρασταθεί από ένα διάνυσμα 3 στοιχείων (a, b, c) καθένα από τα οποία παίρνει τιμές στο GF(2). Στο επόμενο σχήμα η πολυωνυμική αναπαράσταση με τη χρήση των στοιχείων βάσης {Χ 0, Χ 1, Χ 2 } της σχέσης (3.7), καθώς και η αντιστοιχία μεταξύ της εκθετικής και της πολυωνυμικής αναπαράστασης των στοιχείων του GF(2 3 )

37 Εκθετική Αναπαράσταση Πολυωνυμική Αναπαράσταση Στοιχεία Βάσης Χ 0 Χ 1 Χ 2 - (0) α α α α α α α α Σχ. 3.1 Αντιστοιχία μεταξύ εκθετικής και πολυωνυμικής αναπαράστασης στοιχείων του GF Κάθε μία από τις γραμμές στου σχήματος (3.1) αποτελεί μία ακολουθία δυαδικών συμβόλων που αντιστοιχούν στα α i,0, α i,1, α i,2, της σχέσης (3.7). Η εκθετική αναπαράσταση αποτελεί ένα τρόπο μαθηματικού συμβολισμού που διευκολύνεις τις διαδικασίες κωδικοποίησης και αποκωδικοποίησης των μη δυαδικών κωδίκων. Η πολυωνυμική αναπαράσταση διευκολύνει την υλοποίηση διαδικασιών, όπως για παράδειγμα η πρόσθεση δύο στοιχείων του πεδίου. Αν μείνουμε στο παράδειγμα της πρόσθεσης, το αποτέλεσμα της προκύπτει από τη modulo-2 πρόσθεση των συντελεστών πολυωνύμου του ίδιου βαθμού όπως φαίνεται από τη σχέση: α i + α j = ((α i,0 + α j,0 )mod2 + ((α i,1 + α j,1 )mod2) X + ((α i,2 + α j,2 )mod2) X ((α i,m-1 + α j,m-1 )mod2) X m-1 (3.8) Ορισμός του πεδίου από ένα πρωτογενές πολυώνυμο Μια ειδική κατηγορία πολυωνύμων που ονομάζονται πρωταρχικά (primitive), χρησιμοποιούνται για να ορίσουν τα πεδία GF(2 m ). Ένα πολυώνυμο καλείται μη ανάγωγο όταν αυτό διαιρείται μόνο με τον εαυτό του και τη μονάδα. Ένα μη ανάγωγο πολυώνυμο f(x) βαθμού m είναι πρωταρχικό αν και μόνο αν ο μικρότερος ακέραιος n για τον οποί το f(x) διαιρεί το Χ m +1 είναι ο n=2 m -1. Το πολυώνυμο f(x) βαθμού m ονομάζεται μη ανάγωγο όταν δε διαιρείται από κανένα άλλο πολυώνυμο με βαθμό μικρότερο από το m, αλλά όχι μηδενικό. Αν και η πράξη της πρόσθεσης που περιγράφηκε στο παραπάνω παράδειγμα είναι απλή υπόθεση, ο πολλαπλασιασμός δεν ορίζεται τόσο απλά. Προκειμένου να οριστεί απαιτείται ένα μη ανάγωγο πολυώνυμο στο GF(2), m βαθμού (m=3 για το παράδειγμά μας). Ένα τέτοιο πολυώνυμο είναι το p(x)=1+x+x 3. Στο πεδίο επέκτασης GF(2 3 ) ορίζουμε το στοιχείο α να είναι ρίζα του p(x) άρα ισχύει: 1+α+α 3 =0 ή α 3 =1+α (3.9)

38 Κάθε αριθμός (a, b, c) στο GF(2 3 ) εκτός της αναπαράστασης ως διάνυσμα μπορεί να αναπαρασταθεί και σε πολυωνυμική μορφή ως a+bα+cα 2. Στο σημείο αυτό καταλαβαίνουμε τη χρησιμότητα του μη ανάγωγου πολυωνύμου. Πολλαπλασιάζοντας δύο αριθμούς σε πολυωνυμική μορφή προκύπτουν δυνάμεις μεγαλύτερες του α 2 που όμως δεν μπορούν να χρησιμοποιηθούν για αναπαράσταση του αριθμού σε πολυωνυμική μορφή. Το μη ανάγωγο πολυώνυμο μας δίνει τη δυνατότητα να μετατρέψουμε τις μεγαλύτερες του α 2 δυνάμεις σε άλλες ίσες η μικρότερες από αυτό ως εξής: α 3 = 1+α, α 4 = α(α 3 ) = α+α 2, α 5 = α 2 (α 3 ) = 1+α+α 2, α 6 = α 3 (α 3 ) = (1+α)(1+α) = 1+α 2, α 7 = α 3 (α 4 ) = (1+α)(α+α 2 ) = α+α 2 +α 2 +1+α=1 (3.10) Επειδή το πολυώνυμο που χρησιμοποιήσαμε είναι μη ανάγωγο όλες οι δυνάμεις μέχρι και την α 6 έχουν μοναδική αναπαράσταση, ενώ ισχύει α 7 =α 0 =1. Η αντιστοίχιση των στοιχείων του πεδίου (εκθετική αναπαράσταση) σε στοιχεία βάσης (πολυωνυμική αναπαράσταση) μπορεί να γίνει με τη χρήση ενός Ολισθητή Γραμμικής Ανάδρασης (Linear Feedback Shift Reister LFSR), του οποίου οι θέσεις των στοιχείων ανάδρασης καθορίζονται από τους μη μηδενικούς συντελεστές του πρωταρχικού πολυωνύμου. Ένας τέτοιος LFSR για το πρωταρχικό πολυώνυμο p(x)=1+x+x 3 φαίνεται παρακάτω. Η αντιστοίχιση των δύο αναπαραστάσεων του σχήματος (3.1) προκύπτει αν αρχικοποιήσουμε τον LFSR του σχήματος (3.2) στην τιμή και στη συνέχεια ολισθήσουμε κατά μία θέση δεξιά ανά παλμό ρολογιού 7 φορές (2 m -1 φορές). Μερικά ακόμα παραδείγματα πρωτογενών πολυωνύμων φαίνονται στον πίνακα 3.1. X 0 X 1 X 2 X 3 S SET Q S SET Q S SET Q 33 MHz 33 MHz 33 MHz R CLR Q R CLR Q R CLR Q Σχ LFSR για το πρωτογενές πολυώνυμο p(x)=1+x+x 3 m Πρωταρχικό πολυώνυμο X + X X + X X 2 + X X + X X 3 + X X 2 + X 3 + X 4 + X 8 Πίνακας 3.1 Πρωταρχικά πολυώνυμα

39 3.1.4 Αριθμητικές πράξεις στο πεδίο GF(2 m ) Σε ένα πεδίο επέκτασης GF(2 m ) μπορούν να οριστούν οι πράξεις της πρόσθεσης (+) και του πολλαπλασιασμού ( ). Οι πράξεις αυτές είναι κλειστές στο πεδίο GF(2 m ), κάτι που σημαίνει ότι το αποτέλεσμα των πράξεων αυτών μεταξύ δύο στοιχείων του πεδίου είναι επίσης ένα στοιχείο του πεδίου. Για τις πράξεις αυτές ισχύουν οι εξής ιδιότητες: Για την πρόσθεση: Η πράξη της πρόσθεσης είναι κλειστή στο σύνολο αριθμών του πεδίου. Υπάρχει ουδέτερο στοιχείο (το 0) που ανήκει στο πεδίο. Έτσι για κάθε αgf(2 m ) ισχύει: α+0=α. Υπάρχει προσθετικός αντίστροφος που ανήκει επίσης στο πεδίο. Έτσι για κάθε α GF(2 m ) θα υπάρχει και α GF(2 m ) τέτοιο ώστε α+α =0. Ισχύει η προσεταιριστική ιδιότητα, δηλαδή (α1+α2)+α3=α1+(α2+α3), για κάθε α1, α2, α3 GF(2 m ). Ισχύει η αντιμεταθετική ιδιότητα, δηλαδή α1+α2=α2+α1, για κάθε α1, α2 GF(2 m ). Για τον πολλαπλασιασμό: Η πράξη του πολλαπλασιασμού είναι επίσης κλειστή στο σύνολο αριθμών του πεδίου. Υπάρχει ουδέτερο στοιχείο (το 1) που ανήκει στο πεδίο. Έτσι για κάθε αgf(2 m ) ισχύει: α*1=α. Υπάρχει πολλαπλασιαστικός αντίστροφος που ανήκει και αυτός στο πεδίο. Έτσι για κάθε αgf(2 m ) θα υπάρχει και α GF(2 m ) τέτοιο ώστε α*α =0. Ισχύει η προσεταιριστική ιδιότητα, δηλαδή (α1*α2)*α3=α1*(α2*α3), για κάθε α1, α2, α3 GF(2 m ). Ισχύει η αντιμεταθετική ιδιότητα, δηλαδή α1*α2=α2*α1, για κάθε α1, α2 GF(2 m ). Τέλος ισχύει η επιμεριστική ιδιότητα, δηλαδή α1*(α2+α3)=α1*α2+α1*α3, για κάθε α1, α2, α3 GF(2 m ). Η πρόσθεση μεταξύ δύο στοιχείων του GF(2 m ), α i και α j σε εκθετική αναπαράσταση, πραγματοποιείται όπως αναφέρθηκε με τη modulo-2 πρόσθεση των συντελεστών του ίδιου βαθμού της πολυωνυμικής αναπαράστασης των δύο στοιχείων, όπως φαίνεται και στο παρακάτω παράδειγμα: α i + α j = (α i,0 + α j,0 ) + (α i,1 + α j,1 ) X + (α i,2 + α j,2 ) X (α i,m-1 + α j,m-1 ) X m-1 Ο πολλαπλασιασμός μεταξύ των στοιχείων α i και α j πραγματοποιείται με την πρόσθεση των εκθετών i και j. Ισχύει δηλαδή: α i α j = α (i+j) (3.11)

40 Το αποτέλεσμα των πράξεων της πρόσθεσης και του πολλαπλασιασμού για το πεδίο GF(2) = { 0, 1 } φαίνεται παρακάτω: α i + α j α i α j α i / α j 0 1 α i / α j Το αποτέλεσμα των πράξεων της πρόσθεσης και του πολλαπλασιασμού για το πεδίο GF(2 3 ) = { 0, α 0, α 1, α 2, α 3, α 4, α 5, α 6 } δίνεται στους ακόλουθους πίνακες: Πρόσθεση στο GF(2 3 ) Πολλαπλασιασμός στο GF(2 3 ) 0 α 0 α 1 α 2 α 3 α 4 α 5 α 6 0 α 0 α 1 α 2 α 3 α 4 α 5 α α 0 α 1 α 2 α 3 α 4 α 5 α α 0 α 0 0 α 3 α 6 α 1 α 5 α 4 α 2 α 0 0 α 0 α 1 α 2 α 3 α 4 α 5 α 6 α 1 α 1 α 3 0 α 4 α 0 α 2 α 6 α 5 α 1 0 α 1 α 2 α 3 α 4 α 5 α 6 α 0 α 2 α 2 α 6 α 4 0 α 5 α 1 α 3 α 0 α 2 0 α 2 α 3 α 4 α 5 α 6 α 0 α 1 α 3 α 3 α 1 α 0 α 5 0 α 6 α 2 α 4 α 3 0 α 3 α 4 α 5 α 6 α 0 α 1 α 2 α 4 α 4 α 5 α 2 α 1 α 6 0 α 0 α 3 α 4 0 α 4 α 5 α 6 α 0 α 1 α 2 α 3 α 5 α 5 α 4 α 6 α 3 α 2 α 0 0 α 1 α 5 0 α 5 α 6 α 0 α 1 α 2 α 3 α 4 α 6 α 6 α 2 α 5 α 0 α 4 α 3 α 1 0 α 6 0 α 6 α 0 α 1 α 2 α 3 α 4 α 5 Παρατηρώντας το αποτέλεσμα της πρόσθεσης στο πεδίο GF(2) βλέπουμε ότι το άθροισμα α i + α j ισοδυναμεί με τη λογική πράξη α i xor α j. Ακόμα και στη δεύτερη περίπτωση όπου χρησιμοποιούνται στοιχεία του πεδίου GF(2 3 ) αν πάρουμε το παράδειγμα α 0 + α 1 έχουμε:

41 Εκθετική Αναπαράσταση Πολυωνυμική Αναπαράσταση Στοιχεία Βάσης Χ 0 Χ 1 Χ 2 α α (xor) α 0 + α = α 3 Βλέπουμε λοιπόν ότι το αποτέλεσμα της πρόσθεσης των α 0, α 1 μπορεί να προκύψει με την εκτέλεση της λογικής πράξης xor ανάμεσα στα αντίστοιχα στοιχεία βάσης τους. Κάτι ανάλογο συμβαίνει για οποιοδήποτε στοιχείο του GF(2 3 ) επιλεγεί. Γενικεύοντας, ένας δεύτερος τρόπος υπολογισμού του αθροίσματος δύο στοιχείων ενός πεδίου GF(2 m ), α i και α j, είναι να χρησιμοποιηθούν τα στοιχεία βάσης της πολυωνυμικής τους αναπαράστασης. Με τον τρόπο αυτό η πράξη της πρόσθεσης μετατρέπεται σε λογική πράξη xor η οποία εκτελείται μεταξύ των αντίστοιχων στοιχείων βάσης των α i και α j. 3.2 Κώδικες Reed-Solomon (RS) Οι κώδικες BCH (Bose, Chaundhuri, Hocquenhem) αποτελούν μία μεγάλη κατηγορία ισχυρών κυκλικών κωδίκων. Αποτελούν ακόμα μία γενίκευση των κωδίκων Hammin για πολλαπλή διόρθωση σφαλμάτων. Οι κώδικες BCH μπορεί να είναι είτε δυαδικοί είτε μη δυαδικοί με p m σύμβολα. Μία ειδική περίπτωση αυτής της υποκατηγορίας των μη δυαδικών κωδίκων είναι οι κώδικες Reed-Solomon (RS), στους οποίους θα γίνει στη συνέχεια μία μικρή αναφορά. Για ένα οποιοδήποτε θετικό ακέραιο m (m 3) και t (t<2 m -1) υπάρχει ένας δυαδικός BCH κώδικας με τις ακόλουθες παραμέτρους: Μήκος μπλοκ: n = 2 m 1 Πλήθος ψηφίων ελέγχου ισοτιμίας: n k mt Ελάχιστη απόσταση: d min 2t + 1 Είναι εμφανές ότι αυτό το είδος κώδικα είναι ικανό να διορθώσει οποιοδήποτε συνδυασμό t ή λιγότερων σφαλμάτων σε ένα μπλοκ μήκους n=2 m -1 ψηφίων. Το πολυώνυμο γεννήτορας αυτού του κώδικα χαρακτηρίζεται με βάση τις ρίζες του από ένα πεδίο Galois το GF(2 m ). Οι κώδικες Reed-Solomon αποτελούν μία σημαντική κατηγορία των μη δυαδικών BCH κωδίκων. Δεδομένου ενός πρώτου αριθμού p, αν θεωρήσουμε q μια δύναμη του p,

42 είναι δυνατόν να κατασκευαστούν κώδικες με σύμβολα που ανήκουν στο Galois πεδίο GF(q). Αυτοί οι κώδικες ονομάζονται q-αδικοί κώδικες. Οι δυαδικοί κώδικες BCH μπορούν να γενικευτούν σε μη δυαδικούς με πολύ άμεσο τρόπο. Για οποιοδήποτε συνδυασμό s και t θετικών ακεραίων, μπορεί να κατασκευαστεί ένας q-αδικός κώδικας BCH μήκους n=q s -1, ο οποίος είναι ικανός να διορθώσει το πολύ t αριθμό σφαλμάτων και απαιτεί το πολύ 2st ψηφία ελέγχου ισοτιμίας. Έστω α είναι το πρωτογενές στοιχείο ενός πεδίου GF(q s ). Το πολυώνυμο γεννήτορας (X) ενός κώδικα BCH με ικανότητα διόρθωσης t σφαλμάτων, είναι το πολυώνυμο ελάχιστου βαθμού με συντελεστές από το πεδίο GF(q), του οποίου τα α, α 2, α 3,, α 2t είναι ρίζες. Οι κώδικες Reed-Solomon προκύπτουν για s=1. Έστω τώρα ότι το α είναι πρωταρχικό στοιχείο του πεδίου GF(q=p s ) όπου ο p είναι πρώτος αριθμός και s ένας θετικός ακέραιος. Θεωρούμε και έναν αριθμό ρ, επίσης θετικό ακέραιο, που παίρνει τιμές στο πεδίο [2, p s ). Με βάση τα δεδομένα αυτά μπορεί να κατασκευαστεί ένας κώδικας Reed-Solomon μήκους p s -1, με γεννήτορα πολυώνυμο το: (X) = (X-α) (X-α 2 ) (Χ-α ρ-2 ) = X + 2 X ρ-3 X ρ-3 + X ρ-2 (3.12) Όλες οι ρίζες α, α 2, α 3,, α ρ-2 και οι συντελεστές του (X) ανήκουν στο πεδίο GF(p s ). Ο κώδικας που παράγεται από το (X) είναι ένας (q-1, q-ρ+1, ρ-1) κυκλικός κώδικας που αποτελείται από πολυώνυμα (τα οποία είναι πολλαπλάσια του (X)) βαθμού q-2 ή μικρότερου και έχει συντελεστές στο πεδίο GF(p s ) (όπου q-1 είναι το μήκος του κώδικα, q-ρ+1 η διάσταση του και ρ-1 η ελάχιστη απόσταση). Επίσης κάθε κωδική λέξη c(x) ενός κυκλικού κώδικα μπορεί να εκφραστεί ως το γινόμενο του γεννήτορα πολυωνύμου (X) και ενός πολυωνύμου m(x) τέτοιου ώστε m(x) = m 0 + m 1 X+ + m ρ-1 Χ ρ-1 βαθμού μικρότερου του ρ τέτοιου ώστε: c(x) = m(x)*(x) (3.13) Κάθε πολυώνυμο που προκύπτει με αυτόν τον τρόπο θα πρέπει να έχει βαθμό μικρότερο ή ίσο του p s -1, ώστε τα p s -1 κωδικοποιημένα σύμβολα να μπορούν να αναπαρασταθούν. Με βάση τα παραπάνω, η διαδικασία της κωδικοποίησης συνίσταται στον πολλαπλασιασμό:

43 c(x) = m(x)*(x) = m 0 *(X)+ m 1 X*(X)+ + m ρ-1 Χ ρ-1 *(X) = ( X) X( X ) 2 X ( X ) [m 0 m 1 m 2 m ρ-1 ]... 2 X ( X ) 1 X ( X ) (3.14) Συνεπώς έχουμε c=m*g, όπου G είναι ο γεννήτορας πίνακας για το RS κώδικα, ενώ η παραπάνω διαδικασία αποτελεί μη συστηματικό τρόπο κωδικοποίησης. Στην παραπάνω περίπτωση κατασκευάστηκε ένας κώδικας RS μήκους q-1 αφού και το αρχικό πεδίο που πήραμε σα δεδομένο ήταν το GF(q). Το μήκος q-1 του κώδικα που κατασκευάστηκε θα μπορούσε να ήταν και μικρότερο αν κάποια από τα ψηφία του αρχικού μηνύματος αντικατασταθούν με μηδενικά. Έτσι με τη μέθοδο αυτή μπορεί να παραχθεί ένας νέος μικρότερης διάστασης κώδικας RS (shortened RS code). Ο νέος αυτός κώδικας μπορεί να είναι αυθαίρετα μικρότερος σε σχέση με τον αρχικό, ανάλογα με τον αριθμό των ψηφίων που θα επιλέξουμε να αντικατασταθεί με μηδενικά. Από τον κώδικα αυτό προκύπτουν κωδικές λέξεις που έχουν τον ίδιο αριθμό πλεοναζόντων στοιχείων σε σχέση με προηγουμένως, λιγότερα ψηφία πληροφορίας, ενώ το πεδίο τιμών τους συνεχίζει να είναι ολόκληρο το GF(q). Εκτός από τη δημιουργία μικρότερης διάστασης κωδίκων RS, μπορούν να κατασκευαστούν και εκτεταμένοι (extended) κώδικες RS μήκους q ή q+1 το πολύ, αλλά πλέον δεν μπορούμε να αναφερόμαστε σε κυκλικούς κώδικες. Τέλος το βασικό χαρακτηριστικό ενός κώδικα Reed-Solomon, το οποίο είναι και ο λόγος που θα τον χρησιμοποιήσουμε στην παρούσα διπλωματική, είναι η σταθερή απόσταση που έχουν δύο κωδικές λέξεις του ίδιου κώδικα. Αυτός μας δίνει τη δυνατότητα πρόβλεψης των κοινών στοιχείων ανάμεσα σε δύο κωδικές λέξεις ενός RS, κάτι που θα φανεί ιδιαίτερα χρήσιμο στη συνέχεια. Στην παρούσα διπλωματική δε θα μας απασχολήσουν περισσότερο οι κώδικες Reed-Solomon γι αυτό και δε θα γίνει περαιτέρω αναφορά στις διαδικασίες κωδικοποίησης και αποκωδικοποίησης

44 Κεφάλαιο 4 Κώδικες LDPC βασισμένοι σε Reed-Solomon με δύο σύμβολα πληροφορίας 4.1 Εισαγωγή Όπως αναφέρθηκε σε προηγούμενο κεφάλαιο η χρησιμότητα των LDPC κωδίκων έγκειται στο γεγονός ότι μπορούν να προσεγγίσουν ρυθμούς μετάδοσης δεδομένων πολύ κοντά στο θεωρητικό μέγιστο, το όριο Shannon. Αυτό γίνεται εφικτό όταν το Tanner διάγραμμα του κώδικα δεν περιέχει κύκλους μήκους 4 οι οποίοι οδηγούν σε εσφαλμένες αποφάσεις από τους κόμβους ελέγχου του αποκωδικοποιητή. Στο κεφάλαιο αυτό θα παρουσιαστεί μία αλγεβρική μέθοδος για την κατασκευή κανονικών (reular) LDPC κωδίκων βασισμένη σε κώδικες Reed-Solomon με δύο σύμβολα πληροφορίας. Η μέθοδος αυτή εγγυάται ότι το Tanner διάγραμμα για τον κώδικα LDPC που θα προκύψει δεν περιέχει κύκλους μήκους μικρότερο του 6. Οι κώδικες αυτοί είναι απλοί στην κατασκευή, με καλές ελάχιστες αποστάσεις και συμπεριφέρονται ικανοποιητικά με τη χρήση επαναληπτικών αλγορίθμων αποκωδικοποίησης. 4.2 Shortened κώδικες RS Ξεκινώντας τη διαδικασία κατασκευής θεωρούμε αρχικά το πεδίο Galois GF(p s ) όπου το p είναι πρώτος αριθμός και το s θετικός ακέραιος. Έστω επίσης ότι το α αποτελεί ένα πρωταρχικό στοιχείο για το GF(p s ). Αν θεωρήσουμε ότι q=p s, τότε τα στοιχεία 0=α, 1=α 0, α 1, α 2,..., α q-2 αποτελούν όλα τα στοιχεία του πεδίου GF(p s ). Αν ακόμα θεωρήσουμε έναν αριθμό ρ τέτοιο ώστε 2 ρ<q, τότε μπορούμε να κατασκευάσουμε έναν κυκλικό (q-1, q-ρ+1, ρ-1) Reed-Solomon κώδικα C μήκους q-1, με q-ρ+1 σύμβολα πληροφορίας και ελάχιστη απόσταση ρ-1, του οποίου το πολυώνυμο γεννήτορας δίνεται από τη σχέση: (X) = (X-α) (Χ-α 2 )... (Χ-α ρ-2 ) = X + 2 X X ρ-2 (4.1) Τα i αποτελούν στοιχεία του πεδίου GF(p s ), ενώ οι ρ-1 συντελεστές ( 0, 1,, ρ-2 ) του (X) είναι μη μηδενικοί. Αν αφαιρέσουμε από τον RS κώδικα τα πρώτα q-ρ-1 σύμβολα πληροφορίας από κάθε κωδική λέξη (διαδικασία shortenin), θα προκύψει ένας μικρότερης διάστασης

45 (shortened) κώδικας RS (ρ, 2, ρ-1), έστω C b, με δύο σύμβολα πληροφορίας. Ο γεννήτορας πίνακας G b για τον κώδικα C b, προκύπτει με βάση μεθόδους που περιγράφηκαν στο κεφάλαιο 3, και είναι ο εξής: G b (4.2) Το μήκος του C b κώδικα είναι ρ. Κωδικοποιώντας μη μηδενικά μηνύματα πληροφορίας (2 συμβόλων), οι τιμές των οποίων ανήκουν στο GF(p s ), με τον C b θα προκύψουν μη μηδενικές κωδικές λέξεις με βάρη είτε ρ είτε ρ-1. Εφόσον η ελάχιστη απόσταση του κώδικα C b είναι ρ-1 και το μήκος κάθε λέξης είναι ρ, δύο διαφορετικές κωδικές λέξεις του κώδικα C b έχουν το πολύ μία θέση με το ίδιο σύμβολο. Αν ορίσουμε με r1, r2 τα δύο διανύσματα γραμμών του γεννήτορα πίνακα G b, το διάνυσμα αθροίσματος r1+r2 θα έχει βάρος ρ (από το άθροισμα των δύο γραμμών στο πεδίο GF(p s ) παρατηρούμε ότι σε καμία θέση δεν προκύπτει 0). Το διάνυσμα r1+r2 αποτελεί επίσης κωδική λέξη του C b καθώς έιναι το αποτέλεσμα του πολλαπλασιασμού του διανύσματος πληροφορίας [1 1] με τον G b. Με βάση αυτό μπορεί να οριστεί ένας νέος υποκώδικας (subcode) του κώδικα C b, ο (ρ, 1, ρ) C b (1), διάστασης 1. Από τον C b (1) μπορούν να προκύψουν συνολικά p s διαφορετικές έγκυρες κωδικές λέξεις με βάση τη σχέση: s C { ( r1 r2) : GF( p )} (4.3) (1) b Αφού το διάνυσμα r1+r2 έχει βάρος ρ, οι p s -1 μη μηδενικές κωδικές λέξεις (για β=α 0,α 1, α q-2 (1) ) που ανήκουν στον κώδικα C b θα έχουν επίσης βάρος ρ (εκτός της (1) μηδενικής λέξης που προκύπτει για β=0). Επίσης από τον τρόπο κατασκευής του C b (σχέση 4.3) εύκολα προκύπτει ότι κάθε κωδική λέξη του C (1) b διαφέρει σε όλες της τις (1) (1) θέσεις από οποιαδήποτε άλλης κωδικής λέξης του C b (κάθε λέξη του του C b προκύπτει ως το γινόμενο ενός διαφορετικού αριθμού β με το r1+r2). Άρα αν (1) συγκρίνουμε σύμβολο-προς-σύμβολο όλες τις κωδικές λέξεις του C b θα είναι όλες διαφορετικές μεταξύ τους. Αν επανέλθουμε στον κώδικα C b, το διάνυσμα r1 έχει βάρος ρ-1, άρα και ο όρος α i-2 r1 έχει βάρος ρ-1 οπότε δεν αποτελεί λέξη του κώδικα C b (1). Έτσι το γινόμενο α i-2 r1 μπορεί να χρησιμοποιηθεί ως βάση για την κατασκευή νέων συνόλων λέξεων (υποκωδίκων) C b (i) βασισμένων στον κώδικα C b (1) με τέτοιο τρόπο ώστε: C { a r1 ( r1 r2) : GF( p )} (4.4) ( i) i2 s b με 2 i p s. Από τη σχέση προκύπτει ότι υπάρχουν p s διαφορετικά διανύσματα (διαφορετικές λέξεις) σε κάθε νέο σύνολο C (i) b που βασίζεται στον αρχικό κώδικα C (1) b. Πλέον τα C (i) b για 1 i p s, μπορούν να θεωρούνται σα σύνολα διανυσμάτων. Καθένα από τα C (i) b έχει p s λέξεις-διανύσματα διαφορετικά μεταξύ τους, ενώ δύο λέξεις που ανήκουν (i) σε διαφορετικά C b το πολύ να έχουν ένα μόνο κοινό σύμβολο (το κοινό σύμβολο

46 προκύπτει από το ένα μηδενικό που υπάρχει στο r1). Με αυτόν τον τρόπο προκύπτουν p s διαφορετικά σύνολα C b (i). 4.3 Διανύσματα θέσης (location vectors) Όπως προαναφέρθηκε το πεδίο GF(p s ), με q=p s, αποτελείται από τα στοιχεία 0=α, 1=α 0, α 1, α 2,..., α q-2. Έστω ότι ορίζουμε ένα διάνυσμα z, με πεδίο τιμών το GF(2), και p s συνιστώσες, τέτοιο ώστε z=(z, z 0,z 1,, z q-2 ). Το διάνυσμα z θα απολέσει μία νέα δυαδική αναπαράσταση, αποτελούμενη από q ψηφία, για καθένα από τα στοιχεία 0, α 0, α 1, α 2,..., α q-2 του πεδίου GF(q). Έτσι για κάθε διαφορετική τιμή 0, α 0, α 1, α 2,..., α q-2 υπάρχει το αντίστοιχο διάνυσμα z(0), z(α 0 ), z(α 1 ), z(α 2 ),..., z(α q-2 ), το οποίο καλείται διάνυσμα θέσης (location vector) και ορίζεται ως εξής: z(0) = (1, 0, 0, 0,, 0) z(α 0 ) = (0, 1, 0, 0,, 0) z(α 1 ) = (0, 0, 1, 0,, 0) z(α q-2 ) = (0, 0, 0, 0,, 1) Πρόκειται δηλαδή για διανύσματα που όλες τους οι συνιστώσες είναι μηδενικά εκτός από εκείνη που βρίσκεται στη θέση που ορίζει κάθε φορά ο εκθέτης του στοιχείου α αυξημένη κατά ένα, η οποία έχει άσσο. Εξαίρεση αποτελεί το διάνυσμα z(0) το οποίο εξ ορισμού έχει τον άσσο στην πρώτη του θέση. Αν τώρα πάρουμε μία τυχαία κωδική λέξη c = (c 1, c 2,, c ρ ) του κώδικα C b μπορούμε να ορίσουμε το διάνυσμα θέσης της αν αντικαταστήσουμε καθένα από τα σύμβολα της c j με το αντίστοιχο διάνυσμα θέσης του z(c j ), με 1 j ρ ως εξής: z(c) = (z(c 1 ), z(c 2 ),, z(c ρ )) (4.5) Έτσι για τη λέξη c προκύπτει το αντίστοιχο διάνυσμα θέσης z(c), το οποίο καλείται διάνυσμα θέσης συμβόλου (symbol location vector), με δυαδικές τιμές και διάσταση ρp s. 4.4 Κωδικές λέξεις C b (i) Με βάση όσα αναφέρθηκαν παραπάνω, όλες οι κωδικές λέξεις c 1,j για j=0,1,, p s -2, που ανήκουν στο σύνολο C b (1) μπορούν να γραφτούν ως: j c1, j a ( r1 r2), (4.6)

47 ενώ η όλο μηδενικά κωδική λέξη (προκύπτει για β=0) που ανήκει στο C b (1) δηλώνεται ως c 1,. Για τα υπόλοιπα σύνολα C b (i), i=2,3,.., p s, κάθε j-οστή λέξη, με j=0,1,, p s -2, ενός i-οστού συνόλου c i,j ορίζεται από τη σχέση: c a r a r r (4.7) i2 j i, j 1 ( 1 2) Οπότε η c 1, μπορεί να θεωρηθεί ότι δίνεται από τη σχέση: i 1 c i, a r1 (4.8) 4.5 Κατασκευή πίνακα ελέγχου ισοτιμίας (parity check matrix) για κώδικες RS-LDPC Ας επανέλθουμε στα σύνολα C (i) b που κατασκευάσαμε παραπάνω. Αν γράψουμε κάθε C (i) b υπό τη μορφή πίνακα (έστω D i ), όπου όλες οι λέξεις που αποτελούν το C (i) b θα είναι γραμμές του πίνακα αυτού, θα προκύψει ένας πίνακας διάστασης p s xρ όπου όλα τα p s στοιχεία κάθε στήλης θα είναι διαφορετικά μεταξύ τους (αφού αποτελούν το γινόμενο ενός αριθμού με όλα τα στοιχεία του GF(p s )). Έτσι, για τις τιμές 1 i p s μπορούν να οριστούν p s πίνακες D i με πεδίο τιμών το GF(p s ). Καθένας από αυτούς θα έχει διαστάσεις p s xρ και γραμμές του θα αποτελούν τα p s διαφορετικά διανύσματα του αντίστοιχου C (i) b. Συνεπώς ο πίνακας D i που προκύπτει είναι: D i c c c... c i, i,0 i,1 s i, p 2 (4.9) Για κάθε διαφορετική τιμή του i, 1 i p s, μπορεί να σχηματιστεί ένας πίνακας Α i δυαδικών τιμών αυτή τη φορά και διάστασης p s x ρp s. Ο Α i δημιουργείται αν κάθε κωδική λέξη c i,j, ή αλλιώς κάθε γραμμή του πίνακα D i, αντικατασταθεί με το αντίστοιχο διάνυσμα θέσης συμβόλου z(c i,j ) όπως φαίνεται στο σχήμα: A i zc ( i, ) zc (,0) i zc ( i,1)... zc ( s ) ip, 2 (4.10)

48 Εξ ορισμού το διάνυσμα θέσης z για κάθε συνιστώσα της κωδικής λέξης c i,j είναι ένα όλο μηδενικά διάνυσμα με ένα μόνο άσσο. Έτσι το z(c i,j ), δεδομένου ότι το μήκος της c i,j είναι ρ, θα έχει ρ άσσους στο σύνολο. Ακόμα όπως αποδείχθηκε παραπάνω, για μία συγκεκριμένη τιμή του i, τα στοιχεία των στηλών του D i είναι διαφορετικά μεταξύ τους, κάτι που σημαίνει ότι σε κάθε στήλη του Α i θα εμφανίζεται άσσος σε διαφορετική θέση και άρα κάθε στήλη θα έχει το πολύ έναν άσσο. Έτσι ο πίνακας Α i είναι ένας κανονικός (reular) πίνακας με συνολικά ρp s άσσους, βάρος γραμμής ρ και βάρος στήλης ίσο με 1. Ο τρόπος κατασκευής και η δομή του Α i μας επιτρέπουν να θεωρήσουμε ότι αποτελείται από μία σειρά ρ διαφορετικών υποπινάκων, διάστασης p s x p s ο καθένας, με την ιδιότητα να έχουν το πολύ έναν άσσο ανά γραμμή και στήλη. Οι πίνακες αυτοί καλούνται μεταθετικοί πίνακες (permutation matrices), ενώ κάθε πίνακας Α i καλείται πίνακας θέσης συμβόλου (symbol location matrix) του αντίστοιχου συνόλου C b (i). ιδιότητες: Το σύνολο λοιπόν Α των πινάκων Α i, A { A1, A2,..., A p s } έχεις τις εξής δομικές Οποιεσδήποτε δύο γραμμές που ανήκουν στον ίδιο πίνακα Α i δεν έχουν το ίδιο στοιχείο σε αντίστοιχες θέσεις (ή αλλιώς κάθε στήλη έχει το πολύ έναν άσσο). Δύο γραμμές που ανήκουν σε δύο διαφορετικούς πίνακες τους συνόλου Α, έστω Α i και Α j, μπορεί να έχουν μεταξύ τους το πολύ ένα κοινό στοιχείο σε αντίστοιχες θέσεις (ή αλλιώς δύο διαφορετικές στήλες μπορούν να έχουν έναν άσσο στην ίδια γραμμή και αυτό να ισχύει για μία μόνο γραμμή). Έστω τελικά ότι χρειαζόμαστε γ στο πλήθος πίνακες από το σύνολο Α, με 1 γ ρ. Αν διατάξουμε αυτούς τους πίνακες σε μία στήλη θα προκύψει ένας νέος πίνακας H γ με πεδίο τιμών το GF(2) όπως φαίνεται στη συνέχεια: H A1 A 1... A (4.11) Ο H γ είναι ένας (γ,ρ) κανονικός πίνακας διάστασης γp s x ρp s με βάρος στήλης και γραμμής γ και ρ αντίστοιχα. Όπως προκύπτει από τις δομικές ιδιότητες των πινάκων Α i, στον H γ δεν μπορούν να βρεθούν δύο γραμμές (ή στήλες) που να έχουν περισσότερους του ενός άσσους στις ίδιες θέσεις. Αυτό σημαίνει ότι το διάγραμμα Tanner που αντιστοιχεί στον H γ δεν περιέχει κύκλους μήκους 4 όπως αποδεικνύεται στο επόμενο παράδειγμα. Έστω ότι έχουμε τον πίνακα Η με

49 H όπου ανάμεσα στην 1 η και τη 2 η στήλη καθώς και στην 7 η και 9 η έχουμε 2 άσσους στις ίδιες θέσεις. Το αντίστοιχο διάγραμμα Tanner θα είναι: Σχ Διάγραμμα Tanner-Παρουσία κύκλων μήκους 4 Από ότι βλέπουμε υπάρχουν δύο κύκλοι μήκους 4 που δημιουργούνται μεταξύ των κόμβων μεταβλητής που αντιστοιχούν στις στήλες του H με τα δύο κοινά στοιχεία. Έτσι με την παραπάνω διαδικασία κατασκευής του H γ θα έχουμε ελάχιστο μήκος κύκλου (irth) ίσο με 6. Ο πίνακας H γ λοιπόν μπορεί να αποτελέσει τον πίνακα ελέγχου ισοτιμίας για έναν (γ,ρ) κανονικό κώδικα LDPC, μήκους n=ρp s, του οποίου το διάγραμμα Tanner έχει ελάχιστο μήκος κύκλου ίσο με 6. Ενώ ο αριθμός των ψηφίων της κωδικής λέξης για τον κώδικα LDPC που προέκυψε είναι n=ρp s, ο αριθμός των ψηφίων ισοτιμίας δεν είναι εκ των προτέρων γνωστός γιατί εξαρτάται από την τάξη του H γ. Έτσι αν k στο πλήθος τα ψηφία πληροφορίας για τον κώδικα τότε ο αριθμός των ψηφίων ισοτιμίας n-k θα πρέπει να ικανοποιεί τη σχέση: όπου m= γp s ο αριθμός των γραμμών του πίνακα H γ. n-k m (4.12) Όπως και ο πίνακας Α i, έτσι και ο H γ μπορεί να θεωρηθεί ότι αποτελείται από γ σειρές ρ υποπινάκων διάστασης p s x p s, οι οποίοι είναι επίσης μεταθετικοί πίνακες. Συνοψίζοντας, για δεδομένες τιμές των p, s και ρ μπορεί για κάθε διαφορετική τιμή του γ (γ=1,2,,p s ) να κατασκευαστεί και ένας διαφορετικός κώδικας LDPC μήκους n=ρp s. Εφόσον η κατασκευή του κώδικα LDPC βασίζεται στον (ρ,2,ρ-1) shortened RS κώδικα C b στο πεδίο GF(p s ), ο C b καλείται κώδικας βάσης και το GF(p s ) πεδίο κατασκευής για τον κώδικα LDPC

50 4.6 Παράδειγμα (12,3,3) RS-LDPC κώδικα[2] Έστω ότι επιλέγουμε τις τιμές p=2, s=2 και ρ=3 με τις οποίες κατασκευάζουμε έναν κώδικα RS. Τα στοιχεία του κώδικα ανήκουν στο πεδίο Galois GF(2 2 ) με πρωταρχικό πολυώνυμο το 1+Χ+Χ 2. Τα τέσσερα στοιχεία του πεδίου που θα χρησιμοποιήσουμε είναι 0, α 0 =1, α 1, α 2 =1+α. Το πολυώνυμο γεννήτορας για τον shortened RS κώδικα που θα χρησιμοποιηθεί είναι: και ο γεννήτορας πίνακας G b θα είναι: ( X ) a X (4.13) G b a a 1 (4.14) Ακολουθώντας τη διαδικασία που περιγράφηκε στην προηγούμενη ενότητα έχουμε r1 = (α 1 0), r2 = (0 α 1) και r1+r2 = (α α 2 1). Οι πίνακες D 1 -D 3 που προκύπτουν σύμφωνα με τη σχέση (4.1.9) είναι: a 1 0 a a 0 2 a a 1 0 a D1, D 2 2, D3 2 a 1 a 1 0 a 0 a a a a a a a a 0 a D1 Αν οριστεί ένας ακόμα πίνακας Η τέτοιος ώστε Η = D 2 διάστασης 12x3 θα έχουμε: D

51 H ' c 2 1 a 1 a 1 c 2 a a a a a c a a a a a c a 1 0 c 0 2 a(1 a ) (1 a ) 1 c a(1 a ) (1 a ) a c a(1 a ) (1 a ) a c a a a 1 0 c a (1 a ) a(1 a ) 1 c a (1 a ) a(1 a ) a c a (1 a ) a(1 a ) a c 12x3 1 0 Στον πίνακα Η φαίνεται αναλυτικά πως προέκυψαν τα στοιχεία των πινάκων D 1 - D 3 με βάση τις σχέσεις (4.1.7) και (4.1.8). Τώρα αντικαθιστώντας κάθε στοιχείο από τα 0, α 0, α 1, α 2 του πεδίου GF(2 2 ) με το αντίστοιχο διάνυσμα θέσης του τα οποία είναι z(0) = ( ), z(1) = ( ), z(α) = ( ) και z(α 2 ) = ( ) προκύπτουν οι αντίστοιχοι πίνακες Α 1 -Α 3 και συνακόλουθα ο τελικός πίνακας ελέγχου ισοτιμίας Η 12x12 για τον τελικό κώδικα RS-LDPC. Ο τελικός Η 12x12 φαίνεται παρακάτω: 1, 1,0 1,1 1,2 2, 2, 0 2,1 2,2 3, 3,0 3,1 3,2-51 -

52 H 12x A 1 A 2 A 3 Κ Ο Η 12x12 αποτελεί πίνακα ελέγχου ισοτιμίας Η 12x12 για έναν (12,3,3) κανονικό κώδικα LDPC μήκους 12 bits και ρυθμού 1/3. Ο αριθμός των bits ισοτιμίας ισούται με την τάξη του Η όπως αναφέρεται στο 1 ο κεφάλαιο. Για τον παραπάνω πίνακα έχουμε rank(h) =8, άρα ο αντίστοιχος κώδικας έχει 8 parity bits, 4 information bits και rate= 4/12=1/3. Μπορούμε να παρατηρήσουμε επίσης ότι κάθε στήλη έχει το πολύ δύο άσσους στις ίδιες θέσεις, κάτι που όπως είπαμε αποκλείει την ύπαρξη κύκλων μήκους 4 από το αντίστοιχο διάγραμμα Tanner. Τα σύνολα γραμμών που αντιστοιχούν στους πίνακες Α 1 -Α 3 φαίνονται στο σχήμα. Ο πίνακας Η επίσης μπορεί να διαιρεθεί σε 9 μεταθετικούς υποπίνακες διάστασης 4x4 ο καθένας. Παρατηρώντας το σχήμα βλέπουμε ότι οι πίνακες αυτοί ανάλογα με τη δομή τους μπορούν να ταξινομηθούν σε 3 διαφορετικές κατηγορίες όπως φαίνεται παρακάτω:

53 Type Ι H 12x Type ΙΙΙ Type ΙΙ A 1 A 2 A 3 Οι υποπίνακες που ανήκουν στην πρώτη κατηγορία (Type I) είναι οι υποπίνακες που απαρτίζουν τον Α 1 χωρίς όμως τον τελευταίο από αυτούς. Οι υποπίνακες αυτοί έχουν προκύψει από τα διανύσματα θέσης των στοιχείων του συνόλου Cb (1). Τα στοιχεία του Cb (1) με τη σειρά τους έχουν προκύψει από την (4.6), αποτελούν το αποτέλεσμα του πολλαπλασιασμού μίας σταθερής τιμής του πεδίου GF(p s ) (στην περίπτωση μας GF(2 2 )) με όλα τα στοιχεία β του ίδιου πεδίου. Όπως είδαμε στο προηγούμενο κεφάλαιο πολλαπλασιασμός σε ένα πεδίο Galois σημαίνει, για εκθετική αναπαράσταση των στοιχείων, άθροιση των εκθετών του α. Έτσι αν η εκθετική παράσταση για τον όρο (r1+r2) είναι α x, πολλαπλασιάζοντας με όλα τα στοιχεία του GF πεδίου κατά αύξουσα s p 2 a σειρά οι τιμές που θα προκύψουν θα είναι οι α x+0, α x+1, α x+2,,. Άρα το διάνυσμα θέσης καθεμίας από αυτές τις τιμές θα είναι το διάνυσμα θέσης της προηγούμενης ολισθημένο προς τα δεξιά κατά μία θέση. Εξαίρεση αποτελεί ο πολλαπλασιασμός του (r1+r2) με την τιμή β=0 καθώς προκύπτει το μηδενικό στοιχείο και το διάνυσμα θέσης του έχει πάντα άσσο στην πρώτη θέση. Συμπερασματικά, οι πίνακες που ανήκουν στην πρώτη κατηγορία είναι ολισθημένοι μοναδιαίοι πίνακες διάστασης p s -1 x p s -1 αν εξαιρεθεί η πρώτη γραμμή και στήλη τους. Για τη γραμμή-στήλη που εξαιρέσαμε ο άσσος βρίσκεται πάντα στη θέση 0 (εξ ορισμού του διανύσματος θέσης)

54 Οι υποπίνακες της δεύτερης κατηγορίας είναι όλοι μοναδιαίοι πίνακες. Ο πρώτος από αυτούς, που ανήκει στον A 1, έχει προκύψει από τον πολλαπλασιασμό όλων των τιμών του β με το τελευταίο στοιχείο του διανύσματος r1+r2, το οποίο στην περίπτωση μας αλλά και σε όλες τις άλλες είναι το α 0 =1. Έτσι σε κάθε γραμμή του υποπίνακα αυτού s έχουμε το διάνυσμα θέσης όλων των GF( p ). Οι υπόλοιποι υποπίνακες της κατηγορίας προκύπτουν προσθέτοντας στον παραπάνω ένα πολλαπλάσιο του τελευταίου στοιχείου του r1 (σχέση 4.7). Το στοιχείο αυτό ισούται με 0 επίσης σε όλες τις περιπτώσεις, όπως προκύπτει από τον G b. Έτσι όλοι οι υποπίνακες αυτής της κατηγορίας είναι ίδιοι και αποτελούν το μοναδιαίο πίνακα διάστασης p s x p s. Τέλος στην τρίτη κατηγορία ανήκουν όλοι οι υπόλοιποι υποπίνακες που έχουν προκύψει από την (4.7) και ανήκουν στους A i, με i=2,3,, γ, διάστασης p s x p s. Η (4.7) i είναι η άθροιση των όρων a 2 j r1 και a ( r1 r2). Η πράξη αυτή μπορεί να εκτελεστεί επίσης, όπως περιγράφηκε και στο κεφάλαιο 3, λαμβάνοντας τα στοιχεία βάσης των δύο αθροιστέων και εκτελώντας μεταξύ των αντίστοιχων στοιχείων τη λογική πράξη xor. Πρέπει να σημειωθεί ότι οι υποπίνακες της δεύτερης κατηγορίας μπορούν να ενσωματωθούν στην πρώτη και στην τρίτη. Αυτό είναι εμφανές λόγω του τρόπου κατασκευής του H με βάση τις (4.3) και (4.4). Έτσι η παραπάνω ομαδοποίηση των υποπινάκων μπορεί να αλλάξει θεωρώντας 2 κατηγορίες αυτή τη φορά. Στην πρώτη θα ανήκουν οι υποπίνακες του A 1 και αποτελούν ολισθημένους μοναδιαίους πίνακες (στην περίπτωση αυτή θεωρούμε το συντελεστή ολίσθησης του τελευταίου ίσο με το 0). Η δεύτερη θα αποτελείται από όλους τους υπόλοιπους υποπίνακες (των A i ) και η κατασκευή τους θα στηρίζεται στον Α 1 και στην (4.7). Η κατηγοριοποίηση αυτή θα χρησιμοποιηθεί και σε επόμενα κεφάλαια για την υλοποίηση του Η. 4.7 Κατασκευή γεννήτορα πίνακα G για τον (12,3,3) RS-LDPC Η ύπαρξη και κατασκευή του γεννήτορα πίνακα για έναν κώδικα είναι απαραίτητη, καθώς μέσω αυτού μπορούν να υπολογιστούν όλες οι έγκυρες κωδικές λέξεις. Επίσης για να είναι διακριτό το τμήμα της πληροφορίας μέσα στην κωδική λέξη και έτσι να είναι πιο εύκολη η διαδικασία της λήψης του επιθυμητού σήματος από την έξοδο του αποκωδικοποιητή ο γεννήτορας πίνακας θα πρέπει να είναι συστηματικός. Αν G είναι ο γεννήτορας πίνακας για τον παραπάνω κώδικα (12,3,3) RS-LDPC θα πρέπει μεταξύ αυτού και του πίνακα Η να ισχύει η σχέση (1.6) και η διάστασή του θα είναι 4x12. με βάση τους δύο παραπάνω περιορισμούς η δομή του G είναι: G ,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 2,0 2,1 2,2 2,3 2,4 2,5 2,6 2,7 3,0 3,1 3,2 3,3 3,4 3,5 3,6 3,7-54 -

55 Οι συντελεστές i,j, (i=0,1,2,3, j=0,1,,7) παίρνουν τιμές 0 και 1 και θα προκύψουν από την επίλυση του συστήματος G H T =0. Το σύστημα των εξισώσεων που προκύπτει για τα στοιχεία της πρώτης γραμμής του πίνακα G είναι: 0,0 0,4 1 1,0 1,4 0 2,0 2,4 0 3,0 3,4 0 0,3 0,5 0 1,3 1,5 0 2,3 2,5 1 3,3 3,5 0 0,1 0,6 0 1,1 1,6 0 2,1 2,6 0 3,1 3,6 1 0,2 0,7 0 1,2 1,7 1 2,2 2,7 0 3,2 3,7 0 0,1 0,4 0 1,1 1,4 0 2,1 2,4 1 3,1 3,4 0 0,2 0,5 1 1,2 1,5 0 2,2 2,5 0 3,2 3,5 0 0,0 0,6 0 1,0 1,6 1 2,0 2,6 0 3,0 3,6 0 0,3 0,7 0 1,3 1,7 0 2,3 2,7 0 3,3 3,7 1 0,2 0,4 0 1,2 1,4 0 2,2 2,4 0 3,2 3,4 1 0,1 0,5 0 1,1 1,5 1 2,1 2,5 0 3,1 3,5 0 0,3 0,6 1 1,3 1,6 0 2,3 2,6 0 3,3 3,6 0 0,0 0,7 0 1,0 1,7 0 2,0 2,7 1 3,0 3,7 0 Έστω για παράδειγμα ότι θέλουμε να λύσουμε το πρώτο σύστημα των εξισώσεων για την εύρεση των αγνώστων 0,j, (j=0,1,,7). Για να υπάρχει λύση στο σύστημα αυτό θα πρέπει ο πίνακας συντελεστών των 0,j να έχει τάξη ίση με 8 (όσος και ο αριθμός των αγνώστων) ή αλλιώς τα διανύσματα στήλης του πίνακα συντελεστών να είναι γραμμικώς ανεξάρτητα μεταξύ τους. Στην περίπτωση μας δεν ισχύει κάτι τέτοιο και έτσι προκύπτει ότι το σύστημα αγνώστων 0,j δεν έχει λύση. Με όμοιο τρόπο αποδεικνύεται πως και τα συστήματα των υπολοίπων i,j δεν έχουν λύσεις. Παρατηρώντας τα παραπάνω συστήματα διαπιστώνουμε ότι ο πίνακας συντελεστών είναι κοινός για όλους τους αγνώστους i,j και πρόκειται για τον ίδιο πίνακα με τον υποπίνακα Κ του αρχικού πίνακα ελέγχου ισοτιμίας Η 12x12. Για να υπάρξει μια λύση στα παραπάνω συστήματα θα πρέπει ο πίνακας συντελεστών των i,j και άρα ο υπιπόνακας Κ να αποκτήσει rank=8. Εφόσον rank(h)=8, μπορεί να εφαρμοστεί μια διαδικασία μετάθεσης στηλών στον πίνακα Η, ώστε οι 8 γραμμικώς ανεξάρτητες στήλες του να βρίσκονται όλες στον πίνακα Κ. Η διαδικασία αυτή, όπως θα φανεί στη συνέχεια δε θα επηρεάσει τον τρόπο που γίνεται η αποκωδικοποίηση για τον RS-LDPC. Για να μετατραπεί λοιπόν ο Κ σε full-rank αρκεί να αλλάξουμε θέσεις στην 4 η και στην 5 η στήλη μεταξύ τους. Έτσι ο νέος πίνακας Η που προκύπτει είναι:

56 H 12x Τώρα το νέο σύστημα που προκύπτει είναι G H T=0 και οι εξισώσεις που πρέπει να επιλυθούν φαίνονται παρακάτω: 0,4 0,3 0,5 0,0 0,1 0,6 0,2 0,7 0,1 0,4 0,2 0,5 0,6 0,0 0,3 0,7 0,0 0,2 0,4 0,1 0,5 0,3 0,6 0, ,4 1,3 1,5 1,0 1,1 1,6 1,2 1,7 1,1 1,4 1,2 1,5 1,6 1,0 1,3 1,7 1,0 1,2 1,4 1,1 1,5 1,3 1,6 1, ,4 2,3 2,5 2,0 2,1 2,6 2,2 2,7 2,1 2,4 2,2 2,5 2,6 2,0 2,3 2,7 2,0 2,2 2,4 2,1 2,5 2,3 2,6 2, ,4 3,3 3,5 3,0 3,1 3,6 3,2 3,7 3,1 3,4 3,2 3,5 3,6 3,0 3,3 3,7 3,0 3,2 3,4 3,1 3,5 3,3 3,6 3, Από τη λύση των συστημάτων προκύπτει ο ακόλουθος πίνακας G:

57 G Αλλάζοντας τη σειρά στις στήλες του Η πετύχαμε την εύρεση ενός συστηματικού γεννήτορα πίνακα αλλά παρουσιάστηκαν δύο νέα προβλήματα. Πρώτα από όλα άλλαξαν οι ιδιότητες των 4x4 υποπινάκων του Η (πλέον δεν είναι μεταθετικοί και δεν ισχύουν οι κατηγοριοποιήσεις που έγιναν παραπάνω). Το γεγονός αυτό θα δυσκολέψει τη σχεδίαση του RS-LDPC αποκωδικοποιητή που μας ενδιαφέρει καθώς η κατανομή 0 και 1 στον πίνακα Η και άρα οι συνδέσεις ανάμεσα στους κόμβους ελέγχου και μεταβλητής του αποκωδικοποιητή δεν μπορούν να μοντελοποιηθούν. Δεύτερον, η αλλαγή στις θέσεις των στηλών του Η συνεπάγεται ότι στους κόμβους ελέγχου του αποκωδικοποιητή φτάνουν μηνύματα από διαφορετικούς κόμβους μεταβλητής σε σχέση με προηγουμένως, κάτι που θα αλλοιώσει το αποτέλεσμα της αποκωδικοποίησης. Για να ξεπεραστούν τα προβλήματα αυτά, μπορούμε να θεωρήσουμε ότι: (4.15) όπου με P ορίζουμε ένα μεταθετικό πίνακα διάστασης 12x12 και κάθε στήλη του j έχει έναν άσσο στη θέση που θέλουμε να βρίσκεται η j-οστη στήλη του Η στον Η, ώστε να υπάρξει λύση στο σύστημα G H T =0. Με βάση αυτό η σχέση (1.6) θα γίνει: (4.16) Από τη σχέση αυτή φαίνεται ότι ανάμεσα στα στάδια της κωδικοποίησης και αποκωδικοποίησης πρέπει να παρεμβληθεί ένα στάδιο πολλαπλασιασμού της κωδικής λέξης με τον πίνακα P. Το ερώτημα που προκύπτει στο σημείο αυτό είναι αν ο πολλαπλασιασμός αυτός θα πρέπει να γίνει πριν ή μετά από τη μετάδοση της λέξης στο κανάλι. Δεδομένου ότι το κανάλι μετάδοσης που θα χρησιμοποιηθεί λαμβάνει δεδομένα εισόδου του 1 bit και παράγει δεδομένα εξόδου των 6 bits για λόγους εξοικονόμησης επιφάνειας ο πολλαπλασιασμός με τον P φαίνεται να «συμφέρει» να γίνει αμέσως μετά την κωδικοποίηση και πριν τη μετάδοση της κωδικής λέξης (η μνήμη ram αποτελείται από εγγραφές του 1 bit και όχι των 6 όπως θα συνέβαινε στην δεύτερη περίπτωση, ενώ αποφεύγεται η χρήση μιας dual port rom). Ο P όμως λόγω της δομής του (μεταθετικός πίνακας) όταν πολλαπλασιαστεί με κάποιο διάνυσμα ή πίνακα επιφέρει αλλαγή στις θέσεις των στηλών του. Έτσι μετά τον πολλαπλασιασμό θα μεταδοθεί το ίδιο σύνολο των bit αλλά με διαφορετική σειρά. Στην περίπτωσή μας χρησιμοποιούμε ως μέσο μετάδοσης ένα κανάλι λευκού γκαουσιανού θορύβου το οποίο προσθέτει με τυχαίο τρόπο το θόρυβο στα δυαδικά ψηφία της κωδικής λέξης. Η επιλογή αυτή μας επιτρέπει την τοποθέτηση του P πριν από το κανάλι. Σε περίπτωση που υπήρχε εξάρτηση ανάμεσα στο θόρυβο που αθροίζεται και στο αντίστοιχο bit που μεταδίδεται τη συγκεκριμένη χρονική στιγμή, θα

58 έπρεπε η μετάδοση της κωδικοποιημένης λέξης να γίνει κανονικά και στη συνέχεια να εκτελεστεί η διαδικασία των μεταθέσεων. Έτσι λοιπόν η αποκωδικοποίηση μπορεί να εκτελεστεί ανεπηρέαστη από την παραπάνω διαδικασία, βασισμένη στον αρχικό πίνακα Η. Η δομή και οι ιδιότητες του Η θα παραμείνουν αμετάβλητες, κάτι που θα απλουστεύσει συνολικά την υλοποίηση του. Αυτό που αλλάζει πλέον είναι ότι η κωδικοποίηση αποτελείται από δύο στάδια. 1. Υπολογισμός κωδικής λέξης. Συμβαίνει όπως περιγράφηκε στο κεφάλαιο 1 με πολλαπλασιασμό του μηνύματος με το γεννήτορα πίνακα G. 2. Μετάθεση ψηφίων κωδικής λέξης. Πολλαπλασιασμός της κωδικής λέξης με τον P, ώστε να ικανοποιείται η σχέση (4.16). Στη συνέχεια θα μελετηθεί η συμπεριφορά του κώδικα (2048,1723) RS-LDPC, ο οποίος δημιουργήθηκε με βάση την προηγούμενη μέθοδο για p=2, s=6, ρ=32 και γ=6. Ο κώδικας αυτός έχει χρησιμοποιηθεί από το πρότυπο 802.3an της IEEE για το 10GBASE-T Ethernet. Στα επόμενα κεφάλαια θα προταθεί σχεδίαση για το συγκεκριμένο σύστημα κωδικοποίησης-αποκωδικοποίησης και θα παρουσιαστούν αποτελέσματα τόσο από τη μοντελοποίηση του συστήματος σε λογισμικό όσο και από την υλοποίηση του σε υλικό

59 Κεφάλαιο 5 Αρχιτεκτονική Υλικού 5.1 Εισαγωγή Ο (2048,1723) κώδικας RS-LDPC που υλοποιείται στην παρούσα διπλωματική, όπως αναφέρθηκε, δημιουργήθηκε με βάση τη μέθοδο του προηγούμενου κεφαλαίου για p=2, s=6, ρ=32 και γ=6. Πρόκειται για ένα δυαδικό κώδικα με μήκος κωδικής λέξης ίσο με 2048 και 1723 σύμβολα πληροφορίας (information bits). Τα υπόλοιπα 325 ψηφία αποτελούν τα ψηφία ισοτιμίας (parity bits). Τα χαρακτηριστικά του κώδικα προέκυψαν με βάση τις ιδιότητες του πίνακα ελέγχου ισοτιμίας (Η) που προέκυψε από τη μέθοδο του προηγούμενου κεφαλαίου. Ο πίνακας Η λοιπόν είναι πίνακας διάστασης (γp s xρp s )=(6x64)x(32x64)=384x2048 με rank(h)=325. Επίσης με βάση τον τρόπο κατασκευής του προκύπτει ότι το αντίστοιχο διάγραμμα Tanner έχει ελάχιστο μήκος κύκλου 6. Στο επόμενο σχήμα έχουμε μία απεικόνιση της «αραιότητας» του πίνακα Η, όπου οι κουκκίδες υποδεικνύουν την ύπαρξη άσσου στη συγκεκριμένη θέση. Το σύνολο των μη μηδενικών στοιχείων (των άσσων) του Η είναι 32x384= όπως φαίνεται και στο σχήμα (όπου 32 είναι ο αριθμός των άσσων κάθε γραμμής ή αλλιώς το variable deree). Επίσης το σχήμα αυτό επιβεβαιώνει τη δομή του H που περιγράψαμε στο κεφάλαιο 4. Σχ. 5.1 H 384x2048 για τον (6,32) κανονικό κώδικα RS-LDPC-Πίνακας «αραιότητας» Ο αριθμός των στηλών του Η μας δίνει το μήκος της κωδικής λέξης και το rank(h) τον αριθμό των parity bits. Έτσι ο συγκεκριμένος πίνακας δίνει έναν RS-LDPC κώδικα μήκους 2048 με 325 parity bits και 1723 information bits. Για την απ ευθείας απεικόνιση του Η σε ένα διάγραμμα Tanner θα χρειαστούμε 2048 κόμβους μεταβλητής

60 33 MHz 33 MHz 33 MHz (variable nodes) και 384 κόμβους ελέγχου (check nodes). Επίσης από τη δομή του Η προκύπτει ότι το check deree είναι 32, ενώ το variable deree 6. Στη συνέχεια θα μελετηθεί αναλυτικά η σχεδίαση του συστήματος κωδικοποίησης-αποκωδικοποίησης για το συγκεκριμένο κώδικα. 5.2 Κωδικοποιητής Κωδικοποίηση μηνύματος Η αρχιτεκτονική που χρησιμοποιήθηκε για τον κωδικοποιητή του κώδικα (2048,1723) RS-LDPC είναι αρκετά απλή. Με βάση τα χαρακτηριστικά του κώδικα, ο G θα είναι διάστασης 1723x2048 και κάθε μήνυμα εισόδου (mes) θα έχει μήκος 1x1723. Όπως αναφέρθηκε προηγούμενα, η διαδικασία της κωδικοποίησης συνίσταται στον πολλαπλασιασμό του mes με το γεννήτορα πίνακα G ώστε να προκύψει η προς μετάδοση κωδική λέξη (c). c mes * G (5.1) Το μήνυμα εισόδου προκύπτει από μία γεννήτρια ψευδοτυχαίων ακολουθιών (LFSR) μήκους 8 bits η οποία φαίνεται στο σχήμα: S SET Q S SET Q S SET Q S SET Q S SET Q S SET Q S SET Q 33 MHz 33 MHz 33 MHz 33 MHz R CLR Q R CLR Q R CLR Q R CLR Q R CLR Q R CLR Q R CLR Q Out(0) Out(1) Out(2) Out(3) Out(4) Out(5) Out(6) Out(7) Σχ Ολισθητής γραμμικής ανάδρασης (LFSR) για την παραγωγή μηνυμάτων Η γεννήτρια αυτή παίρνει μία αρχική κατάσταση στις εισόδους των flip-flop και στη συνέχεια παράγονται ψευδοτυχαίες ακολουθίες στις εξόδους Out(0)-Out(7), οι οποίες θα αποτελέσουν το μήνυμα που θα σταλεί. Για κάθε μήνυμα που παράγεται, η τιμή αρχικοποίησης του lfsr του κωδικοποιητή αποθηκεύεται σε ένα καταχωρητή έτσι ώστε να μπορέσει να χρησιμοποιηθεί από lfsr του δικτύου μεταθέσεων και στη συνέχεια από το lfsr που χρησιμοποιεί το σύστημα διόρθωσης λαθών ώστε να παραχθεί το αρχικό μήνυμα που εστάλη. Για να γίνει ο πολλαπλασιασμός ανάμεσα στο μήνυμα και σε κάθε στήληδιάνυσμα του G εκτελείται πολλαπλασιασμός στοιχείο προς στοιχείο των δύο διανυσμάτων και στη συνέχεια άθροιση των μερικών γινομένων. Εφόσον αναφερόμαστε σε δυαδικό κώδικα η πράξη του πολλαπλασιασμού για την εύρεση των μερικών γινομένων ισοδυναμεί με τη λογική πράξη and ανάμεσα στα στοιχεία που πρόκειται να πολλαπλασιαστούν, ενώ η πράξη της άθροισης ισοδυναμεί με τη λογική πράξη xor μεταξύ των μερικών γινομένων

61 Ο πίνακας G είναι εκ κατασκευής συστηματικός, κάτι που σημαίνει ότι ο πρώτος τετραγωνικός υποπίνακας του, διάστασης 1723x1723, είναι ο μοναδιαίος. Έτσι ο πολλαπλασιασμός του μηνύματος με τις πρώτες 1723 στήλες του πίνακα είναι περιττός αφού το αποτέλεσμα που θα προκύψει θα είναι το ίδιο το μήνυμα. Για να προκύψει λοιπόν η κωδική λέξη, αρκεί στις πρώτες 1723 θέσεις της να τοποθετηθεί το ίδιο το μήνυμα και για τον υπολογισμό των υπολοίπων θέσεων να εκτελεστεί ο πολλαπλασιασμός μεταξύ του μηνύματος και του τελευταίου τμήματος του G διάστασης 1723x325. Έτσι τα στοιχεία του G που είναι απαραίτητα βρίσκονται στις τελευταίες 325 στήλες του. Οι στήλες αυτές στην παρούσα σχεδίαση βρίσκονται αποθηκευμένες σε μία μνήμη rom. Ακόμα και τώρα που θα χρειαστούν συνολικά 325 πολλαπλασιασμοί διανυσμάτων (ο αρχικός αριθμός ήταν 2048), ο αριθμός των πράξεων που πρέπει να εκτελεστούν για να προκύψει η κωδική λέξη είναι πολύ μεγάλος. Πρόκειται για 1723 λογικές πράξεις and και 1722 xor για τον υπολογισμό καθενός από τα 325 στοιχεία της κωδικής λέξης που θέλουμε, κάτι που θα είναι πολύ χρονοβόρο αν όλες αυτές οι πράξεις εκτελεστούν σειριακά. Επίσης αν εκτελεστούν σε πλήρη παραλληλία θα έχουμε μεγάλη επιβάρυνση όσον αφορά την επιφάνεια της σχεδίασης καθώς θα απαιτηθούν 1723 πύλες and ενώ για τις πύλες xor αν θεωρήσουμε ότι θα χρησιμοποιηθούν μόνο πύλες 2 εισόδων θα χρειαστούμε περίπου πύλες. Ακόμα αν όλες οι πράξεις xor εκτελεστούν i1 2 i παράλληλα θα έχουμε κρίσιμο μονοπάτι (critical path) που θα αποτελείται από 12 πύλες. Για να παραλληλοποιηθεί, σε κάποιο βαθμό, η διαδικασία του πολλαπλασιασμού αρχικά, τα στοιχεία του μηνύματος οργανώνονται σε 32αδες. Επειδή ο 1723 (μήκος μηνύματος) είναι πρώτος αριθμός, ως μήνυμα χρησιμοποιήθηκε ένα διάνυσμα 1728 bit με τα 5 τελευταία bit να είναι 0. Έτσι το μήνυμα τώρα μπορεί να οργανωθεί σε 54 συνολικά 32άδες. Επεκτείνοντας ακόμα τα διανύσματα στήλης του G από 1723 bits σε 1728 (τοποθετώντας 5 μηδενικά στο τέλος κάθε στήλης) και οργανώνοντας τα επίσης σε 32άδες είναι δυνατό σε 54 συνολικά κύκλους ρολογιού (1728/32=54) να υπολογίζεται ένα από τα 325 στοιχεία της κωδικής λέξης. Για να συμβεί αυτό θα πρέπει σε κάθε κύκλο ρολογιού να είναι διαθέσιμη μία 32άδα ψηφίων από τη rom και η αντίστοιχη 32άδα ψηφίων του μηνύματος. Η βασική μονάδα που χρησιμοποιείται για τον πολλαπλασιασμό του μηνύματος με την κάθε στήλη του G είναι:

62 _i(0) mes_i(0) 33 MHz S SET Q _i(1) mes_i(1) R fsm_cntrl1 CLR Q 0 _i(2) mes_i(2) 33 MHz S SET Q _i(3) mes_i(3) R CLR Q fsm_cntrl1 S SET Q 33 MHz _i(4) mes_i(4) 33 MHz S SET Q R fsm_cntrl2 CLR Q _i(5) mes_i(5) R fsm_cntrl1 CLR Q 1 _i(6) mes_i(6) 33 MHz S SET Q _i(7) mes_i(7) R fsm_cntrl1 CLR Q _i(8) mes_i(8) 33 MHz S SET Q _i(9) mes_i(9) R fsm_cntrl1 CLR Q 2 _i(10) mes_i(10) _i(11) mes_i(11) 33 MHz fsm_cntrl1 S R..... SET CLR Q Q MHz 33 MHz S R fsm_cntrl2 S R fsm_cntrl2 SET CLR SET CLR Q Q Q Q c_i _i(24) mes_i(24) 33 MHz S SET Q _i(25) mes_i(25) R fsm_cntrl1 CLR Q 6 _i(26) mes_i(26) 33 MHz S SET Q _i(27) mes_i(27) R fsm_cntrl1 CLR Q 33 MHz S SET Q _i(28) mes_i(28) 33 MHz S SET Q R fsm_cntrl2 CLR Q _i(29) mes_i(29) R fsm_cntrl1 CLR Q 7 _i(30) mes_i(30) 33 MHz S SET Q _i(31) mes_i(31) R fsm_cntrl1 CLR Q Σχ Μονάδα πολλαπλασιασμού του κωδικοποιητή

63 Με ορίζεται μία τυχαία στήλη του πίνακα G και το i (i=0,1,,53) συμβολίζει τον αύξοντα αριθμό της 32αδας του και του mes που χρησιμοποιείται σε συγκεκριμένο κύκλο ρολογιού. Για την εύρεση του τελικού στοιχείου i της λέξης c χρειάζεται το παραπάνω κύκλωμα για 54 κύκλους ρολογιού να λαμβάνει εισόδους για τις διάφορες τιμές του i. Τα 32 bits-αποτέλεσμα που θα προκύψουν θα πρέπει να περάσουν από το δένδρο xor του σχήματος για τον υπολογισμό του τελικού bit της c. Για να μην έχουμε το critical path στο σημείο αυτό με τις 4 σειριακά συνδεδεμένες πύλες xor έχει χρησιμοποιηθεί ένα στάδιο pipeline, κάτι που έχει σα συνέπεια την αύξηση του χρόνου εξαγωγής τελικού αποτελέσματος από 54 σε 55 κύκλους ρολογιού. Ένας ακόμα τρόπος για να επιταχύνουμε τη διαδικασία του πολλαπλασιασμού είναι η οργάνωση της rom που περιέχει τις στήλες του πίνακα G σε 5 μικρότερες μνήμες. Κάθε μία από αυτές περιέχει 65 από τις στήλες του G. Έτσι σε κάθε κύκλο ρολογιού έχουμε διαθέσιμα δεδομένα από 5 στήλες του πίνακα G και έτσι στους 54 κύκλους που χρειαζόμασταν προηγουμένως για να υπολογίσουμε ένα στοιχείο της κωδικής λέξης τώρα θα υπολογίζονται 5 στοιχεία. Πλέον για το συνολικό υπολογισμό της κωδικής λέξης θα χρειαστούν 65 x 54 = 3510 κύκλοι. Η μέθοδος αυτή θα εισάγει μια επιβάρυνση στην επιφάνεια του κωδικοποιητή καθώς για την ταυτόχρονη εκτέλεση των πράξεων που αναφέραμε απαιτούνται 5 μονάδες σαν αυτές του προηγούμενου σχήματος (και όχι μία όπως στην περίπτωση που τα δεδομένα του G ήταν οργανωμένα σε μία rom). Το RTL διάγραμμα του κωδικοποιητή φαίνεται στη συνέχεια:

64 5.2.2 Μεταθέσεις στηλών Σχ RTL διάγραμμα κωδικοποιητή & δικτύου μεταθέσεων Μετά από τη διαδικασία της κωδικοποίησης ακολουθεί το στάδιο του πολλαπλασιασμού των στοιχείων της (c) με τον πίνακα P (σχέση 4.16). cnew c* P (5.2) Λόγω της δομής του P (μεταθετικός πίνακας), ο πολλαπλασιαμός του με οποιοδήποτε διάνυσμα (ή πίνακα) συνεπάγεται αλλαγή στις θέσεις των στηλών του. Έτσι

65 για να αποφύγουμε τη χρήση κάποιου πολύπλοκου πολλαπλασιαστή, ο παραπάνω πολλαπλασιασμός υλοποιήθηκε με τη χρήση ενός δικτύου μεταθέσεων. Για την υλοποίηση του δικτύου αυτού χρησιμοποιήθηκε μία μνήμη ram 2048 θέσεων, ένας πίνακας αντιστοίχισης (look-up table-lut) επίσης 2048 θέσεων και μία γενήτρια διευθύνσεων των 11 bit (counter). Η μνήμη ram χρησιμοποιείται για την αποθήκευση της προς μετάδοση κωδικής λέξης. Κατά τη διαδικασία των μεταθέσεων, ο LUT παίρνει σαν είσοδο τον αύξοντα αριθμό ενός bit της c (ο οποίος παράγεται από τον counter) και δίνει στην έξοδο του τη θέση που πρέπει να πάρει αυτό το bit στη c new. Η αρχιτεκτονική της μονάδας που χρησιμοποιήθηκε φαίνεται στο παρακάτω σχήμα: bit counter 33 MHz bit sequence num LUT... transmit write_addr read_addr1 read_addr2 c(i) RAM-cnew cnew(i) cnew(i+1) Σχ Δίκτυο μεταθέσεων Στην είσοδο c(i) έρχονται τα bits της κωδικής λέξης. Μόλις ξεκινήσει η διαδικασία των μεταθέσεων για τους πρώτους 1723 κύκλους (όσοι και τα information bits), η είσοδος c(i) λαμβάνεται από την έξοδο ενός lfsr όμοιου με αυτό του κωδικοποιητή το οποίο παράγει εκ νέου το μήνυμα που έχει μόλις κωδικοποιηθεί. Για τους υπόλοιπους 325 κύκλους (όσοι και τα parity bits) η είσοδος c(i) διαβάζεται από την έξοδο της μνήμης στην οποία είναι αποθηκευμένα τα parity bits. Τέλος, είσοδος transmit της μνήμης RAM (όπως θα περιγραφεί και στη συνέχεια) έρχεται από τον

66 αποκωδικοποιητή και είναι αυτή που δηλώνει τη λήξη της αποκωδικοποίησης της προηγούμενης λέξης επιτρέποντας έτσι να αρχίσει η ανάγνωση της επόμενης c new από τη μνήμη ram. Σε κάθε παλμό ρολογιού έρχεται ένα διαφορετικό bit της c και ο counter παράγει τον αύξοντα αριθμό του. Από τον LUT παράγεται η θέση στη c new που θα έχει το bit αυτό. Τέλος τα δυαδικά ψηφία της c new διαβάζονται ανά δύο. Ο λόγος που γίνεται αυτό είναι πως στο κανάλι τα δεδομένα εισέρχονται ανά δύο. Η διαδικασία αυτή των μεταθέσεων θα χρειαστεί 2048 κύκλους ρολογιού ώστε να γραφτούν όλα τα bits στις κατάλληλες θέσεις της c new και στη συνέχεια θα χρειαστούν ακόμα 1024 κύκλοι για να διαβαστεί η μνήμη αυτή (ανάγνωση της ram ανά δύο bit). Οι παραπάνω υπολογισμοί υπονοούν ότι για να εκτελεστεί η διαδικασία των μεταθέσεων το σύστημα θα επιβαρυνθεί με καθυστέρηση =3072 κύκλων. Κάτι τέτοιο δε θα ισχύσει καθώς η διαδικασία των μεταθέσεων εκτελείται παράλληλα με τη διαδικασία κωδικοποίησης και έτσι το σύστημα επιβαρύνεται μόνο από ένα μικρό αριθμό κύκλων ρολογιού. 5.3 Μετάδοση κωδικής λέξης Το κανάλι που θα χρησιμοποιηθεί για τη μετάδοση της c new βασίζεται στη λογική της πρόσθεσης θορύβου στη μεταδιδόμενη πληροφορία. Πιο αναλυτικά, με βάση αυτό το μοντέλο, στο σήμα s(t) που εκπέμπεται προστίθεται ένα άλλο σήμα n(t) που αντιπροσωπεύει το θόρυβο που προστίθεται. Το τελικό σήμα που εξέρχεται από το κανάλι είναι το r(t) όπως φαίνεται παρακάτω. s(t) r(t)=s(t)+n(t) n(t) Σχ Κανάλι προσθετικού θορύβου Το μαθηματικό μοντέλο του καναλιού που χρησιμοποιήθηκε λέγεται κανάλι Λευκού Γκαουσιανού Προσθετικού Θορύβου (Additive White Gaussian Noise-AWGN). Το AWGN σήμα από τη θεωρία γνωρίζουμε ότι μεταβάλλεται τυχαία στη διάρκεια του χρόνου, κάτι που σημαίνει ότι δεν μπορεί να υπολογιστεί η στιγμιαία τιμή του. Αυτό που υπολογίζεται είναι η πιθανότητα του σήματος να βρίσκεται σε συγκεκριμένο διάστημα τιμών [α,β]. Το αποτέλεσμα είναι σε τυχαία σήματα η αριθμητική αναφορά να γίνεται μέσω μόνο συναρτήσεων πυκνότητας πιθανότητας με παραμέτρους τη μέση τιμή του θορύβου (που στην περίπτωση του AWGN είναι ίση με μηδέν) και την τυπική του απόκλιση. Ο τυχαίος τρόπος που αθροίζεται ο θόρυβος στα δυαδικά ψηφία της κωδικής λέξης μας επιτρέπει να εκτελέσουμε τις μεταθέσεις στη λέξη c πριν αυτή μεταδοθεί μέσω

67 του καναλιού. Σε περίπτωση που υπήρχε εξάρτηση ανάμεσα στο θόρυβο που παράγει το κανάλι και στο αντίστοιχο bit που μεταδίδεται τη συγκεκριμένη χρονική στιγμή, θα έπρεπε η μετάδοση της c να γίνει κανονικά και στη συνέχεια να εκτελεστεί η διαδικασία των μεταθέσεων. Το κανάλι που χρησιμοποιήθηκε λαμβάνει σαν είσοδο 2 bits της c new σε κάθε παλμό ρολογιού. Επειδή έχει υλοποιηθεί με 8 στάδια pipeline, η έξοδος καθυστερεί της εισόδου 9 κύκλους ρολογιού. Κάθε έξοδος όμως του καναλιού αποτελείται από 6 bits. Πλέον εκτός της πρόθεσης θορύβου στο κανάλι, υπάρχει και ένας BPSK διαμορφωτής και ο αντίστοιχος αποδιαμορφωτής βάση του οποίου υπολογίζονται οι φυσικοί λογάριθμοι λόγου πιθανοτήτων (lo-likelihood ratios-llr). Ο λόγος που χρησιμοποιούνται περισσότερα bits για την αναπαράσταση δεδομένων στην έξοδο του καναλιού είναι ότι με πιο πολλά bits υπάρχει η δυνατότητα για υπολογισμό της αξιοπιστίας του λαμβανομένου σήματος. Τα δύο 6αμπτιτα δεδομένα εξόδου του καναλιού (LLR) αποτελούν τις δύο εισόδους του αποκωδικοποιητή. Τέλος όσον αφορά στη δομή του καναλιού, για την παραγωγή τυχαίων αριθμών κανονικής κατανομής χρησιμοποιήθηκε ο μετασχηματισμός Box-Muller και για την υλοποίηση του μηχανισμού μετασχηματισμού της ομοιόμορφης κατανομής ο αλγόριθμος ΜΤ Περισσότερες λεπτομέρειες πάνω στον τρόπο υλοποίησης του καναλιού δε θα μας απασχολήσουν στην παρούσα διπλωματική. 5.4 Αποκωδικοποιητής Αρχιτεκτονικές για LDPC αποκωδικοποιητές Ο αριθμός των επεξεργαστικών μονάδων (κόμβοι ελέγχου και μεταβλητής) που χρησιμοποιούνται σε κάθε αρχιτεκτονική καθορίζει το βαθμό παραλληλίας της και αποτελεί ρυθμιστικό παράγοντα του trade-off μεταξύ της απαιτούμενης επιφάνειας, της ταχύτητας αποκωδικοποίησης, της κατανάλωσης ενέργειας και της ευελιξίας της σχεδίασης. Αφενός, υπάρχουν οι πλήρως παράλληλες υλοποιήσεις που οδηγούν σε ταχύτερες αρχιτεκτονικές, με χαμηλότερη κατανάλωση ενέργειας αλλά απαιτούν περισσότερη επιφάνεια και μπορούν να χρησιμοποιηθούν μόνο από ένα συγκεκριμένο τύπο κώδικα. Από την άλλη μεριά υπάρχουν οι πλήρως σειριακές υλοποιήσεις με έναν κόμβο ελέγχου και έναν κόμβο μεταβλητής οι οποίες έχουν τη μέγιστη δυνατή ευελιξία και την ελάχιστη δυνατή επιφάνεια, αλλά έχουν και πολύ χαμηλότερη ταχύτητα αποκωδικοποίησης. Συνήθως, όπως και στην παρούσα διπλωματική, χρησιμοποιούνται μερικώς παράλληλες υλοποιήσεις, οι οποίες επιτυγχάνουν ικανοποιητική απόδοση και ευελιξία σε συνδυασμό με σχετικά χαμηλή απαιτούμενη επιφάνεια και κατανάλωση ενέργειας. Οι VLSI LDPC αποκωδικοποιητές μπορούν να χωριστούν σε δύο βασικές κατηγορίες: τους πλήρως παράλληλους (fully parallel) και τους βασισμένους σε μνήμη (memory-based ή hardware-sharin) αποκωδικοποιητές. Στους πλήρως παράλληλους αποκωδικοποιητές όλοι οι κόμβοι του διαγράμματος Tanner υλοποιούνται απ ευθείας σε υλικό. Αντίθετα στους hardware-sharin αποκωδικοποιητές ανταλλάσσονται μηνύματα μεταξύ διαμοιραζόμενων επεξεργαστικών μονάδων, μέσω κοινής μνήμης

68 Fully Parallel αρχιτεκτονικές Η πλήρως παράλληλη αρχιτεκτονική προκύπτει από ένα διμερές διάγραμμα Tanner όπου όλοι οι κόμβοι ελέγχου και μεταβλητής έχουν υλοποιηθεί ένας προς έναν και η μεταξύ τους διασύνδεση γίνεται με καλώδια. Από τη γραφική αναπαράσταση του LDPC κώδικα προκύπτει πως στις παράλληλες αρχιτεκτονικές υπάρχουν εξαρτήσεις (dependencies) μόνο μεταξύ κόμβων διαφορετικού είδους (variable και check). Σε ένα μόνο κύκλο ρολογιού υπολογίζονται όλα τα variable-to-check μηνύματα παράλληλα και στέλνονται στους check nodes ώστε στον επόμενο κύκλο να υπολογιστούν όλα τα checkto-variable μηνύματα, να σταλούν στους variable nodes κοκ. Μέσα σε δύο μόνο κύκλους ρολογιού έχει ολοκληρωθεί μία επανάληψη του messae-passin αλγορίθμου. Έτσι οι πλήρως παράλληλες αρχιτεκτονικές οδηγούν σε πολύ υψηλή απόδοση (μεγάλη ταχύτητα αποκωδικοποίησης- υψηλό throuhput). Επίσης η πολυπλοκότητα της μονάδας ελέγχου, που συγχρονίζει τη διαδικασία της αποκωδικοποίησης, είναι αρκετά χαμηλή καθώς η ανταλλαγή μηνυμάτων γίνεται μέσω καλωδίων. Έτσι δε χρειάζονται μνήμες για την αποθήκευση δεδομένων άρα αποφεύγονται πολύπλοκα συστήματα διευθυνσιοδότησης που «επιβαρύνουν» τη μονάδα ελέγχου (κάτι που δε συμβαίνει στις hardware-sharin αρχιτεκτονικές όπως θα δούμε στη συνέχεια). Το βασικό μειονέκτημα μιας πλήρως παράλληλης αρχιτεκτονικής είναι η μεγάλη επιφάνεια που καταλαμβάνει, αφού απαιτεί την υλοποίηση σε υλικό όλων των κόμβων ελέγχου και μεταβλητής. Στην περίπτωση μας για παράδειγμα, μια πλήρως παράλληλη αρχιτεκτονική θα απαιτούσε 2048 επεξεργαστικές μονάδες μεταβλητής και 384 επεξεργαστικές μονάδες ελέγχου, όπως καθορίζει ο πίνακας Η. Παρόλα αυτά, λόγω του πολύ μικρού παράγοντα δραστηριότητας, η κατανάλωση ενέργειας είναι εξαιρετικά μικρή. Η μεγαλύτερη πρόκληση κατά την υλοποίηση ενός παράλληλου αποκωδικοποιητή είναι οι διασυνδέσεις (routin) των λειτουργικών μονάδων. Για τις διασυνδέσεις απαιτείται ένας πολύ μεγάλος αριθμός καλωδίων κάτι που σημαίνει υψηλές απαιτήσεις σε επιφάνεια (area). Σε κάποιες περιπτώσεις οι απαιτήσεις των διασυνδέσεων σε area μπορεί να ξεπεράσουν ακόμα και το μισό της επιφάνειας του ολοκληρωμένου. Άλλο ένα αρνητικό της πλήρως παράλληλης αρχιτεκτονικής είναι η αδυναμία της να υποστηρίξει πολλαπλά μεγέθη block και rates κώδικα, οπότε έχει μικρότερη ευελιξία. Η πλήρως παράλληλη αρχιτεκτονική είναι κατάλληλη για εφαρμογές όπου η ταχύτητα είναι το κρίσιμο μέγεθος, ενώ οι απαιτήσεις για μικρή επιφάνεια δεν είναι καθοριστικής σημασίας. Hardware-Sharin αρχιτεκτονικές Η Hardware-Sharin αρχιτεκτονική, όπως φαίνεται στο ακόλουθο σχήμα, αποτελείται από ένα μικρό αριθμό variable και check nodes, μία μονάδα μνήμης, κατάλληλα οργανωμένη για την αποθήκευση των μηνυμάτων και την υλοποίηση των διασυνδέσεων του διμερούς γραφήματος Tanner, καθώς και μία μονάδα ελέγχου για το συγχρονισμό των απαραίτητων λειτουργιών. Το πλήθος των variable και check nodes που χρησιμοποιούνται από τις Hardware-Sharin αρχιτεκτονικές ποικίλει, αλλά πάντοτε είναι μικρότερο σε σχέση με το σύνολο των variable και check nodes που καθορίζει ο πίνακας ελέγχου ισοτιμίας Η, ο οποίος χαρακτηρίζει το συγκεκριμένο κώδικα LDPC

69 check node functional units control loic memory fabric variable node functional units Σχ Hardware-Sharin αρχιτεκτονική[6] Τα βασικά πλεονεκτήματα της Hardware-Sharin αρχιτεκτονικής είναι η μείωση της επιφάνειας του αποκωδικοποιητή (αφού υλοποιείται ένας μικρός αριθμός κόμβων ελέγχου κει μεταβλητής), καθώς και η δυνατότητα υποστήριξης πολλαπλών μεγεθών block και rate ενός κώδικα. Συνήθως, το μεγαλύτερο ποσοστό της επιφάνειας του αποκωδικοποιητή καταλαμβάνεται από τη μονάδα μνήμης και τη μονάδα ελέγχου. Από την άλλη μεριά, το βασικό μειονέκτημα αυτής της αρχιτεκτονικής είναι η μικρή ταχύτητα αποκωδικοποίησης. Αυτό συμβαίνει γιατί ο υπολογισμός των τιμών των μηνυμάτων κατά την αποκωδικοποίηση γίνεται κατά τμήματα. Δεν είναι δυνατόν να υπολογιστούν σε ένα κύκλο ρολογιού όλα τα μηνύματα, ανεξάρτητα αν πρόκειται για variable-to-check ή check-to-variable μηνύματα, αφού ο αριθμός των variable και check nodes είναι περιορισμένος. Για παράδειγμα, στην αρχιτεκτονική του σχήματος 5.1 τα variable-tocheck μηνύματα θα πρέπει να υπολογίζονται κατά τετράδες και να αποθηκεύονται κατάλληλα στη μνήμη, η οποία εδώ παίζει το ρόλο των διασυνδέσεων ανάμεσα στους variable και check nodes. Μόλις υπολογιστούν όλα τα variable-to-check μηνύματα ξεκινάει η λειτουργία των check nodes. Αφού στην περίπτωση μας είναι δύο, τα checkto-variable μηνύματα θα πρέπει να υπολογίζονται ανά δυάδες και να αποθηκεύονται στη μνήμη. Είναι προφανές ότι αυτή η διαδικασία είναι χρονοβόρα, αφού χρειάζονται πολλοί κύκλοι ρολογιού για την ολοκλήρωση μίας μόνο επανάληψης του messae-passin αλγορίθμου. Ακόμα ένα μειονέκτημα της Hardware-Sharin αρχιτεκτονικής είναι η μεγάλη πολυπλοκότητα της μονάδας ελέγχου. Η πολυπλοκότητα αυτή οφείλεται στο γεγονός ότι η μονάδα ελέγχου έχει την ευθύνη για το συντονισμό της διαδικασίας που μόλις περιγράφηκε, η οποία είναι αρκετά πολύπλοκη. Ακόμα η πολυπλοκότητα της μονάδας ελέγχου οφείλεται στη διαχείριση της μνήμης καθώς απαιτούνται πολύπλοκα συστήματα για τη διευθυνσιοδότηση. Τέλος οι μεγάλες απαιτήσεις σε memorybandwidth οδηγούν σε σημαντική κατανάλωση ενέργειας. Η Hardware-Sharin αρχιτεκτονική είναι κατάλληλη για εφαρμογές όπου το κρίσιμο μέγεθος είναι η επιφάνεια και δεν υπάρχουν μεγάλες απαιτήσεις σε ταχύτητα. Αντίθετα, σε εφαρμογές όπου το κρίσιμο μέγεθος είναι η ταχύτητα, η παράλληλη αρχιτεκτονική είναι η καταλληλότερη, όπως είδαμε και προηγούμενα

70 S1 S2 S1 S2 S1 S2 D D D Προτεινόμενη αρχιτεκτονική VLSI αποκωδικοποιητή για κώδικες LDPC βασισμένους σε Reed-Solomon με 2 σύμβολα πληροφορίας Στην παρούσα διπλωματική, για την υλοποίηση του αποκωδικοποιητή για τον (2048,1723) RS-LDPC κώδικα, χρησιμοποιήθηκε η hardware sharin αρχιτεκτονική και επομένως για την αποκωδικοποίηση χρησιμοποιήθηκε η layered decodin διαδικασία όπως αυτή περιγράφηκε στο κεφάλαιο 2. Στο επόμενο σχήμα (5.1) φαίνεται το ανώτερο επίπεδο (top level) της αρχιτεκτονικής του υλικού που υλοποιεί τον αλγόριθμο του layered decodin. l_channel... VPUs control unit variable processin units (VPUs) C ENB MUX 1 MUX 2 MUX z C ENB... C ENB permutation_net control unit permutation network... CPUs control unit check processin units (CPUs)... Σχ Αρχιτεκτονική αποκωδικοποιητή[6] Όπως φαίνεται και παραπάνω, πρόκειται για μία βασισμένη σε μνήμη αρχιτεκτονική διαμοιραζόμενων πόρων (hardware sharin). Το πλήθος των VPU και CPU ισούται με την τιμή του z και καθορίζει το βαθμό παραλληλίας της αρχιτεκτονικής μας. Έτσι το z αποτελεί το ρυθμιστικό παράγοντα για την απαιτούμενη επιφάνεια και την ταχύτητα αποκωδικοποίησης που επιτυγχάνεται για το συγκεκριμένο μέγεθος LDPC κώδικα. Η είσοδος του αποκωδικοποιητή συνδέεται με την έξοδο του καναλιού της προηγούμενης ενότητας και άρα είναι σε μορφή φυσικών λογαρίθμων λόγου πιθανοτήτων (LLR). Περισσότερες λεπτομέρειες για τον τρόπο υλοποίησης και λειτουργίας του permutation network (που καθορίζει τις διασυνδέσεις ανάμεσα σε variable και check nodes) καθώς και των VPUs και CPUs θα παρουσιαστούν στις επόμενες ενότητες

71 Στην περίπτωση του (2048,1723) RS-LDPC κώδικα που υλοποιούμε, λόγω του τρόπου κατασκευής του H είναι εμφανές ότι μας εξυπηρετεί να χρησιμοποιήσουμε z=64 όπως και θα συμβεί. Η επιλογή αυτή γίνεται καθώς όπως προκύπτει από τη θεωρία του κεφαλαίου 4, κάθε πίνακας Η που υλοποιεί έναν κώδικα RS-LDPC αποτελείται από γxρ permutation matrices, διάστασης p s xp s. Στην περίπτωσή μας έχουμε 6x32=192 permutation matrices διάστασης 64x64. Έτσι η υλοποίηση του πίνακα Η (πίνακας διασυνδέσεων ανάμεσα σε variable και check nodes) έγκειται στην υλοποίηση καθενός από τους 192 permutation matrices από τους οποίους αποτελείται και οι οποίοι εμπίπτουν σε μία από τις κατηγορίες που αναφέραμε στο κεφάλαιο Χρονοπρογραμματισμός αποκωδικοποίησης Ο αποκωδικοποιητής που υλοποιήθηκε για τον κώδικα αυτό είναι ένας μερικώς παράλληλος αποκωδικοποιητής βασισμένος στη διαδικασία της layered αποκωδικοποίησης. Ο αλγόριθμος που χρησιμοποιήθηκε για τη διαδικασία της αποκωδικοποίησης είναι ο αλγόριθμος Min-Sum όπως αυτός περιγράφηκε στο κεφάλαιο 2. Επίσης όπως αναφέρθηκε στο κεφάλαιο 2, στην ανάλυση που έγινε για το layered decodin, η επεξεργασία σύμφωνα με αυτό τον αλγόριθμο ξεκινά από ένα υποσύνολο κόμβων ελέγχου και τα μηνύματα που υπολογίζονται αποστέλλονται άμεσα στους αντίστοιχους κόμβους μεταβλητής που συνδέονται με τους κόμβους ελέγχου του τρέχοντος υποσυνόλου. Η ενημέρωση των τιμών των συγκεκριμένων κόμβων μεταβλητής γίνεται άμεσα, και άρα το επόμενο υποσύνολο κόμβων ελέγχου θα λάβει τις ενημερωμένες τιμές. Ας επανέλθουμε στον (2048,1723) RS-LDPC κώδικα. Όπως αναφέρεται στο προηγούμενο κεφάλαιο, ο (2048,1723) κώδικας RS-LDPC για την κατασκευή του βασίστηκε σε έναν κώδικα RS με πεδίο τιμών το GF(p s )=GF(2 6 ). Ο πίνακας ελέγχου ισοτιμίας (Η) που προκύπτει γι αυτόν τον κώδικα αποτελείται από γ=6 γραμμές (Α i πίνακες) όπου κάθε μία αποτελείται από ρ=32 μεταθετικούς υποπίνακες (h i,j ) διάστασης (p s x p s )=(64x64). Η δομή του Η περιγράφεται στο παρακάτω σχήμα: H h h... h h h... h h h... h 1,1 1,2 1,32 2,1 2,2 2,32 6,1 6,2 6,32 (5.3) Για το συγκεκριμένο κώδικα ο βαθμός παραλληλίας z καθορίζεται από τη δομή του πίνακα Η και είναι z=64 (διάσταση h i,j ). Για την κατασκευή λοιπόν του παραπάνω δικτύου για τη layered αποκωδικοποίηση χρησιμοποιήθηκαν 64 variable και 64 check nodes. Για την ολοκλήρωση μίας επανάληψης του αλγορίθμου απαιτούνται 6 υποεπαναλήψεις (όσο και το γ). Σε κάθε μία από αυτές θα γίνεται επεξεργασία μίας από τις 6 γραμμές υποπινάκων του H (των h i,1 μέχρι h i,32 ). Για παράδειγμα κατά την

72 επεξεργασία της πρώτης γραμμής θα σταλούν σε έναν κύκλο ρολογιού 64 variable-tocheck (v2c) μηνύματα. Για 32 κύκλους θα στέλνονται 64 v2c μηνύματα ανά κύκλο. Ο χρόνος που απαιτείται για να φτάσουν τα μηνύματα αυτά στους check nodes εξαρτάται από τον τρόπο υλοποίησης του permutation network (εκτενέστερη αναφορά σε αυτό θα γίνει στη συνέχεια), που στην περίπτωση μας είναι 2 κύκλοι ρολογιού. Όσο οι check nodes λαμβάνουν μηνύματα, ανανεώνουν τις τιμές των μνημών που χρησιμοποιούν με τις τρέχουσες τιμές (interim sum-check). Μόλις ολοκληρωθεί η αποστολή των variableto-check μηνυμάτων αρχίζει ο υπολογισμός και η αποστολή των check-to-variable μηνυμάτων (c2v) βάση των οποίων οι variable nodes με τη σειρά τους ανανεώνουν τις τιμές των μνημών που χρησιμοποιούν. Η παραπάνω διαδικασία αποτελεί μία υποεπενάληψη της layered αποκωδικοποίησης και περιγράφεται συνοπτικά στο επόμενο σχήμα: VPUs Send via CPUs permutation_net cycle 1 compute v2c Idle Idle cycle 2 compute v2c Send Idle cycle 3 compute v2c Send Idle cycle 4 compute v2c Send Idle cycle 5 compute v2c Send interim sum-check cycle 6-31 compute v2c Send interim sum-check cycle 32 compute v2c Send interim sum-check cycle 33 idle Send interim sum-check cycle 34 idle Idle interim sum-check cycle 35 idle Idle interim sum-check cycle 36 idle Idle interim sum-check cycle 37 idle Idle compute c2v cycle 38 idle Send compute c2v cycle 39 idle Send compute c2v cycle 40 idle Send compute c2v cycle 41 interim sum-var Send compute c2v cycle 42 interim sum-var Send compute c2v cycle 43 interim sum-var Send compute c2v cycle interim sum-var Send compute c2v cycle 68 interim sum-var Send compute c2v cycle 69 interim sum-var Send Idle cycle 70 interim sum-var Idle Idle cycle 71 interim sum-var Idle Idle cycle 72 interim sum-var Idle Idle cycle 73 check for early termination Idle Idle Πίνακας 5.1 Χρονοδρομολόγηση μίας υποεπενάληψης της layered αποκωδικοποίησης Για να ολοκληρωθεί λοιπόν μία επανάληψη του αλγορίθμου θα χρειαστούν 73x6=438 κύκλοι ρολογιού. Ο αριθμός των επαναλήψεων που θα εκτελέσει ο

73 αλγόριθμος μέχρι την εξαγωγή της λέξης-αποτελέσματος είναι στην επιλογή του σχεδιαστή. Στην περίπτωση μας ο αλγόριθμος έχει επιλεγεί να εκτελεί 15 επαναλήψεις. Τέλος σε περίπτωση που αλγόριθμος συγκλίνει σε λιγότερες των 15 επαναλήψεων, δηλαδή προκύψει έγκυρη κωδική λέξη σε λιγότερες επαναλήψεις η διαδικασία της αποκωδικοποίησης σταματάει και εξάγεται η λέξη αποτέλεσμα Αρχιτεκτονική Variable Processin Unit Στο σχήμα 5.9 αναπαρίσταται η αρχιτεκτονική μίας από τις variable processin units του LDPC αποκωδικοποιητή μας. Αν και στην περίπτωση μας έχει χρησιμοποιηθεί ο Min-Sum layered decodin αλγόριθμος, η αρχιτεκτονική της VPU δε θα αλλάξει σε περίπτωση που χρησιμοποιούνταν ο lo_sp layered decodin αλγόριθμος. Όπως φαίνεται στο σχήμα ένας variable node δέχεται δεδομένα από δύο διαφορετικές εισόδους την l_channel και τη V in. Ανάλογα με την τιμή της εισόδου mode το παραπάνω κύκλωμα μπορεί να έχει δύο διαφορετικούς τρόπους λειτουργίας. Όταν mode=0 το κύκλωμα λειτουργεί σα μνήμη αποθήκευσης δεδομένων. Όλα τα τμήματα από τα οποία αποτελείται είναι διαφανή εκτός από τη μνήμη RAM32x9 στην οποία αποθηκεύονται τα δεδομένα που έρχονται από το κανάλι σε μορφή LLR. Δεδομένου ότι σε κάθε κύκλο ρολογιού το κανάλι δίνει 2 LLR, σε κάθε κύκλο ρολογιού γίνονται και 2 εγγραφές σε δύο από τις μνήμες των variables, στις κατάλληλες θέσεις. Για να γραφτεί όλη η κωδική λέξη απαιτούνται 1024 κύκλοι. Στους κύκλους αυτούς αρχικοποιείται η RAM32x9 στις τιμές εισόδου, ενώ παράλληλα αρχικοποιούνται και οι θέσεις της RAM192x6 στην όλο μηδενικά τιμή. Για mode=1 o variable node αποτελεί μια μονάδα επεξεργασίας και ανταλλαγής δεδομένων με τον check node. Οι βασικές λειτουργίες ενός variable node για mode=1 είναι οι εξής: compute v2c: Για το συγκεκριμένο κόμβο μεταβλητής, αφαιρείται από το άθροισμα του εισερχόμενου LLR και των προηγούμενων c2v μηνυμάτων (το άθροισμα αυτό είναι αποθηκευμένο στη RAM32x9) το αντίστοιχο αποθηκευμένο στην RAM192x6 c2v μήνυμα (ανάκληση και αφαίρεση-fetch and subtract). idle: Αδρανές. interim sum var: Αποθηκεύεται το εισερχόμενο c2v μήνυμα στην κατάλληλη θέση της RAM192x6, συναθροίζεται στο αντίστοιχο της RAM32x9 και το αποτέλεσμα αποθηκεύεται ξανά (στη RAM32x9)

74 Vin 6 bits Re_init rin bits r192_in RAM192x6 6 bits rout x Variable node 9 bits radd_out 9 bits add1_in RAM32x9 9 bits radd_in add_out v2c: Sv-c2vm-1 sum: v2c+c2vm mode l_channel 6 bits 1 bit V_hard 9 bits 6 bits saturation 7 bits 7 bits Re_out to_sent Vout Σχ Αρχιτεκτονική variable processin unit[5]

75 Η μνήμη RAM192x6 είναι μία κατανεμημένη μνήμη στην οποία αποθηκεύονται τα c2v μηνύματα που λαμβάνει κάθε φορά ο variable node. Εφόσον κατά την επεξεργασία μίας γραμμής πινάκων του Η (h i,1,,h i,32 ), ο variable node λαμβάνει 32 μηνύματα c2v και υπάρχουν 6 τέτοιες γραμμές, το μέγεθος της μνήμης που περιέχει τα c2v μηνύματα προκύπτει ως 6x(32x6)=192x6 (όπου 6 είναι το πλήθος των bits που χρησιμοποιούνται για την αναπαράσταση των ανταλλασσόμενων μηνυμάτων). Συνεπώς μπορούν να υποστηριχτούν κώδικες με μέγιστο βαθμό για τους variable nodes d u =6. Η μνήμη RAM32x9 είναι επίσης μία κατανεμημένη μνήμη, 32 όμως θέσεων. Σε αυτή αποθηκεύονται οι ενημερωμένες εκτιμήσεις για το αντίστοιχο bit της κωδικής λέξης. Στη θέση k (k=0,1,,23) της RAM32x9 της i-οστης VPU (i=0,1,,z) αποθηκεύεται η πληροφορία για το δυαδικό ψηφίο zxk+i. Στη μνήμη αυτή βρίσκονται αποθηκευμένα τα v2c μηνύματα τα οποία στην επόμενη επανάληψη του αλγορίθμου θα σταλούν στους check nodes. Παρά το γεγονός ότι τα δεδομένα εισόδου του variable node (LLR και c2v μηνύματα) έχουν μέγεθος 6 bits βλέπουμε ότι η μνήμη αυτή αποτελείται από 32 θέσεις των 9 bits. Όπως αναφέρθηκε τα δεδομένα που αποθηκεύονται στη RAM32x9 είναι αποτέλεσμα άθροισης. Αυξάνοντας λοιπόν τον αριθμό των δυαδικών ψηφίων για την αναπαράσταση του αποτελέσματος πετυχαίνουμε μεγαλύτερη ακρίβεια στο αποτέλεσμα και αποφεύγονται οι περιπτώσεις υπερχείλισης. Για να προκύψει το τελικό v2c μήνυμα που θα σταλεί στους check nodes εκτελείται μία στρογγυλοποίηση του 9-μπιτου αριθμού (saturation) στην πιο κοντινή 6-αμπιτη τιμή του, η οποία και αποστέλλεται. Κάτι που παρατηρείται ακόμα στο παραπάνω σχήμα είναι ότι ενώ τα δεδομένα εισόδου είναι 6-αμπιτα, η έξοδος V out έχει μέγεθος 7 bits. Αυτό συμβαίνει γιατί πέρα των soft μηνυμάτων (6 bits) που στέλνει ο variable στον check node, στέλνει ακόμα ένα επιπλέον bit-εκτίμηση για την τιμή του συγκεκριμένου συμβόλου. Έτσι στο τέλος κάθε επανάληψης του αλγορίθμου λαμβάνεται μία hard decision βάση του αυτού του bit. Όπως θα δούμε και στη συνέχεια, ο check node αποφασίζει βάση αυτού του bit για το αν η κωδική λέξη που προκύπτει μετά από κάθε επανάληψη του αλγορίθμου είναι έγκυρη ή όχι και ενημερώνει το σύστημα για τη συνέχιση ή μη της διαδικασίας αποκωδικοποίησης Αρχιτεκτονική Check Processin Unit Στο επόμενο σχήμα φαίνεται η αρχιτεκτονική μίας από τις check processin units του LDPC αποκωδικοποιητή μας για τον Min-Sum layered decodin αλγόριθμο

76 Check node (Min_Sum) Cin 7bits 1bit 6bits Re_init RAM_32 re_out 1bit r_sin1 conv_sin 1bit conv_out 6bits R_sin R_conv1 R_conv2 abs xor_out1 xor_out2 conv_in 5bits rin R_M1 r_m1_out > CPUs_fsm 1bit c1 en_t en1 T_ff T_c R_M2 r_m2_out > c2 1bit 33 MHz CPUs_fsm en2 Re_out 6bits cout count 5bits 5bits sin_in 5bits sin 6bits sin_out en_t re_who 5bits 5bits 4bits 4bits 3bits 3bits 2bits 2bits 1bit 1bit Q_out T_c sel_mux Σχ Αρχιτεκτονική check processin unit[5] Οι λειτουργίες μίας επεξεργαστικής μονάδας ελέγχου είναι οι εξής: idle: Αδρανές. interim sum check: Αποθηκεύεται το πρόσημο του εισερχόμενο v2c μηνύματος στην κατάλληλη θέση της RAM_32. Επίσης γίνεται σύγκριση του μέτρου του με τα μέτρα προηγούμενων μηνυμάτων και αποθηκεύεται η ελάχιστη τιμή. compute c2v: Από τις δύο ελάχιστες τιμές που είναι αποθηκευμένες στην επεξεργαστική μονάδα, επιλέγεται η μικρότερη. Αυτή αποστέλλεται σε όλους τους variable nodes, εκτός

77 από την περίπτωση του variable ο οποίος έστειλε τη μικρότερη, στον οποίο αποστέλλεται η δεύτερη αποθηκευμένη τιμή. Μαζί με την τιμή μέτρου που αποστέλλεται γίνεται και ο απαραίτητος υπολογισμός του προσήμου. Η μνήμη RAM_32 που αναφέρθηκε παραπάνω είναι επίσης μια κατανεμημένη μνήμη 32 θέσεων, η οποία δύναται να υποστηρίξει κώδικες με μέγιστο βαθμό για κόμβους ελέγχου d c =32. Στη μνήμη αυτή αποθηκεύεται η τιμή του προσήμου κάθε εισερχόμενου μηνύματος και οι τιμές αυτές χρησιμοποιούνται μετά για τον υπολογισμό των προσήμων των c2v μηνυμάτων. Οι καταχωρητές R_M1 και R_M2 χρησιμοποιούνται για την αποθήκευση της ελάχιστης και της αμέσως μεγαλύτερης τιμής μέτρου των εισερχόμενων v2c μηνυμάτων. Η εύρεση των τιμών αυτών γίνεται μέσω των δύο συγκριτών. Η συνδυαστική λογική (πύλες AND) μετά από τους R_M1, R_M2 χρησιμοποιείται για τον υπολογισμό κάποιων σημάτων ελέγχου. Το τμήμα της συνδυαστικής λογικής που περιέχεται στο κόκκινο περίγραμμα χρησιμοποιείται για να ανιχνεύσει την περίπτωση όπου το υπολογισθέν c2v μήνυμα θα σταλεί στον variable node που είχε αποστείλει την ελάχιστη τιμή από αυτές των R_M1, R_M2. Στην περίπτωση αυτή στο συγκεκριμένο variable node αποστέλλεται η μεγαλύτερη από τις τιμές. Τέλος το τμήμα της συνδυαστικής λογικής του πράσινου περιγράμματος είναι αυτό που λαμβάνει τη hard decision του συστήματος. Το τμήμα αυτό λαμβάνει σαν είσοδο το 1 bit-εκτίμηση που στέλνει κάθε φορά ο variable node, και ελέγχει για κάθε κωδική λέξη αν ισχύει η συνθήκη c H T =0 (σχέση 1.5). Στην περίπτωση αυτή η έξοδος conv_out ισούται με μηδέν. Έτσι στο τέλος κάθε επανάληψης του αλγορίθμου αν conv_out=0 η κωδική λέξη που έχει προκύψει είναι έγκυρη και η διαδικασία της αποκωδικοποίησης μπορεί να τερματιστεί. Στη συνέχεια παρουσιάζονται ενδεικτικά τα RTL διαγράμματα για τους variable και check nodes

78 Σχ RTL διάγραμμα για variable processin unit

79 Σχ RTL διάγραμμα για check processin unit

80 5.4.6 Αρχιτεκτονική Δικτύου Διασύνδεσης (Permutation Network) Όπως αναφέρθηκε σε προηγούμενες ενότητες ένας κώδικας RS-LDPC χαρακτηρίζεται πλήρως από τον πίνακα ελέγχου ισοτιμίας Η. Η δομή και οι ιδιότητες του Η χαρακτηρίζουν την κατηγορία των κωδίκων RS-LDPC και τους διακρίνουν από τους LDPC. Ο πίνακας Η ορίζει τις διασυνδέσεις ανάμεσα στους variable και check nodes. Έτσι θα έχει επίσης συγκεκριμένες ιδιότητες που χαρακτηρίζουν τους κώδικες RS- LDPC. Οι σχεδιάσεις που δόθηκαν παραπάνω για τους variable και check nodes μπορούν με μικρές τροποποιήσεις (αλλαγές σε μεγέθη μνημών ανάλογα με το μήκος του κώδικα) να χρησιμοποιηθούν από οποιουδήποτε τύπου LPDC κώδικα που υλοποιεί τη layered αποκωδικοποίηση και χρησιμοποιεί τον Min-Sum αλγόριθμο. Η αρχιτεκτονική που δίνεται στη συνέχεια για το δίκτυο διασύνδεσης είναι χαρακτηριστική για έναν κώδικα RS-LDPC και μπορεί με μικρές τροποποιήσεις να αποτελέσει δίκτυο διασύνδεσης για οποιουδήποτε μήκους κώδικα RS-LDPC. Όπως αναφέραμε, το δίκτυο διασύνδεσης (permutation network) το οποίο παρεμβάλλεται μεταξύ των επεξεργαστικών μονάδων ελέγχου και μεταβλητής καθορίζεται από τη δομή του πίνακα ελέγχου ισοτιμίας Η. Στην περίπτωση που εξετάζουμε ο Η έχει προκύψει με βάση τις σχέσεις (4.3) και (4.4) και όπως αναφέρθηκε στο προηγούμενο κεφάλαιο αποτελείται από 2 τύπους permutation matrices. Στην πρώτη κατηγορία ανήκει η πρώτη γραμμή των permutation matrices του Η (h 1,1,,h 1,32 ). Αν εξαιρεθεί η πρώτη γραμμή και στήλη του καθενός (για τους λόγους που περιγράφηκαν στο προηγούμενο κεφάλαιο), προκύπτουν ολισθημένοι μοναδιαίοι πίνακες διάστασης 63x63, οι οποίοι μπορούν να υλοποιηθούν με τη βοήθεια ενός Loarithmic Barrel Shifter (λογαριθμικός βαρελοειδής ολισθητής). Η δομή τους είναι τέτοια που μας οδηγεί σε αυτή την επιλογή. Στη δεύτερη κατηγορία ανήκουν οι υπόλοιπες 5 γραμμές των permutation matrices του Η. Πρόκειται για τους 32x5=160 πίνακες h i,1,,h i,32 (με i=2,,6) διάστασης 64x64. Η κατασκευή τους στηρίζεται στην εκτέλεση ενός συνόλου αλγεβρικών πράξεων στους (h 1,1,,h 1,32 ) που ορίζονται από την (4.4). Για την υλοποίηση των διασυνδέσεων που ορίζει το συγκεκριμένο τμήμα του Η, θα χρησιμοποιηθεί τόσο το κύκλωμα του Loarithmic Barrel Shifter όσο και κάποια επιπλέον κυκλώματα που θα υλοποιούν την (4.4) και θα παρουσιαστούν στη συνέχεια. 1 η Κατηγορία πινάκων (h 1,1,,h 1,32 ) Μέθοδος υλοποίησης Loarithmic Barrel Shifter Το κύκλωμα του Loarithmic Barrel Shifter για ένα 4x4 permutation network φαίνεται στο παρακάτω σχήμα:

81 In_0 0 1 Out_0 In_1 Out_1 In_2 Out_2 In_3 Out_3 shift(0) shift(1) Σχ Loarithmic Barrel Shifter[6] Η είσοδος του συγκεκριμένου κυκλώματος είναι ένα 4αμπιτο διάνυσμα. Η έξοδος του είναι μία ολισθημένη εκδοχή της εισόδου, με την ποσότητα της ολίσθησης να καθορίζεται από την είσοδο shift (συντελεστής ολίσθησης). Το παραπάνω κύκλωμα αποτελείται από δύο αυτόνομους βαρελοειδείς ολισθητές (στάδια) που υλοποιούνται από ένα δίκτυο πολυπλεκτών. Ο αριθμός των συνολικών σταδίων που απαιτούνται εξαρτάται από τον αριθμό των εισόδων/εξόδων. Έτσι αν έχουμε Ν εισόδους τότε ο συνολικός αριθμός των σταδίων πολυπλεκτών ισούται με lo 2 N. Ο πολυπλέκτης i, i(0,..., N 1), του σταδίου k, k(0,..., lo 2 N 1), δέχεται σαν εισόδους τις εξόδους των πολυπλεκτών i και mod(i+s,n) του αμέσως προηγούμενου σταδίου, όπου s=2 k. Ο αριθμός των εισόδων Ν, για την περίπτωση υλοποίησης ενός LDPC κώδικα ταυτίζεται, με το συνολικό αριθμό μηνυμάτων v2c (ή c2v) που επιθυμούμε να στείλουμε σε κάθε κύκλο ρολογιού. Αν για παράδειγμα χρησιμοποιήσουμε Ν=6 και shift= (010) 2 =2 10 τα απαιτούμενα στάδια πολυπλεκτών είναι lo 2 N =3 ενώ το δεξιά κυκλικά ολισθημένο μητρώο που προκύπτει είναι το ακόλουθο:

82 είσοδοι Σε αυτό η είσοδος 0 συνδέεται με την έξοδο 4, η είσοδος 1 με την έξοδο 5 κοκ. Το permutation network που προκύπτει μπορεί να χρησιμοποιηθεί για την υλοποίηση της επιθυμητής συνδεσμολογίας μεταξύ variable (είσοδοι) και check nodes (έξοδοι) με βάση όσα αναφέρθηκαν παραπάνω παρατηρούμε στο επόμενο σχήμα πως επιτυγχάνεται η επιθυμητή διασύνδεση. In_0 0 Στάδιο 0 Στάδιο 1 Στάδιο 2 1 Out_0 In_1 Out_1 In_2 Out_2 In_3 Out_3 In_4 0 1 Out_4 In_5 Out_5 shift(0) shift(1) shift(2) Σχ Loarithmic Barrel Shifter για Ν=6 και shift=2[6]

83 Στην περίπτωση των (h 1,1,,h 1,32 ) που θέλουμε να υλοποιήσουμε, έχουμε 32 ολισθημένους μοναδιαίους πίνακες διάστασης 63x63 (Ν=63), άρα θα χρειαστούμε έναν barrel shifter με lo 2 63 =6 στάδια πολυπλεκτών. Ο τρόπος κατασκευής όλων αυτών των h 1,1,,h 1,32 πινάκων (σχέση 4.3) ορίζει ότι η πρώτη τους γραμμή θα έχει πάντα την τιμή 1 στη θέση 0 (δηλαδή στην πρώτη στήλη). Αυτό σημαίνει ότι κάθε φορά που πρέπει να σταλεί ένα v2c μήνυμα (ή ένα c2v) από τον variable node 0 (ή από τον check node 0), το μήνυμα θα προορίζεται πάντα για τον check node 0 (ή αντίστοιχα για τον variable node 0). Έτσι η διασύνδεση μεταξύ των variable node 0 και check node 0 στην περίπτωση των (h 1,1,,h 1,32 ) γίνεται απ ευθείας. Τα υπόλοιπα v2c μηνύματα θα σταλούν στους check nodes που ορίζουν οι 63x63 πίνακες που απομένουν αν από τους h 1,1,,h 1,32. εξαιρεθεί η πρώτη γραμμή και στήλη τους. Πρόκειται για 63x63 ολισθημένους μοναδιαίους πίνακες άρα και οι διασυνδέσεις που ορίζουν μεταξύ των κόμβων μπορούν να υλοποιηθούν με τους barrel shifters που περιγράφηκαν, λαμβάνοντας τις κατάλληλες τιμές εισόδου shift. Για την υλοποίηση λοιπόν των πινάκων αυτών χρησιμοποιήθηκε ένας βαρελεοειδής ολισθητής 63 εισόδων και μία μνήμη rom_sh η οποία περιέχει τις κατάλληλες τιμές για την είσοδο shift του ολισθητή. (1) s Ας θυμηθούμε τη σχέση Cb { ( r1 r2) : GF( p )}, βάση της οποίας κατασκευάζονται οι permutation matrices της κατηγορίας αυτής. Για καθεμία από τις 32 συνιστώσες τους διανύσματος r1+r2, πολλαπλασιάζοντας τη με όλες τις τιμές του β, προκύπτει και ένας από τους πίνακες h 1,1,,h 1,32. Για έναν οποιονδήποτε πίνακα, ο πολλαπλασιασμός του r1+r2 με όλες τις τιμές του β κατά αύξουσα σειρά υποδεικνύει την ολίσθηση κατά μία θέση της κάθε νέας γραμμής σε σχέση με την προηγούμενη. Ακόμα η k-οστή συνιστώσα του r1+r2 (μειωμένη κατά 1 για να προκύψει ο ζητούμενος 63x63 πίνακας) δίνει το συντελεστή ολίσθησης του h 1,k πίνακα. Έτσι αποθηκεύοντας σε μία μνήμη rom όλες τις τιμές του διανύσματος r1+r2-1, θα προκύψει η rom_sh που αναφέραμε προηγούμενα, με τις τιμές ολίσθησης που χρειάζονται για την υλοποίηση των h 1,1,,h 1,32. Οι διασυνδέσεις για τα αντίστοιχα c2v μηνύματα ορίζονται πάλι μέσω των παραπάνω barrel shifters, αλλά με διαφορετικές τιμές shift σε σχέση με πριν. Έτσι αν για το παραπάνω παράδειγμα για την αποστολή των v2c μηνυμάτων χρησιμοποιήθηκε shift= (010) 2 =2 10, για την αποστολή των αντίστοιχων c2v μηνυμάτων θα χρειαστεί shift =Νshift=6 10 -(010) 2 =(110) 2 -(010) 2 =(100) 2 =4 10. Για την περίπτωση μας που χρησιμοποιήθηκαν 6 στάδια θα ισχύει shift ' 6310 shift (11111) 2 shift 1 shift. Δηλαδή αν για την αποστολή των v2c μηνυμάτων χρησιμοποιείται μία τιμή shift, για την αποστολή των αντίστοιχων c2v μηνυμάτων μπορεί να χρησιμοποιηθεί η συμπληρωματική τιμή ως προς 2 της shift. Τέλος επειδή τα 6 στάδια πολυπλεκτών που χρησιμοποιήσαμε οδηγούν στην εμφάνιση κρίσιμου μονοπατιού στο δίκτυο διασύνδεσης, εφαρμόστηκε η τεχνική pipeline, για να σπάσει το μονοπάτι αυτό στα δύο. Έτσι τοποθετήθηκε ένα στρώμα

84 καταχωρητών ανάμεσα στο τρίτο και στο τέταρτο στάδιο πολυπλεκτών, με αποτέλεσμα τη μείωση περίπου στο μισό της καθυστέρησης στο δίκτυο διασύνδεσης και μια μικρή αύξηση στο απαιτούμενο υλικό. 2 η Κατηγορία πινάκων (h i,1,,h i,32, i=2,,6) Μέθοδος υλοποίησης Όπως αναφέρθηκε, στην κατηγορία αυτή ανήκουν οι υπόλοιπες 5 γραμμές των permutation matrices του Η. Πρόκειται για τους 5x32=160 πίνακες h i,1,,h i,32 (με i=2,,6) διάστασης 64x64. Η κατασκευή τους στηρίζεται στην εκτέλεση ενός συνόλου αλγεβρικών πράξεων στους πίνακες της προηγούμενης κατηγορίας (h 1,1,,h 1,32 ). Οι πράξεις αυτές ορίζονται από τη σχέση (4.4). Γι αυτό, για την υλοποίηση των διασυνδέσεων που ορίζει το συγκεκριμένο τμήμα του Η, θα χρησιμοποιηθεί συνδυασμός του Loarithmic Barrel Shifter που υλοποιεί τους h 1,1,,h 1,32 και κάποιων επιπλέον κυκλωμάτων που υλοποιούν τις αλγεβρικές πράξεις της (4.4). Η κατασκευή των (h i,1,,h i,32 ), i=2,,6 βασίζεται στην (4.4) σχέση όπου ( i) i2 s Cb { a r1 ( r1 r2) : GF( p )}. Ο δεύτερος όρος του αθροίσματος ( ( r1 r2) ) χρησιμοποιείται για την κατασκευή των (h 1,1,,h 1,32 ) πινάκων και υλοποιείται με τη βοήθεια των loarithmic barrel shifters, όπως αναλύσαμε στην προηγούμενη ενότητα. i Αυτό που απομένει να βρεθεί είναι μια μέθοδος για την υλοποίηση του όρου a 2 r1 καθώς και για την άθροιση μεταξύ των δύο αυτών όρων. Πρέπει να σημειωθεί επίσης ότι όλες οι πράξεις των παραπάνω σχέσεων έχουν οριστεί στο πεδίο GF(p s )=GF(2 6 ) στο οποίο εργαζόμαστε. Στην περίπτωσή μας το διάνυσμα r1 αποτελείται από 32 συνιστώσες στο πεδίο GF(2 6 i ) άρα και το διάνυσμα-γινόμενο a 2 r1 θα αποτελείται από 32 στοιχεία. Το γεγονός ότι το i έχει ένα μικρό σύνολο τιμών, από 2 έως 6, μας επιτρέπει την αποθήκευση των i συντελεστών των διανυσμάτων a 2 r1 σε μία μνήμη rom. Για τις 5 τιμές του i προκύπτουν 5 διαφορετικά διανύσματα 32 στοιχείων προς αποθήκευση. Για το σκοπό αυτό χρησιμοποιήθηκε μία rom 5x32= 160 θέσεων. Κάθε μία από τις θέσεις αυτές είναι των 6 bits και αποτελεί την πολυωνυμική αναπαράσταση στο GF(2 6 ) μίας συνιστώσας i του a 2 r1. Στην παρούσα υλοποίηση η απ ευθείας αποθήκευση του γινομένου μας επιτρέπει να αποφύγουμε πολύπλοκα κυκλώματα πολλαπλασιασμού στο πεδίο GF(2 6 ) i (που χρειάζονται κάθε φορά για τον υπολογισμό του διανύσματος a 2 r1). Σε περίπτωση που ο αριθμός i ήταν κατά πολύ μεγαλύτερος η μέθοδος της απ ευθείας αποθήκευσης των αποτελεσμάτων δε θα βόλευε καθώς θα οδηγούσε σε μνήμη πολύ μεγάλων διαστάσεων. i Έχοντας λοιπόν τα όλα τα στοιχεία του διανύσματος a 2 r1, καθώς και το διάνυσμα β(r1+r2) (που υλοποιήθηκε στην προηγούμενη ενότητα) δε μένει παρά να εκτελεστεί μεταξύ τους η πράξη της πρόσθεσης στο πεδίο GF(2 6 ), ώστε να προκύψουν οι υπόλοιπες γραμμές του πίνακα Η και ακολούθως οι διασυνδέσεις που αυτές ορίζουν. Όπως αναφέρθηκε στο κεφάλαιο 3, η πράξη της πρόσθεσης ανάμεσα σε δύο στοιχεία, α i και α j του πεδίου GF(2 m ) πραγματοποιείται με δύο τρόπους. Είτε με τη modulo-2 πρόσθεση των συντελεστών του ίδιου βαθμού της πολυωνυμικής αναπαράστασης των

85 δύο στοιχείων, είτε χρησιμοποιώντας τα στοιχεία βάσης της πολυωνυμικής τους αναπαράστασης και εκτελώντας τη λογική πράξη xor μεταξύ των αντίστοιχων στοιχείων. Με βάση τα παραπάνω λοιπόν έστω ότι θέλουμε να υλοποιήσουμε το permutation network για τον h 2,1, και έστω ότι έχουμε έναν variable node x ο οποίος πρέπει να στείλει ένα v2c μήνυμα. Αν με βάση τον πίνακα h 1,1 το μήνυμα του variable node x πήγαινε σε έναν check (έστω y), τώρα ο check node που θα λάβει το αντίστοιχο μήνυμα θα είναι ο y+offset. Οι τιμές y, offset είναι στοιχεία του GF(2 6 ), ενώ το offset ισοδυναμεί με την i τιμή του γινομένου a 2 r1, η οποία είναι αποθηκευμένη στη μνήμη rom που αναφέραμε. Για την αποστολή των αντίστοιχων c2v μηνυμάτων αυτό που αλλάζει είναι η τιμή του offset καθώς και η είσοδος ολίσθησης του barrel shifter που παίρνει την τιμή shift, όπως αναφέραμε. Στην περίπτωση μας χρησιμοποιήθηκε η δεύτερη μέθοδος άθροισης, η οποία εκτελεί λογικές πράξεις xor μεταξύ των αντίστοιχων στοιχείων βάσης των δύο όρων του i αθροίσματος. Για την τιμή του offset ( a 2 r1) έχουμε στη rom που αναφέρθηκε την 6άμπιτη πολυωνυμική της αναπαράσταση. Το y αναπαριστά τον αύξοντα αριθμό του κάθε check node, οπότε η πολυωνυμική αναπαράσταση θα είναι το στοιχείο εκείνο του GF(2 6 ) που βρίσκεται στη θέση y. Έχοντας τις 6άμπιτες αναπαραστάσεις των όρων που θέλουμε να αθροίσουμε στο GF(2 6 ), μπορεί να υπολογιστεί το άθροισμα εκτελώντας τη λογική πράξη xor ανάμεσα στα αντίστοιχα bits των δύο αναπαραστάσεων. Το αποτέλεσμα που προκύπτει αποτελεί επίσης μία 6άμπιτη πολυωνυμική αναπαράσταση ενός στοιχείου του GF(2 6 ). Τέλος για να προκύψει ο αριθμός του κόμβου στον οποίο θα σταλεί το μήνυμα, χρησιμοποιείται ακόμα ένα πίνακας αντιστοίχισης (f-1rom) ο οποίος αντιστοιχίζει κάθε στοιχείο του GF(2 6 ) με την αντίστοιχη δυαδική τιμή του. Στο παραπάνω σχήμα φαίνονται συνοπτικά τα επιπλέον κυκλώματα λογικής που χρησιμοποιούνται σε συνδυασμό με τον barrel shifter για την υλοποίηση του permutation network

86 S R S R S R S R S R S R SET SET SET SET SET SET Q Q Q Q Q Q Q Q Q Q Q Q in_0 in_1 in_2 in_3 in_62 in_63... barrel shifter rom_sh f-1rom xor_net f(0)= " sh_out0 sh_out1 sh_out2 sh_out3... sh_out62 sh_out63 rom xor_net f(1)= " mux_0 CLR CLR CLR CLR mux_1 mux_2 mux_3 mux_62 mux_63 CLR CLR net fsm_sel inputs outputs addresses... f-1rom f-1rom... rom xor_net f(63)= " out_0 out_1 out_2 out_3 out_62 out_63 Σχ Permutation network rom Στο παραπάνω σχήμα φαίνεται η διαδικασία που περιγράψαμε προηγούμενα. Το σχήμα αυτό υλοποιεί όλον τον πίνακα Η, με τον barrel shifter να υλοποιεί τους h 1,1,,h 1,32 και τον barrel shifter σε συνδυασμό με το δίκτυο (net) να υλοποιούν τους υπόλοιπους h i,1,,h i,32, i=2,,6. Τα xor δίκτυα λαμβάνοντας σε κάθε ρολόι τη σωστή i τιμή offset ( a 2 r1) από μία μνήμη rom, παράγουν τις κατάλληλες διευθύνσεις στις οποίες θα σταλούν οι αντίστοιχες είσοδοι του net. Οι τελικοί πολυπλέκτες λαμβάνοντας το κατάλληλο σήμα ελέγχου (fsm_sel) επιλέγουν ως κύριες εξόδους είτε τις εξόδους του barrel shifter (αν αναφερόμαστε στους h 1,1,,h 1,32 ), είτε τις εξόδους του net (αν αναφερόμαστε στους h i,1,,h i,32 ). Τέλος μεταξύ του barrel shifter και του δικτύου των πολυπλεκτών έχει τοποθετηθεί ένα στρώμα καταχωρητών έτσι ώστε οι είσοδοι των πολυπλεκτών να είναι σωστά συγχρονισμένες (το net χρειάζεται ένα κύκλο ρολογιού για να εξάγει τα δεδομένα με τη σωστή σειρά, ενώ παίρνει σαν είσοδο την ήδη έγκυρη έξοδο του barrel shifter) Μεταθέσεις στηλών για την αποκωδικοποιημένη λέξη Όπως αναφέρθηκε σε προηγούμενη ενότητα για να εκτελεστεί σωστά η διαδικασία της αποκωδικοποίησης με τους δεδομένους πίνακες Η και G που χρησιμοποιήσαμε, εφαρμόστηκε μία τεχνική μετάθεσης στηλών στην κωδικοποιημένη

87 λέξη πριν αυτή μεταδοθεί μέσω του καναλιού. Για να μπορέσει να γίνει, λοιπόν, σύγκριση ανάμεσα στο αρχικό μήνυμα πληροφορίας που έπρεπε να μεταδοθεί και στην αποκωδικοποιημένη λέξη, θα πρέπει σε αυτή να εφαρμοστεί μία ανάλογη διαδικασία μετάθεσης στηλών. Έτσι προκύπτει και πάλι μία λέξη που έχει τα bit πληροφορίας στις πρώτες 1723 θέσεις και μάλιστα καθένα στη θέση που είχε στο αρχικό μήνυμα. Μετά από τη διαδικασία αυτή είναι δυνατό να συγκριθούν οι δύο λέξεις και να προκύψει ο αριθμός των λαθών που δημιουργήθηκαν με την προσθήκη του θορύβου. Ο τρόπος που γίνονται οι μεταθέσεις είναι ανάλογος με αυτόν που περιγράφεται στο σχήμα (5.5) με τη μόνη διαφορά ότι έχουν αλλάξει τα δεδομένα του πίνακα αντιστοίχισης (LUT). Μετά και από αυτό το βήμα η αποκωδικοποιημένη λέξη βρίσκεται αποθηκευμένη σε μία μνήμη ram με τα bits πληροφορίας να βρίσκονται στις αρχικές τους θέσεις. 5.5 Σύστημα μέτρησης λαθών Για τη μέτρηση των λαθών που προέκυψαν σε ένα αρχικό μήνυμα που μεταδόθηκε μέσω ενός καναλιού με θόρυβο χρησιμοποιήθηκε το ακόλουθο σύστημα: en lfsr 8 en error num mux +1 counter decoded word busy Σχ Σύστημα μέτρησης λαθών Η αποκωδικοποιημένη λέξη βρίσκεται αποθηκευμένη στη μνήμη decoded word. Το αρχικό μήνυμα παράγεται από ένα ίδιο lfsr με αυτό που χρησιμοποιήθηκε και για την κωδικοποίηση. Το lfsr είναι των 8 bit και ξεκινάει από την ίδια αρχική κατάσταση με αυτή που ξεκίνησε και το αρχικό. Η είσοδος en γίνεται 1 ανά 8 ρολόγια γιατί τα bit του μηνύματος που παράγονται από το lfsr συγκρίνονται ένα προς ένα με αυτά του αποτελέσματος. Κάθε φορά που τα bit που συγκρίνονται είναι διαφορετικά, η έξοδος της πύλης xor γίνεται 1 με αποτέλεσμα να αυξάνεται η τιμή των λαθών που έχει μετρήσει ο αθροιστής. Τέλος η μνήμη decoded word όπως παρατηρούμε έχει μία επιπλέον έξοδο σε σχέση με μία «κλασική» μνήμη ram, την έξοδο busy. Όταν το σήμα εξόδου αυτό λαμβάνει την τιμή 1 σημαίνει ότι εκτελείται κάποια διαδικασία σύγκρισης δεδομένων (ανάγνωσης) της μνήμης και έτσι απαγορεύεται μέχρι το πέρας αυτής να γίνει εγγραφή κάποιας άλλης λέξης. Το σήμα αυτό θα χρησιμοποιηθεί όπως θα δούμε στη συνέχεια για το συγχρονισμό των διαδικασιών του συστήματος

88 Κεφάλαιο 6 Χρονισμοί συστήματος 6.1 Εισαγωγή Αφού παρουσιάσαμε στο προηγούμενο κεφάλαιο την αρχιτεκτονική του data path του συστήματος, στο κεφάλαιο αυτό θα γίνει αναφορά στο σύνολο των fsm που χρησιμοποιεί το σύστημα. Συγκεκριμένα θα γίνει μια περιγραφή των ακριβών χρονισμών των fsm, καθώς και το πως αυτές αλληλεπιδρούν με το κάθε τμήμα του συστήματος. Για όλες τις fsm που θα ακολουθήσουν, για να γίνει η αρχικοποίηση τους (δηλαδή η μετάβαση στην κατάσταση state 0) χρησιμοποιείται ένα σήμα εισόδου reset στην τιμή 0. Έτσι για reset=0 αρχικοποιείται το σύστημα, ενώ για reset=1 έχουμε μετάβαση στην κανονική του λειτουργία. Η είσοδος αυτή για κάθε διαφορετικό fsm μπορεί είτε να ταυτίζεται με το βασικό παλμό reset που στέλνεται στο συνολικό σύστημα για την έναρξη της λειτουργίας του, είτε να παράγεται εσωτερικά από κάποιο άλλο fsm, όπως θα περιγραφεί στη συνέχεια. 6.2 Κωδικοποιητής Το διάγραμμα καταστάσεων που χρησιμοποιείται για την fsm του κωδικοποιητή του συστήματος (χωρίς το δίκτυο μεταθέσεων) φαίνεται στο σχήμα 6.1. Η fsm του κωδικοποιητή αρχικοποιείται με το σήμα reset που δίνεται αρχικά στο σύστημα κατά την έναρξη της λειτουργίας του. Η αρχικοποίηση γίνεται μία μόνο φορά με αυτόν τον τρόπο και στη συνέχεια έρχεται εσωτερικά από την κατάσταση state 4 (όπως φαίνεται και στο σχήμα). Επίσης το reset αυτό χρησιμοποιείται για να αρχικοποιήσει και το lfsr που χρησιμοποιείται για την παραγωγή των τυχαίων μηνυμάτων εισόδου. Έτσι το lfsr ξεκινάει από μία γνωστή αρχική κατάσταση και παράγει σε κάθε κύκλο ρολογιού νέες ακολουθίες εισόδου. Η fsm του κωδικοποιητή αποτελείται από 6 συνολικά καταστάσεις οι οποίες έχουν τις ακόλουθες λειτουργίες:

89 state 0 en=1 state 1 wait till messae written read 1 st 32 messaeenerator state 2 reset reisters multiply state 3 state 4 multiplications ended wait till codeword read state 5 enable permutation network read next 32 messae-enerator state 6 multiply o on Σχ Fsm κωδικοποιητή state 0: Κατάσταση αρχικοποίησης-αναμονής του κωδικοποιητή. Ο κωδικοποιητής περιμένει την τιμή του σήματος en να γίνει 1 ώστε να ξεκινήσει η διαδικασία της κωδικοποίησης. Το en έρχεται εσωτερικά, όπως θα δούμε στη συνέχεια, από την fsm που συγχρονίζει τον κωδικοποιητή με τον αποκωδικοποιητή. Μόλις η τιμή του en γίνει 1 μεταβαίνουμε στην κατάσταση state 1. state 1: Εγγραφή του συνολικού μηνύματος εισόδου κατά 32άδες (για τους λόγους που περιγράφηκαν στο προηγούμενο κεφάλαιο) και έναρξη διαδικασίας πολλαπλασιασμού με την ανάγνωση των πρώτων 32 bits του μηνύματος και του γεννήτορα πίνακα G. Το σύστημα μένει σε αυτή την κατάσταση για 54 κύκλους ρολογιού, ώστε να γραφτεί το συνολικό μήνυμα. state 2: Κατάσταση αρχικοποίησης κυκλωμάτων. Συγκεκριμένα, όταν ξεκινήσει ο υπολογισμός ενός parity bit, είτε κατά την έναρξη της διαδικασίας κωδικοποίησης είτε αφού τελειώσει ο υπολογισμός ενός προηγούμενου parity bit, οι καταχωρητές του σχήματος 5.2 αρχικοποιούνται στο 0 ώστε να μην μπερδευτούν οι υπολογισμοί δύο διαφορετικών στοιχείων. Στην κατάσταση αυτή το σύστημα μένει για 1 κύκλο ρολογιού

90 state 3: Εξαγωγή αποτελέσματος πολλαπλασιασμού των διαθέσιμων δεδομένων. Στην κατάσταση αυτή ελέγχεται αν έχουν υπολογιστεί όλα τα parity bits, οπότε και μεταβαίνουμε στη state 4, ή εάν έχουν υπολογιστεί αρκετά parity bits ώστε να μας επιτρέπεται να ξεκινήσει η διαδικασία των μεταθέσεων (μετάβαση στη state 5) που περιγράφηκαν στο προηγούμενο κεφάλαιο. Η διαδικασία των μεταθέσεων θα διαρκέσει 2048 κύκλους. Για να μην αθροιστεί ο χρόνος αυτός εξ ολοκλήρου στο χρόνο κωδικοποίησης του μηνύματος, παραλληλοποιούμε σε κάποιο βαθμό τις δύο διαδικασίες. Έτσι οι μεταθέσεις των information bits που είναι εξ αρχής γνωστά γίνονται παράλληλα με τη διαδικασία του πολλαπλασιασμού, ενώ όταν χρειαστεί να μετατεθούν τα parity bits της κωδικής λέξης είμαστε σίγουροι ότι αυτά έχουν υπολογιστεί. state 4: Ο υπολογισμός των parity bits έχει ολοκληρωθεί. Αναμένεται η ολοκλήρωση της διαδικασίας μεταθέσεων και η ανάγνωση του τελικού codeword (ώστε να γίνει μετάβαση στην state 0 και να είναι δυνατή η κωδικοποίηση ενός νέου μηνύματος. state 5: Στην κατάσταση αυτή στέλνεται σήμα ώστε να αρχίσει η διαδικασία των μεταθέσεων ενώ γίνεται ανάγνωση των επόμενων 32άμπιτων δεδομένων ώστε να συνεχιστεί και η διαδικασία του πολλαπλασιασμού. state 6: Η διαδικασία των μεταθέσεων έχει ξεκινήσει. Παράλληλα συνεχίζονται οι πολλαπλασιασμοί και γίνεται επιστροφή στη state 3 για να συνεχιστεί η διαδικασία, όπως γινόταν μέχρι τώρα. 6.3 Μεταθέσεις στηλών Το διάγραμμα καταστάσεων για την fsm του δικτύου για τις μεταθέσεις των στηλών της κωδικής λέξης είναι:

91 state 0 en=1 state 1 rst_lfsr=1 en_lfsr=1 state 2 en_lfsr=0 write 32clks transmission ended state 3 en_lfsr=1 codeword written state 4 wait to transmit codeword Σχ Fsm για το κύκλωμα μεταθέσεων στηλών Για τις καταστάσεις του παραπάνω fsm έχουμε: state 0: Κατάσταση αρχικοποίησης. Στην κατάσταση αυτή, το σύστημα μεταθέσεων αναμένει σήμα en από τον κωδικοποιητή ώστε να ξεκινήσει η διαδικασία. state 1: Εγγραφή των bits της κωδικής λέξης στις κατάλληλες θέσεις. Για να γίνει αυτό χρησιμοποιείται ένα lfsr όμοιο με του κωδικοποιητή για την παραγωγή των bits του μηνύματος. Για 1723 ρολόγια η είσοδος της μνήμης του codeword δίνεται από την έξοδο του lfsr, ενώ για τα επόμενα 325 δίνεται από τη μνήμη του κωδικοποιητή που έχουν αποθηκευτεί τα parity bits. Έτσι στην κατάσταση αυτή έχουμε en_lfsr=1, ώστε να παραχθούν τα πρώτα 32 bits του μηνύματος και μένουμε για έναν κύκλο ρολογιού. state 2: Στην κατάσταση αυτή έχουμε en_lfsr=0 για 32 κύκλους ρολογιού, ώστε να μπορέσουν να γραφτούν στις κατάλληλες θέσεις τα προηγούμενα 32 bits του μηνύματος. state 3: Στέλνεται ένας παλμός en_lfsr ώστε να προκύψει η επόμενη 32άδα δεδομένων, και γίνεται επιστροφή στη state 2 ώστε να γίνει η σωστή τοποθέτηση τους. Η διαδικασία αυτή επαναλαμβάνεται 54 φορές για να προκύψει ολόκληρο το μήνυμα. Στη συνέχεια ως είσοδος του codeword λαμβάνονται τα parity bits που προέκυψαν από τον κωδικοποιητή. Η διαδικασία συνεχίζεται για άλλα 325 ρολόγια, ώστε να μεταβούμε στην state 4. state 4: Στην κατάσταση αυτή αναμένουμε να έλθει το σήμα transmit=1 από τον αποκωδικοποιητή, ώστε να μας επιτρέψει να αρχίσουμε την ανάγνωση και αποστολή της

92 τελικής κωδικής λέξης ανά 2 bit. Το σήμα αυτό απαιτείται έτσι ώστε να αποφύγουμε να αλλοιώσουμε το αποτέλεσμα της αποκωδικοποίησης της προηγούμενης κωδικής λέξης στέλνοντας καινούρια δεδομένα τα οποία θα γραφτούν στους κόμβους μεταβλητής. Από τη στιγμή που το σήμα transmit θα πάρει την τιμή 1, η διαδικασία της αποστολής θα διαρκέσει 1024 κύκλους ρολογιού και μετά την ολοκλήρωσή της επανερχόμαστε στη state Αποκωδικοποιητής Στη συνέχεια θα ασχοληθούμε με τα διαγράμματα καταστάσεων των fsm που χρησιμοποιήθηκαν στον αποκωδικοποιητή. Variable nodes: Το διάγραμμα καταστάσεων της fsm που ελέγχει το σύνολο των επεξεργαστικών μονάδων μεταβλητής φαίνεται στο σχήμα 6.3. Όπως προαναφέρθηκε κάθε κόμβος μεταβλητής έχει 2 τρόπους (mode) λειτουργίας. Μπορεί να χρησιμοποιείται είτε για την αποθήκευση της κωδικής λέξης (mode=0) που λαμβάνει από το κανάλι στη RAM32, είτε για την ανταλλαγή μηνυμάτων με τους κόμβους ελέγχου κατά τη διαδικασία της αποκωδικοποίησης (mode=1). Οι καταστάσεις state 0 - state 3 του σχήματος αναφέρονται στον πρώτο τρόπο λειτουργίας ενώ οι υπόλοιπες στο δεύτερο. Το σύνολο των λειτουργιών που εκτελούνται σε κάθε κατάσταση περιγράφεται στη συνέχεια

93 state 0 datain_ready=1 state 1 write codeword iniatlize_ram 192 chane_line=1 write codeword iniatlize_ram 192 state 2 state 3 datain_ready=0 mode=0 mode=1 state 4 reset system compute-send v2c state 5 state 6 idle-send v2c state 13 read result state 7 reset counters busy=0 state 8 interim state 12 busy=1 conv=1 state 9 initialize sinals conv=0 state 11 iter_ended=0 state 10 check iterations num check for early terminationcompute-send v2c iter_ended=1 Σχ Fsm για variable processin unit state 0: Κατάσταση αρχικοποίησης, στην οποία οι κόμβοι μεταβλητής αναμένουν να έρθουν από το κανάλι έγκυρα δεδομένα. Στην κατάσταση αυτή μεταβαίνουμε κάθε φορά πριν ξεκινήσει η αποστολή μιας κωδικής λέξης, όπου γίνεται αρχικοποίηση του αποκωδικοποιητή

94 state 1: Εδώ έχουν αρχίσει να έρχονται έγκυρα δεδομένα από το κανάλι. Το κανάλι έχει δύο εξόδους που σημαίνει ότι στον ίδιο κύκλο ρολογιού θα γίνεται εγγραφή στη RAM32 δύο κόμβων ελέγχου. Γι αυτό κατά την υλοποίηση μας έχουμε κοινό σήμα εγγραφής (wen) ανά δύο κόμβους μεταβλητής (στις συγκεκριμένες μνήμες). Οπότε εδώ γίνεται ενεργοποίηση του wen των πρώτων δύο κόμβων ελέγχου, άρα εγγραφή των 2 πρώτων LLRs και μετάβαση στη state 2. state 2: Ενεργοποίηση του wen των επόμενων δύο κόμβων μεταβλητής στους οποίους θα γίνει εγγραφή, εγγραφή των επόμενων LLRs και επιστροφή στη state 1. Και στις δύο παραπάνω καταστάσεις αρχικά γράφουμε στη θέση 0 όλων των RAM32. Μετά από 32 ρολόγια όπου θα έχουν γραφτεί οι θέσεις 0 όλων των RAM32 από οποιαδήποτε από τις state 1, state 2 μεταβαίνουμε στη state 3, όπου ενεργοποιείται ο counter διεύθυνσης της RAM32 ώστε να δείξει στην επόμενη θέση της (θέση 1). Στη συνέχεια μεταβαίνουμε πάλι στη state 1 ώστε να συνεχιστεί με όμοιο τρόπο η εγγραφή των LLRs σε όλες τις θέσεις 1. Η διαδικασία αυτή επαναλαμβάνεται 32 φορές ώστε να γίνουν συνολικά 32x32x2 εγγραφές (και στις 32 συνολικά θέσεις κάθε μνήμης). Επίσης στο σημείο αυτό είναι ενεργοποιημένος και ο counter διεύθυνσης των RAM192, ενώ στην είσοδο τους εφαρμόζεται το διάνυσμα «000000». Έτσι παράλληλα με την εγγραφή των LLR αρχικοποιείται και η RAM192 ώστε να μη μπερδευτούν τα δεδομένα αποκωδικοποίησης της συγκεκριμένης λέξης με αυτά προηγούμενων. Όταν έχει γραφτεί όλη η κωδική λέξη και σταματήσουν να έρχονται δεδομένα από το κανάλι, ξεκινάει η κυρίως φάση της αποκωδικοποίησης με τη μετάβαση στη state 4 (mode=1). state 3: Στέλνεται ένας παλμός στην είσοδο ενεργοποίησης του counter διεύθυνσης της RAM32, ώστε να συνεχιστούν οι εγγραφές στις επόμενες θέσεις της RAM32, και γίνεται επιστροφή στη state 1 (mode=0). Σε περίπτωση που έχει ολοκληρωθεί η εγγραφή των LLR μεταβαίνουμε στη state 4 (mode=1). state 4: Αρχικοποίηση κυκλωμάτων ώστε να ξεκινήσει η διαδικασία της αποκωδικοποίησης και μετάβαση στη state 5. state 5: Υπολογισμός-αποστολή v2c μηνυμάτων (32 κύκλοι ρολογιού) και μετάβαση στη state 6. state 6: Τερματισμός αποστολής v2c μηνυμάτων και αναμονή (6 κύκλοι) για τα επόμενα c2v μηνύματα. Μόλις έρθει το σήμα για έγκυρα c2v μηνύματα γίνεται μετάβαση στη state 7. state 7: Μεταβατική κατάσταση (1 κύκλος) όπου αρχικοποιείται ο counter διεύθυνσης της RAM192, ώστε τα εισερχόμενα c2v μηνύματα να αποθηκευτούν στις κατάλληλες θέσεις. Εδώ το σύστημα μένει για έναν κύκλο ρολογιού και στη συνέχεια μεταβαίνει στη state 8. state 8: Εκτελείται η λειτουργία interim sum-var που περιγράφηκε στο προηγούμενο κεφάλαιο (32 κύκλοι) και στη συνέχεια μεταβαίνουμε στην state

95 state 9: Μεταβατική κατάσταση (1 κύκλος) στην οποία λαμβάνουν τιμές κάποια σήματα (σήματα επιλογής πολυπλεκτών σχήματος 5.8, καθώς και αρχικοποίηση των counter διεύθυνσης των μνημών) ώστε να μπορέσει να αρχίσει η λειτουργία του υπολογισμού των νέων v2c μηνυμάτων. state 10: Έλεγχος αριθμού επαναλήψεων του αλγορίθμου (1 κύκλος) στο τέλος κάθε επανάληψης. Σε περίπτωση ολοκλήρωσης του επιθυμητού αριθμού επαναλήψεων γίνεται μετάβαση στη state 12. Διαφορετικά μεταβαίνουμε στη state 11. state 11: Έλεγχος συνθήκης για πρόωρο τερματισμό (early termination) του αλγορίθμου στο τέλος κάθε επανάληψης. Με βάση το σήμα εισόδου conv που λαμβάνεται από τους κόμβους ελέγχου, διαπιστώνεται αν έχει προκύψει έγκυρη κωδική λέξη. Στην περίπτωση αυτή δεν εκτελείται ο συνολικός αριθμός επαναλήψεων του αλγορίθμου που έχει οριστεί και μεταβαίνουμε στη state 12. Διαφορετικά η εκτέλεση συνεχίζεται κανονικά με τη λειτουργία υπολογισμού-αποστολής των νέων v2c μηνυμάτων (32 κύκλοι) και τη μετάβαση στη state 6. Η παραπάνω διαδικασία state 6 state 11 θα εκτελεστεί τουλάχιστον 6 φορές στην περίπτωση μας (όσες και οι γραμμές μεταθετικών πινάκων του πίνακα Η), ώστε να ολοκληρωθεί μία επανάληψη του αλγορίθμου. Η διάρκεια κάθε υποεπανάληψης του αλγορίθμου λοιπόν διαρκεί =73 κύκλους ρολογιού και άρα μία ολοκληρωμένη επανάληψη θα διαρκέσει 73*6=438 κύκλους. state 12: Κατάσταση αναμονής στην οποία ελέγχεται (μέσω του σήματος busy) αν στην εξωτερική μνήμη ram που θα αποθηκευτεί η λέξη αποτέλεσμα εκτελείται ακόμα κάποια διαδικασία ανάγνωσης προηγούμενης λέξης. Αν συμβαίνει κάτι τέτοιο (busy=1) το σύστημα αναμένει να ολοκληρωθεί η ανάγνωση της προηγούμενης λέξης (busy=0) ώστε να ξεκινήσει η εγγραφή της επόμενης και να μεταβεί στη state 13. state 13: Κατάσταση στην οποία μεταβαίνουμε μετά από την ολοκλήρωση της αποκωδικοποίησης, όπου γίνεται ανάγνωση της αποκωδικοποιημένης λέξης που προέκυψε από τις μνήμες RAM32 των κόμβων μεταβλητής και εγγραφή της στις κατάλληλες θέσεις μίας εξωτερικής ram. Η ανάγνωση αυτή διαρκεί 2048 κύκλους και η λέξη που έχει προκύψει ακολουθεί πάλι μια φάση μεταθέσεων, ώστε τα bits πληροφορίας να επανέλθουν στις αρχικές τους θέσεις και να μπορέσουν να συγκριθούν με τα bits του αρχικού μηνύματος πριν την κωδικοποίηση. Σε έναν κύκλο ρολογιού διαβάζεται μία θέση από κάθε RAM32 των 64 κόμβων μεταβλητής. Έτσι έχουμε διαθέσιμα 64 bits της αποκωδικοποιημένης λέξης τα οποία χρειάζονται 64 κύκλους για να τοποθετηθούν στις τελικές τους θέσεις. Έτσι ο μετρητής που παράγει τις διευθύνσεις ανάγνωσης ενεργοποιείται κάθε 64 κύκλους ρολογιού και η ανάγνωση από τις εξόδους V_hard των variable nodes γίνεται επίσης κάθε 64 κύκλους. Μετά από την ολοκλήρωση της ανάγνωσης επανερχόμαστε στη state 0, όπου αναμένται η επόμενη προς αποκωδικοποίηση λέξη. Check nodes: Το διάγραμμα καταστάσεων της fsm για το σύνολο των επεξεργαστικών μονάδων ελέγχου είναι:

96 state 0 datain_ready=1 state 1 reset reisters state 2 interim state 3 compute-send c2v state 4 send c2v state 5 wait v2c Σχ Fsm για check processin unit Η συγκεκριμένη fsm είναι πολύ απλούστερη σε σχέση με την προηγούμενη. Η αρχικοποίηση των κόμβων ελέγχου γίνεται με το σήμα reset (στην τιμή 0), το οποίο στέλνεται από μία κεντρική fsm (όπως και στους variable nodes) που χρησιμοποιεί ο αποκωδικοποιητής όπως θα δούμε στη συνέχεια. Για τη συγκεκριμένη fsm η λειτουργία κάθε κατάστασης είναι: state 0: Κατάσταση αναμονής των check nodes. Οι κόμβοι ελέγχου περιμένουν να έρθει κάποιο σήμα από τους variable nodes ότι έχουν έγκυρα v2c μηνύματα για αποστολή και να γίνει μετάβαση στη state 1. state 1: Αρχικοποίηση των καταχωρητών και των σημάτων ελέγχου σε κατάλληλες τιμές όταν ξεκινάει μια νέα επανάληψη (είτε υποεπανάληψη) του αλγορίθμου (1 κύκλος). Για παράδειγμα, μόλις ολοκληρωθεί η επεξεργασία των h 1,1,,h 1,32 και πρέπει να συνεχίσουμε στους h 2,1,,h 2,32, στην κατάσταση αυτή γίνεται αρχικοποίηση των καταχωρητών των κόμβων. state 2: Εκτελείται η βασική λειτουργία interim sum-check που περιγράφηκε στην προηγούμενη ενότητα (32 κύκλοι) μέχρι να σταματήσουν να έρχονται έγκυρα v2c μηνύματα

97 state 3: Διαμόρφωση σημάτων ελέγχου ώστε να ξεκινήσουν οι λειτουργίες compute c2v και send c2v στους variable nodes (1 κύκλος). state 4: Εδώ ολοκληρώνεται η αποστολή των c2v μηνυμάτων (32 κύκλοι). state 5: Κατάσταση αναμονής των επόμενων έγκυρων v2c μηνυμάτων ώστε να συνεχιστεί η παραπάνω διαδικασία με τη μετάβαση στη state 1. Για την ολοκλήρωση μίας επανάληψης του αλγορίθμου η παραπάνω διαδικασία, όπως και στους variable nodes, θα πρέπει να εκτελεστεί 6 φορές. Permutation network: Η fsm που χρησιμοποιείται για το συγχρονισμό του permutation network του συστήματος είναι η fsm του σχήματος 6.5. Το σήμα αρχικοποίησης (reset=0) και για τη συγκεκριμένη fsm έρχεται από την κεντρική fsm που χρησιμοποιεί ο από αποκωδικοποιητής. Η αρχικοποίηση όμως της συγκεκριμένης fsm (μετάβαση στη state 0) μπορεί να συμβεί και εσωτερικά από τη state 7 μετά από την ολοκλήρωση της εκτέλεσης μίας επανάληψης του αλγορίθμού. Για τις καταστάσεις της συγκεκριμένης fsm έχουμε: state 0: Στην κατάσταση αυτή το δίκτυο βρίσκεται κάθε φορά που πρόκειται να ξεκινήσει μία επανάληψη του αλγορίθμου. Μόλις έρθει το σήμα datain_ready=1 για έγκυρα δεδομένα εισόδου μεταβαίνει στη state 1. state 1: Εφόσον στην κατάσταση αυτή μεταβαίνουμε κατά την έναρξη μίας νέας επανάληψης, τα δεδομένα που πρόκειται να αποσταλούν είναι v2c μηνύματα. Στο σημείο αυτό γίνεται en=1 για τον barrel shifter και σε κάθε κύκλο ρολογιού διαβάζεται η πρώτη τιμή της εισόδου shift από τη μνήμη rom_sh. Τα v2c μηνύματα που θα σταλούν αντιστοιχούν στις συνδέσεις που ορίζουν οι πίνακες h 1,1,,h 1,32 και η είσοδος fsm_sel του συνόλου των πολυπλεκτών του σχήματος 5.13 είναι στην τιμή 0. Στην κατάσταση αυτή το σύστημα μένει για 32 κύκλους ώστε να σταλούν και τα 32 v2c μηνύματα κάθε variable node. state 2: Κατάσταση αναμονής ώσπου να ετοιμαστούν τα αντίστοιχα c2v μηνύματα από τα v2c που εστάλησαν προηγουμένως. Επίσης συμβαίνει αρχικοποίηση του counter διεύθυνσης της rom_sh και επιλογή της εξόδου shift. state 3: Αποστολή των πρώτων c2v μηνυμάτων της διαδικασίας (που αντιστοιχούν πάλι στους h 1,1,,h 1,32 ), με en_shifter=1 και τιμή ολίσθησης shift (32 κύκλοι). Η είσοδος fsm_sel πολυπλεκτών του 5.13 συνεχίζει να είναι στην τιμή 0. state 4: Κατάσταση αναμονής ώσπου να ετοιμαστούν τώρα τα επόμενα v2c μηνύματα. Στην κατάσταση αυτή γίνεται και αρχικοποίηση των counters που χρησιμοποιούνται για τη διευθυνσιοδότηση των rom, rom_sh (ώστε στην επόμενη κατάσταση να διαβαστούν τα σωστά δεδομένα από αυτές) και επιλογή της εξόδου shift της rom_sh

98 state 5: Τα v2c μηνύματα που θα σταλούν τώρα αντιστοιχούν στις διασυνδέσεις που ορίζουν οι πίνακες h 2,1,,h 2,32. Η είσοδος fsm_sel του συνόλου των πολυπλεκτών του σχήματος 5.13 είναι στην τιμή 1 και ξαναδιαβάζονται, όμοια με πριν οι τιμές της εισόδου i shift από τη rom_sh. Επίσης διαβάζεται από τη rom η κατάλληλη τιμή του όρου a 2 r1 ώστε να προκύψουν οι σωστές διασυνδέσεις (με βάση το 5.13) μεταξύ variable και check nodes. Στην κατάσταση αυτή το σύστημα μένει για 32 κύκλους ώστε να σταλούν όλα τα v2c μηνύματα. state 6: Κατάσταση αναμονής ώσπου να ετοιμαστούν τα αντίστοιχα c2v μηνύματα από τα v2c που εστάλησαν προηγουμένως. Επίσης συμβαίνει αρχικοποίηση του counter διεύθυνσης της rom_sh και επιλογή της εξόδου shift, ενώ αρχικοποιείται και ο counter διεύθυνσης της rom για να επιλεγεί η σωστή τιμή που θα χρησιμοποιηθεί για το δίκτυο αποστολής των c2v μηνυμάτων. state 7: Αποστολή των c2v μηνυμάτων που ορίζουν οι h 2,1,,h 2,32. Η είσοδος fsm_sel του σχήματος 5.13 είναι ακόμα στην τιμή 1 και οι rom, rom_sh δίνουν τις κατάλληλες i τιμές shift και a 2 r1 για την υλοποίηση των διασυνδέσεων (32 κύκλοι). Στο σημείο αυτό μετά από την ολοκλήρωση της κάθε αποστολής ελέγχεται αν πρόκειται για την τελευταία αποστολή που συμβαίνει ώστε να τελειώσει μία επανάληψη του αλγορίθμου. Στην περίπτωση αυτή μεταβαίνουμε στη state 0, αναμένοντας τα επόμενα έγκυρα v2c μηνύματα ώστε να αρχίσει να εκτελείται η επόμενη επανάληψη του αλγορίθμου. Διαφορετικά μεταβαίνουμε στη state 8. state 8: Αναμονή για προετοιμασία των επόμενων v2c μηνυμάτων. Κατάσταση όμοια με τη state 4 μόνο που τώρα αρχικοποιείται σε διαφορετική διεύθυνση ο counter της μνήμης rom. Μόλις έρθουν έγκυρα v2c μηνύματα μεταβαίνουμε στη state 5 και η διαδικασία επαναλαμβάνεται άλλες 4 φορές για την ολοκλήρωση μίας επανάληψης τους αλγορίθμου. (Έχουν ήδη υλοποιηθεί οι διασυνδέσεις για τους h 1,1,,h 1,32 και h 2,1,,h 2,32 και απομένουν οι υπόλοιποι). Για τις μεταθέσεις των ψηφίων της αποκωδικοποιημένης λέξης χρησιμοποιείται ένα κύκλωμα με δομή όμοια με αυτή του σχήματος 5.3 οπότε η fsm που το συγχρονίζει θα είναι όμοια με αυτή του σχήματος

99 state 0 datain_ready=1 state 1 send v2c (h1,1-h1,32) state 2 wait c2v state 3 send c2v (h1,1-h1,32) state 4 wait v2c iteration completed state 5 send v2c (hi,1- hi,32), i=2,,6 wait v2c state 8 state 6 wait c2v state 7 send c2v (hi,1- hi,32), i=2,,6 Σχ Fsm για permutation network Decoder: Η fsm που συγχρονίζει το σύνολο των συνιστωσών του αποκωδικοποιητή έχει την ακόλουθη μορφή:

100 state 0 datain_ready=1 busy=1 state 1 reset variables=1 reset checks=1 reset perm_net=1 result read telos=1 state 2 reset variables=1 reset checks=0 reset perm_net=0 state 3 en_counter read Σχ Fsm για decoder state 0: Στην κατάσταση αυτή ο αποκωδικοποιητής περιμένει την ολοκλήρωση κάποιας διαδικασίας κωδικοποίησης ώστε να προκύψουν έγκυρα δεδομένα στην έξοδο του καναλιού. Μόλις συμβεί αυτό μεταβαίνει στη state 1. state 1: Εδώ όλες οι συνιστώσες του αποκωδικοποιητή τίθενται σε κατάσταση κανονικής λειτουργίας και ξεκινάει η διαδικασία της αποκωδικοποίησης (με την εγγραφή αρχικά της κωδικής λέξης στις μνήμες των variable nodes, όπως περιγράψαμε). Για να μεταβούμε στην state 2, όπου θα γίνει ανάγνωση της αποκωδικοποιημένης λέξης θα πρέπει: 1. Να ολοκληρωθεί η αποκωδικοποίηση του συγκεκριμένου codeword. Αυτό θα συμβεί είτε επειδή ο αλγόριθμος έχει εκτελέσει τον προκαθορισμένο αριθμό επαναλήψεων (οπότε το σήμα τέλους της διαδικασίας εξέρχεται από τη state 10 της fsm των κόμβων μεταβλητής), είτε επειδή προέκυψε έγκυρη κωδική λέξη πριν εκτελεστεί το σύνολο των επαναλήψεων του αλγορίθμου (στην περίπτωση αυτή το σήμα τέλους της διαδικασίας προκύπτει από τη state 11 της fsm των κόμβων μεταβλητής). 2. Να είμαστε βέβαιοι ότι η μνήμη decoded word του σχήματος 5.14 στην οποία θα γραφτούν τα δεδομένα της αποκωδικοποιημένης λέξης, δε χρησιμοποιείται για κάποια προηγούμενη διαδικασία σύγκρισης. Εδώ θα χρησιμοποιηθεί το σήμα εξόδου busy, που αναφέρθηκε στο προηγούμενο κεφάλαιο, έτσι ώστε αν busy=1 αναμένουμε στη state 1 να ολοκληρωθεί η τρέχουσα σύγκριση και μετά προχωράμε στην ανάγνωση της επόμενη αποκωδικοποιημένης λέξης

101 state 2: Μετά την ολοκλήρωση της διαδικασίας της αποκωδικοποίησης οι είσοδοι reset των fsm του permutation network και των check nodes γίνονται ίσες με 0, καθώς ακολουθεί η διαδικασία ανάγνωσης της αποκωδικοποιημένης λέξης, στην οποία δε συμμετέχουν. To reset της fsm των variable nodes παραμένει στην τιμή 1. Στη συνέχεια πρέπει να γίνει η ανάγνωση της εξόδου V_hard κάθε κόμβου μεταβλητής. Ξεκινώντας την ανάγνωση των εξόδων V_hard, στον πρώτο κύκλο ρολογιού ο counter της διεύθυνσης για τις RAM32 δείχνει στη θέση 0 των μνημών. Έτσι σε ένα κύκλο ρολογιού έχουμε 64 V_hard (για όλους τους κόμβους μεταβλητής). Κάθε V_hard bit που διαβάζεται γράφεται σε μία και μοναδική θέση της decoded word. Αφού διαβαστούν και τα 64 V_hard bits (64 κύκλοι) μεταβαίνουμε στην state 3. Σε περίπτωση που ο counter έχει στην έξοδο του την τιμή 31 (τελευταία θέση μνήμης), αφού ολοκληρωθεί η ανάγνωση και των θέσεων αυτών, το σύστημα μεταβαίνει στην κατάσταση state 0 όπου αναμένεται η επόμενη προς αποκωδικοποίηση λέξη. state 3: Εδώ όπου η είσοδος ενεργοποίησης του counter της διεύθυνσης γίνεται 1 για ένα κύκλο ρολογιού. Έτσι αυξάνεται η έξοδος του counter κατά 1 και άρα και η επόμενη θέση της RAM32 που θα αναγνωστεί. Μέχρι να αναγνωσθεί και η τελευταία θέση της RAM32 επιστρέφουμε στην state 2 και συνεχίζουμε την ίδια διαδικασία. 6.5 Συνολικό σύστημα Τέλος, το διάγραμμα καταστάσεων της fsm που συγχρονίζει το συνολικό σύστημα κωδικοποίησης-μετάδοσης-αποκωδικοποίησης φαίνεται στο σχήμα 6.7. Οι καταστάσεις που την αποτελούν είναι: state 0: Αρχική κατάσταση του συστήματος. Η είσοδος en δίνεται εξωτερικά ως έναυσμα για την έναρξη αποστολής μηνυμάτων, κωδικοποίησης και αποκωδικοποίησης τους. Μόλις en=1 ξεκινάει η κυρίως διαδικασία κωδικοποίησης-αποστολής-αποκωδικοποίησης των αποστελλόμενων μηνυμάτων. state 1: Στην κατάσταση αυτή παραμένουμε ώσπου να ολοκληρωθεί η τρέχουσα διαδικασία της κωδικοποίησης (θέτοντας start_encondin=1, ώστε να είναι εμφανές ότι μία κωδικοποίηση είναι σε εξέλιξη). Στη διαδικασία της κωδικοποίησης περιλαμβάνεται και το σύνολο των μεταθέσεων που λαμβάνει χώρα στην προκύπτουσα λέξη. Μόλις ολοκληρωθεί η λειτουργία αυτή (enc_ended=1) μεταβαίνουμε στη state 2. state 2: Θέτουμε start_encodin=0 ώστε να δηλώσουμε ότι η προηγούμενη διαδικασία κωδικοποίησης έχει ολοκληρωθεί και ότι μία κωδική λέξη είναι έτοιμη προς επεξεργασία-μετάδοση. Στη συνέχεια μεταβαίνουμε στη state 3. state 3: Εδώ γίνεται 1 το σήμα transmit έτσι ώστε να μπορέσει να αρχίσει να μεταδίδεται μέσω του καναλιού η υπολογισμένη κωδική λέξη. Το σήμα transmit είναι αυτό που λαμβάνει ως είσοδο η μνήμη RAM του σχήματος 5.5 ώστε να ξεκινήσει η διαδικασία ανάγνωσης της κωδικής λέξης. Εδώ μένουμε για 1024 κύκλους ρολογιού ώστε να μεταδοθεί όλη η κωδική λέξη. Παράλληλα, γίνεται 1 και το σήμα start_encodin επιτρέποντας έτσι στο σύστημα να ξεκινήσει την κωδικοποίηση ενός νέου μηνύματος

102 Κάτι τέτοιο επιτρέπεται να γίνει καθώς, όπως αναφέραμε στο κεφάλαιο 5, μέσα στο χρόνο των 3510 κύκλων που απαιτούνται για να υπολογιστούν τα καινούρια parity bits, η προηγούμενη κωδική λέξη έχει προλάβει να μεταδοθεί χωρίς κάποια παρεμβολή δεδομένων της επόμενης. Μόλις τελειώσει μία μετάδοση (transmission_ended =1, οπότε και ξεκινάει μια διαδικασία αποκωδικοποίησης της συγκεκριμένης κωδικής λέξης) μεταβαίνουμε στη state 4, ενώ η διαδικασία της επόμενης κωδικοποίησης βρίσκεται ακόμα σε εξέλιξη. state 4: Στο σημείο αυτό έχουμε θέσει το σήμα transmit=0 και περιμένουμε να ολοκληρωθούν δύο λειτουργίες που βρίσκονται σε εξέλιξη. Η πρώτη είναι η λειτουργία της αποκωδικοποίησης ενός codeword και η δεύτερη αφορά στη διαδικασία της κωδικοποίησης του επόμενου. Όσο dec_ended=0 και enc_ended=0, δηλαδή και οι δύο λειτουργίες είναι σε εξέλιξη το σύστημα παραμένει στη state 4. Επειδή δεν είναι γνωστό πια από τις δύο θα τελειώσει πρώτη (ο χρόνος της αποκωδικοποίησης εξαρτάται από το σύνολο των επαναλήψεων που θα εκτελέσει ο αλγόριθμος και το οποία επηρεάζεται από τα επίπεδα θορύβου), εξετάζουμε τα εξής ενδεχόμενα: 1. Αν τελειώσει πρώτα η διαδικασία της αποκωδικοποίησης (dec_ended=1) του codeword, μεταβαίνουμε στη state 5 με το σήμα start_encodin να παραμένει στην τιμή 1. Στη state 5 γνωρίζουμε τώρα ότι περιμένουμε να τελειώσει η κωδικοποίηση ενός codeword. Μόλις αυτή ολοκληρωθεί μεταβαίνουμε ξανά στη state 2 και συνεχίζουμε τη διαδικασία. 2. Αν τελειώσει πρώτα η κωδικοποίηση του επόμενου codeword (enc_ended=1), μεταβαίνουμε στη state 6, όπου αναμένουμε για κάποιους κύκλους ώστε να τελειώσει και η τρέχουσα κωδικοποίηση. Τα σήματα start_encodin και transmit μηδενίζονται ώστε να μην αρχίσει κάποια καινούρια κωδικοποίηση η οποία πιθανόν θα αλλάξει την προηγούμενη κωδική λέξη που είναι αποθηκευμένη στη μνήμη, αλλά και να μην αρχίσει η μετάδοση της ήδη κωδικοποιημένης λέξης η οποία θα επηρεάσει το αποτέλεσμα της αποκωδικοποίησης που βρίσκεται σε εξέλιξη. Μόλις ολοκληρωθεί και η τρέχουσα αποκωδικοποίηση μεταβαίνουμε ξανά στη state 3 και συνεχίζουμε όπως περιγράφηκε. 3. Σε περίπτωση που και οι δύο λειτουργίες τελειώσουν ταυτόχρονα μεταβαίνουμε στη state 5 και συνεχίζεται η διαδικασία. state 5: Μετάβαση στη state 2 αν δεν υπάρχει κάποια λειτουργία κωδικοποίησης/αποκωδικοποίησης σε εξέλιξη, είτε αναμονή για enc_ended=1 ώστε να μεταβούμε στη state 2. Το σήμα start_encondin παραμένει στην τιμή 1 και το transmit στη 0 μέχρι να μεταβούμε στη state 2. state 6: Αναμονή για dec_ended=1 ώστε να μεταβούμε στη state 3. Το σήμα start_encondin είναι 0, ώστε να μην ξεκινήσει κάποια νέα διαδικασία κωδικοποίησης προτού ξεκινήσει να μεταδίδεται το προηγούμενο codeword. Το σήμα transmit έχει και αυτό την τιμή

103 state 0 en=1 state 1 start encodin=1 enc_ended=1 state 2 start encodin=0 enc_ended=1 state 3 start encodin=1 transmit=1 transmission ended=1 dec_ended=1 state 4 start encodin=1 transmit=0 dec_ended=1 enc_ended=1 state 5 state 6 start encodin=1 Σχ Fsm συνολικού συστήματος

104 Κεφάλαιο 7 Ροή σχεδίασης 7.1 Διαδικασία σχεδίασης συνολικού συστήματος Ροή σχεδίασης Με τον όρο «ροή σχεδίασης» αναφερόμαστε στα βήματα και στη διαδικασία που ακολουθήθηκαν με σκοπό την επιτυχή ολοκλήρωση της σχεδίασης του συστήματος. Η σχεδίαση ενός συστήματος, γενικά, αποτελείται από μία σειρά βημάτων έτσι ώστε να είναι δυνατή η δημιουργία μεγαλύτερων συστημάτων, αλλά και ο έλεγχος τους σε σύντομο χρονικό διάστημα. Οι τέσσερις βασικοί άξονες πάνω στους οποίους κινούμαστε σχετίζονται με τις προδιαγραφές του συστήματος, την επιλογή των αλγορίθμων κωδικοποίησης και αποκωδικοποίησης του κώδικα που υλοποιείται, την περιγραφή και υλοποίηση του συστήματος σε λογισμικό και τέλος την υλοποίηση του σε υλικό. Στο σχήμα 7.1 αναπαρίσταται το διάγραμμα της συνολικής διαδικασίας που ακολουθήθηκε Ανάλυση σχεδίασης, προδιαγραφές, χρησιμοποιούμενοι αλγόριθμοι Πριν από την έναρξη της διαδικασίας της σχεδίασης πρέπει να οριστούν οι προδιαγραφές του συστήματος. Πρόκειται για ένα στάδιο που παίζει σημαντικό ρόλο στην εξέλιξη της σχεδίασης. Οι προδιαγραφές στην περίπτωση μας (συγκεκριμένα στη σχεδίαση ενός RS-LDPC κώδικα) σχετίζονται: 1. Με την απόδοση που πρέπει να επιτυγχάνει ο κώδικας (όσον αφορά τη διορθωτική του ικανότητα). 2. Το μέγεθος του συγκεκριμένου κώδικα. 3. Τη συχνότητα λειτουργίας του. 4. Το throuhput όλου του συστήματος που θα πρέπει να είναι αρκετά υψηλό ώστε να επιτρέπει τη γρήγορη μελέτη της συμπεριφοράς όλου του συστήματος, ειδικά της περιπτώσεις χαμηλού θορύβου όπου τα λάθη είναι δύσκολο να εμφανιστούν. Με βάση της παραπάνω προδιαγραφές αλλά και τη πολυπλοκότητα της σχεδίασης της στο υλικό, αποφασίζονται οι αλγόριθμοι κωδικοποίησης και αποκωδικοποίησης που θα χρησιμοποιηθούν, αλλά και η αρχιτεκτονική για το κάθε τμήμα που απαρτίζει τον κώδικα RS-LDPC, που αποτελεί το αντικείμενο αυτής της εργασίας

105 Προδιαγραφές συστήματος Αλγόριθμος αποκωδικοποίησης Περιγραφή σε υλικό (VHDL) Περιγραφή σε λογισμικό (MATLAB) Σχεδίαση Αρχιτεκτονικής (ΜΑΤLΑΒ για παραγωγή VHDL Κώδικα) Μοντέλο MATLAB Behavioral Εξομοίωση (Modelsim-ISE simulator) Σύνθεση(XST) Post-Route Εξομοίωση (Modelsim) Επαλήθευση Υλοποίηση (Translate, Map, Place & Route) (Xilinx ISE) Bitstream (Xilinx impact) FPGA Επαλήθευση / Εκσφαλμάτωση (Chipscope Pro) Σχ Διάγραμμα ροής σχεδίασης συστήματος Ανάλυση διαδικασίας σχεδίασης περιγραφή σε λογισμικό Το επόμενο βήμα μετά από τον καθορισμό των προδιαγραφών και του αλγόριθμου αποκωδικοποίησης που θα χρησιμοποιηθεί, είναι η δημιουργία ενός μοντέλου για τον RS-LDPC κώδικα και η περιγραφή του σε λογισμικό. Το περιβάλλον λογισμικού που χρησιμοποιήθηκε για τη δημιουργία αυτού του μοντέλου είναι το πρόγραμμα MATLAB (έκδοση R2009b). Δεδομένου του γεννήτορα πίνακα G και του πίνακα ελέγχου ισοτιμίας Η, οι οποίοι προκύπτουν με βάση τη θεωρία του κεφαλαίου 3, δημιουργήθηκε στο MATLAB το αντίστοιχο μοντέλο κωδικοποίησης-μετάδοσηςαποκωδικοποίησης του συστήματος. Το μοντέλο αυτό έγινε χρησιμοποιώντας της έτοιμες συναρτήσεις που διαθέτει το MATLAB για τη δημιουργία του LDPC κωδικοποιητή, του καναλιού μετάδοσης και του LDPC αποκωδικοποιητή, δίνοντας σε αυτές της δικές της παραμέτρους. Το τελικό μοντέλο αποτελείται από μικρότερα τμήματα που μοντελοποιούν αντίστοιχα μικρότερα τμήματα της σχεδίασης της. Αυτό είναι ιδιαίτερα χρήσιμο καθώς μα επιτρέπει τον έλεγχο κάθε τμήματος της αρχιτεκτονικής ξεχωριστά, κάτι που μειώνει το χρόνο εύρεσης και διόρθωσης λαθών στη σχεδίαση της, σε αντίθεση με την περίπτωση που θα είχαμε ένα καθολικό μοντέλο για ολόκληρο το σύστημα. Το καθολικό μοντέλο είναι και αυτό χρήσιμο στην εύρεση λαθών,

106 αλλά κυρίως επιτρέπει στο σχεδιαστή να ελέγχει την απόδοση του συστήματος (κυρίως όσον αφορά στη διορθωτική ικανότητα) αλλάζοντας μόνο συγκεκριμένες παραμέτρους Ανάλυση διαδικασίας σχεδίασης περιγραφή σε υλικό Έχοντας ακολουθήσει την παραπάνω διαδικασία, σειρά έχει τώρα η περιγραφή του προηγούμενου μοντέλου σε υλικό. Η σχεδίαση της αρχιτεκτονικής γίνεται σε γλώσσα περιγραφής υλικού VHDL σε περιβάλλον Modelsim. Το MATLAB στο σημείο αυτό χρησιμοποιήθηκε για τη δημιουργία κάποιων δεδομένων (πχ μνήμες rom_sh, f- 1rom, look up table, κλπ), τα οποία είναι απαραίτητα για τη σχεδίαση του συστήματος της και αλλάζουν ανάλογα με το μέγεθος του RS-LDPC κώδικα που υλοποιούμε. Γενικότερα έχει δοθεί έμφαση στην παραμετρικότητα της σχεδίασης ώστε να είναι δυνατή η υλοποίηση RS-LDPC κωδίκων και άλλων μεγεθών χωρίς να απαιτούνται μεγάλες αλλαγές στη σχεδίαση. Μετά τη συγγραφή του VHDL κώδικα, γίνεται εξομοίωση του συστήματος με τη χρήση του Modelsim. Στο σημείο αυτό διορθώνονται τυχόν σχεδιαστικά λάθη και γίνεται και μία πρώτη σύγκριση των αποτελεσμάτων του Modelsim με τα αποτελέσματα που δίνουν τα μοντέλα του MATLAB. Αν υπάρχουν διαφορές στα αποτελέσματα, εκτελούνται τροποποιήσεις και εκ νέου εξομοιώσεις μέχρι να πετύχουμε συμφωνία στα αποτελέσματα. Το επόμενο στάδιο είναι η σύνθεση της σχεδίασης με τη χρήση του εργαλείου XST της Xilinx ISE Στο στάδιο αυτό γίνεται συντακτικός έλεγχος του κώδικα για τον εντοπισμό σχεδιαστικών λαθών και ελέγχεται η δυνατότητα για την υλοποίηση του κυκλώματος («κατέβασμα») στο fpa που έχει επιλεγεί. Επίσης παράγεται μία αναφορά σχετικά με τα στοιχεία του συστήματος και της καθυστερήσεις του καθενός, τη χρησιμοποίηση των πόρων του fpa από αυτά και τα διάφορα σφάλματα που τυχόν έχουν ανιχνευτεί. Στην περίπτωση μας χρησιμοποιήθηκε το Virtex-5 XC5VLX330T-1FF1738 fpa. Εφόσον μέχρι αυτό το σημείο δεν έχουν προκύψει λάθη, και έχουμε ελέγξει ότι το σύστημα πληροί της προδιαγραφές του, προχωράμε στην υλοποίηση της αρχιτεκτονικής (translate, map, place and route). Αν και στο στάδιο αυτό δεν προκύψουν λάθη και πληρούνται οι προδιαγραφές του συστήματος (πχ συχνότητα λειτουργίας, επιφάνεια σχεδίασης κλπ) ακολουθεί η παραγωγή του bitstream αρχείου, το οποίο θα φορτωθεί στο fpa μέσω του εργαλείου impact του ISE. Τέλος με τη χρήση του Chipscope Pro του ISE παρατηρούμε τα αποτελέσματα του συστήματος που σχεδιάσαμε όσο αυτό βρίσκεται στην κανονική του λειτουργία. Ακόμα και σε αυτό το σημείο γίνεται ένας τελικός έλεγχος του συστήματος (σύγκριση με προηγούμενα αποτελέσματα Modelsim) για λάθη τα οποία τώρα μπορεί να σχετίζονται περισσότερο με χρονισμούς ή ειδικές συνθήκες στον αλγόριθμο. Στη συνέχεια έχουμε δύο ενδεικτικά σχήματα με τα αποτελέσματα των εξομοιώσεων του VHDL κώδικα σε περιβάλλον modelsim και των μετρήσεων στο Virtex-5 XC5VLX330T-1FF1738 fpa με τη χρήση του Chipscope της Xilinx

107 Σχ Αποτελέσματα εξομοιώσεων του VHDL κώδικα σε περιβάλλον Modelsim

108 Σχ Αποτελέσματα μετρήσεων στο fpa με τη χρήση του Chipscope της Xilinx

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονικές διόρθωσης λαθών βασισµένες σε κώδικες BCH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Πεπερασμένες και Διαιρεμένες Διαφορές Εισαγωγή Θα εισάγουμε την έννοια των διαφορών με ένα

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

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

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

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

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

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

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

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

Μέθοδοι Ελέγχου Σφαλμάτων Μέθοδοι Ελέγχου Σφαλμάτων Έλεγχος Ισοτιμίας (Parity Check) Άθροισμα Ελέγχου (Checksum) Έλεγχος κυκλικού πλεονασμού (CRC- Cyclic Redundancy Check) Μερικά μπορεί να μεταφερθούν λάθος, πχ λόγω θορύβου Θα

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

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

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

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

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

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

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

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

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

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

ΚΥΚΛΩΜΑ ΥΠΟΛΟΓΙΣΜΟΥ ΣΥΝΔΡΟΜΟΥ. ΠΑΡΑΔΕΙΓΜΑ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗΣ BCC (1) (Υπολογισμός Συνδρόμου) ΚΥΚΛΩΜΑ ΥΠΟΛΟΓΙΣΜΟΥ ΣΥΝΔΡΟΜΟΥ... Πύλη Ανασύζευξη πριν την ολίσθηση g g g -k- + s o + s +... + S -k- Πύλη Διάνυσμα λήψης R(x) Κύκλωμα ανάλογο με αυτό του κωδικοποιητή Βήματα:. iitializatio s i = πύλη off,

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

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

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

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

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

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

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI Ε.Μ.Π. - ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ VLSI

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

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

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

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

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

Τεχνικές διόρθωσης και ανίχνευσης σφαλµάτων Τεχνικές διόρθωσης και ανίχνευσης σφαλµάτων Εντοπισµός σφαλµάτων Εντοπισµός ιόρθωση Προστίθενται bit πλεονασµού Αν µπορεί διορθώνει, (forward error correction) αλλιώς ζητά επανεκποµπή (backward error correction)

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

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

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

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ψηφιακή Λογική Σχεδίαση Ψηφιακή Λογική Σχεδίαση Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το παρόν

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

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3 ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3 ΑΠΛΟΠΟΙΗΣΗ και ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ Σκοπός: Η κατανόηση της σχέσης µιας λογικής συνάρτησης µε το αντίστοιχο κύκλωµα. Η απλοποίηση λογικών συναρτήσεων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

«Σύστημα Διόρθωσης Λαθών Βασισμένο σε Κώδικες BCH και Yλοποίηση σε FPGA»

«Σύστημα Διόρθωσης Λαθών Βασισμένο σε Κώδικες BCH και Yλοποίηση σε FPGA» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΧΕΔΙΑΣΜΟΥ VLSI ΚΥΚΛΩΜΑΤΩΝ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

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

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

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

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

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

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο

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

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

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

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

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

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

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

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

Ψηφιακές Τηλεπικοινωνίες. Δισδιάστατες Κυματομορφές Σήματος Ψηφιακές Τηλεπικοινωνίες Δισδιάστατες Κυματομορφές Σήματος Εισαγωγή Στα προηγούμενα μελετήσαμε τη διαμόρφωση PAM δυαδικό και Μ-αδικό, βασικής ζώνης και ζωνοπερατό Σε κάθε περίπτωση προέκυπταν μονοδιάστατες

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

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER 4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER Σκοπός του κεφαλαίου είναι να παρουσιάσει μερικές εφαρμογές του Μετασχηματισμού Fourier (ΜF). Ειδικότερα στο κεφάλαιο αυτό θα περιγραφούν έμμεσοι τρόποι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

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

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

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

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

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

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

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

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

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

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

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

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

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

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

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

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧ/ΚΩΝ ΚΑΙ ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΕΠΙΚΟΙΝΩΝΙΩΝ, ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα 1. Στο δίκτυο

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

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧ/ΚΩΝ ΚΑΙ ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΕΠΙΚΟΙΝΩΝΙΩΝ, ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα 1. Μήνυμα μήκους

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

Εισαγωγή στους Η/Υ. Ενότητα 8: Μετάδοση Δεδομένων. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Εισαγωγή στους Η/Υ. Ενότητα 8: Μετάδοση Δεδομένων. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Εισαγωγή στους Η/Υ Ενότητα 8: Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση του τρόπου με τον οποίο στέλνεται ένα πακέτο δεδομένων

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

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

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

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

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

Γνωστό: P (M) = 2 M = τρόποι επιλογής υποσυνόλου του M. Π.χ. M = {A, B, C} π. 1. Π.χ. Παραδείγματα Απαρίθμησης Γνωστό: P (M 2 M τρόποι επιλογής υποσυνόλου του M Τεχνικές Απαρίθμησης Πχ M {A, B, C} P (M 2 3 8 #(Υποσυνόλων με 2 στοιχεία ( 3 2 3 #(Διατεταγμένων υποσυνόλων με 2 στοιχεία 3 2

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

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

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

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

Μετάδοση πληροφορίας - Διαμόρφωση

Μετάδοση πληροφορίας - Διαμόρφωση ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΗΧ. Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Μετάδοση πληροφορίας - Διαμόρφωση MYE006-ΠΛΕ065: ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ Ευάγγελος Παπαπέτρου Διάρθρωση μαθήματος Βασικές έννοιες μετάδοσης Διαμόρφωση ορισμός

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

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

Συνδυαστικά Κυκλώματα 3 Συνδυαστικά Κυκλώματα 3.1. ΣΥΝΔΥΑΣΤΙΚΗ Λ ΟΓΙΚΗ Συνδυαστικά κυκλώματα ονομάζονται τα ψηφιακά κυκλώματα των οποίων οι τιμές της εξόδου ή των εξόδων τους διαμορφώνονται αποκλειστικά, οποιαδήποτε στιγμή,

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

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

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

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

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

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

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

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. 5.1 Γενικά Τα πρώτα δίκτυα χαρακτηρίζονταν από την «κλειστή» αρχιτεκτονική τους με την έννοια ότι αυτή ήταν γνωστή μόνο στην εταιρία που την είχε σχεδιάσει. Με τον

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

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

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

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

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης 1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης Στη συγκεκριμένη ενότητα εξετάζουμε θέματα σχετικά με την αριθμητική πεπερασμένης ακρίβειας που χρησιμοποιούν οι σημερινοί υπολογιστές και τα

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

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η. Αρχές Δικτύων Επικοινωνιών

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η. Αρχές Δικτύων Επικοινωνιών Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Αρχές Δικτύων Επικοινωνιών Τι είναι επικοινωνία; Είναι η διαδικασία αποστολής πληροφοριών από ένα πομπό σε κάποιο δέκτη. Η Τηλεπικοινωνία είναι η επικοινωνία από απόσταση (τηλε-).

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

5. (Λειτουργικά) Δομικά Διαγράμματα

5. (Λειτουργικά) Δομικά Διαγράμματα 5. (Λειτουργικά) Δομικά Διαγράμματα Γενικά, ένα λειτουργικό δομικό διάγραμμα έχει συγκεκριμένη δομή που περιλαμβάνει: Τις δομικές μονάδες (λειτουργικά τμήματα ή βαθμίδες) που συμβολίζουν συγκεκριμένες

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

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

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

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

Μετάδοση πληροφορίας - Διαμόρφωση

Μετάδοση πληροφορίας - Διαμόρφωση Μετάδοση πληροφορίας - Διαμόρφωση MYE006: ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ Ευάγγελος Παπαπέτρου ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΗΧ. Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Διάρθρωση μαθήματος Μετάδοση Βασικές έννοιες Διαμόρφωση ορισμός είδη

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

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

ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (ΠΜΣ) ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ Ι ΑΚΤΙΚΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (ΠΜΣ) ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ Ι ΑΚΤΙΚΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΕΥΘΥΝΣΗ : ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΙΚΤΥΑ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «Εφαρµογές της Θεωρίας Πληροφορίας

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