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

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

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

Transcript

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

2 2

3 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η διπλωματική εργασία με θέμα: Ανάλυση, σχεδιασμός και υλοποίηση κωδίκων διόρθωσης λαθών για τηλεπικοινωνιακές εφαρμογές υψηλών ταχυτήτων του Φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών: Γεώργιου Αγγελόπουλου Α. Μ. : 5902 Παρουσιάστηκε δημόσια και εξετάστηκε στο τμήμα Ηλεκτρολόγων μηχανικών και Τεχνολογίας Υπολογιστών στις: 09/07/2009 Ο Επιβλέπων, Ο διευθυντής του τομέα,

4 Αριθμός Διπλωματικής εργασίας: Τίτλος: Ανάλυση, σχεδιασμός και υλοποίηση κωδίκων διόρθωσης λαθών για τηλεπικοινωνιακές εφαρμογές υψηλών ταχυτήτων Φοιτητής: Γεώργιος Αγγελόπουλος Επιβλέπων: Μπίρμπας Αλέξιος 4

5 Περίληψη Σχεδόν όλα τα σύγχρονα τηλεπικοινωνιακά συστήματα, τα οποία προορίζονται για αποστολή δεδομένων σε υψηλούς ρυθμούς, έχουν υιοθετήσει κώδικες διόρθωσης λαθών για την αύξηση της αξιοπιστίας και τη μείωση της απαιτούμενης ισχύος εκπομπής τους. Μια κατηγορία κωδίκων, και μάλιστα με εξαιρετικές επιδόσεις, είναι η οικογένεια των LPDC κωδίκων (Low-Density-ParityCheck codes). Οι κώδικες αυτοί είναι γραμμικοί block κώδικες με απόδοση πολύ κοντά στο όριο του Shannon. Επιπλέον, ο εύκολος παραλληλισμός της διαδικασίας αποκωδικοποίησής τους, τους καθιστά κατάλληλους για υλοποίηση σε υλικό. Στην παρούσα διπλωματική μελετούμε τα ιδιαίτερα χαρακτηριστικά και τις παραμέτρους των κωδίκων αυτών, ώστε να κατανοήσουμε την εκπληκτική διορθωτική ικανότητά τους. Στη συνέχεια, επιλέγουμε μια ειδική κατηγορία κωδίκων LDPC, της οποίας οι πίνακες ελέγχου ισοτιμίας έχουν δημιουργηθεί ώστε να διευκολύνουν την υλοποίησή τους, και προχωρούμε στο σχεδιασμό αυτής σε υλικό. Πιο συγκεκριμένα, υλοποιούμε σε VHDL έναν αποκωδικοποιητή σύμφωνα με τον rate ½ και block_lenght 576 bits πίνακα του προτύπου WiMax e, με στόχο κυρίως την επίτευξη πολύ υψηλού throughput. Στο χρονοπρογραμματισμό της μετάδοσης των μηνυμάτων μεταξύ των κόμβων του κυκλώματος χρησιμοποιούμε το two-phase scheduling και προτείνουμε δύο τροποποιήσεις αυτού για την επιτάχυνση της διαδικασίας αποκωδικοποίησης, οι οποίες καταλήγουν σε 24 και 50% βελτίωση του απαιτούμενου χρόνου μιας επανάληψης με μηδενική και σχετικά μικρή αύξηση της επιφάνειας ολοκλήρωσης αντίστοιχα. Ο όλος σχεδιασμός είναι πλήρως συνθέσιμος και η σωστή λειτουργία αυτού έχει επιβεβαιωθεί σε επίπεδο λογικής εξομοίωσης. Κατά τη διάρκεια σχεδιασμού, χρησιμοποιήθηκαν εργαλεία της Xilinx και MentorGraphics. 5

6 6

7 Abstract Αlmost all the modern telecommunication systems, which are designed for high data rate transmissions, have adopted error correction codes for improving the reliability and the required power of transmission. One special group of these codes, with extremely good performance, is the LDPC codes (Low-Density-Parity-Check codes). These codes are linear block codes with performance near to the theoretical Shannon limit. Furthermore, the inherent parallelism of the decoding procedure makes them suitable for implementation on hardware. In this thesis, we study the special characteristics of these codes in order to understand their astonishing correcting capability. Then, we choose a special category of these codes, whose parity check matrix are special designed to facilitate their implementation on hardware, and we design a high-throughput decoder. More specifically, we implement in VHDL an LDPC decoder according to the rate ½ and block_length 576 bits code of WiMax IEEE802.16e standard, with main purpose to achieve very high throughput. We use the two-phase scheduling at the message passing and we propose 2 modifications for reducing the required decoding time, which result in 25 and 50% improving of the required decoding time of one iteration with zero and little increasing in the decoder s area respectively. Our design has been successfully simulated and synthesized. During the design process, we used Xiinx and MentorGraphics s tools. 7

8 8

9 Ευχαριστίες Η παρούσα διπλωματική εργασία εκπονήθηκε στο τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών. Για την εκπόνηση αυτής θα ήθελα να ευχαριστήσω, πρώτον από όλους, τον επιβλέποντα καθηγητή μου Αλέξιο Μπίρμπα για την ευκαιρία που μου έδωσε να ασχοληθώ με μια τόσο ενδιαφέρουσα επιστημονική περιοχή, για την εμπιστοσύνη που μου έδειξε καθώς και για την προσωπική και επιστημονική καθοδήγηση καθόλη τη διάρκεια της εργασίας αυτής. Επίσης θα ήθελα να ευχαριστήσω θερμά την εταιρία ANALOGIES S.A. και πιο συγκεκριμένα τους διδάκτορες Φώτιο Γκιουλέκα και Μιχαήλ Μπίρμπα για την άκρως εποικοδομητική συνεργασία που είχαμε στα πλαίσια του προγράμματος Πρακτικής Άσκησης καθώς και για τις πολύ χρήσιμες συμβουλές σχεδόν σε όλα τα στάδια εκπόνησης της διπλωματικής αυτής εργασίας. Ακόμη θα ήθελα να ευχαριστήσω τον συνεξεταστή και επίκουρο καθηγητή του τμήματος Βασίλειο Παλιουρά για τις εποικοδομητικές συζητήσεις που είχαμε καθώς και για τη συνεχή προθυμία του να με ακούσει και συμβουλέψει σε δυσκολίες που αντιμετώπισα στην πορεία ολοκλήρωσης της εργασίας αυτής. Τέλος, θα ήθελα να ευχαριστήσω την οικογένεια και τους φίλους μου, οι οποίοι με στήριξαν αφάνταστα σε όλη την περίοδο των προπτυχιακών σπουδών μου και έπαιξαν καθοριστικό ρόλο. 9

10 10

11 Περιεχόμενα Κεφάλαιο 1: Εισαγωγή 1.1 Δομή ενός τηλεπικοινωνιακού συστήματος Κωδικοποίηση καναλιού Ιστορική αναδρομή Κώδικες ανίχνευσης και διόρθωσης λαθών 25 Κεφάλαιο 2: LDPC κώδικες 2.1 LDPC κώδικες Γραμμικοί Block Κώδικες Αναπαράσταση LDPC κωδίκων Κατηγορίες LDPC κωδίκων Απόδοση των LDPC κωδίκων 39 Κεφάλαιο 3: Αλγόριθμοι αποκωδικοποίησης κωδίκων LDPC 3.1 Αλγόριθμοι αποκωδικοποίησης Αλγόριθμος Sum-Product in Log-Domain Αλγόριθμος Min-Sum Αλγόριθμος Modified-Min-Sum Κεφάλαιο 4: Αρχιτεκτονικές υλοποίησης αποκωδικοποιητών LDPC 4.1 Αρχιτεκτονικές αποκωδικοποιητών LDPC Πλήρως παράλληλη υλοποίηση Πλήρως σειριακή υλοποίηση Ημιπαράλληλη αρχιτεκτονική Κεφάλαιο 5: Καθορισμός πίνακα και παραμέτρων υλοποίησης 5.1 LDPC κώδικες και WiMax (802.16e) Πίνακας ελέγχου ισοτιμίας του LDPC κώδικα με rate ½ Παράμετροι υλοποίησης του αποκωδικοποιητή Αναλογική έναντι Ψηφιακής υλοποίησης

12 5.3.2 Σχήμα χρονοπρογραμματισμού μηνυμάτων αποκωδικοποίησης Αλγόριθμος αποκωδικοποίησης Αναπαράσταση των μηνυμάτων Μέγιστος αριθμός επαναλήψεων του αλγόριθμου.. 65 Κεφάλαιο 6: Προτεινόμενη Αρχιτεκτονική αποκωδικοποιητή 6.1 Αρχιτεκτονική αποκωδικοποιητή Χρονοπρογραμματισμός αποκωδικοποιητή Τροποποίηση του χρονοπρογραμματισμού Κεντρική μονάδα ελέγχου Variable κόμβος Check κόμβος Δίκτυο διασύνδεσης Αποτελέσματα εξομοίωσης και σύνθεσης όλου του αποκωδικοποιητή Αναφορές Βιβλιογραφία 97 12

13 Κατάλογος σχημάτων Σχήμα 1.1: Δομή ενός τηλεπικοινωνιακού συστήματος Σχήμα 1.2: Αλλοίωση σήματος κατά τη μετάδοση μέσα από κανάλι με θόρυβο Σχήμα 2.1: Πίνακας ελέγχου ισοτιμίας ενός LDPC κώδικα Σχήμα 2.2: Γραφική αναπαράσταση ενός LDPC κώδικα με τη Βοήθεια του Tanner graph Σχήμα 2.3: Πίνακας ελέγχου ισοτιμίας δημιουργημένος με τυχαίο τρόπο Σχήμα 2.4: Πίνακας ελέγχου ισοτιμίας ενός κυκλικού κώδικα Σχήμα 2.5: Πίνακας ελέγχου ισοτιμίας ενός Quasi-Cyclic κώδικα Σχήμα 2.6: Quasi-Cyclic πίνακας και η αντίστοιχη συνεπτυγμένη αναπαράσταση αυτού Σχήμα 2.7: Πίνακας ελέγχου ισοτιμίας ενός CPA-structured κώδικα Σχήμα 2.8: Πίνακας ελέγχου ισοτιμίας ενός CPA*-structured κώδικα Σχήμα 2.9: Κατηγορίες κωδίκων με ειδική μορφή πίνακα ελέγχου ισοτιμίας Σχήμα 2.10: Απόδοση ενός LDPC κώδικα Σχήμα 2.11: Απόδοση για ένα δεδομένο κώδικα συναρτήσει διαφορετικών αλγορίθμων αποκωδικοποίησης Σχήμα 2.12: Απόδοση ενός LDPC κώδικα 1536 bits συναρτήσει διαφορετικού αριθμού μέγιστων επαναλήψεων του αλγόριθμου αποκωδικοποίησης Σχήμα 2.13: Απόδοση ενός LDPC κώδικα 768 bits συναρτήσει χρησιμοποιώντας διαφορετικό αριθμό ψηφίων για την αναπαράσταση των μηνυμάτων Σχήμα 3.1: 1η φάση της διαδικασίας επανάληψης ενός αλγόριθμου αποκωδικοποίησης Σχήμα 3.2: 2η φάση της διαδικασίας επανάληψης ενός αλγόριθμου αποκωδικοποίησης Σχήμα 3.3: Γραφική παράσταση της συνάρτησης Φ(). Σχήμα 3.4: Σύγκριση της διορθωτικής ικανότητας των αλγορίθμων αποκωδικοποίησης 13

14 Σχήμα 4.1: Τanner διάγραμμα ενός κώδικα και το κύκλωμα αποκωδικοποίησης πλήρως παράλληλης αρχιτεκτονικής σε απόλυτη αντιστοιχία αυτού. Σχήμα 4.2: Κύκλωμα αποκωδικοποίησης πλήρως σειριακής αρχιτεκτονικής Σχήμα 4.3: Κύκλωμα αποκωδικοποίησης ημιπαράλληλης αρχιτεκτονικής Σχήμα 5.1: Υποστηριζόμενα code rate και block lengths από το πρότυπο WiMax Σχήμα 5.2: Πίνακας βάσης για τον rate ½ WiMax LDPC κώδικα για z=96. Σχήμα 5.3: Δομή ενός πίνακα ελέγχου ισοτιμίας για τον rate ½ WiMax LDPC κώδικα με z=96. Σχήμα 5.4: Πίνακας βάσης για τον rate ½ WiMax LDPC κώδικα για z=24. Σχήμα 6.1: Αρχιτεκτονική του LDPC αποκωδικοποιητή για z=24. Σχήμα 6.2: ΙΟ του αποκωδικοποιητή Σχήμα 6.3: Χρονοπρογραμματισμός μιας πλήρης επανάληψης του αποκωδικοποιητή Σχήμα 6.4: Χρονική αλληλουχία αποκωδικοποιούμενων λέξεων. Σχήμα 6.5: Λεπτομερής ανάλυση της φάσης Decode_Codeword του αποκωδικοποιητή. Σχήμα 6.6 : Τροποποιημένη χρονική αλληλουχία αποκωδικοποιούμενων λέξεων. Σχήμα 6.7: Σχηματικό διάγραμμα ενός Variable κόμβου Σχήμα 6.8: Σχηματικό διάγραμμα του υποκυκλώματος VN_Module Σχήμα 6.9: Design summary για ένα Variable κόμβο. Σχήμα 6.10: Design Summary για το κύκλωμα Var_RAM Σχήμα 6.11: Σχηματικό της τροποποιημένης διάταξης για την αποθήκευση των δεδομένων. Σχήμα 6.12: Σχηματικό διάγραμμα του check κόμβου Σχήμα 6.13: Design Summary έναν check κόμβο Σχήμα 6.14: Design Summary για τη μνήμη Ch_RAM Σχήμα 6.15: Barrel Shifter 4 εισόδων Σχήμα 6.16: Design Summary για έναν Barrel Shifter 24x24 14

15 Σχήμα 6.17 : Μλεγιστη συχνότητα λειτουργίας του αποκωδικοποιητή υλοποιημένου σε Virtex5lx330. Σχήμα 6.18: Κυματομορφές εξομοίωσης κυκλώματος Σχήμα 6.19: Κυματομορφές εξομοίωσης κυκλώματος Σχήμα 6.20 : Design summary για τον όλο σχεδιασμό του LDPC decoder. 15

16 16

17 ΚΕΦΑΛΑΙΟ 1ο ΕΙΣΑΓΩΓΙΚΑ ΣΤΟΙΧΕΙΑ Στο κεφάλαιο αυτό παρουσιάζουμε κάποια βασικά στοιχεία των επικοινωνιακών συστημάτων, περιγράφοντας τα κύρια χαρακτηριστικά τους και ορίζοντας τα μεγέθη τα οποία θα μας χρησιμεύσουν στα επόμενα κεφάλαια. Επίσης, στο κεφάλαιο αυτό γίνεται μια εισαγωγή στην κωδικοποίηση καναλιού (channel coding) και στους βασικούς κώδικες με τους οποίους υλοποιείται αυτή. 1.1 Δομή ενός Τηλεπικοινωνιακού Συστήματος Μια από τις πρωταρχικές ανάγκες του ανθρώπου ήταν, είναι και θα συνεχίσει να είναι η ανταλλαγή πληροφοριών με τον υπόλοιπο κόσμο. Τα δεδομένα της σύγχρονης εποχής επιβάλλουν την πρόσβαση του ανθρώπου σε ένα πλήθος από αξιόπιστα, αποδοτικά, ασφαλή και οικονομικά μέσα επικοινωνίας, τα οποία μπορούν να αναπαραστήσουν την πληροφορία με πολλούς και ποικίλους τρόπους. Η κλασική δομή ενός τηλεπικοινωνιακού συστήματος περιλαμβάνει τα εξής επιμέρους στοιχεία: μια πηγή πληροφορίας από την οποία δημιουργείται η μεταβιβαζόμενη πληροφορία, ένα κανάλι επικοινωνίας μέσω του οποίου μεταφέρεται η 17

18 πληροφορία και έναν ή περισσότερους προορισμούς στους οποίους καταλήγει. Παρόλο αυτά, τα τελευταία χρόνια, έχει σημειωθεί μία αυξανόμενη απαίτηση για αποδοτικά και αξιόπιστα ψηφιακά συστήματα επικοινωνιών και αποθήκευσης δεδομένων, η οποία έχει οδηγήσει σε αύξηση της πολυπλοκότητας των τηλεπικοινωνιακών συστημάτων. Νέες απαιτήσεις, όπως αυτές της πολύ υψηλής ταχύτητας μετάδοσης ή της ασφάλειας των αποστελλόμενων δεδομένων, υπαγορεύουν την εισαγωγή επιπλέον στοιχείων σε ένα σύγχρονο τηλεπικοινωνιακό σύστημα. Η δομή ενός τηλεπικοινωνιακού συστήματος απεικονίζεται στο σχήμα 2.1 και αναλύεται στη συνέχεια περιγράφοντας αναλυτικά τα επιμέρους στοιχεία [1]. Σχήμα 1.1: Δομή ενός τηλεπικοινωνιακού συστήματος Πηγή πληροφορίας (information source): Παράγει μηνύματα τα οποία φέρουν την πληροφορία που πρόκειται να μεταδοθεί. Τα μηνύματα μπορεί να έχουν οποιαδήποτε μορφή, δηλαδή μπορεί να είναι λέξεις, κωδικά σύμβολα, αριθμοί κτλ. Ανάλογα με το αν η πηγή παράγει τα μηνύματα σε διακριτές χρονικές στιγμές ή σε οποιοδήποτε χρονικό σημείο, τη χαρακτηρίζουμε ως διακριτή ή συνεχής πηγή πληροφορίας αντίστοιχα. Επίσης, ανάλογα με το αν το μεταδιδόμενο μήνυμα σε μια χρονική 18

19 στιγμή εξαρτάται από το μήνυμα το οποίο έχει αποσταλεί σε προηγούμενες χρονικές στιγμές ή όχι, τις διακρίνουμε σε πηγές πληροφορίας με μνήμη και χωρίς μνήμη αντίστοιχα. Κωδικοποιητής πηγής (source encoder): Η έξοδος της πηγής πληροφορίας στις περισσότερες περιπτώσεις δεν είναι κατάλληλη για μετάδοση μέσω του τηλεπικοινωνιακού συστήματος επειδή περιέχει μεγάλο ποσοστό πλεονάζουσας πληροφορίας. Με τον όρο κατάλληλη εννοούμε ότι απασχολεί μεγάλο μέρος από τους πόρους του συστήματος, κάτι το οποίο σε ορισμένες εφαρμογές είναι μη ανεκτό. Για να βελτιωθεί η απόδοση του συστήματος, η έξοδος της πηγής πληροφορίας μετασχηματίζεται σε ένα άλλο μήνυμα μέσω του κωδικοποιητή πηγής, ο οποίος μετατρέπει όλα τα μηνύματα της πηγής πληροφορίας σε διακριτού-χρόνου ακολουθίες ψηφιακών συμβόλων, των οποίων ο μέσος όρος του μήκους τους προσεγγίζει το ελάχιστο μήκος που απαιτείται για την αναπαράσταση της πληροφορίας των αρχικών μηνυμάτων χωρίς πλεονασμό. Η διαδικασία αυτή ονομάζεται συμπίεση δεδομένων (data compression). Να αναφέρουμε σε αυτό το σημείο ένα πολύ σημαντικό μέγεθος, την εντροπία (entropy) μιας πηγής πληροφορίας, η οποία εκφράζει ένα μέτρο του μέσου αριθμού συμβόλων που απαιτούνται για την περιγραφή των μηνυμάτων ή ισοδύναμα τη μέση πληροφορία που παράγεται από μια πηγή πληροφορίας και μετριέται σε bits. Όπως ορίζει η Θεωρία Πληροφορίας (Information Theory), το μέσο μήκος της εξόδου του κωδικοποιητή πηγής δε μπορεί να είναι μικρότερο από την εντροπία της πηγής και όσο πιο κοντά σε αυτό το όριο είναι τόσο περισσότερο ικανοποιητική θεωρείται η εφαρμογή του κωδικοποιητή πηγής. Ευρέως χρησιμοποιούμενοι κώδικες κωδικοποίησης πηγής είναι οι εξής: Hamming, Αριθμητική κωδικοποίηση, Lempel-Ziv κ.α. Κωδικοποιητής καναλιού (channel encoder): Η ολοκληρωτική απαλοιφή του πλεονασμού καθιστά τα μεταδιδόμενα bit, που έχουν προκύψει μετά την παραπάνω διαδικασία, εξαιρετικά ευαίσθητα σε λάθη (π.χ. σε μια εικόνα που έχει υποστεί υψηλή συμπίεση ένα σφάλμα σε ένα bit μπορεί να οδηγήσει στον πλήρη συσκοτισμό της, εφόσον το λανθασμένο bit χρησιμοποιείται για την ανασυγκρότηση όλης της εικόνας). Επομένως ο πρωταρχικός ρόλος του κωδικοποιητή καναλιού είναι η 19

20 μεγιστοποίηση της αξιοπιστίας της μετάδοσης λαμβάνοντας υπ όψιν τους περιορισμούς της ισχύος του σήματος μετάδοσης, του εύρους ζώνης του συστήματος και την πολυπλοκότητα του κυκλώματος. Ο κωδικοποιητής διαύλου επανεισάγει κάποιον πλεονασμό στην ακολουθία των δεδομένων, που παρέχει ο κωδικοποιητής πηγής. Ο πλεονασμός αυτός περιέχει μια δομή η οποία επιτρέπει και διευκολύνει στην απ ευθείας ανίχνευση και πιθανόν τη διόρθωση σφαλμάτων, εφόσον η παραμόρφωση δεν είναι τόσο μεγάλη. Αυτό οδηγεί σε χαμηλότερο ρυθμό μετάδοσης δεδομένων και στην χρήση μεγαλύτερου εύρους ζώνης σε σχέση με τη μετάδοση χωρίς κωδικοποίηση. Ο κωδικοποιητής καναλιού είναι μια διάταξη διακριτής- εισόδου/διακριτής-εξόδου που ορίζει μια μία-προς-μία απεικόνιση των ακολουθιών της πηγής σε κωδικά σύμβολα. Πιο συγκεκριμένα, αναθέτει σε κάθε πλαίσιο (frame) κ ψηφίων ένα πλαίσιο μεγαλυτέρου μήκους αποτελούμενο από n ψηφία, το οποίο καλείται κωδική λέξη (codeword). Ένας καλός κώδικας ελέγχου λαθών παράγει διαφορετικές μεταξύ τους κωδικές λέξεις. Αυτό καθιστά την επικοινωνία πιο ανεκτική σε λάθη που εισέρχονται από το κανάλι. Ο κάθε κώδικας χαρακτηρίζεται από τον λόγο R=k/n<1,ο οποίος καλείται ρυθμός κώδικα (code rate). Διαμορφωτής (modulator): Σε αντίθεση με τη διακριτή φύση της εξόδου του κωδικοποιητή καναλιού, τα κανάλια μετάδοσης είναι αναλογικής φύσεως και αποδέχονται μόνο αναλογικές κυματομορφές στην είσοδο τους. Επομένως, ο διαμορφωτής προσαρμόζει τα ψηφιακά δεδομένα στα ιδιαίτερα χαρακτηριστικά του εκάστοτε φυσικού διαύλου, αναπαριστώντας τα κωδικά σύμβολα με κατάλληλες συναρτήσεις συνεχούς χρόνους (έστω s(t)), καλούμενες κυματομορφές διαύλου. Η αναλογική κυματομορφή s(t) μεταδίδεται πάνω από τον φυσικό δίαυλο επικοινωνίας, στο οποίο βρίσκεται εκτεθειμένη σε διάφορες παραμορφώσεις τυχαίας φύσεως και υφίσταται αλλοιώσεις. Ένας Μ-αδικός διαμορφωτής αντιστοιχεί μια δομή l δυαδικών δεδομένων σε μία από τις Μ πιθανές κυματομορφές, όπου Μ=2l. Η χρονική διάρκεια της κυματομορφής στην έξοδο του αποδιαμορφωτή είναι Τ δευτερόλεπτα, και αναφέρεται ως διάστημα σήμανσης, ενώ ο ρυθμός συμβόλου είναι ίσος με rs=1/t. Η διαμόρφωση μπορεί να 20

21 πραγματοποιηθεί μεταβάλλοντας το πλάτος, τη φάση ή/και τη συχνότητα μιας ημιτονοειδής κυματομορφής, που καλείται φορέας. Κανάλι επικοινωνίας (channel): Είναι το μέσο μετάδοσης που χρησιμοποιείται για να μεταφέρει πληροφορία. Μερικά παραδείγματα καναλιών είναι τα χάλκινα καλώδια, οι μικροκυματικές ζεύξεις, οι δορυφορικές ζεύξεις και οι οπτικές ίνες. Δύο σημαντικά μειονεκτήματα των πραγματικών καναλιών είναι ο θερμικός θόρυβος και το πεπερασμένο εύρος ζώνης τους, τα οποία συμβάλλουν στην παραμόρφωση του σήματος και συνεπώς στην υποβάθμιση της ποιότητας του επικοινωνιακού συστήματος. Στην παρακάτω εικόνα φαίνονται οι επιπτώσεις στο μεταδιδόμενο σήμα λόγω της ύπαρξης θορύβου στο φυσικό μέσο μετάδοσης. Σχήμα 1.2: Αλλοίωση σήματος κατά τη μετάδοση μέσα από κανάλι με θόρυβο Όπως γίνεται εμφανές, λόγω αυτών των ατελειών των φυσικών μέσων μετάδοσης που διαθέτουμε είμαστε αναγκασμένοι να δημιουργήσουμε επιπλέον τρόπους αντιμετώπισης των προκαλούμενων λαθών και αυτός είναι ο λόγος για τον οποίο εισάγουμε το κύκλωμα του κωδικοποιητή καναλιού που περιγράψαμε παραπάνω. 21

22 Αποδιαμορφωτής (demodulator): Η παραμορφωμένη από τον θόρυβο κυματορφή στην έξοδο του καναλιού εισάγεται στον αποδιαμορφωτή στην πλευρά του λήπτη. Ο αποδιαμορφωτής επεξεργάζεται και μετατρέπει τη ληφθείσα αναλογική κυματομορφή σε μια ακολουθία από εκτιμήσεις των μεταδιδομένων κωδικών συμβόλων. Οι εκτιμήσεις αυτές μπορεί να είναι διακριτής ή συνεχής φύσεως. Αποκωδικοποιητής καναλιού (channel decoder): Στόχος του αποτελεί η ελαχιστοποίηση των παραμορφώσεων που εισάγει ο θόρυβος του διαύλου. Ο αποκωδικοποιητής διαύλου παράγει εκτιμήσεις των αποσταλμένων δεδομένων βασιζόμενος στον πλεονασμό και στη δομή των bit ισοτιμίας, που παρέχει ο κωδικοποιητής διαύλου, καθώς επίσης λαμβάνει υπ όψιν του τα χαρακτηριστικά του διαύλου. Αποκωδικοποιητής πηγής (source decoder): Ο αποκωδικοποιητής πηγής, βασιζόμενος στον κανόνα της κωδικοποίησης που τελεί ο κωδικοποιητής πηγής στον πομπό, παρέχει μια εκτίμηση της εξόδου της πηγής και παραδίδει τα δεδομένα στον δέκτη. Παραλήπτης πληροφορίας (information sink): Αποτελεί τον τελικό δέκτη του αποσταλμένου μηνύματος. 22

23 1.2 Κωδικοποίηση καναλιού Η κωδικοποίηση καναλιού (channel coding) αποτελεί αναπόσπαστο τμήμα των τηλεπικοινωνιακών συστημάτων και χρησιμοποιείται για τη βελτίωση της αξιοπιστίας αυτών, την ελαχιστοποίηση της πιθανότητας λάθους στη μετάδοση δεδομένων και την καλύτερη εκμετάλλευση του παρεχόμενου εύρους ζώνης σε ένα ευρύ φάσμα εφαρμογών από την επικοινωνία ολοκληρωμένου με ολοκληρωμένο (chip-to-chip communication) έως σε εφαρμογές αποστολής απώτερου διαστήματος (deep space missions). Συνεπώς, η σχεδίαση και υλοποίηση κατάλληλων κωδίκων διαύλου, που να προσεγγίζουν το όριο του Shannon, για τις εκάστοτε εφαρμογές αποτελεί μείζονος σημασίας δραστηριότητα. Ο Shannon, ο οποίος θεωρείται πατέρας της επιστήμης της Θεωρίας Πληροφορίας και θεμελιωτής της μαθηματικής θεώρησης των επικοινωνιών, συσχέτισε την μεταδιδόμενη πληροφορία με την ικανότητα μετάδοσης ενός θορυβώδους διαύλου επικοινωνίας. Συγκεκριμένα, το θεώρημα του Shannon [2] αποδεικνύει πως δοθέντος ενός οποιουδήποτε θορυβώδους διαύλου, υπάρχει κατάλληλος κώδικας διόρθωσης λαθών (error correction code) τέτοιος, ώστε να επιτυγχάνει δυνητικά μία αυθαιρέτως χαμηλή πιθανότητα λάθους (symbol error probability) κατά τη μετάδοση, εφόσον ο ρυθμός του κώδικα R είναι μικρότερος της χωρητικότητας C του διαύλου. Αντιστρόφως, δεν είναι δυνατή η σχεδίαση κατάλληλου κώδικα διόρθωσης λαθών, που να επιτυγχάνει αυθαιρέτως μικρή πιθανότητα λάθους, για ρυθμό μετάδοσης μεγαλύτερο της χωρητικότητας του καναλιού. Η χωρητικότητα ενός καναλιού C (channel capacity) είναι ένα μέγεθος που εξαρτάται από τα χαρακτηριστικά αυτού. Πιο συγκεκριμένα, αν Β το εύρος ζώνης του καναλιού και SNR ο λόγος σήματος προς θόρυβο, τότε η χωρητικότητα του καναλιού δίνεται από τη σχέση: C = B log 2 (1 + SNR ) Το θεμελιώδες αυτό θεώρημα δηλώνει πως ο θόρυβος θέτει ένα όριο (Shannon limit) στον ρυθμό μετάδοσης των δεδομένων και όχι στην πιθανότητα λάθους όπως ήταν πιστευτό προηγουμένως. Μολονότι, ο Shannon απέδειξε θεωρητικά την ύπαρξη τέτοιου κώδικα δεν υπέδειξε ρητώς και σαφώς πρακτικό τρόπο με τον οποίο πρέπει να σχεδιαστεί κάποιος κώδικας, 23

24 ο οποίος να επιτυγχάνει την υποσχόμενη απόδοση. Αντιθέτως, στην απόδειξη της θεωρίας του έκανε χρήση κωδίκων πάρα πολύ μεγάλου μήκους κάτι το οποίο, όπως θα δούμε στη συνέχεια, δεν είναι πρακτικό στην κατασκευή ενός αποκωδικοποιητή Ιστορική αναδρομή Η δημοσίευση της εργασίας του C. E. Shannon το 1948 [2], η οποία ανέπτυξε τη μαθηματική θεμελίωση των επικοινωνιών, αποτέλεσε την έναρξη μιας μεγάλης προσπάθειας εκατοντάδων επιστημόνων ανά τον κόσμο για την επίτευξη ρυθμών αξιόπιστης μετάδοσης κοντά στη χωρητικότητα του καναλιού. Πολλές τεχνικές και αλγόριθμοι αναπτύχθηκαν αλλά λόγω του πρώιμου σταδίου που βρισκόταν η τεχνολογία των ημιαγωγών (την ίδια χρονιά με τη δημοσίευση της εργασίας του Shannon παρουσιάστηκε το πρώτο τρανζίστορ από τους J. Bardeen και W. H. Brattain [3]) δε μπορούσαν να βρουν το αντίστοιχο ενδιαφέρον από την πλευρά της υλοποίησης. Χαρακτηριστικό παράδειγμα και ορόσημο στην πορεία της κωδικοποίησης καναλιού αποτελεί η δημιουργία μιας οικογένειας κωδίκων από τον τότε μεταπτυχιακό φοιτητή στο ΜΙΤ P. G. Gallager, ο οποίος στις αρχές της δεκαετίας του 60 πρότεινε τους κώδικες Low Density Parity Check (LDPC) και μια μορφή επαναληπτικής αποκωδικοποίησης [4]. Επειδή όμως τότε δεν ήταν δυνατόν να υλοποιηθούν σε υλικό οι αλγόριθμοι αυτοί εξαιτίας της αυξημένης τους πολυπλοκότητας, ξεχάστηκαν και έμειναν στο περιθώριο για παραπάνω από 35 χρόνια. Το 1993 οι ερευνητές Berrou, Glavieux και Thitimajshima πρότειναν μία νέα δομή κωδίκων τους οποίους ονόμασαν Turbo Codes [5]. Οι κώδικες αυτοί εμπεριέχουν εύκολη άλγεβρα, χρησιμοποιούν επαναληπτικούς και κατανεμημένους αλγόριθμους, εισάγουν την έννοια της τυχαιότητας στη διαδικασία της αποκωδικοποίησης και φτάνουν πολύ κοντά στο όριο του Shannon. Προσπαθώντας να εξηγήσουν την υπερβολικά καλή απόδοση των Τurbo Codes οι ερευνητές παρατήρησαν ότι υπήρχαν κοινά χαρακτηριστικά με τους LDPC κώδικες. Η ομοιότητα αυτή επανέφερε το ενδιαφέρον των ερευνητών για τους LDPC κώδικες και μάλιστα παρατηρήθηκε μια θεαματική αύξηση τόσο σε θεωρητικό επίπεδο με την ανάπτυξη νέων αλγορίθμων ή τροποποιήσεων παλαιοτέρων όσο και σε επίπεδο υλοποίησης με την ραγδαία ανάπτυξη της τεχνολογίας ολοκληρωμένων κυκλωμάτων πολύ μεγάλης κλίμακας (VLSI). Μάλιστα, τα 24

25 τελευταία χρόνια παρατηρούμε ότι οι LDPC κώδικες έχουν ενσωματωθεί σε πολλά τηλεπικοινωνιακά standard όπως DVB-S2 [6], WiMax(802.16e) [7], 10GBase-T Ethernet [8] κ.α. κάτι το οποίο υποδηλώνει την πολύ καλή τους απόδοση καθώς την καταλληλότητά τους όσον αφορά την υλοποίησή τους σε υλικό Κώδικες ανίχνευσης και διόρθωσης λαθών Η λογική της κωδικοποίησης έγκειται στην προσθήκη στο αρχικά μεταδιδόμενο μήνυμα κατάλληλου πλεονασμού, με αποτέλεσμα να μετασχηματίζεται το αρχικό μήνυμα σε μια νέα ακολουθία από bits, η οποία ονομάζεται κωδικολέξη (codeword). Στο δέκτη γίνεται σύγκριση της κάθε ληφθείσας λέξης με το γνωστό σύνολο των έγκυρων κωδικών λέξεων, οι οποίες αποτελούν το αλφάβητο του αποκωδικοποιητή. Αν δεν κατορθώσουμε να βρούμε λέξη όμοια με αυτές που περιλαμβάνονται στο αλφάβητο, συμπεραίνουμε ότι έχουν υπεισέλθει σφάλματα και ξεκινά η διαδικασία αξιοποίησης του πλεονασμού του μηνύματος με σκοπό να βρεθεί η απεσταλμένη λέξη. Σε αντίθετη περίπτωση, εξάγεται το συμπέρασμα ότι έχει γίνει ορθή λήψη της πληροφορίας και ο δέκτης είναι έτοιμος να δεχτεί την επόμενη λέξη. Γίνεται σαφές ότι με τη χρήση της κωδικοποίησης είμαστε σε θέση να ανιχνεύσουμε ή και να διορθώσουμε σφάλματα τα οποία συμβαίνουν κατά την αποστολή των λέξεων. Στη συνέχεια ακολουθούν παραδείγματα ανίχνευσης και διόρθωσης λαθών κάνοντας χρήση της μεθόδου της κωδικοποίησης. Έστω για παράδειγμα ότι έχουμε το αλφάβητο c1 = {00, 01, 10, 11}, από το οποίο στέλνουμε τα μηνύματά μας μέσω ενός θορυβώδους καναλιού. Όπως φαίνεται, κάθε κωδική λέξη έχει μήκος 2 και ο κώδικας περιλαμβάνει όλους τους δυνατούς συνδυασμούς μήκους 2 των ψηφίων 0 και 1. Συνεπώς, κάθε λέξη των δύο ψηφίων που καταλήγει στον δέκτη, αποτελεί κωδική λέξη και για το λόγο αυτό δεν υπάρχει η δυνατότητα ανίχνευσης κάποιου λάθους. Αν τώρα σε κάθε αποστελλόμενο μήνυμα προσθέταμε με βάση κάποιον κανόνα ένα επιπλέον bit, τότε ο δέκτης θα μπορεί να διακρίνει αν έχουν συμβεί σφάλματα στην αρχική λέξη. Για παράδειγμα, ένας πολύ γνωστός κανόνας είναι ο κανόνας ισοτιμίας, σύμφωνα με τον οποίο προσθέτουμε ένα bit στο τέλος της λέξης ανάλογα με τον αν έχουμε περιττό ή άρτιο αριθμό μονάδων στη λέξη μας. Άρα εφαρμόζοντας αυτόν τον κανόνα στο προηγούμενο αλφάβητό μας, 25

26 το μετασχηματίζουμε στο εξής επόμενο c1 = {000, 011, 101, 110}. Λαμβάνοντας τώρα ο δέκτης μια λέξη η οποία δεν ανήκει σε αυτό το υποσύνολο των ακολουθιών ψηφίων μήκους 3 (πχ τη λέξη 010) συμπεραίνει ότι έχει αλλοιωθεί κάποιο από τα ψηφία αυτής και η ληφθείσα λέξη δεν είναι έγκυρη. Συνεπώς, προσθέτοντας ένα επιπλέον ψηφίο ο δέκτης είναι σε θέση να διαπιστώσει αν έχει γίνει λάθος σε ένα από τα ψηφία της λέξης. Αν τώρα χρησιμοποιήσουμε κάποιον άλλο κανόνα, μπορούμε να δημιουργήσουμε ένα σύνολο λέξεων το οποίο θα μας δίνει τη δυνατότητα όχι μόνο να ανιχνεύουμε κάποια λάθη αλλά και να διορθώνουμε κάποια από αυτά. Έστω για παράδειγμα ότι χρησιμοποιούμε έναν κανόνα επανάληψης σύμφωνα με τον οποίο κάθε λέξη 2 ψηφίων επαναλαμβάνεται 3 φορές, δημιουργώντας έτσι κωδικές λέξεις 6 ψηφίων. Το σύνολο όλων των έγκυρων λέξεων γίνεται τώρα: {000000, , , }. Αν ληφθεί για παράδειγμα η λέξη , με απλή αντιπαραβολή της με το σύνολο των γνωστών λέξεων του κώδικα, παρατηρείται ότι δεν ανήκει στο συγκεκριμένο λεξικό, δεν αποτελεί δηλαδή κωδική λέξη, άρα περιέχει ένα τουλάχιστον σφάλμα. Επεξεργάζοντας τώρα αυτή την λάθος λέξη και κάνοντας χρήση του γεγονότος ότι μια λέξη που έχει υποστεί κάποια αλλοίωση είναι πιο πιθανό να έχει προέλθει από μια έγκυρη κωδική λέξη με την οποία μοιάζει αρκετά και όχι από κάποια λέξη που διαφέρει σε πολλά ψηφία, μπορούμε να πούμε με μεγάλη πιθανότητα ότι η αρχικά απεσταλμένη λέξη είναι η και έχει υποστεί αλλοίωση το τέταρτο ψηφίο αυτής. Αυτό φυσικά απαιτεί έναν μηχανισμό που να συγκρίνει την ομοιότητα των λέξεων και να διαλέγει αυτή με τη μεγαλύτερη. Με τα παραπάνω παραδείγματα και χωρίς την απαιτούμενη μαθηματική ακρίβεια στις εκφράσεις μας παρουσιάσαμε τη γενική ιδέα της κωδικοποίησης και πως με βάση αυτή καταφέρνει ο δέκτης να επιτύχει την ανίχνευση ή και τη διόρθωση λαθών. Οι τεχνικές ή ισοδύναμα οι κώδικες που χρησιμοποιήθηκαν στα παραπάνω παραδείγματα είναι πολύ απλοί και δεν παρουσιάζουν πρακτικό ενδιαφέρον καθώς είναι αναποτελεσματικοί. Χρησιμοποιήθηκαν μόνο για να κάνουν εμφανή τα πλεονεκτήματα της κωδικοποίησης. Στην πράξη χρησιμοποιούνται πολύ και πιο πολύπλοκες τεχνικές οι οποίες εμφανίζουν εξαιρετική απόδοση που πλησιάζει το θεωρητικό όριο του Shannon. Θα πρέπει να αναφερθεί εδώ ότι η απόδοση ενός κώδικα είναι συνάρτηση της πολυπλοκότητας αυτού και μπορεί να εξαρτάται από πολλές παραμέτρους. Από το πλήθος των κωδίκων που συναντά κάποιος στη βιβλιογραφία γίνεται σαφές ότι δεν υπάρχει ένας κώδικας ο οποίος να 26

27 είναι κατάλληλος για όλες τις εφαρμογές, να παρουσιάζει τη βέλτιστη απόδοση, να συγκλίνει γρήγορα και να έχει τη μικρότερη πολυπλοκότητα όσον αφορά την υλοποίηση αυτού. Κώδικες οι οποίο έχουν χρησιμοποιηθεί κατά κόρον στο παρελθόν είναι οι: Hamming, CRC (σε δίκτυα υπολογιστών), BCH, Reed-Solomon (σε συσκευές αποθήκευσης όπως το CD), Turbo codes (σε ασύρματες και ενσύρματες εφαρμογές) και LDPC (σε πολλά ασύρματα και δορυφορικά πρότυπα επικοινωνιών). Οι τελευταίες δύο κατηγορίες κωδίκων αποτελούν το επίκεντρο της σύγχρονης επιστημονικής έρευνας καθώς παρουσιάζουν εξαιρετικά χαρακτηριστικά που τους καθιστούν πολύ ελκυστικούς. 27

28 28

29 ΚΕΦΑΛΑΙΟ 2ο LDPC ΚΩΔΙΚΕΣ Οι LDPC κώδικες είναι μια κατηγορία των κωδίκων διόρθωσης λαθών η οποία την τελευταία δεκαετία έχει λάβει πολύ μεγάλη προσοχή, κυρίως λόγω της εκπληκτικής τους διορθωτικής ικανότητας αλλά και του παραλληλισμού της διαδικασίας αποκωδικοποίησης, ο οποίος τους καθιστά κατάλληλους για υλοποιήσεις σε υλικό. Στο κεφάλαιο αυτό εξετάζουμε τα γενικά χαρακτηριστικά των κωδίκων αυτών, τις σημαντικότερες κατηγορίες καθώς και την απόδοση αυτών. 2.1 LDPC κώδικες Οι κώδικες LDPC [4] αποτελούν μία κατηγορία γραμμικών block κωδίκων (linear block codes). Οι κώδικες αυτοί που προτάθηκαν από τον R. G. Gallager το 1963 στη διδακτορική του διατριβή, δεν αξιοποιήθηκαν παρά μόνο στις αρχές της δεκαετίας του Ο λόγος για τον οποίο οι LDPC κώδικες είχαν κατά κάποιο τρόπο τεθεί στο περιθώριο, ήταν το υπερβολικά μεγάλο, για τα δεδομένα της εποχής, υπολογιστικό κόστος που απαιτούσαν, καθώς οι υπολογιστικές μηχανές της εποχής δεν ήταν σε θέση να ανταπεξέλθουν στην πολυπλοκότητα του αλγορίθμου στον οποίο βασίζονταν οι LDPC κώδικες. Με την αλματώδη όμως εξέλιξη της τεχνολογίας στα μέσα της δεκαετίας του 90 και τη μεγάλη ανάπτυξη της τεχνολογίας της πληροφορίας στράφηκε το ενδιαφέρον της αγοράς σε υψηλής απόδοσης κώδικες μετάδοσης δεδομένων, οι οποίοι παίζουν καθοριστικό ρόλο σε πλήθος παραγόντων που αφορούν τη 29

30 μετάδοση και έτσι το ενδιαφέρον στράφηκε ξανά στους κώδικες LDPC, αφού πλέον ήταν δυνατή η υλοποίηση αυτών. Επειδή, όπως είπαμε προηγουμένως, οι LDPC κώδικες είναι μια κατηγορία γραμμικών κωδίκων, θεωρούμε σκόπιμο στο σημείο αυτό να παρουσιάσουμε τα βασικά χαρακτηριστικά αυτών. 2.2 Γραμμικοί Block Κώδικες Γενικά, ένας οποιοσδήποτε κώδικας που χρησιμοποιείται για κωδικοποίηση καναλιού είναι μία συνάρτηση ή ισοδύναμα μια μία-προς-μία απεικόνιση στοιχείων από ένα σύνολο Α σε ένα σύνολο Β. Το σύνολο Α αποτελείται από τα στοιχεία τα οποία ονομάζουμε λέξεις πληροφορίας και συμβολίζουμε με ui όπου i= 1,2,,M, ενώ το σύνολο Β αποτελείται από τα στοιχεία τα οποία ονομάζουμε κωδικές λέξεις, ή codewords, και συμβολίζουμε με c i. Χωρίς βλάβη της γενικότητας, θεωρούμε ότι όλες οι λέξεις πληροφορίας έχουν σταθερό μήκος k ψηφίων. Το δυνατό πλήθος των λέξεων είναι Μ=2k (θεωρούμε ότι έχουμε δυαδικές λέξεις, δηλαδή τα ψηφία μπορούν να πάρουν την τιμή 0 ή 1). Εφόσον ορίσαμε τον κώδικα σαν μία-προς-μία απεικόνιση στοιχείων προκύπτει ότι και το πλήθος των κωδικών λέξεων θα είναι Μ. Γενικά όμως οι κωδικές λέξεις δεν είναι του ίδιου μήκους με τις λέξεις πληροφορίας αλλά μεγαλύτερου μήκους, έστω n, καθώς έχουν προστεθεί κάποια bits πλεονασμού. Συνεπώς, μόνο ένα μέρος (Μ για την ακρίβεια) των 2n δυνατών λέξεων (2n > 2k, αφού n>k) είναι κωδικές λέξεις, οι οποίες ονομάζονται έγκυρες κωδικές λέξεις. Γραμμικοί block κώδικες ονομάζονται οι κώδικες των οποίων το άθροισμα οποιονδήποτε έγκυρων κωδικών λέξεων είναι επίσης κωδική λέξη. Στην περίπτωση δυαδικού κώδικα αυτό σημαίνει πως το αποτέλεσμα της συνιστώσας-προς-συνιστώσα modulo-2 λογικής πράξης (ή ισοδύναμα XOR λογική) μεταξύ δύο κωδικών λέξεων, είναι επίσης κωδική λέξη. Μια πολύ χρήσιμη παρατήρηση είναι ότι σε όλους τους γραμμικούς κώδικες ανήκει η μηδενική λέξη, καθώς το άθροισμα μιας οποιασδήποτε έγκυρης κωδικής λέξης με τον εαυτό της μας δίνει τη μηδενική λέξη και σύμφωνα με τον ορισμό των γραμμικών κωδίκων, θα πρέπει και αυτή να είναι έγκυρη κωδική λέξη. Θεωρώντας το πρότυπο σύστημα επικοινωνιών που περιγράψαμε στο σχήμα 1.1, ο κωδικοποιητής καναλιού τροφοδοτείται από την έξοδο του κωδικοποιητή πηγής, ο οποίος παράγει σύμβολα με ένα σταθερό ρυθμό. Έτσι έχουμε στην έξοδο του κωδικοποιητή πηγής μια 30

31 συνεχόμενη ροή δεδομένων. Για τη λειτουργία όμως ενός γραμμικού block κωδικοποιητή, θα πρέπει η ροή αυτή να τεμαχιστεί σε πακέτα ή λέξεις σταθερού μήκους και μετά να επεξεργαστεί από τον κωδικοποιητή ενώ σε διαφορετικού τύπου κωδικοποιητές δεν είναι απαραίτητη η προϋπόθεση αυτή. Για αυτό το λόγο, γίνεται εμφανές ότι οι γραμμικοί block κώδικες οφείλουν το όνομά τους στο γεγονός ότι τα δεδομένα στην είσοδό τους πρέπει αυστηρώς να τεμαχίζονται σε λέξεις ή blocks σταθερού μήκους. Κατά απόλυτη αντιστοιχία, η έξοδος του κωδικοποιητή πηγής ενός γραμμικού block κώδικα είναι και αυτή στη μορφή λέξης σταθερού μήκους. Θεωρούμε ότι το μήκος της λέξης εισόδου στον κωδικοποιητή είναι k bits ενώ το μήκος της λέξης εξόδου είναι n bits, όπου k<n. Η μετατροπή της αρχικής λέξης των k bits (λέξη πληροφορίας) σε λέξη των n bits (κωδική λέξη) αποτελεί τη διαδικασία της κωδικοποίησης (encoding).αυτή πραγματοποιείται με την βοήθεια ενός k n δυαδικού πίνακα G, ο οποίος ονομάζεται γεννήτορας πίνακας του κώδικα. Η κωδική λέξη παράγεται με τον πολλαπλασιασμό της λέξης πληροφορίας με τον γεννήτορα πίνακα, κάτι το οποίο εκφράζεται με τον παρακάτω τύπο : ci = ui G Κάθε κωδική λέξη ci, λόγω του τρόπου δημιουργίας της που μόλις περιγράφηκε, έχει κάποια ιδιαίτερα χαρακτηριστικά. Αυτά μπορούμε να τα χαρακτηρίσουμε σαν την ικανοποίηση μιας σειράς εξισώσεων που ισοδύναμα καθορίζουν ποια από τις 2n δυνατές λέξεις μήκους n είναι έγκυρη κωδική λέξη. Συνθέτοντας όλες αυτές τις εξισώσεις που θα πρέπει να ικανοποιούν οι κωδικές λέξεις δημιουργούμε έναν πίνακα ο οποίος ονομάζεται πίνακας ελέγχου ισοτιμίας (parity check matrix) και συμβολίζεται με Η. Ο έλεγχος τώρα της εγκυρότητας μιας κωδικής λέξης γίνεται από την εξίσωση: ci H T = 0 Η επαναληπτική διαδικασία εύρεσης μιας κωδικής λέξης που να ικανοποιεί την παραπάνω εξίσωση αποτελεί τη διαδικασία της αποκωδικοποίησης, η οποία απαιτεί πολύ μεγαλύτερη υπολογιστική πολυπλοκότητα. 31

32 2.3 Αναπαράσταση LDPC κωδίκων Η αναπαράσταση των κωδίκων αυτών μπορεί να γίνει με δύο τρόπους. Είτε με τον πίνακα ελέγχου που περιγράφηκε παραπάνω, είτε με τη βοήθεια κάποιων γράφων οι οποίοι αναπαριστούν τη μετάδοση των μηνυμάτων και την ανταλλαγή της πληροφορίας μεταξύ των επεξεργαστικών μονάδων του κώδικα. Στη συνέχεια περιγράφουμε τις δύο αναπαραστάσεις ξεχωριστά: Στην αναπαράσταση του κώδικα με τον πίνακα ελέγχου ισοτιμίας, ο οποίος μπορεί να προσδιορίζει επακριβώς τον συγκεκριμένο κώδικα, έχουμε έναν δυαδικό πίνακα διαστάσεων ((n-k) x n) με το χαρακτηριστικό ότι έχει πολύ λίγα στοιχεία ίσα με τη μονάδα. Είναι δηλαδή αραιός. Ένα παράδειγμα ενός τέτοιου πίνακα φαίνεται στην παρακάτω εικόνα: Σχήμα 2.1: Πίνακας ελέγχου ισοτιμίας ενός LDPC κώδικα Κάθε γραμμή του πίνακα H αντιστοιχεί σε μία εξίσωση ελέγχου ισοτιμίας (parity check) και κάθε άσσος στη θέση (i,j) του πίνακα H, σημαίνει πως το j-στο σύμβολο δεδομένων συμμετέχει στην i-οστη εξίσωση ελέγχου ισοτιμίας. Δύο σημαντικά μεγέθη που πρέπει να λαμβάνονται υπόψη σε έναν πίνακα ελέγχου ισοτιμίας είναι το πλήθος των μη μηδενικών στοιχείων σε κάθε γραμμή του πίνακα, w r και το πλήθος των μη μηδενικών στοιχείων σε κάθε στήλη του πίνακα wc. Τα μεγέθη αυτά ονομάζονται βαθμός γραμμής και βαθμός στήλης αντίστοιχα. Για να μπορεί να χαρακτηριστεί ένας πίνακας ως χαμηλής-πυκνότητας πίνακας (low-density), θα πρέπει να ικανοποιούνται οι συνθήκες wc << n και wr << m. Για την ικανοποίηση των ανωτέρω 32

33 συνθηκών, ο πίνακας ελέγχου ισοτιμίας πρέπει να είναι αρκετά μεγάλος. Ο πίνακας που χρησιμοποιήσαμε παραπάνω δεν είναι αραιός αλλά χρησιμοποιείται μόνο για εποπτικούς λόγους. Ένας κώδικας LDPC του οποίου οι παράμετροι wc, wr είναι σταθερές για όλες τις στήλες και όλες τις γραμμές του πίνακα ισοτιμίας, όπως ο κώδικας του σχήματος 2.1, ονομάζεται κανονικός (regular). Υπάρχουν, ωστόσο, και κώδικες για τους οποίους δεν ισχύει κάτι τέτοιο. Αυτοί ανήκουν στην κατηγορία των μη κανονικών (irregular) κωδικών LDPC. Σε αυτή την περίπτωση, ο αριθμός των άσσων κάθε γραμμής ή κάθε στήλης, είναι συνάρτηση της γραμμής ή της στήλης, αντίστοιχα, και περιγράφεται συνήθως με συγκεκριμένα πολυώνυμα [9]. Αν και οι κανονικοί κώδικες έχουν απλούστερη υλοποίηση του αποκωδικοποιητή τους, οι μη κανονικοί κώδικες LDPC υπερτερούν ως προς την επίδοση. Ο δεύτερος τρόπος αναπαράστασης των LDPC κωδίκων προτάθηκε από τον Tanner [10], ο οποίος εισήγαγε τους γράφους Tanner και αποτελούν μια γραφική αναπαράσταση. Οι γράφοι Tanner (Tanner graphs) εκτός από το γεγονός ότι παρέχουν μία πλήρη περιγραφή του κώδικα, βοηθούν επίσης στην επεξήγηση του αλγόριθμου κωδικοποίησης που χρησιμοποιείται. Οι γράφοι Tanner ανήκουν στην κατηγορία των διμερών γράφων (bipartite graphs). Ένας γράφος ονομάζεται διμερής όταν οι κόμβοι του χωρίζονται σε δύο ομάδες και μόνο κόμβοι διαφορετικών ομάδων μπορούν να ενωθούν μεταξύ τους. Οι δύο τύποι κόμβων που υπάρχουν σε ένα γράφο Tanner για κώδικες LDPC ονομάζονται κόμβοι μεταβλητών (variable nodes), οι οποίοι συνήθως αναφέρονται ως VPUs και κόμβοι ελέγχου (check nodes), οι οποίοι συνήθως αναφέρονται ως CPUs. Ο γράφος Tanner ενός κώδικα σχεδιάζεται ακολουθώντας το εξής κανόνα: Ο i-οστός κόμβος ελέγχου συνδέεται με τον j-οστό κόμβο μεταβλητών μόνο όταν το στοιχείο hij του πίνακα ελέγχου ισοτιμίας, H, είναι ίσο με 1. Μπορούμε να συμπεράνουμε ότι ο γράφος περιλαμβάνει m = n-k κόμβους ελέγχου, έναν για κάθε ψηφίο ελέγχου, και n κόμβους μεταβλητών, έναν για κάθε ψηφίο της κωδικής λέξης. Επιπλέον, οι m γραμμές του πίνακα H ορίζουν m συνδέσεις κόμβων ελέγχου και οι n στήλες ορίζουν n συνδέσεις 33

34 κόμβων μεταβλητών. Στο σχήμα που ακολουθεί παρουσιάζεται ο γράφος του κώδικα που αντιστοιχεί στον πίνακα H του προηγούμενου σχήματος. Σχήμα 2.2: Γραφική αναπαράσταση ενός LDPC κώδικα με τη Βοήθεια του Tanner graph Ένα πολύ σημαντικό χαρακτηριστικό ενός διαγράμματος Tanner είναι η ύπαρξη κύκλων. Ένας κύκλος μήκους g είναι μία κλειστή διαδρομή η οποία περιλαμβάνει g το πλήθος ακμές. Η παρουσία κύκλων στο διάγραμμα Tanner ενός κώδικα είναι ανεπιθύμητη, διότι περιορίζει την απόδοση της αποκωδικοποίησης [11], πλην όμως ανέφικτη, καθώς η απουσία κύκλων προϋποθέτει απόλυτη ανεξαρτησία μεταξύ των bits που ελέγχει η κάθε γραμμή του πίνακα ισοτιμίας. Δεδομένου ότι η αποφυγή των κύκλων δεν είναι δυνατή, επιδιώκεται η παρουσία κύκλων με το μέγιστο δυνατό μήκος. Το μήκος όμως των κύκλων είναι ανάλογο των διαστάσεων του πίνακα ισοτιμίας, γεγονός που θέτει όρια στο μέγιστο δυνατό τους μήκος. Ο μικρότερος κύκλος που μπορεί να εμφανισθεί είναι ένας κύκλος μήκους 4. Το μήκος του μικρότερου κύκλου ενός κώδικα είναι εκείνο που μας ενδιαφέρει κυρίως, και για το λόγο αυτό αποτελεί χαρακτηριστικό του κώδικα και ονομάζεται girth. 34

35 2.4 Κατηγορίες LDPC κωδίκων Μέχρι στιγμής, οι πίνακες ισοτιμίας Η που παρουσιάσαμε, οι οποίοι χαρακτηρίζουν έναν μοναδικό κώδικα, δεν υπακούν σε κάποιο ειδικό κριτήριο κατασκευής, δηλαδή τοποθέτησης των άσσων στον πίνακα. Πολλές εργασίες [12] έχουν εκπονηθούν για τον τρόπο δημιουργίας του πίνακα ισοτιμίας και την καταλληλότερη τοποθέτηση των άσσων ώστε να επιτυγχάνεται η βέλτιστη διορθωτική απόδοση του πίνακα. Μια από τις τεχνικές οι οποίες παράγουν εξαιρετικά καλούς πίνακες ισοτιμίας είναι η τυχαία τοποθέτηση των άσσων, με προϋπόθεση πάντοτε να μη δημιουργούνται κύκλοι μικρού μήκους. Παρόλο που αυτή η μέθοδος καταλήγει σε πολύ αποδοτικούς πίνακες ισοτιμίας, η υλοποίηση αυτών σε υλικό είναι αρκετά δύσκολη λόγω της τυχαίας σύνδεσης των επιμέρους επεξεργαστικών μονάδων. Αυτό επιτείνει το πρόβλημα διασύνδεσης κατά τη διάρκεια της υλοποίησης του κωδικοποιητή και του αποκωδικοποιητή καναλιού. Σχήμα 2.3: Πίνακας ελέγχου ισοτιμίας δημιουργημένος με τυχαίο τρόπο Για αυτό το λόγο, έχουν προταθεί τρόποι δημιουργίας πινάκων ελέγχου ισοτιμίας οι οποίοι εμφανίζουν κάποια μορφή κανονικότητας στη μετάδοση των ενδιάμεσων μηνυμάτων μεταξύ των κόμβων [13]. Η υιοθέτηση δομής από τους πίνακες όμως έχει σαν αποτέλεσμα μια μικρή μείωση στην απόδοση του κώδικα τον οποίο αντιπροσωπεύουν. Πολλές φορές όμως το πλεονέκτημα που αποκτούν οι πίνακες αυτοί σχετικά με την καταλληλότητά τους ως προς την υλοποίηση σε υλικό τους καθιστά ιδιαίτερα ελκυστικούς. 35

36 Μια ειδική κατηγορία LDPC κωδίκων, σύμφωνα με την παραπάνω λογική, είναι η κατηγορία των κυκλικών κωδίκων [14]. Γενικά κυκλικός ονομάζεται κάποιος γραμμικός κώδικας του οποίου οποιαδήποτε κυκλικά μετατοπισμένη κατά αυθαίρετο αριθμό κωδική λέξη είναι επίσης κωδική λέξη του ίδιου κώδικα. Λαμβάνοντας υπόψη το χαρακτηριστικό αυτό, η μορφή ενός πίνακα ελέγχου ισοτιμίας ενός κυκλικού κώδικα θα έχει τη μορφή που φαίνεται στο σχήμα 2.4, η οποία μπορεί να θεωρηθεί ως η υπέρθεση πολλών μετατοπισμένων μοναδιαίων πινάκων. Ο περιορισμός σε αυτή τη μορφή τετραγωνικού πίνακα επιφέρει μια μικρή μείωση στην απόδοση του κώδικα αλλά οδηγεί σε γραμμική πολυπλοκότητα κωδικοποίησης σε σχέση με το μήκος της λέξης και για την υλοποίηση σε υλικό του κώδικα αυτού μπορούν να χρησιμοποιηθούν καταχωρητές ολίσθησης, αντικαθιστώντας πολύπλοκα κυκλώματα και διασυνδέσεις. Σχήμα 2.4: Πίνακας ελέγχου ισοτιμίας ενός κυκλικού κώδικα Μια άλλη γενικότερη κατηγορία LDPC κωδίκων, οι οποίοι χρησιμοποιούνται σε αρκετές σύγχρονες τηλεπικοινωνιακές εφαρμογές, είναι οι λεγόμενοι Quasi-Cyclic κώδικες. Ένας κώδικας λέμε ότι ανήκει σε αυτή την κατηγορία αν κάθε κυκλικά μετατοπισμένη κωδική λέξη κατά ένα συγκεκριμένο αριθμό είναι επίσης κωδική λέξη του κώδικα αυτού. Ο παραπάνω ορισμός υποδεικνύει (αποδεικνύεται και μαθηματικά [14]) ότι ο πίνακας ελέγχου ισοτιμίας ενός τέτοιου κώδικα θα αποτελείται από επιμέρους τετραγωνικούς κυκλικούς πίνακες. Στους υποπίνακες αυτούς δεν αποκλείεται να είναι και ο μηδενικός πίνακας. 36

37 Σχήμα 2.5: Πίνακας ελέγχου ισοτιμίας ενός Quasi-Cyclic κώδικα Μια συμπαγής αναπαράσταση αυτών των πινάκων είναι να συμβολίζουμε κάθε κυκλικό υποπίνακα με ένα σύνολο ακέραιων θετικών αριθμών που αντιπροσωπεύουν το βαθμό μετατόπισης των μοναδιαίων πινάκων από τους οποίους συντίθεται κάθε κυκλικός πίνακας και με έναν ακέραιο αρνητικό αριθμό κάθε μηδενικό υποπίνακα. Ένα παράδειγμα αυτής της αναπαράστασης φαίνεται στην παρακάτω εικόνα: Σχήμα 2.6: Quasi-Cyclic πίνακας και η αντίστοιχη συνεπτυγμένη αναπαράσταση αυτού Μια ειδική κατηγορία Quasi-Cyclic κωδίκων είναι οι κώδικες των οποίων οι πίνακες ελέγχου ισοτιμίας αποτελούνται μόνο από κυκλικά μετατοπισμένους μοναδιαίους πίνακες και όχι 37

38 υπέρθεση μοναδιαίων πινάκων. Αυτή την κατηγορία κωδίκων τη συμβολίζουμε ως CPAstructured κώδικες. Το μεγάλο πλεονέκτημα αυτών των κωδίκων είναι η εξαιρετικά κατάλληλη μορφή των πινάκων ελέγχου ισοτιμίας, οι οποίοι οδηγούν σε εύκολα υλοποιούμενα κυκλώματα στη μεριά του αποκωδικοποιητή. Πιο συγκεκριμένα, για την επικοινωνία των variable και check κόμβων χρησιμοποιούνται ειδικά κυκλώματα (barrel shifters) τα οποία διευκολύνουν κατά πολύ τη μείωση του προβλήματος διασύνδεσης. Σχήμα 2.7: Πίνακας ελέγχου ισοτιμίας ενός CPA-structured κώδικα Αν επιτρέψουμε σε μερικούς από τους υποπίνακες που συνθέτουν τον πίνακα ελέγχου ισοτιμίας της παραπάνω κατηγορίας να είναι μηδενικοί πίνακες, τότε δημιουργούμε μια νέα υποκατηγορία κωδίκων, την οποία συμβολίζουμε ως CPA-like-structured κώδικες ή CPA*-structured κώδικες. Η δομή των πινάκων αυτών είναι ιδιαίτερα χρήσιμη καθώς κώδικες αυτής της μορφής χρησιμοποιούνται κατά κόρον σε εφαρμογές που απαιτείται πολύ υψηλό throughput όπως στα πρότυπα (WiFi), e(WiMax) και πολλά άλλα. Σχήμα 2.8: Πίνακας ελέγχου ισοτιμίας ενός CPA*-structured κώδικα 38

39 Συνοπτικά, όλες οι ειδικές κατηγορίες κωδίκων που περιγράψαμε και εμφανίζουν κάποια κανονικότητα στη δομή του πίνακα ελέγχου ισοτιμίας τους φαίνονται στο παρακάτω σχήμα: Σχήμα 2.9: Κατηγορίες κωδίκων με ειδική μορφή πίνακα ελέγχου ισοτιμίας 2.5 Απόδοση των LDPC κωδίκων Η εξαιρετική απόδοση των συγκεκριμένων κωδίκων αποτελεί ένα πολύ μεγάλο κίνητρο για την υιοθέτησή τους σε πληθώρα εφαρμογών και προτύπων επικοινωνιών. Στο παρακάτω διάγραμμα φαίνεται η πιθανότητα σφάλματος (BER) συναρτήσει του λόγου σήματος προς θόρυβο (SNR), όπως παρουσιάζεται στο [15]: 39

40 Σχήμα 2.10: Απόδοση ενός LDPC κώδικα Παρατηρούμε ότι σε περιοχές εξαιρετικά χαμηλού λόγου σήματος προς θόρυβο η απόδοση είναι κάτι παραπάνω από ικανοποιητική. Να σημειωθεί σε αυτό το σημείο ότι γενικά η απόδοση των κωδίκων εξαρτάται από πολλούς παράγοντες όπως η επιλογή του αλγόριθμου αποκωδικοποίησης, ο αριθμός των επαναλήψεων, το μήκος του κώδικα που χρησιμοποιείται, η fixed-point αναπαράσταση των μηνυμάτων και αρκετές άλλες παραμέτρους. Στη συνέχεια ακολουθούν κάποια διαγράμματα [16] τα οποία δείχνουν την επίδραση των παραγόντων αυτών στη συνολική απόδοση του κώδικα. 40

41 Σχήμα 2.11: Απόδοση για ένα δεδομένο κώδικα συναρτήσει διαφορετικών αλγορίθμων αποκωδικοποίησης Σχήμα 2.12: Απόδοση ενός LDPC κώδικα 1536 bits συναρτήσει διαφορετικού αριθμού μέγιστων επαναλήψεων του αλγόριθμου αποκωδικοποίησης 41

42 Σχήμα 2.13: Απόδοση ενός LDPC κώδικα 768 bits συναρτήσει χρησιμοποιώντας διαφορετικό αριθμό ψηφίων για την αναπαράσταση των μηνυμάτων 42

43 ΚΕΦΑΛΑΙΟ 3ο ΑΛΓΟΡΙΘΜΟΙ ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗΣ ΚΩΔΙΚΩΝ LDPC Στο κεφάλαιο αυτό παρουσιάζουμε τους βασικούς αλγόριθμους που χρησιμοποιούνται στην αποκωδικοποίηση των κωδίκων LDPC, τονίζοντας τα βασικά χαρακτηριστικά τους καθώς και την καταλληλότητά τους όσον αφορά την υλοποίηση. Η απαίτηση για πολύ αποδοτικούς αλγορίθμους και ταυτόχρονα εύκολους υλοποιήσιμους είναι αντιφατική και χρειάζεται μια πολύ καλή γνώση τόσο των λεπτομερειών των κωδίκων όσο και των απαιτήσεων της εκάστοτε εφαρμογής για την επίτευξη του βέλτιστου αποτελέσματος. Εξαιρετικά αποδοτικοί αλγόριθμοι απαιτούν πολύ μεγάλη πολυπλοκότητα κάτι το οποίο δεν είναι πάντα επιθυμητό ή και επιτρεπτό σε πραγματικές υλοποιήσεις. 3.1 Αλγόριθμοι αποκωδικοποίησης Η κατηγορία των αλγόριθμων αποκωδικοποίησης που χρησιμοποιούνται για να αποκωδικοποιήσουν LDPC κώδικες ονομάζονται message-passing αλγόριθμοι καθώς η λειτουργία τους μπορεί να περιγραφεί από την διαδοχική ανταλλαγή μηνυμάτων μεταξύ των 2 ειδών κόμβων του αποκωδικοποιητή, των check και των variable κόμβων [12]. Με αυτό τον τρόπο ο αποκωδικοποιητής, έχοντας μια αρχική εκτίμηση από το κανάλι για τα πληροφοριακά ψηφία και εκτελώντας κάποιους υπολογισμούς σε αυτούς τους κόμβους, βελτιώνει την εκτίμησή του με κριτήριο πάντα να ικανοποιηθούν όλες οι εξισώσεις ελέγχου ισοτιμίας. Συνεπώς, οι 43

44 αλγόριθμοι αποκωδικοποίησης LDPC κωδίκων είναι επαναληπτικοί αλγόριθμοι οι οποίοι εκτελώντας διαδοχικά κάποιες πράξεις στους κόμβους προσπαθούν να ανακαλύψουν την απεσταλμένη λέξη, δηλαδή να συγκλίνουν μετά από έναν αριθμό επαναλήψεων σε έγκυρες κωδικές λέξεις. Παρατηρούμε ότι υπάρχει μια απόλυτη αντιστοιχία μεταξύ του κυκλώματος που θα μπορούσε να υλοποιήσει τους message-passing αλγόριθμους και του διαγράμματος Tanner ενός κώδικα. Το κύκλωμα αυτό θα μπορούσε να αποτελείται από δύο ειδών υπολογιστικές μονάδες, έναν τύπο για τους κόμβους ελέγχου (Check Processing Unit - CPU) και έναν για τους κόμβους μεταβλητής (Variable Processing Unit - VPU). Κάθε κόμβος του διαγράμματος Tanner αντιστοιχεί σε μία επεξεργαστική μονάδα του αντίστοιχου τύπου. Μεταξύ των δύο τύπων υπολογιστικών μονάδων ανταλλάσσονται εκτιμήσεις-μηνύματα, τις οποίες και επεξεργάζονται. Η διαδικασία αυτή είναι επαναληπτική. Ο τρόπος επεξεργασίας των εκτιμήσεων καθορίζεται από τον χρησιμοποιούμενο αλγόριθμο αποκωδικοποίησης. Στη συνέχεια φαίνονται οι 2 φάσεις της διαδικασίας αποκωδικοποίησης με τη βοήθεια του Tanner διαγράμματος. Σχήμα 3.1: 1η φάση της διαδικασίας επανάληψης ενός αλγόριθμου αποκωδικοποίησης 44

45 Σχήμα 3.2: 2η φάση της διαδικασίας επανάληψης ενός αλγόριθμου αποκωδικοποίησης Υπάρχουν πολλές κατηγορίες message-passing αλγορίθμων ανάλογα με τις διεργασίες που εκτελούνται σε κάθε κόμβο και την δομή των μηνυμάτων που αποστέλλονται ανάμεσα σε αυτούς, δίνοντας έτσι ένα trade-off μεταξύ απόδοσης και κόστους υλοποίησης του αλγόριθμου αποκωδικοποίησης. Ανάλογα με τις απαιτήσεις της εκάστοτε εφαρμογής θα πρέπει να επιλέγεται ο κατάλληλος αλγόριθμος με σκοπό την επίτευξη του επιθυμητού αποτελέσματος. Γίνεται λοιπόν σαφές πως η επιλογή του αλγόριθμου είναι καθοριστική τόσο για τη συνολική απόδοση του αποκωδικοποιητή όσο και για τις απαιτήσεις υλοποίησης αυτού. Ακόμη και μετά την επιλογή του αλγορίθμου, όπως θα γίνει σαφές στη συνέχεια, υπάρχουν πολλές παράμετροι οι οποίες απαιτούνται να καθοριστούν και έχουν πολύ μεγάλη σημασία. Μια πρώτη διάκριση των αλγορίθμων αποκωδικοποίησης LDPC κωδίκων γίνεται με βάση το κριτήριο αν τα μηνύματα που ανταλλάσσονται μεταξύ check και variable κόμβων καθώς και η πληροφορία από το κανάλι κβαντίζονται σε ποσότητες του ενός bit ή έχουν μεγαλύτερη ακρίβεια. Στην πρώτη περίπτωση οι αλγόριθμοι αποκωδικοποίησης, οι οποίοι ονομάζονται bit-flipping αλγόριθμοι, λέμε ότι διαχειρίζονται hard information, με τη λογική ότι η ποσότητα του ενός bit μπορεί να αντιπροσωπεύσει μόνο 2 τιμές, το λογικό 0 και 1. Έτσι, λαμβάνοντας κάποια τιμή από το κανάλι η οποία αντιπροσωπεύει την τιμή του αντίστοιχου ψηφίου, κρατάμε μόνο το πιο σημαντικό ψηφίο αυτής και ξεκινούμε τη διαδικασία της αποκωδικοποίησης. Για παράδειγμα, σε κανάλι με διαμόρφωση BPSK, έστω ότι στέλνουμε διαδοχικά τα εξής 3 ψηφία: +1, -1 και +1. Στο δέκτη, λόγω του θορύβου κατά τη μετάδοση, λαμβάνουμε τις εξής αλλοιωμένες τιμές 45

46 των ψηφίων: +0.86, και Σε αυτή την κατηγορία κωδίκων αποκωδικοποίησης πρέπει να κρατήσουμε μόνο ένα ψηφίο για την αναπαράσταση της αρχικής πληροφορίας. Αυτό επιτυγχάνεται κρατώντας μόνο το πρόσημο της κάθε τιμής. Φυσικά, η ενέργεια αυτή έχει ως αποτέλεσμα να μην αξιοποιήσουμε όλη τη ληφθείσα πληροφορία, με συνέπεια μια υποβάθμιση στην απόδοση του αλγορίθμου. Με αυτή τη μέθοδο όμως προκύπτουν κυκλώματα αποκωδικοποιητών τα οποία εμφανίζουν μικρότερη πολυπλοκότητα και λιγότερες απαιτήσεις σε επιφάνεια ολοκλήρωσης (επεξεργαστικές μονάδες, μνήμες κ.α.) σε σχέση με τους αλγόριθμους της επόμενης κατηγορίας. Στην δεύτερη περίπτωση, κατά απόλυτη αντιστοιχία, λέμε ότι οι αλγόριθμοι διαχειρίζονται soft information καθώς η ποσότητα της μεταβιβαζόμενης πληροφορίας-μήνυμα από το κανάλι στον αποκωδικοποιητή και μεταξύ των επεξεργαστικών μονάδων κβαντίζεται σε περισσότερα επίπεδα χρησιμοποιώντας περισσότερα ψηφία. Η απόδοση των αλγορίθμων αυτών είναι σαφώς ανώτερη αυτής των αλγορίθμων της πρώτης κατηγορίας καθώς αξιοποιούν μεγαλύτερο μέρος της αρχικής πληροφορίας, απαιτούν όμως πολύ μεγαλύτερη υπολογιστική ισχύ για να εκτελεστούν κάτι το οποίο οδηγεί σε μεγαλύτερο αριθμό υπολογιστικών μονάδων και απαιτούμενης μνήμης. Οι bit-flipping αλγόριθμοι χρησιμοποιούνται σε εφαρμογές που απαιτούν πολύ μικρή πολυπλοκότητα από την πλευρά της υλοποίησης. Στην παρούσα διπλωματική, λόγω της απαίτησης για υψηλής απόδοσης επικοινωνίες, εξετάζουμε μόνο τους αλγόριθμους της δεύτερης κατηγορίας. Στις επόμενες παραγράφους παρουσιάζουμε τους 3 βασικότερους message-passing αλγόριθμους. Κάθε ένας από αυτούς τους αλγόριθμους είναι επαναληπτικοί και διακρίνονται σε 4 στάδια. Το πρώτο στάδιο είναι η αρχικοποίηση των μηνυμάτων (Qvc) βάσει της πληροφορίας που δέχεται ο αποκωδικοποιητής από το κανάλι. Το δεύτερο στάδιο περιλαμβάνει τον υπολογισμό των μηνυμάτων (Rcv) που θα στείλουν οι check nodes στους variable nodes. Στο τρίτο στάδιο γίνεται ο υπολογισμός των μηνυμάτων (Qvc) τα οποία οι variable nodes θα στείλουν στους check nodes. Το τέταρτο και τελευταίο στάδιο συνίσταται στην λήψη μιας απόφασης σχετικά με την τιμή κάθε bit και έπειτα τον έλεγχο της εγκυρότητας όλης της λέξης. Σε περίπτωση εύρεσης σωστής λέξης ο αλγόριθμος σταματά ενώ, σε αντίθετη περίπτωση, επαναλαμβάνονται τα 4 στάδια έως ότου βρεθεί έγκυρη λέξη ή εκτελεστεί ένας προκαθορισμένος αριθμός επαναλήψεων. 46

47 3.2 Αλγόριθμος Sum-Product in Log-Domain Ο πρώτος αλγόριθμος, ο οποίος ονομάζεται Sum-Product in Log-Domain, υλοποιείται στο πεδίο των λογαρίθμων καθώς με αυτό τον τρόπο μπορούμε να μετατρέψουμε τους πολλαπλασιασμούς σε προσθέσεις, κάτι το οποίο διευκολύνει πάρα πολύ την υλοποίηση του συγκεκριμένου αλγορίθμου. Για την περίπτωση καναλιού AWGN και διαμόρφωσης BPSK, αποτελείται από τα εξής βήματα: Αρχικοποίηση των μηνυμάτων Qvc: Qvc0 = log p ( x = 0 yn ) = LLRv, p ( x = 1 yn ) όπου yc είναι η τιμή του λαμβανόμενου συμβόλου. Υπολογισμός των μηνυμάτων Rcv: Υπολογισμός του μηνύματος Rncv, τo οποίο στέλνει ο check node c στον variable node v κατά τη n-ιοστή επανάληψη του αλγορίθμου: Rcvn = sign(qvn' c1 ) * Φ( v ' Svc ( : v ) v ' Svc ( : v ) Φ(Qvn' c1 )), c όπου v ' S v ( : c ) συμβολίζει το σύνολο των variable nodes, εκτός του v, με τους οποίους συνδέεται ο check node c. Η συνάρτηση Φ() είναι μια σύνθετη συνάρτηση η οποία δίνεται από τη σχέση: Φ ( x) = log(tanh( x ex + 1 )) = log ( x ) 2 e 1 Η υλοποίηση της σχέσης αυτής σε υλικό είναι σχετικά πολύπλοκη, κάτι που αυξάνει αρκετά το βαθμό πολυπλοκότητας του check node. Για αυτό το λόγο συχνά προτιμάται να υλοποιηθεί με τη χρήση μνημών (Look-up-tables), μειώνοντας αισθητά την πολυπλοκότητα. Λόγω όμως της 47

48 συμμετρίας που παρουσιάζει και η οποία φαίνεται στο παρακάτω διάγραμμα [17], η απαιτούμενη μνήμη για την υλοποίηση αυτής υποδιπλασιάζεται. Σχήμα 3.3: Γραφική παράσταση της συνάρτησης Φ(). Υπολογισμός των μηνυμάτων Qvc: Υπολογισμός του μηνύματος Qnvc, τo οποίο στέλνει ο variable node v στον check node c κατά τη n-ιοστή επανάληψη του αλγορίθμου: Qvcn = LLRv + όπου v c ' S c (~ c ) c ' Scv (~ c ) Rcn' v, συμβολίζει το σύνολο των check nodes, εκτός του c, με τους οποίους συνδέεται ο variable node v. 48

49 Λήψη απόφασης Ο κάθε variable node, ο οποίος αντιστοιχεί σε ένα bit, εξάγει μια εκτίμηση σύμφωνα με τη σχέση: Qv = R c ' Scv n c 'v + LLRv όπου λαμβάνονται υπόψη όλα τα μηνύματα τα οποία λαμβάνει ο variable node. Βάσει της τιμής της ποσότητας Qv παίρνεται μία hard απόφαση, και συγκεκριμένα : bv = 1, Qv 0 ή bv = 0, Qv 0. Αντίστοιχη απόφαση λαμβάνεται για όλα τα bits της κωδικής λέξης. Σε περίπτωση που η προκύπτουσα κωδική λέξη είναι έγκυρη ο αλγόριθμος τερματίζει και η συγκεκριμένη κωδική λέξη αποτελεί την αποκωδικοποιημένη. Διαφορετικά, επαναλαμβάνεται η διαδικασία από το στάδιο του υπολογισμού των μηνυμάτων των check nodes. 3.3 Αλγόριθμος Min-Sum Ο αλγόριθμος Min-Sum(MS) διαφέρει από τον log SP μόνο στο στάδιο του υπολογισμού των μηνυμάτων των check nodes Η συνάρτηση Φ, είναι μία γνησίως φθίνουσα συνάρτηση. Όπως φαίνεται και από το Σχήμα 3.2, για μικρές τιμές του ορίσματος εισόδου της, παίρνει μεγάλες τιμές, ενώ για μεγαλύτερες εισόδους παίρνει πολύ μικρότερες τιμές. Λόγω αυτής της ιδιότητας, στο άθροισμα της σχέσης (3.2) κυριαρχεί το μικρότερο από τα μηνύματα Qvc. Μπορούμε, επομένως, να απλοποιήσουμε το άθροισμα προσεγγίζοντάς το με τον μικρότερο από τους όρους του. Έτσι οδηγούμαστε στη σχέση υπολογισμού των μηνυμάτων από τους check nodes στους variable nodes: 49

50 Rcvn = sign(qvn' c1 ) * Φ ( n 1 sign(qvn' c1 ) * min ( Q v 'c ) c v ' Svc ( : v ) Rcvn = v ' Svc ( : v ) v ' Svc ( : v ) Φ (Qvn' c1 )) v ' Sv ( : v ) Τα υπόλοιπα στάδια του αλγόριθμου είναι ακριβώς ίδια με αυτά του Sum-Product.. Η προσέγγιση που κάναμε στην παραπάνω σχέση έχει προφανώς επίπτωση στην απόδοση του αποκωδικοποιητή μας αλλά μας απαλλάσσει από την απαιτητική ως προς την υλοποίηση συνάρτηση Φ(). 3.4 Αλγόριθμος Modified-Min-Sum Παρατηρώντας με ακρίβεια την προσέγγιση: Φ( v ' Svc ( : v ) Φ(Qvn' c1 )) min ( Qvn' c1 ) c v ' Sv ( : v ) και κάνοντας χρήση της γραφικής παράστασης της Φ(), διαπιστώνουμε ακόμη και διαισθητικά ότι η προσέγγιση αυτή είναι μια υπερεκτίμηση της αρχικής ποσότητας. Αυτό όπως είπαμε, προκαλεί τη μείωση της απόδοσης του Min-Sum αλγορίθμου σε σχέση με αυτή του SumProduct. Για αυτό το λόγο μπορούμε να κάνουμε ένα scaling στην ποσότητα αυτή, προσεγγίζοντας με αυτό τον τρόπο την αρχική ποσότητα και μειώνοντας έτσι την απώλεια απόδοσης. Συνεπώς, η τροποποιημένη σχέση που γίνεται ο υπολογισμός των μηνυμάτων από τους check nodes στους variable nodes δίνεται από την παρακάτω σχέση: Rcvn = v ' Svc ( : v ) sign(qvn' c1 ) *(a * min ( Qvn' c1 )), c v ' Sv ( : v ) όπου α είναι η παράμετρος που κάνουμε το scaling. Πολλές εργασίες έχουν γίνει για τον προσδιορισμό της ποσότητας αυτής και έχουν δείξει ότι μια τιμή κοντά στο 0.8 οδηγεί σε αρκετά ικανοποιητικά αποτελέσματα. Η βέλτιστη τιμή της παραμέτρου αυτής όμως θα πρέπει να 50

51 βρίσκεται κατόπιν εξομοιώσεων για κάθε αλγόριθμο καθώς εξαρτάται από τα συγκεκριμένα χαρακτηριστικά αυτού. Μια συγκριτική μελέτη των παραπάνω αλγορίθμων φαίνεται στο παρακάτω σχήμα [16] στο οποίο παρουσιάζονται οι αποδόσεις των 3 αλγορίθμων που μόλις περιγράψαμε: Σχήμα 3.4: Σύγκριση της διορθωτικής ικανότητας των αλγορίθμων αποκωδικοποίησης Άξιο αναφοράς είναι η πολύ καλή απόδοση του αλγορίθμου Modified-Min-Sum ο οποίος βρίσκεται πολύ κοντά στον Sum-Product στις χαμηλές τιμές (κάτω από 2 db) του λόγου σήματος προς θόρυβο και είναι καλύτερος για μεγαλύτερες τιμές. Αυτό εξηγείται από το γεγονός ότι η συνάρτηση Φ() (και κατά συνέπεια ο αλγόριθμος Sum-Product) είναι ευαίσθητη σε σφάλματα κβαντισμού και έτσι, λόγω του περιορισμένου εύρους αναπαράστασης, ο αλγόριθμος Sum-Product είναι ελαφρός χειρότερος του Modified-Min-Sum. 51

52 52

53 ΚΕΦΑΛΑΙΟ 4ο ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΥΛΟΠΟΙΗΣΗΣ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΩΝ LDPC Στο κεφάλαιο αυτό παρουσιάζουμε τις βασικές αρχιτεκτονικές υλοποίησης αποκωδικοποιητών LDPC. Ένα από τα μεγάλα πλεονεκτήματα των κωδίκων αυτών είναι ο παραλληλισμός της διαδικασίας αποκωδικοποίησης. Αυτό έχει σαν αποτέλεσμα, ανάλογα με το βαθμό παραλληλισμού του αποκωδικοποιητή, να έχουμε και διαφορετικές αρχιτεκτονικές. Η επιλογή του βαθμού παραλληλισμού και κατ επέκταση της αρχιτεκτονικής καθορίζει κατά μεγάλο μέρος το throughput του αποκωδικοποιητή, την πολυπλοκότητα, την ευελιξία, την κατανάλωση ενέργειας καθώς και την απαιτούμενη επιφάνεια ολοκλήρωσης αυτού. Πολύ καλή γνώση των αρχιτεκτονικών αυτών οδηγεί σε μια κατάλληλα καθορισμένη υλοποίηση η οποία ικανοποιεί τις απαιτήσεις της εφαρμογής. 4.1 Αρχιτεκτονικές αποκωδικοποιητών LDPC Ένας LDPC decoder ο οποίος υλοποιεί κάποιον από τους message-passing αλγορίθμους που περιγράψαμε στο προηγούμενο κεφάλαιο μπορεί να υλοποιηθεί σειριακά,πλήρως παράλληλα ή και μερικώς παράλληλα. Ο αριθμός και οι συνδέσεις μεταξύ των επεξεργαστικών μονάδων καθορίζουν τον παραλληλισμό της εκάστοτε αρχιτεκτονικής, ο οποίος αποτελεί ρυθμιστικό 53

54 παράγοντα του trade-off μεταξύ απαιτούμενης επιφάνειας (area), ταχύτητας αποκωδικοποίησης (throughput), κατανάλωσης ενέργειας (energy consumption) και ευελιξίας (flexibility) [11]. Ένα από τα μεγάλα πλεονεκτήματα των αποκωδικοποιητών LDPC, οι οποίοι θεωρούνται εξαιρετικά κατάλληλοι για υλοποιήσεις σε υλικό, είναι η δυνατότητα επιλογής του βαθμού παραλληλισμού ανάλογα με τις απαιτήσεις της εκάστοτε εφαρμογής. Λέγοντας παραλληλισμό εννοούμε το ποσοστό των variable και check κόμβων τους οποίους υλοποιούμε στο υλικό σε σχέση με το συνολικό αριθμό αυτών. Έτσι, ανάλογα με το βαθμό παραλληλισμού της κάθε υλοποίησης, οδηγούμαστε στις ακόλουθες κατηγορίες αρχιτεκτονικών τις οποίες περιγράφουμε στη συνέχεια. 4.2 Πλήρως παράλληλη υλοποίηση Στο ένα άκρο βρίσκονται οι πλήρως παράλληλες υλοποιήσεις. Μια αρχιτεκτονική αυτής της κατηγορίας ουσιαστικά αντιστοιχεί σε υλοποίηση σε υλικό όλων των variable και check κόμβων του διαγράμματος Tanner καθώς και σε απευθείας σύνδεση όλων των κόμβων που ορίζουν οι ακμές του διαγράμματος [17]. Το μεγάλο πλεονέκτημα των αρχιτεκτονικών αυτών είναι ότι οδηγούν σε υλοποιήσεις με εξαιρετικά υψηλό throughput. Αυτό το επιτυγχάνουν καθώς χρειάζονται μόνο δύο κύκλους ρολογιού για την εκτέλεση μιας πλήρης επανάληψης. Έναν κύκλο για τον υπολογισμό των variable-προς-check μηνυμάτων και έναν για τον υπολογισμό των check-προς-variable μηνυμάτων. Έτσι επιτυγχάνουν το μέγιστο throughput από όλες τις αρχιτεκτονικές. Επίσης οι πλήρως παράλληλες αρχιτεκτονικές δεν έχουν μεγάλες απαιτήσεις σε μνήμη καθώς η αποστολή των μηνυμάτων γίνεται αμέσως δίχως να χρειάζεται να αποθηκευτούν σε ενδιάμεσες θέσεις μνήμης. Ακόμη, η κεντρική μονάδα ελέγχου είναι σχετικά μικρής πολυπλοκότητας καθώς είναι επιφορτισμένη κυρίως με τον έλεγχο για εγκυρότητα της αποκωδικοποιούμενης λέξης και όχι με την διευθυνσιοδότηση μηνυμάτων από και προς τους διάφορους κόμβους. Μειονέκτημα της αρχιτεκτονικής αυτής είναι ότι απαιτεί μεγάλη επιφάνεια ολοκλήρωσης καθώς υλοποιούνται όλοι οι κόμβοι του κώδικα. Επίσης, λόγω της απευθείας διασύνδεσης των κόμβων του κυκλώματος, η οποία πολλές φορές δεν παρουσιάζει κάποια ομοιομορφία, οι αρχιτεκτονικές αυτές εμφανίζουν πρόβλημα δρομολόγησης των καλωδίων πάνω στην επιφάνεια ολοκλήρωσης, κάνοντας εξαιρετικά δύσκολη τη σύνδεση των κόμβων του κυκλώματος και καταναλώνοντας ένα μεγάλο ποσοστό της επιφάνειας μόνο για αυτό το σκοπό. 54

55 Όπως αναφέραμε και προηγουμένως, μια πλήρως παράλληλη υλοποίηση υλοποιεί όλες τις επεξεργαστικές μονάδες ενός διαγράμματος Tanner. Συνεπώς παρατηρούμε ότι υπάρχει μια ακριβής αντιστοιχία μεταξύ ενός συγκεκριμένου Tanner διαγράμματος και των επεξεργαστικών μονάδων και διασυνδέσεων που υπάρχουν στο υλικό. Σχήμα 4.1: Τanner διάγραμμα ενός κώδικα και το κύκλωμα αποκωδικοποίησης πλήρως παράλληλης αρχιτεκτονικής σε απόλυτη αντιστοιχία αυτού. Αυτό έχει σαν αποτέλεσμα οι πλήρως παράλληλες υλοποιήσεις να μη μπορούν να υποστηρίξουν διαφορετικούς κώδικες που αντιστοιχούν σε διαφορετικά ή παραπλήσια διαγράμματα Tanner 55

56 και έτσι να μην παρουσιάζουν το χαρακτηριστικό της ευελιξίας (flexibility), κάτι το οποίο είναι σε πολλές περιπτώσεις επιθυμητό. Συνεπώς γίνεται αντιληπτό ότι οι αρχιτεκτονικές αυτές είναι κατάλληλες για εφαρμογές όπου το κρίσιμο σημείο είναι η ταχύτητα αποκωδικοποίησης. Πρακτικά χρησιμοποιούνται κυρίως για κώδικες μέχρι 2000 bits μέγεθος λέξεις. Δε μπορούν όμως να θεωρηθούν η βέλτιστη λύση όταν απαιτείται ευελιξία στο κύκλωμα του αποκωδικοποιητή, όπως σε συστήματα ασύρματων δεκτών τα οποία πρέπει να προσαρμόζονται ανάλογα με τις συνθήκες του περιβάλλοντος στο οποίο βρίσκονται (διαφορετικά block lengths και rates). 4.3 Πλήρως σειριακή υλοποίηση Στην αντίθετη πλευρά, βρίσκονται οι πλήρως σειριακές υλοποιήσεις, στις οποίες έχουμε μόνο ένα check node και ένα variable node. Οι υλοποιήσεις αυτές εμφανίζουν τη μεγαλύτερη δυνατή ευελιξία καθώς μπορούν να υλοποιήσουν οποιοδήποτε κύκλωμα ενός αποκωδικοποιητή LDPC. Επίσης οι αρχιτεκτονικές αυτές απαιτούν τη μικρότερη επιφάνεια ολοκλήρωσης σε σχέση με τις άλλες αρχιτεκτονικές. Λόγω της δομής του κυκλώματος του αποκωδικοποιητή εμφανίζουν τη χαμηλότερη ταχύτητα αποκωδικοποίησης η οποία σε πολλές σύγχρονες εφαρμογές είναι απαγορευτικά μεγάλη για μια τέτοια αρχιτεκτονική υλοποίησης. Οι πλήρως σειριακές υλοποιήσεις προτιμώνται μόνο σε περιπτώσεις που υπάρχουν περιορισμένοι πόροι υλοποίησης, απαιτείται μεγάλος βαθμός ευελιξίας και η ταχύτητα αποκωδικοποίησης δεν είναι ένα από τα ζητούμενα σχεδίασης. 56

57 Σχήμα 4.2: Κύκλωμα αποκωδικοποίησης πλήρως σειριακής αρχιτεκτονικής 4.4 Ημιπαράλληλη αρχιτεκτονική Η ημιπαράλληλη αρχιτεκτονική συνίσταται από την υλοποίηση σε υλικό μόνο ενός μέρους των variable και check κόμβων από το σύνολο των κόμβων του Tanner διαγράμματος. Ο αριθμός των κόμβων αυτών ποικίλει ανάλογα με τις απατήσεις της εφαρμογής, καθορίζοντας το βαθμό παραλληλισμού του αποκωδικοποιητή, αλλά πάντοτε είναι μικρός σε σχέση με τους αριθμούς n και m, δηλαδή τις διαστάσεις του πίνακα ελέγχου ισοτιμίας Η. Στο σχήμα 4.3 φαίνεται το κύκλωμα ενός ημιπαράλληλου αποκωδικοποιητή, στον οποίο υπάρχουν υλοποιημένοι δύο check κόμβοι και τρεις variable κόμβοι. Οι αρχιτεκτονικές της κατηγορίας αυτής είναι κάτι ενδιάμεσο της πλήρως παράλληλης και της σειριακής υλοποίησης. Έτσι μπορεί και συνδυάζει όλα τα πλεονεκτήματα των δύο προηγούμενων αρχιτεκτονικών ανάλογα με το βαθμό του παραλληλισμού που επιλέγουμε κάθε φορά. 57

58 Σχήμα 4.3: Κύκλωμα αποκωδικοποίησης ημιπαράλληλης αρχιτεκτονικής 58

59 ΚΕΦΑΛΑΙΟ 5ο ΚΑΘΟΡΙΣΜΟΣ ΠΙΝΑΚΑ ΚΑΙ ΠΑΡΑΜΕΤΡΩΝ ΥΛΟΠΟΙΗΣΗΣ Στόχος της παρούσας διπλωματικής ήταν η μελέτη και υλοποίηση ενός high-throughput LDPC αποκωδικοποιητή καθώς και η αξιολόγηση όλων των παραμέτρων που θα οδηγήσουν στην κατασκευή ενός ανάλογου συστήματος στο μέλλον. Το πρότυπο, σύμφωνα με το οποίο επιλέχθηκε να αναπτυχθεί ο αποκωδικοποιητής, είναι το e (Mobile Wimax). Η πορεία σχεδιασμού του συστήματος αυτού φαίνεται στις επόμενες παραγράφους. 5.1 LDPC κώδικες και WiMax (802.16e) Το πρότυπο του WiMax, όπως περιγράφεται στο [7], προβλέπει να υπάρχουν κυκλώματα διόρθωσης λαθών για αύξηση της αξιόπιστης επικοινωνίας μεταξύ πομπού και δέκτη. Μεταξύ των πολλών σχημάτων κωδικοποίησης που περιγράφει, κυρίαρχη θέση έχουν οι LDPC κώδικες, λόγω της πολύ καλής απόδοσής τους καθώς και της καταλληλότητας τους για υλοποίηση σε υλικό, όπως έχουμε περιγράψει αναλυτικά στα προηγούμενα κεφάλαια. Μάλιστα, προβλέπεται από το πρότυπο ότι ανάλογα με το λόγο σήματος προς θόρυβο του περιβάλλοντος που βρίσκεται ο πομπός και ο δέκτης θα πρέπει να μπορεί να προσαρμόζεται το κύκλωμα διόρθωσης λαθών, μεταβάλλοντας μερικά από τα χαρακτηριστικά του. Πιο συγκεκριμένα, το πρότυπο ορίζει υποστήριξη λειτουργίας σύμφωνα με 6 διαφορετικά code rate και 18 διαφορετικά block lengths. 59

60 Σχήμα 5.1: Υποστηριζόμενα code rate και block lengths από το πρότυπο WiMax Στην παρούσα διπλωματική θα εστιάσουμε την προσοχή μας στη δημιουργία του κυκλώματος του αποκωδικοποιητή. Επειδή όμως η δημιουργία ενός κυκλώματος που να υποστηρίζει όλες τις δυνατές επιλογές του προτύπου (108 στον αριθμό) όπως διαφορετικά μήκη λέξεων και ρυθμοί κώδικα παρουσιάζοντας τη μέγιστη ευελιξία απαιτεί σημαντική εμπειρία σε αρχιτεκτονικό επίπεδο σχεδίασης, επικεντρώνουμε την προσοχή μας στην κατασκευή ενός αποκωδικοποιητή για ένα μόνο μήκος λέξης και ρυθμό κώδικα. Συγκεκριμένα, ο αποκωδικοποιητής αναπτύχθηκε ώστε να είναι συμβατός με τον κώδικα του WiMax ρυθμού μετάδοσης ½ και μήκος λέξης 576 bits (z=24). Στη συνέχεια φαίνονται οι λεπτομέρειες του συγκεκριμένου κώδικα. 5.2 Πίνακας ελέγχου ισοτιμίας του LDPC κώδικα με rate ½ Ένας LDPC κώδικας για το WiMax e, όπως ορίζεται στο αντίστοιχο κείμενο του προτύπου [7], προκύπτει από ένα πίνακα βάσης Hb (base matrix), ο οποίος αποτελείται από 24 στήλες και (1-R) 24 γραμμές, όπου R είναι το rate του κώδικα. Είναι δηλαδή ένας πίνακας ελέγχου ισοτιμίας που αντιστοιχεί σε έναν κώδικα ειδικής μορφής που παρουσιάσαμε στο 2ο Κεφάλαιο, και μάλιστα μορφής CPA*-structured κώδικας. Tα στοιχεία του πίνακα Hb μπορεί να είναι ακέραιοι θετικοί αριθμοί που δηλώνουν κάποιον συντελεστή ολίσθησης ή ο αρνητικός αριθμός (-1) ο οποίος δηλώνει την ύπαρξη ενός τετραγωνικού μηδενικού πίνακα. Ο πίνακας ελέγχου ισοτιμίας H του κώδικα προκύπτει από τον πίνακα βάσης αντικαθιστώντας κάθε στοιχείο του τελευταίου με έναν δεξιά κυκλικά ολισθημένο, κατά τον αντίστοιχο συντελεστή ολίσθησης, μοναδιαίο πίνακα μεγέθους z z ή με ένα μηδενικό τετραγωνικό πίνακα μεγέθους z. Συνεπώς, κάθε στοιχείο του πίνακα βάσης ορίζει ένα τετραγωνικό υπομητρώο μεγέθους z. Το z 60

61 ουσιαστικά είναι ένας παράγοντας επέκτασης, ο οποίος κυμαίνεται μεταξύ 24 και 96 με βήμα 4 και δημιουργεί με αυτό τον τρόπο έναν πίνακα διαφορετικού μεγέθους, κυμαίνοντας από 576 μέχρι 2304 bits. Σχήμα 5.2: Πίνακας βάσης για τον rate ½ WiMax LDPC κώδικα για z=96. Όπως παρατηρούμε ο παραπάνω πίνακας βάσης περιέχει τους συντελεστές ολίσθησης των υποπινάκων μεγέθους ίσο με 96. Έτσι καταλήγουμε σε ένα πίνακα ελέγχου ισοτιμίας που έχει μέγεθος 2304 bits και η δομή του οποίου φαίνεται στην παρακάτω εικόνα: Σχήμα 5.3: Δομή ενός πίνακα ελέγχου ισοτιμίας για τον rate ½ WiMax LDPC κώδικα με z=96. 61

62 Για ένα πίνακα διαφορετικού μεγέθους, με διαφορετικό z δηλαδή, οι συντελεστές ολίσθησης δίνονται από τον ακόλουθο τύπο:, όπου p(i,j) είναι η τιμή του συντελεστή ολίσθησης που περιέχεται στον αρχικό πίνακα, z0 είναι ίσο με 96 και zf είναι ο επιθυμητός παράγοντας επέκτασης. Στην παρούσα διπλωματική υλοποιούμε έναν κώδικα μήκους 576 bits, δηλαδή z=24. Για αυτή την τιμή προκύπτουν οι παρακάτω συντελεστές ολίσθησης: Σχήμα 5.4: Πίνακας βάσης για τον rate ½ WiMax LDPC κώδικα για z=24. Στη συνέχεια του κεφαλαίου παρουσιάζουμε τις παραμέτρους που κληθήκαμε να προσδιορίσουμε κατά τη διάρκεια της υλοποίησης του κυκλώματός μας. 62

63 5.3 Παράμετροι υλοποίησης του αποκωδικοποιητή Στη συνέχεια του κεφαλαίου παρουσιάζουμε τις παραμέτρους που κληθήκαμε να προσδιορίσουμε κατά τη διάρκεια της υλοποίησης του κυκλώματός μας. Στόχος μας ήταν η επίτευξη αρκετά υψηλού throughput και αυτό καθόρισε τις επιλογές που κάναμε κατά τη διάρκεια σχεδιασμού Αναλογική έναντι Ψηφιακής υλοποίησης Αρκετές αναλογικές υλοποιήσεις κωδίκων διόρθωσης λαθών έχουν πραγματοποιηθεί τα τελευταία χρόνια, με ενθαρρυντικά μάλιστα αποτελέσματα. Στις αναλογικές υλοποιήσεις γίνεται χρήση της μη γραμμικότητας των ημιαγωγικών στοιχείων για τον υπολογισμό των απαιτούμενων δεδομένων. Πιο συγκεκριμένα, για τους LDPC αποκωδικοποιητές χρησιμοποιούνται τα ρεύματα και οι τάσεις στις αναλογικές διατάξεις και τρανζίστορ για να αναπαραστήσουν τις πιθανότητες και τα ενδιάμεσα μηνύματα που ανταλλάσσονται μεταξύ των κόμβων. Παρόλο που οι αναλογικές υλοποιήσεις είναι πολλές φορές ανώτερης των αντίστοιχων ψηφιακών, επιτυγχάνοντας μεγαλύτερο throughput, μικρότερη κατανάλωση ή και μικρότερη επιφάνεια, στις σύγχρονες deep-sub-micron τεχνολογίες υποφέρουν από ανομοιομορφίες μεταξύ των στοιχείων (mismatching), δημιουργώντας έτσι επιπρόσθετα προβλήματα. Για αυτό το λόγο αποφασίστηκε η υλοποίηση να είναι εξολοκλήρου ψηφιακή Σχήμα χρονοπρογραμματισμού μηνυμάτων αποκωδικοποίησης Λόγω της ιδιαίτερης μορφής του πίνακα ελέγχου ισοτιμίας του κώδικά μας έχουμε τη δυνατότητα να υιοθετήσουμε δύο διαφορετικές στρατηγικές χρονοπρογραμματισμού των μηνυμάτων αποκωδικοποίησης. Η πρώτη έχει ήδη παρουσιαστεί και αποτελείται από τη γνωστή αποκωδικοποίηση δύο βημάτων (two-phase scheduling): στο πρώτο βήμα γίνεται υπολογισμός όλων των μηνυμάτων στους variable κόμβους και αποστολή αυτών στους ckeck κόμβους, και στο δεύτερο βήμα το αντίστροφο. Η δεύτερη προσέγγιση χρονοπρογραμματισμού, η οποία ονομάζεται Layered Decoding [19] ή turbo decoding message passing (TDMP), χωρίζει τον πίνακα σε επίπεδα. Έτσι κάθε φορά είναι 63

64 ενεργοί μόνο οι κόμβοι του τρέχοντος επιπέδου και αποστέλλουν τα μηνύματά τους μόνο στους κόμβους της άλλης κατηγορίας με τους οποίους συνδέονται και ανήκουν στο ίδιο επίπεδο. Πιο συγκεκριμένα, κατά την layered αποκωδικοποίηση οι γραμμές του πίνακα περνούν από επεξεργασία σε επίπεδα. Η ολοκλήρωση της επεξεργασίας όλων των variable κόμβων ενός επιπέδου ακολουθείται από την επεξεργασία και αποστολή των μηνυμάτων από τους check κόμβους του επιπέδου αυτού πίσω στους variable κόμβους. Το τέλος της επεξεργασίας ενός επιπέδου συνιστά το τέλος μιας υποεπανάληψης του αλγορίθμου. Γίνεται σαφές από τον τρόπο που παρουσιάσαμε τη μέθοδο αυτή ότι μια πλήρης επανάληψη του αλγορίθμου ολοκληρώνεται όταν εκτελεστεί αριθμός υποεπαναλήψεων ίσος με τον αριθμό των επίπεδων το πίνακα. Αυτή η διαδικασία έχει αποδειχτεί ότι οδηγεί σε επιτάχυνση της ταχύτητα σύγκλισης του αλγορίθμου, δηλαδή απαιτούνται λιγότερες επαναλήψεις για την εύρεση μιας έγκυρης κωδικής λέξης. Επίσης, η στρατηγική αυτή χρονοπρογραμματισμού των μηνυμάτων οδηγεί σε υλοποιήσεις με λιγότερες απαιτήσεις μνήμης καθώς δε χρειάζεται οι check κόμβοι να αποθηκεύουν όλα τα μηνύματα που δέχονται σε μια επανάληψη παρά μόνο τα μηνύματα εντός του τρέχοντος επιπέδου. Παρόλο την υπεροχή της δεύτερης μεθόδου χρονοπρογραμματισμού των μηνυμάτων, στην υλοποίησή μας υιοθετούμε την πρώτη μέθοδο και προτείνουμε τρόπους με τους οποίους επιτυγχάνει σχεδόν ίδιο ή και μεγαλύτερο throughput, με μικρή αύξηση της πολυπλοκότητας του αποκωδικοποιητή Αλγόριθμος αποκωδικοποίησης Βασιζόμενοι σε θεωρητικές μελέτες που έχουν γίνει σχετικά με την απόδοση διαφορετικών αλγορίθμων, τις οποίες παρουσιάσαμε στα πρώτα κεφάλαια, επιλέγουμε να χρησιμοποιήσουμε ως αλγόριθμο αποκωδικοποίησης τον Min-Sum αλγόριθμο. Η δυσκολία υλοποίησης του SumProduct αλγορίθμου κρίθηκε ότι αποτελούσε σημαντικό μειονέκτημα για αυτό τον αλγόριθμο, παρότι έχει καλύτερη απόδοση. Ο Modified-Min-Sum αλγόριθμος αποτελεί μια καλή επιλογή αλγορίθμου, όντας μεταξύ των άλλων δύο. Για λόγους όμως εξοικονόμησης επιφάνεια ολοκλήρωσης τελικά επιλέξαμε τον Min-Sum αλγόριθμο. 64

65 5.3.4 Αναπαράσταση των μηνυμάτων Όπως κάναμε σαφές στα εισαγωγικά κεφάλαια, μια παράμετρος με ιδιαίτερη σημασία, τόσο για την διορθωτική απόδοση του αλγορίθμου όσο και για την απαιτούμενη επιφάνεια ολοκλήρωσης, είναι ο αριθμός των bits που χρησιμοποιούνται για την αναπαράσταση τόσο της αρχικής πληροφορίας όσο και των ενδιάμεσων μηνυμάτων που παράγονται από τους κόμβους επεξεργασίας. Μια συχνά χρησιμοποιούμενη επιλογή είναι για ομοιόμορφη κβάντιση των μηνυμάτων με 6 bits, η οποία θεωρείται στις περισσότερες εφαρμογές μια πολύ καλή επιλογή, δεδομένου του trade-off μεταξύ απόδοσης και επιφάνειας. Πιο συγκεκριμένα, από τα 6 αυτά bits, το πρώτο χρησιμοποιείται ως πρόσημο, τα επόμενα δύο ως το ακέραιο μέρος των μηνυμάτων και τα υπόλοιπα τρία ως το δεκαδικό μέρος. Στην υλοποίηση που κάναμε, υιοθετήσαμε μια γενική αντιμετώπιση για το μήκος των μηνυμάτων, το οποίο μπορεί να προσδιορίζεται ανάλογα με την επιλογή μας κατά τη διάρκεια της σύνθεσης. Έτσι ο αποκωδικοποιητής που σχεδιάσαμε μπορεί να χρησιμοποιηθεί για την αποτίμηση του κατάλληλου πλήθους bits αναπαράστασης των μηνυμάτων Μέγιστος αριθμός επαναλήψεων του αλγόριθμου Είναι φανερό πως αυξάνοντας τον αριθμό των επαναλήψεων ταυτόχρονα αυξάνεται και η απόδοση του αλγόριθμου αποκωδικοποίησης. Ταυτόχρονα όμως με την αύξηση των επαναλήψεων, αυξάνεται και ο χρόνος που απαιτεί η διαδικασία αποκωδικοποίησης. Για παράδειγμα μία αύξηση του αριθμού των επαναλήψεων από 10 σε 20 διπλασιάζει τον αναγκαίο χρόνο αποκωδικοποίησης και υποδιπλασιάζει το μέγιστο throughput που μπορεί να υποστηρίξει ο αποκωδικοποιητής. Ο αριθμός των επαναλήψεων του αλγορίθμου στον αποκωδικοποιητή μας δεν είναι σταθερός, δίνοντας έτσι τη δυνατότητα να εξετάσουμε τις επιδράσεις που έχει η παράμετρος αυτή στη συνολική απόδοση του συστήματος. Μάλιστα, ο αριθμός αυτός μπορεί να αλλάζει κατά τη διάρκεια της λειτουργίας του αποκωδικοποιητή on-the-fly, δίνοντας έτσι τη δυνατότητα στον αποκωδικοποιητή να προσαρμόζει τον αριθμό αυτό ανάλογα με το λόγο σήματος προς θόρυβο του περιβάλλοντος που βρίσκεται. 65

66 66

67 ΚΕΦΑΛΑΙΟ 6ο ΠΡΟΤΕΙΝΟΜΕΝΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗ Με βάση τις παραμέτρους τις οποίες παρουσιάσαμε στο προηγούμενο κεφάλαιο, στο παρόν κεφάλαιο παρουσιάζουμε την αρχιτεκτονική του αποκωδικοποιητή μας καθώς και τις λεπτομέρειες υλοποίησης των επιμέρους υπολογιστικών μονάδων. Η αρχιτεκτονική που χρησιμοποιούμε είναι μια ημιπαράλληλη αρχιτεκτονική, στην οποία για την αύξηση του throughput του αποκωδικοποιητή χρησιμοποιούμε βαθμό παραλληλισμού ίσο με 24 (z=24), δηλαδή υλοποιούμε σε υλικό 24 επεξεργαστικές μονάδες που αντιπροσωπεύουν τους variable κόμβους και άλλες 24 που αντιστοιχούν στους check κόμβους. Για το σχεδιασμό του κυκλώματος χρησιμοποιήθηκε το πρόγραμμα της XILINX ISE10.1, καθώς και τα προγράμματα LeonardoSpectrum και Synplify κατά τη διάρκεια της σύνθεσης του κυκλώματος. 6.1 Αρχιτεκτονική αποκωδικοποιητή Η αρχιτεκτονική του αποκωδικοποιητή μας είναι μια ημιπαράλληλη αρχιτεκτονική με βαθμό παραλληλισμού ίσο με 24. Στο παρακάτω σχήμα φαίνονται τα βασικά συστατικά του κυκλώματος αυτού. 67

68 Σχήμα 6.1: Αρχιτεκτονική του LDPC αποκωδικοποιητή για z=24. 68

69 Η μνήμη In_Channel_from_chennel είναι μια μνήμη 576 θέσεων στην οποία αποθηκεύονται σειριακά τα δεδομένα εισόδου από το κανάλι και κατόπιν τροφοδοτούνται ανά ομάδες των 24 στους variable κόμβους. Οι επεξεργαστικές μονάδες VPUs αντιπροσωπεύουν τους 24 variable κόμβους του κυκλώματος (VN1-VN24). Αντίστοιχα, οι επεξεργαστικές μονάδες CPUs αντιπροσωπεύουν τους 24 check κόμβους του κυκλώματος (CN1-CN24). To δίκτυο διασύνδεσης (Interconnection network) αποτελεί ουσιαστικά το μέσο μετάδοσης των μηνυμάτων. Η μονάδα ελέγχου (Control_Unit) συντονίζει όλες τις ενέργειες των επιμέρους κυκλωμάτων. Οι κατανεμημένες ROM μνήμες περιέχουν την πληροφορία του συγκεκριμένου κώδικα τον οποίο υλοποιούμε, όπως για παράδειγμα τους συντελεστές ολίσθησης, τα βάρη των γραμμών και στηλών του πίνακα καθώς και τη διεύθυνση των θέσεων στις οποίες θα γραφούν τα μηνύματα των κόμβων. To IO του αποκωδικοποιητή φαίνεται στο σχήμα 6.2. Δέχεται σειριακά τα μηνύματα από το κανάλι και παράγει ανά 24 τα αποκωδικοποιημένα bits. Στην περίπτωση της σειριακής εξόδου των μηνυμάτων από τον αποκωδικοποιητή, θα κυριαρχούσαν το χρόνο της αποκωδικοποίησης τόσο η είσοδος όσο και η έξοδος των δεδομένων από τον αποκωδικοποιητή, έχοντας πολύ μικρή συνεισφορά ο πραγματικός χρόνος της αποκωδικοποίησης. Για αυτό το λόγο επιλέξαμε τα αποκωδικοποιημένα bits να εξέρχονται ανά 24. Επίσης ο αποκωδικοποιητής δέχεται σαν είσοδο τον αριθμό των επαναλήψεων του αλγορίθμου, ο οποίος μπορεί να αλλάζει κατά τη διάρκεια της αποκωδικοποίησης. 69

70 Σχήμα 6.2: ΙΟ του αποκωδικοποιητή 70

71 6.1.1 Χρονοπρογραμματισμός αποκωδικοποιητή Όπως πολλές φορές έχουμε αναφέρει, ότι αρχικός μας στόχος ήταν η επίτευξη του μέγιστου δυνατού throughput, το οποίο αναμέναμε να είναι της τάξεως των 50 με 100 Mbps. Σκεπτόμενοι τη σχέση που δίνει το συνολικό throughput ενός αποκωδικοποιητή: throughput rate block _ length, num _ of _ iters cycles _ per _ iter clock _ cycle προσδιορίσαμε τον απαιτούμενο αριθμό κύκλων ανά επανάληψη. Για την επίτευξη ενός throughput 75 Μbps και για τα παρακάτω στοιχεία, προκύπτει ότι: Rate=1/2, block_length=576, num_of_iters=15, clock_cycle=6 nsec (αποτελεί απλά μια εκτίμηση για την τελική συχνότητα του κυκλώματος) cycles_per_iter=43 κύκλους ρολογιού. Άρα για να επιτύχουμε το απαιτούμενο throughput θα πρέπει να περιορίσουμε την κάθε επανάληψη του αλγορίθμου σε 43 κύκλους. Αυτός ο αριθμός, όπως θα γίνει κατανοητό στη συνέχεια, επιβάλλει μια πλήρως παράλληλη αρχιτεκτονική των variable και check κόμβων. Ο πλήρης χρονοπρογραμματισμός του αποκωδικοποιητή μας φαίνεται στο σχήμα 6.3, στο οποίο υπάρχουν οι εξής λειτουργίες: Λειτουργίες στους Variable κόμβους Compute_v2c: Είναι ο υπολογισμός των μηνυμάτων από τους variable στους check κόμβους. Idle: Σε αυτό τον κύκλο ρολογιού ο variable κόμβος απλά περιμένει να γεμίσει το pipeline στους check κόμβους και να αρχίσει να δέχεται μηνύματα. Store_c2v: Γίνεται η αποθήκευση των μηνυμάτων των check κόμβων στις κατάλληλες θέσεις μνήμης των variable κόμβων. 71

72 Λειτουργίες στους κόμβους Compute_c2v: Είναι ο υπολογισμός των μηνυμάτων από τους check στους variable κόμβους. Idle: Σε αυτό τον κύκλο ρολογιού ο check κόμβος απλά περιμένει να γεμίσει το pipeline στους variable κόμβους και να αρχίσει να δέχεται μηνύματα. Store_v2c: Γίνεται η αποθήκευση των μηνυμάτων των variable κόμβων στις κατάλληλες θέσεις μνήμης των check κόμβων. Λειτουργίες στο δίκτυο διασύνδεσης: Send_v2c: Γίνεται αποστολή μηνυμάτων από τους variable στους check κόμβους. Send_c2v: Γίνεται αποστολή μηνυμάτων από τους check στους variable κόμβους. Idle: Σε αυτό τον κύκλο ρολογιού δεν αποστέλλονται μηνύματα. 72

73 Σχήμα 6.3: Χρονοπρογραμματισμός μιας πλήρης επανάληψης του αποκωδικοποιητή 73

74 Η διαδικασία αποκωδικοποίησης μιας λαμβανόμενης λέξης επικαλύπτεται με την αποθήκευση της επόμενης προς αποκωδικοποίησης λέξης η οποία λαμβάνεται από το κανάλι. Αυτό γίνεται προφανώς για την αύξηση του συνολικού throughput του αποκωδικοποιητή. Τα παραπάνω φαίνονται στο σχήμα 6.4. Σχήμα 6.4: Χρονική αλληλουχία αποκωδικοποιούμενων λέξεων. Οι λεπτομέρειες για τη χρονική φάση του αποκωδικοποιητή Decode_Codeword_n φαίνονται στο σχήμα 6.5. Αρχικά φορτώνονται οι μνήμες LLR_RAMs των variable κόμβων σε 24 κύκλους ρολογιού, ώστε να είναι διαθέσιμη η κεντρική μνήμη In_RAM_from_Channel να δεχτεί την επόμενη κωδικολέξη, και ξεκινούν οι διαδοχικές επαναλήψεις του αλγορίθμου έως ότου βρεθεί έγκυρη λέξη ή εκτελεστούν Ν επαναλήψεις (στο σχήμα Ν=15). 74

75 Σχήμα 6.5: Λεπτομερής ανάλυση της φάσης Decode_Codeword του αποκωδικοποιητή Τροποποίηση του χρονοπρογραμματισμού Εξετάζοντας τη διαδικασία αποκωδικοποίησης στους κόμβους του κυκλώματος, η οποία περιλαμβάνει τον επαναληπτικό υπολογισμό μηνυμάτων και τη μετάδοση αυτών, προτείνουμε μια βελτίωση του σχήματος που περιγράψαμε στην προηγούμενη ενότητα. Κάνοντας χρήση της ειδικής δομής του πίνακα ελέγχου ισοτιμίας του προτύπου WiMax (σχήμα 5.3), του οποίου τα πάνω δεξιά στοιχεία είναι μηδενικά, καταφέρνουμε να μειώσουμε το χρόνο που απαιτείται για την εκτέλεση μιας επανάληψης του αλγορίθμου. Πιο συγκεκριμένα, όταν εκτελείται το 15ο επίπεδο variable κόμβων μπορούμε να ξεκινήσουμε την εκτέλεση του 1ου στρώματος check κόμβων. Στον κύκλο που εκτελείται το 16ο στρώμα variable κόμβων μπορεί να ξεκινήσει το 2ο επίπεδο check κόμβων και συνεχίζουμε. Με αυτόν τον τρόπο οι απαιτούμενοι κύκλοι μιας επανάληψης γίνονται 32 από 42. Εξοικονομούμε δηλαδή 10 κύκλους ρολογιού. Αυτό αντιστοιχεί περίπου σε ένα 24% ποσοστό βελτίωσης του χρόνου αποκωδικοποίησης μιας επανάληψης. Να σημειώσουμε ότι η βελτίωση αυτή επιτυγχάνεται τροποποιώντας μόνο τη λειτουργία της κεντρικής μονάδας ελέγχου, δίχως να χρειάζεται την προσθήκη επιπλέον κυκλωμάτων ή την τροποποίηση ήδη υπαρχόντων. Συνεπώς η βελτίωση αυτή δεν οδηγεί σε αύξηση της επιφάνειας του κυκλώματος. 75

76 Μια δεύτερη τροποποίηση του σχήματος αποκωδικοποίησης γίνεται αν παρατηρήσουμε ότι οι επεξεργαστικοί κόμβοι του κυκλώματος ουσιαστικά εκτελούν 2 διαφορετικές ενέργειες: υπολογισμός των μηνυμάτων προς την άλλη κατηγορία κόμβων και αποθήκευση των μηνυμάτων που λαμβάνουν. Με τον τρόπο που έχουμε υλοποιήσει τους κόμβους μας, οι διαδικασίες αυτές είναι διακριτές και ανεξάρτητες η μια από την άλλη. Συνεπώς μπορούν γενικά να εκτελεστούν και ταυτόχρονα. Η εκμετάλλευση της ιδιότητας αυτής γίνεται αν θεωρήσουμε ότι επεξεργαζόμαστε 2 λαμβανόμενες λέξεις μαζί. Η διαδικασία αυτή φαίνεται στο σχήμα 6.6. Σχήμα 6.6 : Τροποποιημένη χρονική αλληλουχία αποκωδικοποιούμενων λέξεων. Η υλοποίηση της τροποποίησης αυτής θα διπλασίαζε ουσιαστικά το μέγιστο αποκωδικοποιούμενο throughput, θα απαιτούσε όμως αύξηση της επιφάνειας του κυκλώματος. Πιο συγκεκριμένα, θα απαιτούσε σχεδόν διπλασιασμό της μνήμης του κυκλώματος για την αποθήκευση των ενδιαμέσων μηνυμάτων καθώς και διπλασιασμό του δικτύου διασύνδεσης. 76

77 6.2 Κεντρική μονάδα ελέγχου Η κεντρική μονάδα ελέγχου του αποκωδικοποιητή είναι επιφορτισμένη με το συγχρονισμό όλων των επιμέρους κυκλωμάτων. Λόγω της επιλογής μας για παράλληλη αρχιτεκτονική τόσο στους ckeck όσο και στους variable κόμβους, η πολυπλοκότητα αυτής είναι σχετικά αυξημένη. Πιο συγκεκριμένα, η κεντρική μονάδα ελέγχου είναι υπεύθυνη για τα εξής: Ανάκληση από μνήμες ROM των βαρών των κόμβων του κυκλώματος και αποστολή των κατάλληλων σημάτων ελέγχου στους πολυπλέκτες τους ώστε να μπορεί να διαχειριστεί ο αποκωδικοποιητής το γεγονός ότι ο πίνακας ελέγχου ισοτιμίας είναι ανώμαλος. Ανάκληση από μνήμες ROM των συντελεστών ολίσθησης για τον εκάστοτε υποπίνακα και αποστολή των κατάλληλων σημάτων ελέγχου στο δίκτυο διασύνδεσης ώστε να διευθύνουν τη μετάδοση των μηνυμάτων. Υπολογισμός και αποστολή στους κόμβους του κυκλώματος των διευθύνσεων στις οποίες θα αποθηκευθούν τα μηνύματα τα οποία λαμβάνουν από το άλλο είδος κόμβων, το οποίο αποτελεί και το πιο πολύπλοκο έργο της μονάδας ελέγχου ώστε να αποφεύγονται οι συγκρούσεις στις μνήμες, δηλαδή να μη γράφονται δύο διαφορετικά μηνύματα στην ίδια θέση και να μη διαβάζονται ίδιες θέσεις μνήμης από διαφορετικές θύρες. 77

78 6.3 Variable κόμβος Όπως αναφέραμε, για να επιτύχουμε το επιθυμητό throughput θα πρέπει οι variable κόμβοι να έχουν παράλληλη αρχιτεκτονική. Σε αντίθετη περίπτωση, σε σειριακή δηλαδή υλοποίηση αυτών, επειδή το μέγιστο βάρος τους είναι 6, θα απαιτούσαν 6 κύκλους ρολογιού για να παράγουν τα μηνύματα προς τους check κόμβους, σύμφωνα με την εξίσωση: Qvcn = LLRv + c ' Scv (~ c ) Rcn' v Αυτό θα οδηγούσε σε 6 φορές μικρότερο throughput κάτι το οποίο στη δική μας εφαρμογή ήταν μη αποδεκτό. Το σχηματικό του variable κόμβου φαίνεται στο σχήμα 6.6 και στη συνέχεια εξηγούμε τα σημαντικότερα component αυτού. LLR_RAM: Είναι μια RAM μνήμη 24 θέσεων στην οποία αποθηκεύονται τα LLR από το κανάλι ώστε η μνήμη In_Ram_from_channel να μπορέσει να δεχτεί τα δεδομένα της επόμενης κωδικολέξης, και να συνεχιστεί η διαδικασία της αποκωδικοποίησης δίχως προβλήματα. Var_Mux: Είναι ένας πολυπλέκτης ο οποίος ανάλογα με το βάρος του τρέχοντα κόμβου τον τροφοδοτεί με το σωστό αριθμό εισόδων. Όπως φαίνεται από τον πίνακα ελέγχου ισοτιμίας, οι variable κόμβοι μπορεί να έχουν βάρος ίσο με δύο, τρία ή και έξι. Χρησιμοποιώντας τον πολυπλέκτη αυτό μπορούμε αποτελεσματικά να αντιμετωπίσουμε το γεγονός αυτό. Παρατηρώντας την εξίσωση σύμφωνα με την οποία παράγονται τα μηνύματα από τους variable κόμβους διαπιστώνουμε ότι εφαρμόζοντας τη μηδενική τιμή στις εισόδους του κόμβου αυτού δε θα έχουμε μεταβολή των αποτελεσμάτων. Για παράδειγμα, αν ο τρέχων κόμβος έχει βάρος 3, μέσω της κεντρικής μονάδας ελέγχου, θα αποσταλεί ένα σήμα ελέγχου στο κύκλωμα αυτό ώστε να τροφοδοτήσει τις 3 εισόδους του variable κόμβου με τα μηνύματα τα οποία διαβάζονται από την Var_RAM και τις υπόλοιπες 3 με τη μηδενική τιμή ώστε να μην επηρεάσουν την τιμή του αποτελέσματος στην έξοδο του κόμβου. 78

79 LLR_RAM VN_Module VAR_RAM VAR_MUX Σχήμα 6.7: Σχηματικό διάγραμμα ενός Variable κόμβου Var_Ram: Πρόκειται για μια RAM μνήμη 144 θέσεων στην οποία αποθηκεύονται τα μηνύματα από τους check κόμβους. Το απαιτητικό σημείο υλοποίησης της μνήμης αυτής είναι ότι πρέπει να 79

80 διαθέτει 7 ανεξάρτητες εισόδους δεδομένων για να αποθηκεύονται σε ένα κύκλο όλα τα μηνύματα των check κόμβων. Η υλοποίηση της μνήμης αυτής σε συμβατικές πλατφόρμες FPGA είναι αρκετά δαπανηρή καθώς διαθέτουν μνήμες μόνο μέχρι δύο διαφορετικών θυρών (Dual port RAMs). VN_module: Είναι το κυρίως κύκλωμα το οποίο πραγματοποιεί τις ενέργειες που προβλέπονται από τον αλγόριθμο. Πιο συγκεκριμένα, για τον Min-Sum αλγόριθμο που υλοποιούμε, η πράξη που πρέπει να εκτελεστεί από τον κάθε variable κόμβο περιγράφεται από την επόμενη εξίσωση: Qvcn = LLRv + c ' Scv (~ c ) Rcn' v Το εσωτερικό του κυκλώματος αυτού φαίνεται στο σχήμα 6.8, στο οποίο διακρίνονται τα εξής υποκυκλώματα: o V_SM2TC: Για να υλοποιήσουμε τα αθροίσματα αποτελεσματικά, μετατρέπουμε τους αριθμούς μας σε 2 s complement. o V_adder: Πραγματοποιεί τον υπολογισμό όλων των ενδιάμεσων αθροισμάτων. o V_limiter: Είναι ένα κύκλωμα το οποίο μπορεί να διαχειρίζεται κατάλληλα την υπερχείλιση στο προηγούμενο στάδιο και να μειώνει όσο γίνεται την απώλεια πληροφορίας, την οποία ούτως ή αλλιώς θα έχουμε. Αυτό συμβαίνει επειδή όπως γνωρίζουμε προσθέτοντας 2 αριθμούς κ ψηφίων προκύπτει ένας αριθμός κ+1 ψηφίων. Επειδή όμως επιθυμούμε να έχουμε σταθερό μήκος διαύλων για τη μετάδοση των μηνυμάτων, είμαστε αναγκασμένοι να αναπαραστήσουμε το αποτέλεσμα των προσθέσεων με το ίδιο μήκος λέξης. o V_TC2SM: Το κύκλωμα αυτό πραγματοποιεί τη μετατροπή των μηνυμάτων από 2 s complement σε sign magnitude αναπαράσταση για την εύκολη λειτουργία των check κόμβων. 80

81 V_SM2TC V_ADDER V_LIMITER V_TC2SM Σχήμα 6.8: Σχηματικό διάγραμμα του υποκυκλώματος VN_Module Τα αποτελέσματα ως προς την χρησιμοποιούμενη επιφάνεια φαίνονται στο σχήμα 6.9. Παρατηρούμε ότι η υλοποίηση ενός variable node απαιτεί περίπου 4900 slices σε ένα Board Virtex4sx35, τιμή η οποία θεωρείται σχετικά υψηλή. Με προσεκτική μελέτη του κυκλώματος παρατηρούμε ότι το κύκλωμα το οποίο καταναλώνει την περισσότερη επιφάνεια είναι η μνήμη Var_RAM. Αυτό συμβαίνει διότι προσπαθεί το εργαλείο να συνθέσει μια μνήμη 6 θυρών, η οποία δεν είναι σύμφωνη με τις προδιαγραφές του, καθώς μπορεί να συνθέσει ως RAM modules μνήμες το πολύ μέχρι 2 θυρών. Στο σχήμα 6.10 φαίνονται οι απαιτήσεις σε επιφάνεια του κυκλώματος που παράγει το εργαλείο μας. Παρατηρούμε ότι για μια μόνο μνήμη 144 θέσεων απαιτούνται περίπου 4750 slices, το οποίο αποτελεί πολύ μεγάλο νούμερο. Εξετάζοντας τις αναφορές σύνθεσης διαπιστώσαμε ότι το πρόβλημα προκαλείται από τη δημιουργία πολύ μεγάλων πολυπλεκτών στις εξόδους του υποκυκλώματος αυτού. Δεδομένου ότι η μνήμη αυτή υπάρχει σε κάθε ένα από τους 24 variable κόμβους, περιμένουμε ότι ο συνολικός σχεδιασμός θα καταλαμβάνει αρκετά μεγάλη επιφάνεια λόγω αυτού του προβλήματος. Επαναλαμβάνουμε όμως ότι η υιοθέτηση αυτής της στρατηγικής είναι μονόδρομος για την επίτευξη του επιθυμητού throughput. Έναν τρόπος με τον οποίο προσπαθήσαμε να λύσουμε αυτό το πρόβλημα είναι η χρησιμοποίηση μιας συμβατικής μνήμης δυο θυρών αλλά σε τετραπλάσια συχνότητα λειτουργίας από αυτή του 81

82 Σχήμα 6.9: Design summary για ένα Variable κόμβο. 82

83 Σχήμα 6.10: Design Summary για το κύκλωμα Var_RAM 83

84 βασικού κυκλώματός μας. Το σχηματικό διάγραμμα του κυκλώματος που υλοποιήσαμε φαίνεται στο σχήμα Παρόλο τη σωστή λειτουργία αυτού, δε μπορέσαμε να το ενσωματώσουμε στο συνολικό σύστημα καθώς προκαλούνταν κάποια δεδομένα προβλήματα με το συγχρονισμό και την αποθήκευση των δεδομένων. Σχήμα 6.11: Σχηματικό της τροποποιημένης διάταξης για την αποθήκευση των δεδομένων. 84

85 6.4 Check κόμβος Ομοίως με τον variable κόμβο, ο check κόμβος έχει και αυτός παράλληλη αρχιτεκτονική. Έτσι καταφέρνει μέσα σε ένα κύκλο να υπολογίσει τα μηνύματα για όλες τις εξόδους του, οι οποίες είναι 7 στη περίπτωση κόμβου με μέγιστο βάρος ή 6 σε άλλη περίπτωση. Βασιζόμενοι στην εξίσωση που υποδεικνύει ο Min-Sum αλγόριθμος για τη λειτουργία των ckeck κόμβων: Rcvn = v ' Svc ( : v ) sign(qvn' c1 ) *( min ( Qvn' c1 )), c v ' Sv ( : v ) προκύπτει ότι το βασικό κύκλωμα κάθε check κόμβου είναι ο συγκριτής. Με τη βοήθεια ενός τέτοιου κυκλώματος και διαδοχικές συγκρίσεις παράγει τις προβλεπόμενες εξόδους. Για την ελαχιστοποίηση της απαιτούμενης επιφάνειας κάνουμε χρήση των ενδιάμεσων συγκρίσεων και έτσι πετυχαίνουμε να υπολογίσουμε τις εξόδους του κάθε check κόμβου με το ελάχιστο δυνατό υλικό. Το σχηματικό του κόμβου αυτού φαίνεται στο σχήμα CN_module Ch_RAM Ch_MUX Σχήμα 6.12: Σχηματικό διάγραμμα του check κόμβου 85

86 Τα επιμέρους component του check κόμβου είναι τα εξής: CN_module: Όπως περιγράψαμε και προηγουμένως, με τη βοήθεια αυτού του κυκλώματος γίνεται ο υπολογισμός των εξόδων. Ch_RAM: Η μνήμη αυτή είναι μια RAM μνήμη στην οποία αποθηκεύονται τα μηνύματα που προέρχονται από τους variable κόμβους και διαβάζονται κατά τη διάρκεια λειτουργίας των check κόμβων. Η μνήμη αυτή είναι η αντίστοιχη μνήμη με τη Var_RAM στους variable κόμβους και πρέπει να διαθέτει 6 θύρες εισόδου. Ch_MUX: Είναι ένας πολυπλέκτης ο οποίος, ανάλογα με το βάρος του τρέχοντα check κόμβου, τροφοδοτεί τις εισόδους του κόμβου με τον αντίστοιχο αριθμό μηνυμάτων ή με μια τιμή η οποία δε θα προκαλέσει μεταβολή στον υπολογισμό των εξόδων. Για παράδειγμα, στην επεξεργασία ενός κόμβου με βάρος 6, στην 7η είσοδο του ckeck κόμβου θα εφαρμοστεί μια τιμή με πρόσημο 0 ώστε να μην αλλάξει το αποτέλεσμα της πράξης XOR μεταξύ των πρόσημων των εισόδων. Ακόμη, η τιμή αυτή θα πρέπει να έχει το μέγιστο δυνατό μέτρο ώστε να μην αλλάξει την τιμή που υπολογίζεται από τους συγκριτές λαμβάνοντας υπόψη μόνο τις 6 εισόδους. Για 6 bit μήκος μηνύματος η τιμή αυτή είναι η Με αυτό τον πολύ απλό τρόπο αντιμετωπίζουμε το γεγονός ότι ο πίνακας ισοτιμίας του κώδικα που υλοποιούμε έχει μεταβλητό βάρος στους check κόμβους. Τα αποτελέσματα χρησιμοποίησης επιφάνειας του check κόμβου φαίνονται στο σχήμα Παρατηρούμε ότι απαιτεί περίπου 2800 slices για την υλοποίησή του σε Virtex4sx35. Στο σχήμα 6.14 φαίνονται οι απαιτήσεις μόνο της μνήμης Ch_RAM, οι οποίες είναι περίπου 2600 slices. Αντιμετωπίζουμε δηλαδή το ίδιο πρόβλημα με τη μνήμη στον Check κόμβο. 86

87 Σχήμα 6.13: Design Summary έναν check κόμβο 87

88 Σχήμα 6.14: Design Summary για τη μνήμη Ch_RAM 88

89 6.5 Δίκτυο διασύνδεσης Λόγω της ειδικής δομής του πίνακα ελέγχου ισοτιμίας, δηλαδή των κυκλικά μετατοπισμένων μοναδιαίων πινάκων, μπορούμε να αποφύγουμε ένα από τα σημαντικότερα προβλήματα των LDPC αποκωδικοποιητών το οποίο είναι η πολύπλοκη ενδιάμεση σύνδεση των κόμβων του κυκλώματος. Έτσι έχουμε τη δυνατότητα να διαχειριστούμε με ένα γενικό τρόπο τη μετάδοση των μηνυμάτων ανά 24 κόμβων, για κάθε υποπίνακα δηλαδή, αφού αυτοί παρουσιάζουν μια ομοιομορφία. Στη συνέχεια περιγράφουμε με ποιον τρόπο είναι εφικτό αυτό. Το δίκτυο διασύνδεσης του αποκωδικοποιητή αποτελείται αρχικά από ένα στρώμα πολυπλεκτών, το οποίο καθορίζει αν έχουμε επικοινωνία check προς variable ή το αντίθετο, διαλέγοντας κάθε φορά τα αντίστοιχα μηνύματα. Δηλαδή, όλες οι έξοδοι των variable και των check κόμβων οδηγούν τις εισόδους του δικτύου διασυνδέσεις, και ανάλογα με την κατάσταση που βρίσκεται το κύκλωμα αποκωδικοποίησης και το στάδιο του αλγορίθμου που εκτελείται, διαλέγει το κατάλληλο είδος μηνυμάτων. Διαθέτει επίσης 7 κυκλώματα Barrel_shifters των 24 εισόδων, τα οποία έχουν τη δυνατότητα ανάλογα με το συντελεστή ολίσθησης που εφαρμόζεται στη θύρα ελέγχου τους να εμφανίζουν στις εξόδους τους κυκλικά ολισθημένες τις εισόδους τους. Με τον τρόπο αυτό πετυχαίνουμε να κατευθύνουμε αποτελεσματικά τα μηνύματα στον προορισμό τους δίχως να έχουμε σταθερές διασυνδέσεις. Το κύκλωμα ενός Barrel Shifter μπορεί να υλοποιηθεί με συστοιχία πολυπλεκτών. Στο σχήμα 6.15 [20] φαίνεται ένας τρόπος υλοποίησης ενός Barrel Shifter των τεσσάρων εισόδων με τη χρήση πολυπλεκτών. Αποδεικνύεται ότι τα απαιτούμενα στρώματα πολυπλεκτών για έναν Barrel Shifters Ν εισόδων είναι log 2 N. Γίνεται αντιληπτό ότι για τέτοια κυκλώματα με πολλές εισόδους η υλοποίηση αυτών απαιτεί αρκετή επιφάνεια ολοκλήρωσης και εισάγει καθυστέρηση στο συνολικό σχεδιασμό. Στο σχήμα 6.16 φαίνονται αναλυτικά οι απαιτήσεις ενός Barrel Shifter 24 εισόδων. 89

90 Σχήμα 6.15: Barrel Shifter 4 εισόδων Σχήμα 6.16: Design Summary για έναν Barrel Shifter 24x24 90

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

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

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

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

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

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

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

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

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

Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το

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

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

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9 Πρόλογος 1 Μαθηµατικό υπόβαθρο 7 1 Μαθηµατικό υπόβαθρο 9 1.1 Η αριθµητική υπολοίπων.............. 10 1.2 Η πολυωνυµική αριθµητική............ 14 1.3 Θεωρία πεπερασµένων οµάδων και σωµάτων.... 17 1.4 Πράξεις

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

ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ. Δρ. Δ. Λαμπάκης (1 η σειρά διαφανειών)

ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ. Δρ. Δ. Λαμπάκης (1 η σειρά διαφανειών) ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ Δρ. Δ. Λαμπάκης (1 η σειρά διαφανειών) Τα ηλεκτρονικά κυκλώματα, ιδιαίτερα τα ψηφιακά χρησιμοποιούνται για την υλοποίηση λογικών συναρτήσεων και την αποθήκευση

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

Παραδείγματα σχεδίασης με μηχανές πεπερασμένων καταστάσεων

Παραδείγματα σχεδίασης με μηχανές πεπερασμένων καταστάσεων Παραδείγματα σχεδίασης με μηχανές πεπερασμένων καταστάσεων Γιώργος Δημητρακόπουλος 1 Αποκωδικοποιητής κώδικα Huffman συμπίεση δεδομένων Ξέρουμε ότι με n bits μπορούμε να κωδικοποιήσουμε 2 n διαφορετικά

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

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

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

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

Φύλλο εργασίας. Ερωτήσεις ανασκόπησης του μαθήματος

Φύλλο εργασίας. Ερωτήσεις ανασκόπησης του μαθήματος Φύλλο εργασίας Παραθέτουμε μια ομάδα ερωτήσεων ανασκόπησης του μαθήματος και μια ομάδα ερωτήσεων κρίσης για εμβάθυνση στο αντικείμενο του μαθήματος. Θεωρούμε ότι μέσα στην τάξη είναι δυνατή η κατανόηση

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

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

Δυαδικό Σύστημα Αρίθμησης Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,

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

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

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

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

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Αρχές Δικτύων Επικοινωνιών Σελ. 9-50 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-b.ggia.info/ Creative Commons License 3.0 Share-Alike Σύνδεση από σημείο

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

Ήχος. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 04-1

Ήχος. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 04-1 Ήχος Χαρακτηριστικά του ήχου Ψηφιοποίηση με μετασχηματισμό Ψηφιοποίηση με δειγματοληψία Κβαντοποίηση δειγμάτων Παλμοκωδική διαμόρφωση Συμβολική αναπαράσταση μουσικής Τεχνολογία Πολυμέσων και Πολυμεσικές

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

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

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

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

Πολυπλεξία. http://diktya-epal-b.ggia.info Creative Commons License 3.0 Share-Alike

Πολυπλεξία. http://diktya-epal-b.ggia.info Creative Commons License 3.0 Share-Alike Πολυπλεξία Ανάλυση σημάτων στο πεδίο χρόνου, συχνότητας, πολυπλεξία διαίρεσης συχνότητας, πολυπλεξία διαίρεσης χρόνου (1.6 ενότητα σελ 19-20, 29-30 και στοιχεία από 2.1 ενότητα σελ. 52-58). http://diktya-epal-b.ggia.info

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

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

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

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΠΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ / ΙΟΥΝΙΟΥ 2014

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΠΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ / ΙΟΥΝΙΟΥ 2014 ΤΕΧΝΙΚΗ ΣΧΟΛΗ ΜΑΚΑΡΙΟΣ Γ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ: 2013 2014 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΠΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ / ΙΟΥΝΙΟΥ 2014 Κατεύθυνση: ΠΡΑΚΤΙΚΗ Κλάδος: ΗΛΕΚΤΡΟΛΟΓΙΑ Μάθημα: ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΕΡΓΑΣΤΗΡΙΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Τάξη: A Τμήμα:

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

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

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

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

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

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

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

Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο

Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο Εργαστηριακή Άσκηση 1: Εισαγωγή στη διαμόρφωση πλάτους (ΑΜ) Προσομοίωση σε Η/Υ Δρ.

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

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

Συστήματα Επικοινωνιών Συστήματα Επικοινωνιών Ενότητα 9: Παλμοκωδική Διαμόρφωση (PCM) Μιχαήλ Λογοθέτης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Περιγραφή της μεθόδου παλμοκωδικής

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

Ενότητα 3. Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet

Ενότητα 3. Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet Ενότητα 3 Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet Εισαγωγή στις βασικές έννοιες του στρώµατος Ζεύξης (Data Link Layer) στα δίκτυα ΗΥ Γενικές Αρχές Λειτουργίας ηµιουργία Πλαισίων Έλεγχος

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

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

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

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

ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στα Σήµατα Εισαγωγή στα Συστήµατα Ανάπτυγµα - Μετασχηµατισµός Fourier Μετασχηµατισµός Z

ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στα Σήµατα Εισαγωγή στα Συστήµατα Ανάπτυγµα - Μετασχηµατισµός Fourier Μετασχηµατισµός Z ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στα Σήµατα Εισαγωγή στα Συστήµατα Ανάπτυγµα - Μετασχηµατισµός Fourier Μετασχηµατισµός Laplace Μετασχηµατισµός Z Εφαρµογές Παράδειγµα ενός ηλεκτρικού συστήµατος Σύστηµα Παράδειγµα

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

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

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

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

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

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

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

Δεύτερη Σειρά Ασκήσεων

Δεύτερη Σειρά Ασκήσεων Δεύτερη Σειρά Ασκήσεων ΑΣΚΗΣΗ 1 Από ένα αθόρυβο κανάλι 4 khz παίρνουμε δείγματα κάθε 1 msec. - Ποιος είναι ο μέγιστος ρυθμός μετάδοσης δεδομένων; - Πώς μεταβάλλεται ο μέγιστος ρυθμός μετάδοσης δεδομένων

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

Κινητές επικοινωνίες. Κεφάλαιο 6 Τεχνικές πoλυπλεξίας - CDMA

Κινητές επικοινωνίες. Κεφάλαιο 6 Τεχνικές πoλυπλεξίας - CDMA Κινητές επικοινωνίες Κεφάλαιο 6 Τεχνικές πoλυπλεξίας - CDMA 1 Πολυπλεξία Η πολυπλεξία επιτρέπει την παράλληλη μετάδοση δεδομένων από διαφορετικές πηγές χωρίς αλληλοπαρεμβολές. Τρία βασικά είδη TDM/TDMA

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

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

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

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

5.1 Θεωρητική εισαγωγή

5.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 5 ΚΩ ΙΚΟΠΟΙΗΣΗ BCD Σκοπός: Η κατανόηση της µετατροπής ενός τύπου δυαδικής πληροφορίας σε άλλον (κωδικοποίηση/αποκωδικοποίηση) µε τη µελέτη της κωδικοποίησης BCD

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΑΡΑΣΚΕΥΗ 14 ΙΟΥΝΙΟΥ 2013 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ

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

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

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

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

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

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

Κυκλώματα με ημιτονοειδή διέγερση

Κυκλώματα με ημιτονοειδή διέγερση Κυκλώματα με ημιτονοειδή διέγερση Κυκλώματα με ημιτονοειδή διέγερση ονομάζονται εκείνα στα οποία επιβάλλεται τάση της μορφής: = ( ω ϕ ) vt V sin t όπου: V το πλάτος (στιγμιαία μέγιστη τιμή) της τάσης ω

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

iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος

iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος xi 1 Αντικείμενα των Πιθανοτήτων και της Στατιστικής 1 1.1 Πιθανοτικά Πρότυπα και Αντικείμενο των Πιθανοτήτων, 1 1.2 Αντικείμενο της Στατιστικής, 3 1.3 Ο Ρόλος των Πιθανοτήτων

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

ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ (ΨΗΦΙΑΚΑ ΤΗΛΕΠΙΚΟΙΝΩΙΑΚΑ ΣΥΣΤΗΜΑΤΑ) 3 η ΟΜΑΔΑ ΑΣΚΗΣΕΩΝ

ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ (ΨΗΦΙΑΚΑ ΤΗΛΕΠΙΚΟΙΝΩΙΑΚΑ ΣΥΣΤΗΜΑΤΑ) 3 η ΟΜΑΔΑ ΑΣΚΗΣΕΩΝ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ (ΨΗΦΙΑΚΑ ΤΗΛΕΠΙΚΟΙΝΩΙΑΚΑ ΣΥΣΤΗΜΑΤΑ) 3 η ΟΜΑΔΑ ΑΣΚΗΣΕΩΝ ΑΣΚΗΣΗ 1 Στο ανωτέρω Σχήμα η πρώτη κυματομορφή αποτελεί την είσοδο δύο κωδικοποιητών (Line Coders) ενώ οι επόμενες δύο

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Συστήματα Αυτόματου Ελέγχου

Συστήματα Αυτόματου Ελέγχου ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Συστήματα Αυτόματου Ελέγχου Ενότητα : Ψηφιακός Έλεγχος Συστημάτων Aναστασία Βελώνη Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Πράξεις με δυαδικούς αριθμούς

Πράξεις με δυαδικούς αριθμούς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (λογικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Εκτέλεση πράξεων

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

Κωδικοποίηση Πηγής. Δρ. Α. Πολίτης

Κωδικοποίηση Πηγής. Δρ. Α. Πολίτης Κωδικοποίηση Πηγής Coder Decoder Μεταξύ πομπού και καναλιού παρεμβάλλεται ο κωδικοποιητής (coder). Έργο του: η αντικατάσταση των συμβόλων πληροφορίας της πηγής με εναλλακτικά σύμβολα ή λέξεις. Κωδικοποίηση

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

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

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

ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΙΟΡΘΩΣΗ ΣΦΑΛΜΑΤΩΝ Θεωρία-Εισαγωγή ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΙΟΡΘΩΣΗ ΣΦΑΛΜΑΤΩΝ Τα σφάλµατα µετάδοσης στις τηλεπικοινωνιακές γραµµές προκαλούνται από µία ποικιλία φυσικών φαινοµένων. Ένα φαινόµενο το οποίο είναι πάντοτε παρόν είναι ο

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

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

ΤΕΙ Κρήτης, Παράρτηµα Χανίων ΠΣΕ, Τµήµα Τηλεπικοινωνιών & ικτύων Η/Υ Εργαστήριο ιαδίκτυα & Ενδοδίκτυα Η/Υ ( ηµιουργία συστήµατος µε ροint-tο-ροint σύνδεση) ρ Θεοδώρου Παύλος Χανιά 2003 Περιεχόµενα 1 ΕΙΣΑΓΩΓΗ...2 2 ΤΟ ΚΑΝΑΛΙ PΟINT-TΟ-PΟINT...2

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

ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος. Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων

ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος. Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος Άνοιξη 2008 Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων Ηλεκτρικό ρεύμα Το ρεύμα είναι αποτέλεσμα της κίνησης

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

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95 ΚΕΦΑΛΑΙΟ 4 Τεχνική Ανίχνευσης του ICMP Echo Spoofing Πτυχιακή Εργασία Σελίδα 95 Περιεχόμενα ΕΙΣΑΓΩΓΗ 98 ΜΕΡΟΣ Α: Έλεγχος του Icmp Echo Reply Πακέτου 103 A.1. Ανίχνευση του spoofed Icmp Echo Request Πακέτου.

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

Ενότητα 7 ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΕΣ - ΚΩΔΙΚΟΠΟΙΗΤΕΣ ΑΠΟΠΛΕΚΤΕΣ - ΠΟΛΥΠΛΕΚΤΕΣ

Ενότητα 7 ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΕΣ - ΚΩΔΙΚΟΠΟΙΗΤΕΣ ΑΠΟΠΛΕΚΤΕΣ - ΠΟΛΥΠΛΕΚΤΕΣ Ενότητα 7 ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΕΣ - ΚΩΔΙΚΟΠΟΙΗΤΕΣ ΑΠΟΠΛΕΚΤΕΣ - ΠΟΛΥΠΛΕΚΤΕΣ Γενικές Γραμμές Δυαδικοί Αριθμοί έναντι Δυαδικών Κωδίκων Δυαδικοί Αποκωδικοποιητές Υλοποίηση Συνδυαστικής Λογικής με Δυαδικό Αποκωδικοποιητή

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

Επίκ. Καθηγητής. Θεωρία-Ασκήσεις: Παρασκευή 8:00-11:00. όροφος

Επίκ. Καθηγητής. Θεωρία-Ασκήσεις: Παρασκευή 8:00-11:00. όροφος Θεωρία-Ασκήσεις: Παρασκευή 8:00-11:00 E-mail: tsiftsis@teilam.gr URL: http://users.teilam.gr/~tsiftsis Γραφείο: Κτήριο Βιβλιοθήκης, 1 ος όροφος 1 Πηγές Μαθήματος 1. Βιβλίο: Γ. K. Καραγιαννίδης, Τηλεπικοινωνιακά

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ 1.1 Εισαγωγή...11 1.2 Τα κύρια αριθμητικά Συστήματα...12 1.3 Μετατροπή αριθμών μεταξύ των αριθμητικών συστημάτων...13 1.3.1 Μετατροπή ακέραιων

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

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ 3.1 Τυχαίοι αριθμοί Στην προσομοίωση διακριτών γεγονότων γίνεται χρήση ακολουθίας τυχαίων αριθμών στις περιπτώσεις που απαιτείται η δημιουργία στοχαστικών

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2014 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2014 1 / 42 Αριθμητικές Μέθοδοι

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

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ 1 o ΔΙΑΓΩΝΙΣΜΑ ΘΕΜΑ 1 ο Α) Ποια είναι τα βασικά στοιχεία, τα οποία χαρακτηρίζουν το ISDN; Η ψηφιακή μετάδοση. Όλα τα σήματα μεταδίδονται σε ψηφιακή μορφή απ' άκρη σ' άκρη του δικτύου,

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

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

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ ΜΕΡΟΣ ΙΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ 36 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ Πολλές από τις αποφάσεις

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

Ψηφιακοί Υπολογιστές

Ψηφιακοί Υπολογιστές 1 η Θεµατική Ενότητα : υαδικά Συστήµατα Ψηφιακοί Υπολογιστές Παλαιότερα οι υπολογιστές χρησιµοποιούνταν για αριθµητικούς υπολογισµούς Ψηφίο (digit) Ψηφιακοί Υπολογιστές Σήµατα (signals) : διακριτά στοιχεία

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

Προγραμματισμός Υπολογιστών

Προγραμματισμός Υπολογιστών Προγραμματισμός Υπολογιστών Βασικές γνώσεις Κ. Βασιλάκης, ΣΤΕΦ, ΤΕΙ Κρήτης Η Πληροφορική και τα εργαλεία της Παροχή έγκαιρης και έγκυρης πληροφόρησης. Καταχώριση στοιχείων Αποθήκευση Επεξεργασία ψηφιακών

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

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες Πρώτο Κεφάλαιο Εισαγωγή στα Ψηφιακά Συστήματα 1.1 Αναλογικά και Ψηφιακά Σήματα και Συστήματα... 1 1.2 Βασικά Ψηφιακά Κυκλώματα... 3 1.3 Ολοκληρωμένα κυκλώματα... 4 1.4 Τυπωμένα κυκλώματα... 7 1.5 Εργαλεία

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

Περιεχόµενα. Επικοινωνίες εδοµένων: Τρόποι Μετάδοσης και Πρωτόκολλα. Εισαγωγή

Περιεχόµενα. Επικοινωνίες εδοµένων: Τρόποι Μετάδοσης και Πρωτόκολλα. Εισαγωγή Επικοινωνίες εδοµένων: Τρόποι Μετάδοσης και Πρωτόκολλα Περιεχόµενα Εισαγωγή Επικοινωνία εδοµένων Αναλογική vs. Ψηφιακή Μετάδοση ιαµόρφωση σήµατος Κανάλια επικοινωνίας Κατεύθυνση και ρυθµοί µετάδοσης Ασύγχρονη

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΉΜΑ ΕΠΙΣΤΉΜΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Κ 7 Επικοινωνίες ΙΙ Χειμερινό Εξάμηνο Διάλεξη η Νικόλαος Χ. Σαγιάς Επίκουρος Καθηγητής Webpage: hp://ecla.uop.gr/coure/tst25 e-ail:

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

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

O n+2 = O n+1 + N n+1 = α n+1 N n+2 = O n+1. α n+2 = O n+2 + N n+2 = (O n+1 + N n+1 ) + (O n + N n ) = α n+1 + α n Η ύλη συνοπτικά... Στοιχειώδης συνδυαστική Γεννήτριες συναρτήσεις Σχέσεις αναδρομής Θεωρία Μέτρησης Polyá Αρχή Εγκλεισμού - Αποκλεισμού Σχέσεις Αναδρομής Γραμμικές Σχέσεις Αναδρομής με σταθερούς συντελεστές

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

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

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

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

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

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

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 24-5 Πράξεις με δυαδικούς αριθμούς (λογικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης ; Ποιες κατηγορίες

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

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

Εργαστηριακή Ασκηση 2- Κυκλικοί Κώδικες Εργαστηριακή άσκηση 2 Θεωρία ΚΩ ΙΚΕΣ ΑΝΙΧΝΕΥΣΗΣ ΣΦΑΛΜΑΤΩΝ Οι κώδικες διόρθωσης σφαλµάτων χρησιµοποιούνται µερικές φορές για µετάδοση δεδοµένων, για παράδειγµα, όταν το κανάλι είναι µονόδροµο (simplex)

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

5 η Θεµατική Ενότητα : Μνήµη & Προγραµµατιζόµενη Λογική. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

5 η Θεµατική Ενότητα : Μνήµη & Προγραµµατιζόµενη Λογική. Επιµέλεια διαφανειών: Χρ. Καβουσιανός 5 η Θεµατική Ενότητα : Μνήµη & Προγραµµατιζόµενη Λογική Επιµέλεια διαφανειών: Χρ. Καβουσιανός Μνήµη Η µνήµη καταλαµβάνει το µεγαλύτερο µέρος ενός υπολογιστικού συστήµατος Δύο τύποι: ROM - RAM RΟΜs CPU

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

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές ) http://di.ionio.gr/~mistral/tp/csintro/ Αριθμοί Πράξεις με δυαδικούς αριθμούς

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΤΕΧΝΟΛΟΓΙΑ (ΙΙ) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Ψηφιακά Ηλεκτρονικά

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

Γεώργιος Φίλιππας 23/8/2015

Γεώργιος Φίλιππας 23/8/2015 MACROWEB Προβλήματα Γεώργιος Φίλιππας 23/8/2015 Παραδείγματα Προβλημάτων. Πως ορίζεται η έννοια πρόβλημα; Από ποιους παράγοντες εξαρτάται η κατανόηση ενός προβλήματος; Τι εννοούμε λέγοντας χώρο ενός προβλήματος;

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

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο

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

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

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

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Συναρτήσεις Κατακερματισμού και Πιστοποίηση Μηνύματος Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

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

Περιεχόμενα. Κεφάλαιο 1 ΣΥΣΤΗΜΑΤΑ ΣΥΝΤΕΤΑΓΜΕΝΩΝ ΣΕ ΜΙΑ ΕΥΘΕΙΑ... 13 1.1 Οι συντεταγμένες ενός σημείου...13 1.2 Απόλυτη τιμή...14

Περιεχόμενα. Κεφάλαιο 1 ΣΥΣΤΗΜΑΤΑ ΣΥΝΤΕΤΑΓΜΕΝΩΝ ΣΕ ΜΙΑ ΕΥΘΕΙΑ... 13 1.1 Οι συντεταγμένες ενός σημείου...13 1.2 Απόλυτη τιμή...14 Περιεχόμενα Κεφάλαιο 1 ΣΥΣΤΗΜΑΤΑ ΣΥΝΤΕΤΑΓΜΕΝΩΝ ΣΕ ΜΙΑ ΕΥΘΕΙΑ... 13 1.1 Οι συντεταγμένες ενός σημείου...13 1.2 Απόλυτη τιμή...14 Κεφάλαιο 2 ΣΥΣΤΗΜΑΤΑ ΣΥΝΤΕΤΑΓΜΕΝΩΝ ΣΕ ΕΝΑ ΕΠΙΠΕΔΟ 20 2.1 Οι συντεταγμένες

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

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

Μοντέλο συστήματος αποδιαμόρφωσης παρουσία θορύβου

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

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

Η ΙΣΧΥΣ ΕΝΟΣ ΕΛΕΓΧΟΥ. (Power of a Test) ΚΕΦΑΛΑΙΟ 21

Η ΙΣΧΥΣ ΕΝΟΣ ΕΛΕΓΧΟΥ. (Power of a Test) ΚΕΦΑΛΑΙΟ 21 ΚΕΦΑΛΑΙΟ 21 Η ΙΣΧΥΣ ΕΝΟΣ ΕΛΕΓΧΟΥ (Power of a Test) Όπως είδαμε προηγουμένως, στον Στατιστικό Έλεγχο Υποθέσεων, ορίζουμε δύο είδη πιθανών λαθών (κινδύνων) που μπορεί να συμβούν όταν παίρνουμε αποφάσεις

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

ΕΝΟΤΗΤΑ 3 3.0 ΜΕΣΑ ΜΕΤΑΔΟΣΗΣ ΕΙΣΑΓΩΓΗ

ΕΝΟΤΗΤΑ 3 3.0 ΜΕΣΑ ΜΕΤΑΔΟΣΗΣ ΕΙΣΑΓΩΓΗ ΕΝΟΤΗΤΑ 3 3.0 ΜΕΣΑ ΜΕΤΑΔΟΣΗΣ ΕΙΣΑΓΩΓΗ Όπως είναι ήδη γνωστό, ένα σύστημα επικοινωνίας περιλαμβάνει τον πομπό, το δέκτη και το κανάλι επικοινωνίας. Στην ενότητα αυτή, θα εξετάσουμε τη δομή και τα χαρακτηριστικά

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ - ΑΣΚΗΣΕΙΣ 1. Έστω ότι θέλετε να συνδέσετε 20 υπολογιστές με συνδέσεις από σημείο σε σημείο (point-to-point), ώστε να είναι δυνατή η επικοινωνία όλων

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

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

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών... 37 3.1 Αριθμητικά σύνολα... 37 3.2 Ιδιότητες... 37 3.3 Περισσότερες ιδιότητες... Περιεχόμενα Πρόλογος... 5 Κεφάλαιο Βασικές αριθμητικές πράξεις... 5. Τέσσερις πράξεις... 5. Σύστημα πραγματικών αριθμών... 5. Γραφική αναπαράσταση πραγματικών αριθμών... 6.4 Οι ιδιότητες της πρόσθεσης

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

ΠΡΟΣΟΜΟΙΩΣΗ BPSK ΠΟΜΠΟΔΕΚΤΗ ΜΕ ΚΩΔΙΚΟΠΟΙΗΣΗ HAMMING ΣΕ ΠΕΡΙΒΑΛΛΟΝ AWGN ΕΡΓΑΣΤΗΡΙΟ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΠΡΟΣΟΜΟΙΩΣΗ BPSK ΠΟΜΠΟΔΕΚΤΗ ΜΕ ΚΩΔΙΚΟΠΟΙΗΣΗ HAMMING ΣΕ ΠΕΡΙΒΑΛΛΟΝ AWGN ΕΡΓΑΣΤΗΡΙΟ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΡΟΣΟΜΟΙΩΣΗ BPSK ΠΟΜΠΟΔΕΚΤΗ ΜΕ ΚΩΔΙΚΟΠΟΙΗΣΗ HAMMING ΣΕ ΠΕΡΙΒΑΛΛΟΝ AWGN ΕΡΓΑΣΤΗΡΙΟ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ

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

Ανάλυση Δεδομένων με χρήση του Στατιστικού Πακέτου R

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

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

Συστήματα πολυμέσων. Εισαγωγή Υλικό συστημάτων πολυμέσων Λογισμικό συστημάτων πολυμέσων Συστήματα πραγματικού χρόνου Χρονοπρογραμματισμός

Συστήματα πολυμέσων. Εισαγωγή Υλικό συστημάτων πολυμέσων Λογισμικό συστημάτων πολυμέσων Συστήματα πραγματικού χρόνου Χρονοπρογραμματισμός Συστήματα πολυμέσων Εισαγωγή Υλικό συστημάτων πολυμέσων Λογισμικό συστημάτων πολυμέσων Συστήματα πραγματικού χρόνου Χρονοπρογραμματισμός Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 03-1 Εισαγωγή

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

Συσχέτιση μεταξύ δύο συνόλων δεδομένων

Συσχέτιση μεταξύ δύο συνόλων δεδομένων Διαγράμματα διασποράς (scattergrams) Συσχέτιση μεταξύ δύο συνόλων δεδομένων Η οπτική απεικόνιση δύο συνόλων δεδομένων μπορεί να αποκαλύψει με παραστατικό τρόπο πιθανές τάσεις και μεταξύ τους συσχετίσεις,

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

ΕΙΔΙΚΗ ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ

ΕΙΔΙΚΗ ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ ΕΙΔΙΚΗ ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ αναλογικού σήματος FM και αποκωδικοποίηση ψηφιακού σήματος RDS. Τσίρος Γεώργιος, Φυσικός. Πανεπιστήμιο Πατρών, τμήμα Φυσικής 2014 1/37 Δομή παρουσίασης 1) Εισαγωγή 2) Μέθοδοι

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

Δίαυλος Πληροφορίας. Δρ. Α. Πολίτης

Δίαυλος Πληροφορίας. Δρ. Α. Πολίτης Δίαυλος Πληροφορίας Η λειτουργία του διαύλου πληροφορίας περιγράφεται από: Τον πίνακα διαύλου μαθηματική περιγραφή. Το διάγραμμα διάυλου παραστατικός τρόπος περιγραφής. Πίνακας Διαύλου Κατασκευάζεται με

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

8.1 Θεωρητική εισαγωγή

8.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 8 ΣΤΟΙΧΕΙΑ ΜΝΗΜΗΣ ΚΑΤΑΧΩΡΗΤΕΣ Σκοπός: Η µελέτη της λειτουργίας των καταχωρητών. Θα υλοποιηθεί ένας απλός στατικός καταχωρητής 4-bit µε Flip-Flop τύπου D και θα µελετηθεί

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

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 20 Huffman codes 1 / 12 Κωδικοποίηση σταθερού μήκους Αν χρησιμοποιηθεί κωδικοποίηση σταθερού μήκους δηλαδή

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

ΘΕΜΑ. Προσομοίωση Φυσικού Επιπέδου και Επιπέδου Σύνδεσης Δεδομένων Ασύρματου Δικτύου Ιατρικών Αισθητήρων

ΘΕΜΑ. Προσομοίωση Φυσικού Επιπέδου και Επιπέδου Σύνδεσης Δεδομένων Ασύρματου Δικτύου Ιατρικών Αισθητήρων Πανεπιστήµιο Πατρών Σχολή Επιστηµών Υγείας Τµήµα Ιατρικής Εθνικό Μετσόβιο Πολυτεχνείο Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Τµήµα Μηχανολόγων Μηχανικών ΔΙΑΤΜΗΜΑΤΙΚΟ

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

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

Εργαστήριο 8: Τεχνικές πολλαπλής πρόσβασης στα Δίκτυα Κινητών Επικοινωνιών

Εργαστήριο 8: Τεχνικές πολλαπλής πρόσβασης στα Δίκτυα Κινητών Επικοινωνιών Εργαστήριο 8: Τεχνικές πολλαπλής πρόσβασης στα Δίκτυα Κινητών Επικοινωνιών Σε ένα σύστημα τηλεπικοινωνιών πολλών χρηστών, όπου περισσότεροι από ένας χρήστες στέλνουν πληροφορίες μέσω ενός κοινού καναλιού,

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

Διακριτός Μετασχηματισμός Fourier

Διακριτός Μετασχηματισμός Fourier Διακριτός Μετασχηματισμός Fourier 1 Διακριτός Μετασχηματισμός Fourier Ο μετασχηματισμός Fourier αποτελεί τον ακρογωνιαίο λίθο της επεξεργασίας σήματος αλλά και συχνή αιτία πονοκεφάλου για όσους πρωτοασχολούνται

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

3. ΣΕΙΡΙΑΚΟΣ ΣΥΝΤΕΛΕΣΤΗΣ ΣΥΣΧΕΤΙΣΗΣ

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

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