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

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

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

Transcript

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

2 2

3 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα Τεχνικές ανάλυσης κωδίκων LDPC για τον εντοπισμό trapping sets με εφαρμογή στους κώδικες του προτύπου ΙΕΕΕ n Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Χρήστου Κωνσταντίνου Βασιλόπουλου Αριθμός Μητρώου: Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 14 / 10 / 2013 Ο Επιβλέπων Ο Διευθυντής του Τομέα Βασίλειος Παλιουράς Επίκουρος Καθηγητής Ευθύμιος Χούσος Καθηγητής 3

4 4

5 Αριθμός Διπλωματικής Εργασίας: Θέμα: Τεχνικές ανάλυσης κωδίκων LDPC για τον εντοπισμό trapping sets με εφαρμογή στους κώδικες του προτύπου ΙΕΕΕ n Φοιτητής: Χρήστος Βασιλόπουλος Επιβλέπων: Βασίλειος Παλιουράς 5

6 Ευχαριστίες Θα ήθελα να ευχαριστήσω όλους όσους με βοήθησαν στην πραγματοποίηση αυτής της διπλωματικής εργασίας. Ιδιαίτερα θα ήθελα να ευχαριστήσω θερμά τον επιβλέποντα επίκουρο καθηγητή κ. Βασίλειο Παλιουρά για τις πολύτιμες συμβουλές και ιδέες του που έπαιξαν καθοριστικό ρόλο στην πραγματοποίηση αυτής της διπλωματικής εργασίας. Επίσης, θα ήθελα να ευχαριστήσω και τον συνεπιβλέποντα επίκουρο καθηγητή κ. Δημήτριο-Αλέξανδρο Τουμπακάρη για τις χρήσιμες συμβουλές του. Επιπροσθέτως, θα ήθελα να ευχαριστήσω τους διδακτορικούς φοιτητές του κ. Παλιουρά, τον κ. Νικόλαο Κάνιστρα και τον κ. Ahmed Mahdi για την βοήθειά τους και τον χρόνο τους. Τέλος, θα ήθελα να ευχαριστήσω την οικογένειά μου και τους φίλους μου για την συνεχή και αμέριστη συμπαράστασή τους κατά την εκπόνηση της εργασίας μου αλλά και καθ όλη την διάρκεια της ακαδημαϊκής μου πορείας. 6

7 7

8 Περίληψη Σήμερα οι απαιτήσεις τόσο σε όγκο πληροφορίας προς μετάδοση όσο και της αξιόπιστης μετάδοσης και προστασίας της πληροφορίας είναι ιδιαίτερα υψηλές. Καθοριστικό ρόλο σε αυτό παίζει το αντικείμενο της Αναγνώρισης και Διόρθωσης Λαθών με τους κώδικες διόρθωσης λαθών που βρίσκονται σε κάθε πλευρά της καθημερινής και όχι μόνο ζωής οι οποίοι προστατεύουν από την αλλοίωση των δεδομένων και χρησιμοποιούνται για παράδειγμα σε συσκευές αποθήκευσης, κινητή τηλεφωνία, ασύρματα δίκτυα και επεκτείνονται μέχρι και στην δορυφορική επικοινωνία. Οι κώδικες LDPC είναι μια τέτοια κατηγορία κωδίκων με ποικίλες εφαρμογές και συγκαταλέγονται ανάμεσα στους καλύτερους του πεδίου της Αναγνώρισης και Διόρθωσης Λαθών. Όμως για να προστατευθεί το αναλλοίωτο της πληροφορίας είναι απαραίτητη η αξιόπιστη και επιτυχής αποκωδικοποίηση μετά τη λήψη των δεδομένων. Το πρόβλημα στην επαναληπτική αποκωδικοποίηση κωδίκων LDPC εμφανίζεται όταν έχουμε κύκλους στον πίνακα ελέγχου ισοτιμίας και στο γράφημα Tanner και εμφανίζονται κάποιες δομές που ονομάζονται trapping sets, οι οποίες οδηγούν σε διαφορετική από την αναμενόμενη συμπεριφορά της καμπύλης που δίνει το ρυθμό σφάλματος ανά bit. Σε αυτές τις περιπτώσεις η καμπύλη εμφανίζει από ένα σημείο και μετά διαφορετική κλίση από την αναμενόμενη και επηρεάζεται το κατώτατο σφάλμα το οποίο τώρα είναι υψηλότερο. Η μέθοδος που ακολουθήθηκε στη παρούσα εργασία ήταν για την μελέτη των χαρακτηριστικών κωδίκων μέσω της καταμέτρησης των trapping sets. 8

9 Today our requirements for reliable transmission of huge amounts of information are very high. The objective of Error Identification and Correction plays an important role in this effort with the use of error correction codes which are present in every aspect of everyday life and beyond for keeping information unchanged. Such examples of their use are storage devices, mobile communication, wireless networks and even satellite communication. LDPC codes are such a category of error correction codes, have many applications and constitute of some of the greatest codes of the field of Error Identification and Correction. But in order to achieve unchanged information after transmission, it is essential that decoding problems which appear must be resolved. The problem with iterative decoding of LDPC codes appears when cycles exist inside the parity check matrix and the Tanner graph and as a result some other structures appear, which are called trapping sets. These trapping sets are responsible for the deviation of the bearing of the graph of bit error rate and error floor. In these cases the graph has a suddenly change in gradient. So the error floor is much higher now. The method used here was the study of characteristics of some codes from counting the trapping sets. 9

10 10

11 Περιεχόμενα 1 Εισαγωγή Στόχος της διπλωματικής εργασίας Δομή διπλωματικής εργασίας Αντικείμενο της Αναγνώρισης και Διόρθωσης Λαθών Ιστορική Αναδρομή Βασικές Έννοιες Το επικοινωνιακό σύστημα Βασικοί ορισμοί Γραμμικοί Μπλοκ Κώδικες Κώδικες LDPC Ιστορική Αναδρομή Δομή και Κατασκευή κωδίκων LDPC Γράφημα Tanner Αποκωδικοποίηση Κωδίκων LDPC Hard Αποκωδικοποίηση Soft Αποκωδικοποίηση Εύρεση κύκλων Ορισμός κύκλου Αλγόριθμος εύρεσης κύκλων Οργάνωση προγράμματος εύρεσης κύκλων Αποτελέσματα προγράμματος εύρεσης κύκλων Χρόνοι εκτέλεσης προγράμματος εύρεσης κύκλων Σύγκριση εκδόσεων προγράμματος εύρεσης κύκλων Διαχείριση μνήμης Χρόνος εκτέλεσης προγράμματος εύρεσης κύκλων Ταχύτητα εκτέλεσης προγράμματος εύρεσης κύκλων Error Floor Γραφικά παραδείγματα κύκλων Άλλοι Αλγόριθμοι εύρεσης κύκλων Εύρεση μοναδικών κύκλων

12 5.1 Αλγόριθμος εύρεσης μοναδικών κύκλων Οργάνωση προγράμματος εύρεσης μοναδικών κύκλων Αποτελέσματα προγράμματος εύρεσης μοναδικών κύκλων Χρόνοι εκτέλεσης προγράμματος εύρεσης μοναδικών κύκλων Σύγκριση εκδόσεων προγράμματος εύρεσης μοναδικών κύκλων Μέθοδος εύρεσης trapping sets Εύρεση κύκλων με κοινούς κόμβους Αλγόριθμος εύρεσης κύκλων με κοινούς κόμβους Οργάνωση προγράμματος εύρεσης κύκλων με κοινούς κόμβους Χρόνοι εκτέλεσης προγράμματος εύρεσης κύκλων με κοινούς κόμβους Σύγκριση εκδόσεων προγράμματος εύρεσης κύκλων με κοινούς κόμβους Εύρεση trapping sets Ορισμός Trapping Set Αλγόριθμος εύρεσης trapping sets Οργάνωση προγράμματος εύρεσης trapping sets Αποτελέσματα εκτέλεσης προγραμμάτων εύρεσης trapping sets Γραφική απεικόνιση μερικών trapping sets του κώδικα few Άλλοι αλγόριθμοι εύρεσης trapping sets Αποτίμηση της προτεινόμενης μεθόδου Συνεισφορά Μελλοντική εργασία Βιβλιογραφία Παράρτημα-Κώδικες C

13 13

14 Σχήματα Κεφάλαιο 2 Σχήμα 1-1 Σελίδα από αντίγραφο της Εβραϊκής Βίβλου Σχήμα 1-2 Χωρητικότητα AWGN καναλιού συναρτήσει του SNR.29 Σχήμα 2-3 Γενικό πλαίσιο λειτουργίας των ψηφιακών επικοινωνιών...35 Κεφάλαιο 3 Σχήμα 3-1 Πίνακας ελέγχου ισοτιμίας και το αντίστοιχο γράφημα Tanner 48 Σχήμα 3-2 Γράφημα Tanner και το αντίστοιχο δέντρο ελέγχου ισοτιμίας για τον variable κόμβο...50 Σχήμα 3-3 Διαδοχική αποκωδικοποίηση για κώδικα LDPC Κεφάλαιο 4 Σχήμα 4-1 Γράφημα Error Floor...66 Σχήμα 4-2 Κύκλος μήκους Σχήμα κύκλοι μήκους 4 σε πίνακα ελέγχου ισοτιμίας..67 Σχήμα κύκλοι μήκους 4 του προηγούμενου πίνακα ελέγχου ισοτιμίας...68 Σχήμα 4-5 Κύκλος μήκους Σχήμα 4-6 Αλγόριθμος εύρεσης κύκλων...70 Κεφάλαιο 6 Σχήμα 6-1 Αθροιστική μέση τιμή πλήθους trapping sets σε σύνολο 26 Δειγμάτων.94 Σχήμα 6-2 Μέγιστο πλήθος κύκλων μήκους 6 που μπορούν να συμμετέχουν σε ένα trapping set.96 Σχήμα 6-3 Μέγιστο πλήθος κύκλων μήκους 8 που μπορούν να συμμετέχουν σε ένα trapping set.97 Σχήμα 6-2 Γραφική απεικόνιση ενός trapping set του κώδικα few

15 Σχήμα 6-3 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-4 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-5 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-6 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-7 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-8 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-9 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-10 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-11 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-12 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-13 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-14 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-15 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-16 Γραφική απεικόνιση ενός trapping set του κώδικα few Σχήμα 6-17 Γραφική απεικόνιση ενός trapping set του κώδικα few

16 16

17 Πίνακες Κεφάλαιο 4 Πίνακας 4-1 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα 57 Πίνακας 4-2 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 57 Πίνακας 4-3 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα 58 Πίνακας 4-4 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης κύκλων για τον κώδικα few 3.58 Πίνακας 4-5 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα 59 Πίνακας 4-6 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 59 Πίνακας 4-7 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα..60 Πίνακας 4-8 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων για τον κώδικα few Πίνακας 4-9 Σύγκριση εκδόσεων του προγράμματος εύρεσης κύκλων ως προς τη χρήση μνήμης και την ταχύτητα

18 Κεφάλαιο 5 Πίνακας 5-1 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα..75 Πίνακας 5-2 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα.75 Πίνακας 5-3 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα..76 Πίνακας 5-4 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για τον κώδικα few 3 76 Πίνακας 5-5 Χρόνοι εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα. 77 Πίνακας 5-6 Χρόνοι εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα.77 Πίνακας 5-7 Χρόνοι εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα...78 Πίνακας 5-8 Χρόνοι εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για τον κώδικα few Πίνακας 5-9 Σύγκριση εκδόσεων του προγράμματος εύρεσης μοναδικών κύκλων ως προς τη μνήμη και την ταχύτητα..79 Κεφάλαιο 6 Πίνακας 6-1 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων με κοινούς κόμβους για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα.83 Πίνακας 6-2 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων με κοινούς κόμβους για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα

19 Πίνακας 6-3 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων με κοινούς κόμβους για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα..84 Πίνακας 6-4 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων με κοινούς κόμβους για τον κώδικα few Πίνακας 6-5 Σύγκριση εκδόσεων του προγράμματος εύρεσης κύκλων με κοινούς κόμβους.85 Πίνακας 6-6 Αποτελέσματα εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα...90 Πίνακας 6-7 Αποτελέσματα εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 90 Πίνακας 6-8 Αποτελέσματα εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα...91 Πίνακας 6-9 Αποτελέσματα εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για τον κώδικα few 3.91 Πίνακας 6-10 Χρόνοι εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα 92 Πίνακας 6-11 Χρόνοι εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 92 Πίνακας 6-12 Χρόνοι εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα 93 Πίνακας 6-13 Χρόνος εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για τον κώδικα με few 3 93 Πίνακας 6-14 Αποτελέσματα εκτέλεσης της έκδοσης B του προγράμματος εύρεσης trapping sets για τον κώδικα few Πίνακας 6-15 Αποτελέσματα εκτέλεσης όλων των προγραμμάτων για μικρότερο πίνακα ισοτιμίας

20 Πίνακας 6-16 Αποτελέσματα εκτέλεσης της έκδοσης B του προγράμματος εύρεσης trapping sets για μικρότερο πίνακα ισοτιμίας..98 Πίνακας 6-17 Χρόνοι εκτέλεσης όλων των προγραμμάτων για μικρότερο πίνακα ισοτιμίας..99 Πίνακας 6-18 Αποτελέσματα εκτέλεσης της έκδοσης Γ του προγράμματος εύρεσης trapping sets για τον κώδικα few Πίνακας 6-19 Χρόνος εκτέλεσης της έκδοσης Γ του προγράμματος εύρεσης trapping sets για τον κώδικα few

21 21

22 1 Εισαγωγή Η σημερινή ανάπτυξη της τεχνολογίας και των ψηφιακών επικοινωνιών έχει δημιουργήσει μια νέα εποχή στην μετάδοση της πληροφορίας. Ανέκαθεν υπήρχε η ανάγκη του ανθρώπου να εξασφαλίσει την ασφάλεια και την αξιοπιστία της πληροφορίας σε οποιαδήποτε μορφή της επικοινωνίας του. Σήμερα μεταδίδεται καθημερινά τεράστιος όγκος πληροφορίας σε πολύ μεγάλες αποστάσεις και οι απαιτήσεις είναι ιδιαίτερα υψηλές. Έτσι καθίστανται περισσότερο αναγκαίες από ποτέ οι τεχνικές της Αναγνώρισης και Διόρθωσης Λαθών αλλά και η πλήρης εγκαθίδρυση και χρήση της σε οποιαδήποτε μετάδοση πληροφορίας πραγματοποιείται. Σήμερα οι κώδικες αναγνώρισης και διόρθωσης λαθών ενυπάρχουν σε κάθε έκφανση της καθημερινής και όχι μόνο ζωής. Συνεπώς γίνεται αντιληπτό και απαραίτητο να λυθούν τα οποιαδήποτε προβλήματα που εμφανίζονται προκειμένου να μπορούμε να ανταλλάσσουμε αναλλοίωτο οποιοδήποτε ποσό πληροφορίας. 1.1 Στόχος της διπλωματικής εργασίας Στην εργασία αυτή προτείνεται μια μέθοδος για την εύρεση και απαρίθμηση των δομών trapping sets LDPC κωδίκων που χρησιμοποιούνται στο πρότυπο ΙΕΕΕ n των ασύρματων δικτύων. Οι δομές αυτές καθορίζουν τη διορθωτική ικανότητα ενός κώδικα LDPC σε χαμηλό θόρυβο. Συγκεκριμένα, μπορούν να δημιουργήσουν απότομη αλλαγή της κλίσης της καμπύλης μεταβολής ρυθμού λαθών συναρτήσει του επιπέδου θορύβου (BER vs noise) κατά την επαναληπτική αποκωδικοποίηση. Στα πλαίσια αυτής της εργασίας εστιάσαμε στην εύρεση και στην καταμέτρηση των trapping sets, το οποίο προτείνεται ως ένα βήμα για την αντιμετώπιση του προβλήματος της αλλαγής κλίσης στην γραφική παράσταση του ρυθμού σφαλμάτων συναρτήσει του θορύβου. [25] 22

23 Συγκεκριμένα, δίνεται η δυνατότητα χαρακτηρισμού της συμπεριφοράς των κωδίκων με τη χρήση της μεθόδου αυτής και κατά συνέπεια στην κατασκευή κωδίκων που είναι απαλλαγμένοι από δομές trapping sets. 1.2 Δομή διπλωματικής εργασίας Στο κεφάλαιο 1 γίνεται μια εισαγωγή, περιγράφεται το πρόβλημα, δίνεται ο στόχος της διπλωματικής εργασίας και περιγράφεται η δομή της. Στο κεφάλαιο 2 γίνεται μια περιγραφή του αντικειμένου της αναγνώρισης και διόρθωσης λαθών και μια σύντομη θεωρητική παρουσίαση κάποιων βασικών εννοιών και ορισμών. Συγκεκριμένα γίνεται μια σύντομη ιστορική αναδρομή στη συνέχεια εξηγούνται κάποιες βασικές έννοιες. Αρχικά, γίνεται ανάλυση της έννοιας του επικοινωνιακού συστήματος, δίνονται κάποιοι βασικοί ορισμοί και τελευταία γίνεται μια σύντομη αναφορά στη θεωρία των γραμμικών μπλοκ κωδίκων. Στο κεφάλαιο 3 παρουσιάζονται οι κώδικες LDPC που είναι και οι κώδικες τους οποίους μελετά η παρούσα διπλωματική. Πρώτα γίνεται μια σύντομη ιστορική αναδρομή για τους κώδικες αυτούς και στη συνέχεια αναλύεται η δομή και την κατασκευή των κωδίκων LDPC. Στη συνέχεια αναλύεται το γράφημα Tanner και εξηγείται η αποκωδικοποίηση κωδίκων LDPC. Το κεφάλαιο 4 αναφέρεται στην εύρεση κύκλων σε γράφημα Tanner. Δίνεται ο ορισμός της δομής του κύκλου και αναλύεται ο αλγόριθμος εύρεσης κύκλων που υλοποιήθηκε. Ύστερα επεξηγείται η οργάνωση του προγράμματος εύρεσης κύκλων και παρατίθενται τα αποτελέσματα της εκτέλεσής του και οι χρόνοι εκτέλεσης του προγράμματος. Στη συνέχεια αναλύονται οι συγκρίσεις που έγιναν ανάμεσα στις εκδόσεις του προγράμματος εύρεσης κύκλων, η διαχείριση της μνήμης για την αντιμετώπιση των προβλημάτων μνήμης που παρουσιάστηκαν, οι βελτιστοποιήσεις που έγιναν σε σχέση με τον χρόνο εκτέλεσης του προγράμματος. Τέλος, γίνεται μια σύντομη αναφορά στο error floor, παρατίθενται μερικές γραφικές απεικονίσεις κύκλων και εξηγούνται σύντομα κάποιοι άλλοι αλγόριθμοι εύρεσης κύκλων από τη βιβλιογραφία. 23

24 Το κεφάλαιο 5 πραγματεύεται την εύρεση μοναδικών κύκλων ανάμεσα στους κύκλους που βρέθηκαν με το πρόγραμμα εύρεσης κύκλων. Αναλύεται ο αλγόριθμος εύρεσης μοναδικών κύκλων και κατόπιν εξηγείται η οργάνωση του προγράμματος και παρουσιάζονται τα αποτελέσματά του και οι χρόνοι εκτέλεσης. Επίσης, γίνεται η σύγκριση των εκδόσεων του προγράμματος εύρεσης μοναδικών κύκλων. Στο κεφάλαιο 6 περιγράφεται η μέθοδος εύρεσης trapping sets. Αρχικά αναλύεται η εύρεση κύκλων με κοινούς κόμβους. Πρώτα επεξηγείται ο αλγόριθμος εύρεσης κύκλων με κοινούς κόμβους και αναλύονται η οργάνωση του προγράμματος εύρεσης κύκλων με κοινούς κόμβους και τα αποτελέσματα του προγράμματος αντίστοιχα. Κατόπιν παρουσιάζεται η εύρεση των trapping sets. Δίνεται ο ορισμός του trapping sets και αναλύεται ο αλγόριθμος εύρεσης trapping sets που υλοποιήθηκε. Επιπροσθέτως, παρουσιάζονται η οργάνωση του προγράμματος εύρεσης trapping sets και τα αποτελέσματα και για τις 3 εκδόσεις του προγράμματος. Τέλος, παρουσιάζονται κάποιοι άλλοι αλγόριθμοι εύρεσης trapping sets που υπάρχουν στην βιβλιογραφία και δίνονται μερικά γραφικά παραδείγματα απεικόνισης κάποιων trapping sets του κώδικα few 3. Στο κεφάλαιο 7 γίνεται αξιολόγηση της προτεινόμενης μεθόδου,των αποτελεσμάτων που προέκυψαν, αναλύονται τα συμπεράσματα που προέκυψαν από αυτή την εργασία και γίνονται κάποιες προτάσεις για μελλοντική εργασία. Τέλος, στο παράρτημα παρατίθενται η βιβλιογραφία που χρησιμοποιήθηκε και ο κώδικας των τελικών εκδόσεων των προγραμμάτων που χρησιμοποιήθηκαν για την εξαγωγή των αποτελεσμάτων. 24

25 2 Αντικείμενο της Αναγνώρισης και Διόρθωσης Λαθών Σε αυτό το κεφάλαιο θα εξηγηθεί ποιος είναι ο σκοπός και το αντικείμενο του πεδίου της αναγνώρισης και διόρθωσης λαθών και θα αναλυθούν κάποιες βασικές έννοιες. Πρώτα, στο υποκεφάλαιο 2.1, θα γίνει μια ιστορική αναδρομή από τις πρώτες προσπάθειες που έγιναν για την αναγνώριση και διόρθωση λαθών μέχρι σήμερα. 2.1 Ιστορική Αναδρομή Ανέκαθεν υπήρχε η ανάγκη για τον έλεγχο ως προς την ορθότητα της πληροφορίας κατά την μεταφορά της μέσω του γραπτού λόγου. Ήδη από τα αρχαία χρόνια αναφέρεται η χρήση τεχνικών και μεθόδων αναγνώρισης και διόρθωσης των λαθών που θα εξασφάλιζαν την εγκυρότητα της πληροφορίας κατά την μετάδοσή της μέσω του γραπτού λόγου. Η πρώτη γνωστή συστηματική χρήση μεθόδων για την αναγνώριση λαθών ήταν από τους αρχαίους Εβραίους γραφείς στην ακριβή και έγκυρη αντιγραφή της Εβραϊκής Βίβλου. Η έμφαση που δόθηκε στις μικρές λεπτομέρειες των λέξεων και στην ορθογραφία εξελίχθηκε στην ιδέα του τέλειου κειμένου το 135 μ.χ. και μαζί της στην αυξανόμενη επιβολή ιδιαίτερα αυστηρών κανόνων ούτως ώστε έστω και ένα λάθος γράμμα αφαιρούσε την εγκυρότητα του παπύρου της Τορά. Οι γραφείς χρησιμοποιούσαν μεθόδους όπως το άθροισμα των λέξεων ανά γραμμή και ανά σελίδα (Αριθμητική Μασόρα) και ελέγχοντας την μεσαία παράγραφο, λέξη και γράμμα έναντι προς το αρχικό κείμενο προς αντιγραφή. Η σελίδα θεωρείτο λάθος αν βρισκόταν έστω και αν λάθος και 3 λάθη σε μια μόνο σελίδα είχαν ως αποτέλεσμα να καταστραφεί ολόκληρο το χειρόγραφο (το ισοδύναμο της αναμετάδοσης σε ένα τηλεπικοινωνιακό κανάλι). Η αποτελεσματικότητα των μεθόδων τους επαληθεύτηκε από την 25

26 ακρίβεια της αντιγραφής και την διάσωση των κειμένων στους αιώνες [4]. Στην Αριθμητική Μασόρα παρέχονται κάποιες στατιστικές πληροφορίες για το κείμενο, όπως ο αριθμός των γραμμάτων, γεγονός το οποίο εξασφάλιζε την ακρίβεια στην μετάδοση του κειμένου με την δημιουργία μεταγενέστερων γραπτών αντιγράφων. Βέβαια το σύστημα Μασόρα αποτελείτο από δύο είδη τα οποία είναι: Μασόρα περιθωρίων Τελική Μασόρα Επίσης, η Μασόρα περιθωρίων διαιρείται σε: Μικρή Μασόρα Μεγάλη Μασόρα Κάποιες από τις πληροφορίες που χρησιμοποιεί η Μικρή Μασόρα είναι στατιστικές πληροφορίες για τις λέξεις, εκφράσεις ή συγκεκριμένη φρασεολογία και εντοπίζεται στα δεξιά και αριστερά περιθώρια της σελίδας. Η Μεγάλη Μασόρα είναι μια εξέλιξη της μικρής Μασόρα και εντοπίζεται στο πάνω και στο κάτω περιθώριο της σελίδας. Αντίθετα η Τελική Μασόρα εντοπίζεται στο τέλος Βιβλικών κειμένων ή μετά από συγκεκριμένα τμήματα κειμένου. Περιέχει πληροφορίες και στατιστικά όπως ο αριθμός των λέξεων σε ένα βιβλίο ή σε ένα τμήμα κειμένου [5]. Ένα παράδειγμα χρήσης της συγκεκριμένης μεθόδου αναγνώρισης λαθών φαίνεται στην παρακάτω εικόνα: 26

27 Σχήμα 2-1 Σελίδα από αντίγραφο της Εβραϊκής Βίβλου [5] Αυτές οι πρώιμες μέθοδοι ήταν η αρχή της μετέπειτα δημιουργίας ενός επιστημονικού κλάδου, αυτού της αναγνώρισης και διόρθωσης λαθών. Η γενική ιδέα προκειμένου να επιτευχθεί αναγνώριση και διόρθωση λαθών είναι η προσθήκη πλεονάζουσας πληροφορίας στο μήνυμα ούτως ώστε οι παραλήπτες να ελέγξουν την ορθότητα του ληφθέντος μηνύματος και να ανακτούν τα δεδομένα που έχουν βρει ότι αλλοιώθηκαν [4]. Εδώ κρίνεται σκόπιμο να δώσουμε τους ορισμούς της κωδικοποίησης αναγνώρισης και διόρθωσης λαθών: Η κωδικοποίηση αναγνώρισης λαθών ορίζεται ως τα μέσα με τα οποία μπορούν να ανιχνευθούν τα λάθη που μπορεί να 27

28 εμφανισθούν σε δεδομένα, που μεταδίδονται ψηφιακά μέσω ενός επικοινωνιακού καναλιού, βασισμένα στη ληφθείσα πληροφορία. Η κωδικοποίηση διόρθωσης λαθών ορίζεται ως τα μέσα με τα οποία μπορούν να διορθωθούν τα λάθη που μπορεί να εμφανισθούν σε δεδομένα, βασισμένα στα ληφθέντα δεδομένα. Η κωδικοποίηση αναγνώρισης λαθών και η κωδικοποίηση διόρθωσης λαθών μαζί αποτελούν το πεδίο της κωδικοποίησης ελέγχου λαθών [1]. Η θεμελίωση του κλάδου στην σύγχρονη μορφή του επήλθε με την εμφάνιση της θεωρίας κωδίκων, δηλαδή την εισαγωγή των κωδίκων διόρθωσης λαθών από τον Claude Shannon, το 1948, όταν εξέδωσε την δημοσίευσή του με τίτλο A mathematical theory of communication καθώς και από τους Richard Hamming και Marcel Golay. Αυτή η δημοσίευση του Shannon σηματοδότησε την αρχή της θεωρίας πληροφορίας και της θεωρίας κωδίκων. Ο Shannon όρισε έναν αριθμό, τον οποίο ονόμασε χωρητικότητα του καναλιού και απέδειξε ότι αυθαίρετα αξιόπιστη επικοινωνία είναι εφικτή σε οποιοδήποτε ρυθμό ο οποίος όμως είναι μικρότερος από τη χωρητικότητα του καναλιού. Επίσης όρισε το εύρος ζώνης (bandwidth) ως το εύρος των ηλεκτρονικών, οπτικών ή ηλεκτρομαγνητικών συχνοτήτων που μπορούν να χρησιμοποιηθούν για να μεταδοθεί ένα σήμα και το θόρυβο (noise) που είναι οτιδήποτε μπορεί να διαταράξει το σήμα. Η χωρητικότητα καναλιού εκφράζει τον μέγιστο ρυθμό μεταφοράς δεδομένων χωρίς λάθη από ένα επικοινωνιακό κανάλι με συγκεκριμένα χαρακτηριστικά εύρους ζώνης και θορύβου. Επίσης λέγεται και όριο του Shannon. Στην σύγχρονη εποχή θα μπορούσαμε να πούμε πως έχει σημειωθεί μια επανάσταση στην κωδικοποίηση ελέγχου λαθών με την εμφάνιση κωδίκων οι οποίοι έχουν την ικανότητα να πλησιάζουν τα θεωρητικά όρια της απόδοσης του καναλιού, δηλαδή της χωρητικότητας καναλιού που όρισε ο Shannon [1][3]. Ο τύπος που δίνει τη χωρητικότητα καναλιού για ένα κανάλι λευκού αθροιστικού γκαουσσιανού θορύβου (η γκαουσσιανή κατανομή μεγιστοποιεί την δυνατή μεταφερόμενη πληροφορία και συνεπάγεται ένα άνω όριο χωρητικότητας καναλιού για οποιαδήποτε διαμόρφωση και κώδικα) είναι: 28

29 C = W ) και μετράται σε bits / sec Όπου, W το εύρος ζώνης που μετράται σε Hz S = η μέση ισχύς του ληφθέντος σήματος που μετράται σε Watt N = BW η μέση ισχύς θορύβου που μετράται σε Watt Παρακάτω δείχνεται η χωρητικότητα καναλιού για το προαναφερθέν κανάλι (θεώρημα χωρητικότητας Shannon Hartley) [8]: Σχήμα 2-2 Χωρητικότητα AWGN καναλιού συναρτήσει του SNR [8] 29

30 Παράλληλα ο Hamming εξέδωσε τον πρώτο κώδικα διόρθωσης λαθών, ο οποίος φέρει και το όνομά του. To 1946, o Hamming που ήταν μαθηματικός, είχε προσληφθεί στα εργαστήρια Bell προκειμένου να δουλέψει στην θεωρία της ελαστικότητας. Ωστόσο παρατήρησε ότι περνούσε τον περισσότερο χρόνο του με τους υπολογιστές, οι οποίοι ήταν πολύ αναξιόπιστοι εκείνη την εποχή. Οι υπολογιστές ήταν εξοπλισμένοι με δυνατότητες αναγνώρισης λαθών αλλά η αναγνώριση ενός λάθους κατέληγε απλά στην διακοπή της εκτέλεσης του προγράμματος και αυτό είχε ως αποτέλεσμα ελάχιστα προγράμματα να καταφέρουν να ολοκληρώσουν την εκτέλεσή τους χωρίς λάθη. Αυτό οδήγησε τον Hamming στο να βρει έναν τρόπο να κωδικοποιήσει την είσοδο ώστε να μπορεί ο υπολογιστής να διορθώσει απομονωμένα λάθη χωρίς παράλληλα να διακόψει την εκτέλεση του προγράμματος. Η λύση που έδωσε στο πρόβλημα ήταν να οργανώνει τα δεδομένα σε ομάδες των 4 bits πληροφορίας και μετά να υπολογίζει 3 bits ελέγχου, τα οποία είναι γραμμικός συνδυασμός των bits πληροφορίας. Συνεπώς όταν δινόταν η κωδική λέξη (codeword) στον υπολογιστή, ήταν σε θέση όχι μόνο να αναγνωρίζει τα λάθη αλλά και να προσδιορίζει την ακριβή θέση ενός λάθους. Ο κώδικας Hamming ήταν ικανός να διορθώσει ένα μόνο λάθος σε μια ομάδα 7 κωδικοποιημένων bits. Αν και ο κώδικας Hamming ήταν μια μεγάλη πρόοδος, είχε κάποιες ανεπιθύμητες ιδιότητες: Δεν ήταν πολύ αποδοτικός γιατί απαιτούσε 3 bits ελέγχου για κάθε 4 bits πληροφορίας. Είχε τη δυνατότητα να διορθώνει μόνο ένα λάθος ανά ομάδα. Αυτές τις αδυναμίες διόρθωσε ο Marcel Golay που γενίκευσε την κατασκευή του Hamming. Στην διαδικασία ανακάλυψε δύο αξιοσημείωτους κώδικες που φέρουν το όνομά του. Ο πρώτος, ο δυαδικός Golay κώδικας, οργανώνει τα δεδομένα σε ομάδες των 12 bits και ύστερα υπολογίζει 11 bits ελέγχου, δηλαδή έχουμε ομάδες των 23 bits. Ο συσχετιζόμενος αλγόριθμος αποκωδικοποίησης μπορεί να διορθώσει μέχρι τρία λάθη στο σύνολο των 23 bits. Ο δεύτερος, ο οποίος είναι ο τριαδικός Golay κώδικας, λειτουργεί σε τριαδικούς αριθμούς. Σε αυτόν έχουμε ομάδες 6 τριαδικών συμβόλων με 5 τριαδικά σύμβολα ελέγχου και έχει τη δυνατότητα να διορθώσει δύο λάθη στην προκύπτουσα 11 συμβόλων κωδική λέξη. 30

31 Το 1949 εξέδωσε δημοσίευση με τίτλο Notes on digital coding in the proceedings of the Institute of Electrical and Electronic Engineers [7]. Επιπροσθέτως μια άλλη σημαντική κατηγορία κωδίκων που ανακαλύφθηκαν ήταν οι Reed-Muller κώδικες οι οποίοι περιγράφηκαν πρώτοι από τον Muller το Οι κώδικες αυτοί, οι οποίοι ανήκουν στην κατηγορία των γραμμικών κωδίκων ομάδας (που θα εξηγηθεί αργότερα), ήταν ένα σημαντικό βήμα προόδου παραπάνω από τους Hamming και Golay κώδικες επειδή επέτρεπαν μεγαλύτερη ευλυγισία ως προς το μέγεθος της κωδικής λέξης και στον αριθμό των δυνατών ως προς διόρθωση λαθών ανά κωδική λέξη. Αργότερα ανακαλύφθηκα οι κυκλικοί κώδικες αναφέρθηκαν για πρώτη φορά το 1957 από τον Prange του κέντρου έρευνας της Πολεμικής Αεροπορίας του Cambridge. Ένα υποσύνολο των κυκλικών κωδίκων ανακαλύφθηκε από τον Hocquenghem το 1959 και από την ομάδα των Bose και Ray-Chaudhuri το 1960 και είναι γνωστοί ως BCH κώδικες. Οι κώδικες αυτοί έχουν μήκος n = - 1, όπου m είναι ένας ακέραιος αριθμός και αποτελεί σχεδιαστική παράμετρο. Ο αριθμός των λαθών που μπορούν να διορθώσουν οι δυαδικοί (q = 2) BCH κώδικες είναι t = (n k) / m. Βέβαια κάποιοι από αυτούς υπάρχουν δυνατότητες για την διόρθωση περισσότερων λαθών. Οι BCH κώδικες επεκτάθηκαν (q > 2) από τους Reed Solomon το Αποτέλεσαν σημαντική πρόοδο γιατί λόγω της μη δυαδικής φύσης τους παρέχουν προστασία απέναντι σε ξεσπάσματα λαθών [6]. Σήμερα η αναγνώριση και διόρθωση λαθών σε συνδυασμό με την θεωρία κωδίκων αποτελούν αναπόσπαστο και ιδιαίτερα σημαντικό κομμάτι στην καθημερινή μας και όχι μόνο ζωή καθώς είναι παρούσες σε κάθε έκφανσή της και οι εφαρμογές τους είναι πολλές και πολύπλευρες. Με την εξέλιξη των τηλεπικοινωνιών, ιδιαίτερα των ψηφιακών επικοινωνιών και την ανάπτυξη των ασύρματων δικτύων μπορούμε να στέλνουμε και να λαμβάνουμε τεράστιο όγκο δεδομένων. Όμως κατά την μετάδοση είναι πιθανόν να αλλοιωθεί ένα μέρος της πληροφορίας. Εκεί υπεισέρχεται το πεδίο της αναγνώρισης και διόρθωσης λαθών προκειμένου να εγγυηθεί ότι ο παραλήπτης θα έχει τελικά την αρχική σωστή πληροφορία. Ένα παράδειγμα είναι όταν οι δορυφόροι στέλνουν φωτογραφίες από το διάστημα στην γη, υπάρχει ο κίνδυνος τα δεδομένα να αλλοιωθούν 31

32 λόγω της κοσμικής ακτινοβολίας. Επίσης οι σκληροί δίσκοι, τα CD, τα USB sticks, τα DVD και γενικότερα όλα τα μέσα αποθήκευσης χρησιμοποιούν μεθόδους αναγνώρισης και διόρθωσης λαθών για να εξασφαλίσουν την εγκυρότητα των δεδομένων που αποθηκεύονται σε αυτά. Τα βιβλία που φέρουν κάποιο κωδικό στο πίσω μέρος του εξωφύλλου αποτελούν ένα άλλο παράδειγμα εφαρμογής. Επιπροσθέτως στα ιατρικά μηχανήματα όπου απαιτείται υψηλή ακρίβεια και αξιοπιστία των αποτελεσμάτων τους αποτελούν ένα άλλο πεδίο εφαρμογής του αντικειμένου αυτού. Τα κινητά τηλέφωνα για κάθε τηλεφωνική κλήση που γίνεται χρησιμοποιούν αυτές τις μεθόδους. Τέλος, το Internet χρησιμοποιεί πάρα πολύ αυτές τις μεθόδους και σε κάθε πακέτο που μεταδίδεται έχει μια κωδικοποίηση προστασίας ώστε να βλέπουμε αν το πακέτο παραδόθηκε σωστά [1]. 32

33 2.2 Βασικές Έννοιες Το επικοινωνιακό σύστημα Η θεωρία πληροφορίας γίνεται ολοένα και περισσότερο σχετική με την θεωρία κωδίκων επειδή η μεγάλη πρόοδος που σημειώνεται στην δεύτερη καθιστά δυνατή την επίτευξη των ορίων απόδοσης της θεωρίας πληροφορίας, γεγονός το οποίο παλαιότερα ήταν αδύνατο. Η θεωρία πληροφορίας χειρίζεται την πληροφορία σχεδόν σαν φυσική ποσότητα η οποία μπορεί να μετρηθεί, να αλλάξει μορφή και να μετακινηθεί. Η κυρίαρχη ιδέα στην θεωρία πληροφορίας είναι ότι η πληροφορία διακατέχεται από ένα ποσό αβεβαιότητας. Η πληροφορία μπορεί να μετρηθεί από το ποσό της αβεβαιότητας που έχει επιλυθεί και αυτό εκφράζεται με πιθανότητες. Η έννοια της εντροπίας εκφράζει τη μέση πληροφορία. Ο τύπος από τον οποίο δίνεται η εντροπία για μια πηγή X με Μ εξόδους και αντίστοιχες πιθανότητες Ρ(Χ = ) =, i = 1, 2,, M είναι: Η(Χ) = Ε[- P(X)] = - Το αποτέλεσμα μετράται σε bits ή σε Shannon. Ένα ψηφιακό επικοινωνιακό σύστημα αποτελείται από κάποια τμήματα μέσω των οποίων δρα φυσικά επάνω στην πληροφορία. Στο ένα άκρο έχουμε την πηγή από την οποία προέρχονται τα ψηφιακά δεδομένα προς μετάδοση και τα οποία κωδικοποιούνται και διαμορφώνονται (και πιθανώς κρυπτογραφούνται) και στέλνονται στον παραλήπτη. Η πηγή (source) είναι τα δεδομένα προς μετάδοση, όπως ένα αρχείο υπολογιστή ή μια τηλεφωνική συνομιλία και βρίσκονται σε ψηφιακή μορφή (αφότου έχει γίνει μια μετατροπή από αναλογικά σε ψηφιακά). Ο κωδικοποιητής πηγής (source encoder) κάνει συμπίεση των δεδομένων αφαιρώντας την πλεονάζουσα πληροφορία. Το ποσό των 33

34 δεδομένων που μπορούν να συμπιεστούν χωρίς απώλεια πληροφορίας καθορίζεται από το όριο Shannon. Ο κρυπτογραφητής (encrypter) κρύβει ή μπερδεύει την πληροφορία έτσι ώστε να μην μπορεί κάποιος τρίτος να καταλάβει το περιεχόμενο του μηνύματος. Ο κωδικοποιητής καναλιού (channel coder) προσθέτει πλεονάζουσα πληροφορία στα δεδομένα προς μετάδοση ούτως ώστε να μπορούν να διορθωθούν τα λάθη που μπορεί να συμβούν κατά την μετάδοση μέσα από το κανάλι. Ουσιαστικά αποτελεί και το πρώτο βήμα στης διαδικασίας αναγνώρισης και διόρθωσης λαθών. Η προσθήκη πλεονάζουσας πληροφορίας από τον κωδικοποιητή καναλιού έχει ως αποτέλεσμα στην έξοδο να έχουμε περισσότερα σύμβολα απ ότι στην είσοδο. Έτσι ορίζεται ο ρυθμός ενός κωδικοποιητή καναλιού ως R = όπου k είναι μια ομάδα k συμβόλων εισόδου και n είναι μια ομάδα δεδομένων εξόδου με n > k. Ο διαμορφωτής (modulator) μετατρέπει ακολουθίες συμβόλων του κωδικοποιητή καναλιού σε σήματα κατάλληλα για μετάδοση στο κανάλι. Το κανάλι (channel) είναι το μέσο πάνω από το οποίο μεταδίδεται η πληροφορία. Χαρακτηριστικό μέγεθος του καναλιού είναι η χωρητικότητά του που δείχνει πόση πληροφορία μπορεί να μεταφέρει αξιόπιστα. Το ποσό της πληροφορίας που μπορεί να μεταφερθεί αξιόπιστα συσχετίζεται με τους κώδικες αναγνώρισης λαθών μέσω του θεωρήματος κωδικοποίησης καναλιού το οποίο ορίζει ότι για οποιοδήποτε αριθμό μετάδοσης μικρότερο από την χωρητικότητα του καναλιού, υπάρχει κώδικας ούτως ώστε η πιθανότητα του λάθους να γίνει αυθαίρετα μικρή. 34

35 Ο αποδιαμορφωτής (demodulator/equalizer) λαμβάνει το σήμα που μεταδόθηκε μέσα από το κανάλι και το μετατρέπει σε μια ακολουθία συμβόλων. Ο αποκωδικοποιητής καναλιού (channel decoder) χρησιμοποιεί την πλεονάζουσα πληροφορία που προστέθηκε από τον κωδικοποιητή καναλιού για να διορθώσει τα λάθη που μπορεί να έχουν εμφανιστεί. Ο αποκρυπτογραφητής (decrypter) αφαιρεί την κρυπτογράφηση. Ο αποκωδικοποιητής πηγής (channel decoder) αφαιρεί την συμπίεση των δεδομένων που δημιούργησε ο κωδικοποιητής πηγής. Επίσης περιλαμβάνει και μια μετατροπή από ψηφιακό σε αναλογικό και ίσως την παρεμβολή δειγμάτων για την παραγωγή κυματομορφών. Ο παραλήπτης (sink ή receiver) είναι ο τελικός προορισμός των δεδομένων [1][2][9][10]. Ολόκληρη η διαδικασία της μετάδοσης μέσα από ένα κανάλι, φαίνεται στην παρακάτω εικόνα όπου φαίνεται κάθε βήμα που περιγράφηκε παραπάνω: Σχήμα 2-3 Γενικό πλαίσιο λειτουργίας των ψηφιακών επικοινωνιών [1] 35

36 2.2.2 Βασικοί ορισμοί Ένας (n,k) δυαδικός κώδικας είναι ένα σύνολο διακριτών σημείων στο (όπου ο διανυσματικός χώρος που αποτελείται από n πλειάδες στοιχείων του που είναι ένα σύνολο δύο στοιχείων, 0 και 1). Το αποτέλεσμα κάθε πράξης που γίνεται στο πεδίο αυτό υφίσταται και την πράξη modulo 2 και τότε προκύπτει το τελικό αποτέλεσμα. Ο ρυθμός ενός τέτοιου κώδικα ορίζεται ως R = Ένας (n,k) επαναληπτικός κώδικας παράγεται επαναλαμβάνοντας μια είσοδο k bits n φορές στην κωδική λέξη εξόδου. Άρα αν εξετάσουμε ένα απλό παράδειγμα όπου k = 1 θα έχουμε 2 κωδικές λέξεις. Η κωδική λέξη που αντιπροσωπεύει είσοδο 0 θα είναι μια ομάδα από n μηδενικά και αντίστοιχα για το 1 μια ομάδα από n 1. Ο κώδικας θα αποτελείται από το σύνολο των δύο κωδικών λέξεων, δηλαδή C = {[0, 0,, 0], [1, 1,, 1]} Αν συμβολίσουμε το μήνυμα ως m η κωδική λέξη που αντιστοιχεί είναι C = {m, m,...,m}, όπου έχουμε n αντίγραφα του m Στη γενική περίπτωση το πεδίο αναπαριστά το διανυσματικό χώρο όλων των n διανυσμάτων ή πλειάδων στο πεπερασμένο πεδίο. Ένας (n,μ) κώδικας C στο είναι ένα υποσύνολο του μεγέθους Μ. Ομοίως τα αποτελέσματα όλων των πράξεων θα υφίστανται την πράξη modulo q. Αν ο κώδικας είναι στο έχουμε δυαδικό κώδικα. Αν έχουμε κώδικα στο έχουμε τριαδικό κώδικα κ.ο.κ. Τα διανύσματα.. ) ονομάζονται κωδικές λέξεις (codewords) και μπορούν να προσδιοριστούν με διάφορους τρόπους. Αν C είναι ένας k διαστάσεων υποχώρος του τότε ο C 36

37 είναι ένας (n,k) γραμμικός κώδικας στο και έχει κωδικές λέξεις. Οι δύο συνηθέστεροι και κυριότεροι τρόποι για να αναπαρασταθεί ένας γραμμικός κώδικας είναι 1) ο γεννήτορας πίνακας (generator matrix) και 2) ο πίνακας ελέγχου ισοτιμίας (parity check matrix). Ο γεννήτορας πίνακας για έναν γραμμικό [n,k] κώδικα είναι ένας οποιοσδήποτε πίνακας k n του οποίου οι γραμμές σχηματίζουν μια βάση για τον C. Ο γεννήτορας πίνακας για έναν κώδικα δεν είναι μοναδικός. Γενικότερα υπάρχουν πολλοί γεννήτορες πίνακες για κάθε κώδικα. Για κάθε σύνολο k ανεξάρτητων στηλών του γεννήτορα πίνακα το σύνολο που αντιστοιχίζεται λέγεται σύνολο πληροφορίας (information set). Οι υπόλοιπες t = n k συντεταγμένες χαρακτηρίζονται ως σύνολο πλεονασμού και αποτελούν τον πλεονασμό του κώδικα. Αν όμως οι πρώτες k συντεταγμένες σχηματίζουν ένα σύνολο πληροφορίας τότε ο κώδικας έχει ένα μοναδικό γεννήτορα πίνακα της μορφής [ A] και τότε ο πίνακας βρίσκεται στην κανονική μορφή. Ο πίνακας ελέγχου ισοτιμίας H είναι ένας πίνακας διαστάσεων (n - k) n και έχει την ακόλουθη ιδιότητα: C = {x є H = 0} Επίσης οι γραμμές του πίνακα ελέγχου ισοτιμίας θα είναι ανεξάρτητες. Γενικότερα υπάρχουν πολλοί πίνακες ελέγχου ισοτιμίας για κάθε κώδικα [3]. Επίσης υπάρχει μια πολύ σημαντική κατηγορία κωδίκων που ονομάζονται κυκλικοί. Ο ορισμός τους είναι ο ακόλουθος: Κυκλικοί (cyclic) είναι εκείνοι οι κώδικες για τους οποίους όλες οι κυκλικές ολισθήσεις για κάθε κωδική λέξη έχουν πάλι ως αποτέλεσμα κωδική λέξη. Ένα παράδειγμα τέτοιου κώδικα είναι ο κώδικας Hamming. Επίσης οι κυκλικοί κώδικες έχουν έναν ακόμα τρόπο αναπαράστασης, εκτός από τον γεννήτορα πίνακα, την 37

38 αναπαράσταση με πολυώνυμα. Έτσι έχουμε αντίστοιχα το πολυώνυμο γεννήτορα και το πολυώνυμο ελέγχου ισοτιμίας. Μια άλλη κατηγορία κωδίκων είναι οι διπλοί κώδικες (dual). Όταν ο πίνακας ελέγχου ισοτιμίας ενός κώδικα αποτελεί τον γεννήτορα πίνακα για κάποιον άλλο κώδικα τότε αυτοί οι δύο κώδικες λέγονται διπλοί ή ορθογώνιοι. Ο διπλός κώδικας ενός κώδικα C συμβολίζεται με [9][10][20]. Ένα άλλο πολύ σημαντικό θέμα είναι η απόσταση Hamming. Εάν έχουμε μια ακολουθία x = [,,, ] και μια άλλη y = [,,, ] στο, η απόσταση Hamming είναι το πλήθος των στοιχείων των δύο ακολουθιών που διαφέρουν μεταξύ τους. Δηλαδή είναι: (x, y) = ] Η απόσταση Hamming έχει τις ακόλουθες 4 ιδιότητες: (x, y) 0 για όλα τα x και y στο (x, y) = 0 αν και μόνο αν x = y (x, y) = (y, x) για όλα τα x και y στο (e, y) (e,x) + (x,y) για όλα τα x, y, e στο Κατά συνέπεια μπορούμε να δώσουμε και τον ορισμό της μικρότερης απόστασης ενός κώδικα [9][10]: Η μικρότερη απόσταση ενός κώδικα C είναι η μικρότερη των αποστάσεων μεταξύ δύο κωδικών λέξεων, δηλαδή : = min{ d(x, y) x,y C, x y } 38

39 2.2.3 Γραμμικοί Μπλοκ Κώδικες Μια άλλη πολύ σημαντική κατηγορία κωδίκων η οποία χρησιμοποιείται πάρα πολύ είναι οι γραμμικοί μπλοκ κώδικες οι οποίοι ορίζονται παρακάτω: Ένας (n,k) μπλοκ κώδικας C σε ένα αλφάβητο q συμβόλων είναι ένα σύνολο διανυσμάτων n διαστάσεων, τα οποία αποκαλούνται κωδικές λέξεις (codewords) ή κωδικά διανύσματα. Ένας μπλοκ κώδικας C σε ένα πεδίο q συμβόλων μήκους n που έχει κωδικές λέξεις είναι ένας q διαστάσεων (n,k) γραμμικός κώδικας αν και μόνο αν οι κωδικές λέξεις σχηματίζουν ένα k διαστάσεων διανυσματικό υποχώρο του διανυσματικού χώρου όλων των n διανυσμάτων. Ο αριθμός n αποτελεί το μήκος του κώδικα και ο k τη διάσταση του κώδικα. Ο ρυθμός του κώδικα (code rate) είναι R = k / n. Άμεση σχέση με κάθε κώδικα έχει ο κωδικοποιητής (encoder) ο οποίος μετασχηματίζει κάθε μήνυμα ώστε να το απεικονίσει στην σχετιζόμενη με αυτό κωδική λέξη. Για κάθε μπλοκ κώδικα υπάρχει πλήρης αντιστοιχία ανάμεσα στο μήνυμα και στην κωδική λέξη που αντιστοιχεί σε αυτό, δηλαδή για κάθε μήνυμα υπάρχει μια μοναδική κωδική λέξη που αντιστοιχεί σε αυτό. Όμως δεν ισχύει το αντίστροφο γιατί για έναν δοσμένο κώδικα μπορεί να υπάρχουν περισσότεροι από ένας τρόποι να αντιστοιχισθούν τα μηνύματα στις κωδικές λέξεις. Επίσης κάθε γραμμικός συνδυασμός κωδικών λέξεων είναι επίσης κωδική λέξη. Το βάρος Hamming μιας κωδικής λέξης wt(c) μιας κωδικής λέξης c είναι ο αριθμός των μη μηδενικών στοιχείων της κωδικής λέξης. Το μικρότερο βάρος ενός κώδικα C είναι το μικρότερο βάρος Hamming οποιασδήποτε μη μηδενικής κωδικής λέξης του κώδικα, δηλαδή: = wt(c) 39

40 Συγκεκριμένα για έναν γραμμικό κώδικα ισχύει ότι η ελάχιστη απόσταση ικανοποιεί την σχέση = [19] Η δυνατότητα διόρθωσης τυχαίων λαθών του κώδικα με ελάχιστη απόσταση είναι [1]: t = Γεννήτορας Πίνακας για Γραμμικούς Μπλοκ Κώδικες Δεδομένου ότι ένας γραμμικός μπλοκ κώδικας είναι ένας k διαστάσεων διανυσματικός χώρος, υπάρχουν k γραμμικώς ανεξάρτητα διανύσματα ούτως ώστε κάθε κωδική λέξη c μπορεί να γραφεί ως c = Ο γεννήτορας πίνακας G είναι ο ακόλουθος: G = [ ] Έχοντας το παρακάτω μήνυμα m m = [,,, ] μπορεί να αναπαρασταθεί με τη βοήθεια του γεννήτορα πίνακα ως εξής: c = m G Από τον γεννήτορα πίνακα G παράγεται ένας άλλος γεννήτορας πίνακας G ο οποίος όταν αντικατασταθεί στην ανωτέρω σχέση μας δίνει τον μετασχηματισμό του μηνύματος m σε κωδική λέξη του 40

41 κώδικα και έτσι γίνεται η διαδικασία της κωδικοποίησης. Τα αποτελέσματα όλων των πράξεων υφίστανται την πράξη modulo q όταν ο κώδικας βρίσκεται στο πεδίο στην γενική περίπτωση. Συστηματικός ονομάζεται ένας κωδικοποιητής αν τα σύμβολα του μηνύματος βρίσκονται ακριβώς ίδια μέσα στην κωδική λέξη, δηλαδή εάν: =, =,, = Για έναν γραμμικό κώδικα ο γεννήτορας πίνακας για έναν συστηματικό κωδικοποιητή λέγεται συστηματικός γεννήτορας πίνακας και η μορφή στην οποία γράφεται είναι G = [P ], όπου ο μοναδιαίος πίνακας και P είναι ένας πίνακας k (n - k) διαστάσεων που παράγει σύμβολα ισοτιμίας. Τότε για την διαδικασία της κωδικοποίησης έχουμε ότι c = m [P ] = [mp m]. Η κωδική λέξη αποτελείται από το τμήμα mp που παράγει τα σύμβολα ισοτιμίας και από το τμήμα m που περιέχει τα σύμβολα του μηνύματος. [1][10][15] Ο πίνακας ελέγχου ισοτιμίας και δυαδικοί κώδικες Ο δυαδικός κώδικας ενός (n,k) κώδικα διάστασης k είναι ένας (n, n k) κώδικας. Αν επιπλέον οι δύο κώδικες είναι ίδιοι λέγεται και αυτοδυαδικός κώδικας. Ο πίνακας ελέγχου ισοτιμίας είναι ο ακόλουθος [1][9][10][11]: [ ] Ο γεννήτορας πίνακας και ο πίνακας ελέγχου ισοτιμίας ικανοποιούν την ακόλουθη σχέση: G = 0 41

42 Αν ένας κώδικας C είναι στο με πίνακα ελέγχου ισοτιμίας H τότε ένα διάνυσμα v є είναι κωδική λέξη αν και μόνο αν ικανοποιεί την εξίσωση v = 0 [17]. Αν ο γεννήτορας πίνακας βρίσκεται σε συστηματική μορφή τότε ο πίνακας ελέγχου ισοτιμίας θα έχει τη μορφή H = [ ]. Η μικρότερη απόσταση για έναν γραμμικό μπλοκ κώδικα είναι ίση με τον μικρότερο αριθμό στηλών του πίνακα ισοτιμίας που είναι γραμμικά εξαρτημένες. [1][3][10][15] Όρια στους Μπλοκ Κώδικες Το όριο Singleton ορίζει ότι η ελάχιστη απόσταση για έναν γραμμικό κώδικα (n,k) έχει άνω όριο το οποίο είναι: n k +1 Αν για κάποιον κώδικα ισχύει η ισότητα στην ανωτέρω σχέση τότε ο κώδικας ονομάζεται διαχωρίσιμος κώδικας μέγιστης απόστασης. Το όριο Hamming ορίζει ότι ο πλεονασμός r για έναν t-τυχαίο κώδικα διόρθωσης λαθών q συμβόλων πρέπει να ικανοποιεί την σχέση: r (n,t) Ένας κώδικας για τον οποίο ικανοποιείται η ισότητα στην ανωτέρω σχέση λέγεται τέλειος κώδικας. [1][13] 42

43 Αναγνώριση και Διόρθωση Λαθών σε κανάλια Hard-Input Αναγνώριση Λαθών Έστω ένα διάνυσμα r n διαστάσεων στο και ο πίνακας ελέγχου ισοτιμίας για έναν κώδικα C. Τότε το διάνυσμα s = r ονομάζεται σύνδρομο του r. Το s θα είναι το μηδενικό διάνυσμα όταν και μόνο όταν το r είναι κωδική λέξη του κώδικα C. Σε οποιαδήποτε άλλη περίπτωση δεν θα είναι μηδενικό και μας δείχνει ότι το διάνυσμα r έχει αλλοιωθεί από τον θόρυβο και συνεπώς υπάρχει λάθος, δηλαδή αναγνωρίζεται το λάθος. Αυτό αποδεικνύεται παρακάτω: Αν υποθέσουμε ότι μεταδίδεται η κωδική λέξη c μέσα από ένα hard κανάλι και εμείς λαμβάνουμε το διάνυσμα r τότε ισχύει: r = c + e όπου e είναι το διάνυσμα θορύβου το οποίο είναι το μηδενικό διάνυσμα όταν δεν έχει προκληθεί σφάλμα από το κανάλι και μη μηδενικό στην αντίθετη περίπτωση, δηλαδή όταν η κωδική λέξη έχει αλλοιωθεί. Χρησιμοποιώντας την σχέση s = r έχουμε: s = (c + e) που ισχύει για το σύνδρομο = e γιατί c = 0 αφού η κωδική λέξη c είναι διάνυσμα του κώδικα όπως αναφέρθηκε σε προηγούμενο υποκεφάλαιο. Αυτή η σχέση που προέκυψε μας δείχνει την θέση του σφάλματος και λέμε ότι έχουμε αναγνώριση της θέσης του σφάλματος αλλά όχι και ποιο είναι το σφάλμα. [1][3][10] 43

44 Διόρθωση Λαθών Παρακάτω θα περιγράψουμε τη διόρθωση λαθών με την χρήση του κανονικού πίνακα (standard array). Χρησιμοποιώντας την μέθοδο αποκωδικοποίησης μέγιστης ομοιότητας (maximum likelihood) ο αποκωδικοποιητής θα πρέπει να βρει για το διάνυσμα r που έλαβε την κωδική λέξη c του κώδικα C που έχει τη μικρότερη απόσταση Hamming από το r. Δηλαδή θα ισχύει: = arg (c,r) Αν το σύνολο κωδικών λέξεων του κώδικα είναι {,,, } όπου Μ = και συμβολίσουμε ως το σύνολο των n διανυσμάτων που είναι πλησιέστερα στην κωδική λέξη από οποιαδήποτε άλλη κωδική λέξη και τα διανύσματα που ισαπέχουν από περισσότερες από μια κωδικές λέξεις τα αναθέσουμε τυχαία σε ένα σύνολο, τότε ο χώρος των n διανυσμάτων χωρίζεται σε Μ ασυσχέτιστα υποσύνολα. Ο κανονικός πίνακας είναι ένας διδιάστατος πίνακας που οι στήλες του αντιπροσωπεύουν τα. Κάθε κωδική λέξη που ανήκει στο σύνολό της γράφεται στην πρώτη γραμμή του πίνακα και έτσι σχηματίζεται η πρώτη γραμμή του. Από όλα τα υπόλοιπα διανύσματα στο διαλέγεται ένα διάνυσμα που είναι πλησιέστερα στην κωδική λέξη και ανήκει στο σύνολο Σε κάθε κωδική λέξη της πρώτης γραμμής προστίθεται το διάνυσμα του πίνακα (και το άθροισμα υφίσταται την πράξη modulo q) και το αποτέλεσμα γράφεται στην στήλη κάτω από την αντίστοιχη κωδική λέξη. Έτσι συμπληρώνεται η δεύτερη γραμμή και η διαδικασία συνεχίζεται μέχρι να εξαντληθούν όλα τα πιθανά διανύσματα. Οι γραμμές του κανονικού πίνακα ονομάζονται cosets. Τα διανύσματα στην πρώτη στήλη ονομάζονται αρχηγοί coset και αντιπροσωπεύουν τα δυνατά προς διόρθωση πρότυπα που μπορούν να διορθωθούν από τον κώδικα υπό αυτή την τακτική αποκωδικοποίησης. Κατά την διαδικασία της αποκωδικοποίησης εντοπίζεται το ληφθέν διάνυσμα και τότε εξετάζεται αν η σχέση r = e + c ικανοποιείται για τον αρχηγό coset e και την κωδική λέξη c που βρίσκεται στην κορυφή της αντίστοιχης στήλης, δηλαδή αναγνωρίζεται ποιο είναι το λάθος με βάση τα δυνατά προς διόρθωση πρότυπα του κανονικού πίνακα [18][19]. Όμως επειδή η αποκωδικοποίηση που γίνεται με τον 44

45 κανονικό πίνακα έχει απαιτήσεις σε μνήμη (γιατί ο πίνακας αποκτά μεγάλες διαστάσεις), χρόνο και η αναζήτηση είναι αρκετά πολύπλοκη (η αναζήτηση σε έναν τόσο μεγάλο πίνακα χρειάζεται αρκετό χρόνο κάθε φορά), χρησιμοποιείται αρχικά η αποκωδικοποίηση συνδρόμου που αναλύθηκε πιο πριν. Μέσω αυτής εντοπίζεται γρήγορα η θέση του λάθους αντί να γίνει αναζήτηση σε όλο τον κανονικό πίνακα και κατόπιν ακολουθείται η διαδικασία που εξηγήθηκε πιο πάνω για την αποκωδικοποίηση με την χρήση κανονικού πίνακα. Δηλαδή με την χρήση αποκωδικοποίησης συνδρόμου γίνεται μεγάλη εξοικονόμηση χρόνου στην αναγνώριση του λάθους. Επίσης αξίζει να αναφερθεί και η αποκωδικοποίηση erasure (erasure decoding). Ως erasure χαρακτηρίζεται ένα σφάλμα του οποίου είναι γνωστή μόνο η θέση και όχι η τιμή του. Αν το σφάλμα ξεπερνά τα αποδεκτά όρια τότε εμπίπτει σε αυτή την κατηγορία. Έστω για έναν κώδικα ότι έχουν συμβεί ταυτόχρονα σφάλματα και erasures και η δυνατότητα erasure είναι. Γενικά, ένα σύμβολο που έχει απαλειφθεί αφήνει τον κώδικα με ελάχιστη απόσταση τουλάχιστον 1. Αν έχουμε f σύμβολα που έχουν απαλειφθεί και εφόσον f <, τότε μπορούν να καλυφθούν. Αν είναι η τυχαία απόσταση αποκωδικοποίησης λαθών τότε ο αριθμός των σφαλμάτων που μπορούν να διορθωθούν είναι [1]: = Αν υπάρχουν f erasures και e σφάλματα, τότε μπορούν να διορθωθούν δεδομένου ότι ικανοποιείται η ακόλουθη συνθήκη [1]: 2e + f < 45

46 3 Κώδικες LDPC Σε αυτό το κεφάλαιο θα περιγραφούν οι κώδικες LDPC. Αρχικά θα γίνει μια σύντομη ιστορική αναδρομή και θα αναλυθούν τα πλεονεκτήματά της χρήσης τους. Στην συνέχεια θα αναλυθούν η δομή και η κατασκευή τους και θα περιγραφεί το γράφημα Tanner. Τέλος θα εξηγηθεί η αποκωδικοποίηση κωδίκων LDPC. 3.1 Ιστορική Αναδρομή Οι κώδικες LDPC (Low Density Parity Check Codes) προτάθηκαν αρχικά το 1962 από τον Robert Gallager και είναι μια πολύ σημαντική κατηγορία κωδίκων η οποία έχει εφαρμογή σε ένα μεγάλο εύρος της καθημερινής μας και όχι μόνο ζωής, όπως τα ασύρματα δίκτυα, οι κινητές επικοινωνίες και φτάνουν μέχρι και τις δορυφορικές επικοινωνίες. Η παρούσα διπλωματική ασχολείται με LDPC κώδικες για το πρότυπο ΙΕΕΕ n των ασύρματων δικτύων. Οι LDPC κώδικες είναι γραμμικοί μπλοκ κώδικες με πολύ αραιό πίνακα ελέγχου ισοτιμίας. Έχουν εξαιρετική απόδοση η οποία ξεπερνά, ορισμένες φορές, ακόμα και αυτή των turbo κωδίκων. Επίσης, οι επαναληπτικοί αλγόριθμοι αποκωδικοποίησης είναι εύκολοι στην υλοποίηση(πιο εύκολοι από αυτούς των αποκωδικοποιητών για turbo κώδικες) προσφέρουν τη δυνατότητα παραλληλισμού σε υλικό (hardware), γεγονός το οποίο αυξάνει την ταχύτητα και μειώνει σημαντικά την καθυστέρηση. Συγκαταλέγονται ανάμεσα στους καλύτερους κώδικες στον κόσμο και έχει αποδειχθεί ότι έχουν την δυνατότητα να πλησιάσουν πάρα πολύ και εκθετικά γρήγορα την χωρητικότητα καναλιού που όρισε ο Shannon.[1][21] 46

47 3.2 Δομή και Κατασκευή κωδίκων LDPC Εάν έχουμε ένα κώδικα LDPC με μήκος Ν και Κ το μέγεθός του, τότε το διάνυσμα του μηνύματος είναι ένα διάνυσμα K 1, η κωδική λέξη είναι ένα διάνυσμα Ν 1, ο γεννήτορας πίνακας G έχει διαστάσεις Ν Κ και ο πίνακας ελέγχου ισοτιμίας Α(το σύμβολο H θα χρησιμοποιείται όταν είναι στη συστηματική μορφή) έχει διαστάσεις (Ν Κ) Ν ούτως ώστε A G = 0. Αυτά φαίνονται παρακάτω: Α = [ ] m = [ ] c = [ ] G = [ ] Όπου,,, οι γραμμές του πίνακα Α και,,, οι γραμμές του πίνακα G. Η εξίσωση c = 0 λέγεται γραμμικός έλεγχος ισοτιμίας στην κωδική λέξη c. Τότε αν συμβολίσουμε ως = c, η λέγεται έλεγχος ισοτιμίας ή απλά έλεγχος. Χρησιμοποιώντας απαλοιφή Gauss παίρνουμε τον πίνακα ελέγχου ισοτιμίας σε συστηματική μορφή έχοντας προσδιορίσει πρώτα έναν πίνακα ούτως ώστε H = A = [ I ]. Αν όμως ο πίνακας δεν υπάρχει τότε η τάξη του Α είναι μικρότερη από Ν Κ. έτσι ο συστηματικός πίνακας ελέγχου ισοτιμίας Η σχηματίζεται διαγράφοντας τις γραμμικώς εξαρτημένες γραμμές του A και ο γεννήτορας πίνακας είναι G = [ ]. Κάθε γραμμή έχει ένα βάρος που είναι το πλήθος των μη μηδενικών στοιχείων της γραμμής και κάθε στήλη ένα βάρος που είναι το πλήθος των μη μηδενικών στοιχείων της στήλης αντίστοιχα. Ο γεννήτορας πίνακας ενός LDPC κώδικα λέγεται συμμετρικός αν τα βάρη όλων των γραμμών είναι ίδια και τα βάρη όλων των στηλών είναι ίδια. Για να παραχθεί ένας κώδικας LDPC επιλέγεται ένα μικρός θετικός ακέραιος αριθμός που είναι το βάρος στήλης, το μήκος του κώδικα N και ο πλεονασμός του κώδικα (N K). Τότε παράγεται ο γεννήτορας 47

48 πίνακας με βάρος στηλών αυτό που επελέγη και ένα βάρος γραμμής (συμμετρικός). Τότε ο ρυθμός του κώδικα είναι R = 1 - / ή R = 1 (Ν Κ) / Ν (αν ο κώδικας κατασκευαστεί ούτως ώστε να ισχύει η σχέση Ν / = ( N K) / ). [1] 3.3 Γράφημα Tanner Το γράφημα Tanner είναι ένας διμερής γράφος και αποτελεί μια γραφική απεικόνιση του πίνακα ελέγχου ισοτιμίας. Κάθε στήλη του πίνακα ελέγχου ισοτιμίας λέγεται variable κόμβος και ο συμβολισμός που χρησιμοποιείται είναι, πχ για την στήλη i,. Η κάθε γραμμή του πίνακα ελέγχου ισοτιμίας λέγεται check κόμβος και ο συμβολισμός που χρησιμοποιείται είναι, πχ για την στήλη i,. Συνεπώς έχουμε ένα σύνολο που αποτελείται από τους variable κόμβους και ένα δεύτερο που αποτελείται από τους check κόμβους. Στο γράφημα υπάρχει ακμή ανάμεσα σε ένα στοιχείο του ενός συνόλου με κάποιο στοιχείο του δεύτερου συνόλου όταν στην αντίστοιχη θέση του πίνακα υπάρχει 1. Για παράδειγμα, ο variable κόμβος m συνδέεται με μια ακμή με τον check κόμβο n στο γράφημα Tanner αν η n γραμμή του αντίστοιχου πίνακα ελέγχου ισοτιμίας στην m στήλη έχει 1 [12][14]. Η μορφή του διαγράμματος Tanner αλλά και ο συμβολισμός των γραμμών και των στηλών του πίνακα ελέγχου ισοτιμίας φαίνονται στην παρακάτω εικόνα: Σχήμα 3-1 Πίνακας ελέγχου ισοτιμίας και το αντίστοιχο γράφημα Tanner [9] 48

49 3.4 Αποκωδικοποίηση Κωδίκων LDPC Hard Αποκωδικοποίηση Στην hard αποκωδικοποίηση, για κάθε variable κόμβο υπολογίζονται οι check κόμβοι που επηρεάζονται από αυτόν, δηλαδή στην αντίστοιχη θέση του πίνακα ελέγχου ισοτιμίας υπάρχει 1. Όμως αν ο αριθμός των μη μηδενικών check κόμβων ξεπεράσει κάποιο κατώφλι, τότε το bit αυτό θεωρείται λανθασμένο, απορρίπτεται και η αποκωδικοποίηση συνεχίζεται. Με αυτό τον τρόπο μπορούν να διορθωθούν περισσότερα από ένα λάθη. Το πρόβλημα όμως δεν είναι τόσο απλό γιατί οι check κόμβοι που συνδέονται με έναν variable κόμβο επηρεάζονται από άλλους variable κόμβους με τους οποίους συνδέονται και αυτοί με την σειρά τους με κάποιους άλλους check κόμβους κ.ο.κ. Δηλαδή υπάρχουν κόμβοι οι οποίοι μπορεί να μην συνδέονται απευθείας με κάποιον variable κόμβο αλλά μπορούν να τον επηρεάσουν. Αυτή η συμπεριφορά μπορεί να περιγραφεί με την βοήθεια ενός δένδρου που λέγεται δένδρο ελέγχου ισοτιμίας και συνδέεται με το γράφημα Tanner. Αν αρχίσει η αποκωδικοποίηση από τα φύλλα του δένδρου προς την ρίζα που είναι ο variable κόμβος, τότε μέχρι να φτάσουμε στην ρίζα του δένδρου ίσως έχουν προκύψει άλλα λανθασμένα bits. Η δομή που περιγράφηκε παραπάνω φαίνεται στην παρακάτω εικόνα: 49

50 Σχήμα 3-2 Γράφημα Tanner και το αντίστοιχο δέντρο ελέγχου ισοτιμίας για τον variable κόμβο [22] 50

51 Σχήμα 3-3 Διαδοχική αποκωδικοποίηση για κώδικα LDPC [23] 51

52 3.4.2 Soft Αποκωδικοποίηση Στην soft αποκωδικοποίηση δεν διαγράφονται bits αλλά διαδίδονται πιθανότητες στο γράφημα Tanner. Ο βέλτιστος αποκωδικοποιητής ψάχνει την κωδική λέξη η οποία μεγιστοποιεί την πιθανότητα P(c r, Ac = 0), δηλαδή ψάχνει το πιο πιθανό διάνυσμα που ικανοποιεί τους ελέγχους ισοτιμίας δεδομένου του ληφθέντος διανύσματος r = [,,, ]. Βέβαια η πολυπλοκότητα της βέλτιστης αποκωδικοποίησης είναι εκθετική με το μέγεθος του κώδικα Κ γιατί πρέπει να γίνει αναζήτηση κωδικών λέξεων! Γι αυτό ο αποκωδικοποιητής προσπαθεί να βρει κωδική λέξη variable κόμβους ούτως ώστε να μεγιστοποιείται η παρακάτω πιθανότητα: P( r, όλοι οι έλεγχοι ισοτιμίας που περιλαμβάνουν το ικανοποιούνται) Που είναι η εκ των υστέρων πιθανότητα για ένα bit δεδομένου ότι μόνο οι έλεγχοι ισοτιμίας για αυτό το bit ικανοποιούνται. Ο αλγόριθμος αποκωδικοποίησης ενσωματώνει πληροφορίες από τα δεδομένα που έχουν μετρηθεί για να παράγει πιθανότητες για τους check κόμβους. Αυτή η πληροφορία που παράχθηκε για χρησιμοποιείται για τους variable κόμβους και αυτή στη συνέχεια για τους check κόμβους κ.ο.κ. Έτσι διαδίδονται οι πιθανότητες στο δέντρο που παράγεται από το γράφημα Tanner και η επανάληψη μεταξύ πιθανοτήτων variable και check κόμβων συνεχίζεται μέχρι να ικανοποιούνται όλοι οι έλεγχοι συγχρόνως ή μέχρι να ξεπεραστεί ένας προσδιορισμένος αριθμός των επαναλήψεων. Αν όμως ξεπεραστεί αυτός ο αριθμός και δεν έχουν ικανοποιηθεί οι έλεγχοι, τότε έχουμε ένα σφάλμα αποκωδικοποίησης. Ο αλγόριθμος αποκωδικοποίησης μπορεί να θεωρηθεί ένας αλγόριθμος διάδοσης μηνυμάτων. Για όλα όσα ειπώθηκαν παραπάνω για την soft αποκωδικοποίηση λειτουργούν αν στο γράφημα Tanner δεν υπάρχουν κύκλοι. [1] Αν υπάρχουν κύκλοι τότε ο αποκωδικοποιητής έχει προβλήματα στη λειτουργία του. 52

53 4 Εύρεση κύκλων 4.1 Ορισμός κύκλου Ένας κύκλος μήκους n είναι μια κλειστή διαδρομή μήκους n που εμφανίζεται στο γράφημα Tanner. 4.2 Αλγόριθμος εύρεσης κύκλων Το 1 ο βήμα αυτής της διπλωματικής εργασίας ήταν η εύρεση των κύκλων μέσα από το γράφημα Tanner. Το πρόγραμμα εύρεσης κύκλων δέχεται ως είσοδο το όνομα ενός αρχείου το οποίο περιλαμβάνει το μήκος κωδικής λέξης και τις διαστάσεις του πίνακα βάσης. Επίσης ο χρήστης δίνει το μήκος κύκλων που επιθυμεί να βρει (τα μήκη είναι άρτια και είναι 4, 6, 8, 10 κλπ), έστω n. Στην συνέχεια γίνεται δέσμευση ενός πίνακα με τις αντίστοιχες διαστάσεις που διάβασε το πρόγραμμα από το αρχείο και μετά διαβάζει και αποθηκεύει ένα προς ένα τα στοιχεία του πίνακα βάσης από το αρχείο στον δεσμευμένο πίνακα. Μετά υπολογίζει τον παράγοντα επέκτασης (extension factor) που προκύπτει από την διαίρεση του μήκους κωδικής λέξης με τον αριθμό στηλών του πίνακα βάσης. Οι διαστάσεις του πίνακα ελέγχου ισοτιμίας H είναι οι διαστάσεις του πίνακα βάσης πολλαπλασιασμένες με τον παράγοντα επέκτασης. Γίνεται η αντίστοιχη δέσμευση μνήμης ενός πίνακα με τις διαστάσεις που υπολογίστηκαν προηγουμένως. Προκειμένου να προκύψουν τα στοιχεία του πίνακα ελέγχου ισοτιμίας, το πρόγραμμα διαβάζει κάθε στοιχείο του πίνακα βάσης ο οποίος σε κάθε θέση του έχει 0 ή -1 ή έναν θετικό ακέραιο. Όταν ένα στοιχείο του πίνακα βάσης είναι 0 τότε το πρόγραμμα αποθηκεύει στις αντίστοιχες θέσεις του πίνακα ελέγχου ισοτιμίας τον μοναδιαίο πίνακα και όταν είναι -1 αποθηκεύει τον μηδενικό πίνακα. Στην περίπτωση που είναι θετικός ακέραιος αποθηκεύει τον μοναδιαίο πίνακα ο οποίος είναι μετατοπισμένος κατά τόσες θέσεις όση είναι και η τιμή του ακεραίου. Ο αριθμός γραμμών και ο αριθμός των στηλών των παραπάνω πινάκων είναι όσο είναι και η τιμή του παράγοντα επέκτασης. 53

54 Αφού γεμίσει ο πίνακας ελέγχου ισοτιμίας, το πρόγραμμα ξεκινά να εξετάζει κάθε στήλη του πίνακα για όλες τις γραμμές και σε όποια γραμμή βρίσκει 1 δημιουργεί έναν κόμβο που αποτελεί τη ρίζα ενός δένδρου και για αυτόν τον κόμβο διατρέχει όλες τις στήλες για να βρει της γραμμής αυτής για να βρει check κόμβους με τους οποίους συνδέεται και για αυτούς τους check κόμβους διατρέχει όλες τις γραμμές για να δει με ποιους variable κόμβους συνδέονται το καθένα κ.ο.κ. μέχρι να φτάσει στο κάθε μονοπάτι του δένδρου που εξετάζει κάθε φορά στο επίπεδο n + 1. Επίσης για κάθε 1 που βρίσκει εξετάζει αν ο υποψήφιος κόμβος είναι ίδιος με τον πρόγονο του προγόνου του. Αν ναι, τότε δεν φτιάχνει τον κόμβο στο δένδρο και προχωρά παρακάτω. Αν έχει ευρεθεί ένας κύκλος και γράφεται σε ένα αρχείο το οποίο έχει οριστεί από τον χρήστη. Όταν τελειώσει με ένα μονοπάτι συνεχίζει με κάποιο άλλο μονοπάτι του δένδρου μέχρι να εξαντληθούν όλα τα μονοπάτια του δένδρου. Όταν ολοκληρωθεί το δένδρο συνεχίζει με το επόμενο δένδρο. Η διαδικασία αυτή ολοκληρώνεται για όλες τις στήλες του πίνακα και τότε έχουν βρεθεί όλοι οι κύκλοι που περιέχονται στον πίνακα ελέγχου ισοτιμίας και έχουν γραφτεί στο αρχείο. Οι συναρτήσεις που κάνουν την βασική επεξεργασία στο πρόγραμμα, όπως περιγράφηκε, είναι οι: FindRoot, CreateTreeNode, DeleteTreeNode. Η FindRoot βρίσκει τη ρίζα ενός δένδρου. Η CreateTreeNode κατασκευάζει το δένδρο Η DeleteTreeNode διαγράφει ένα φύλλο του δένδρου. Παρακάτω παρουσιάζεται ψευδοκώδικας για αυτές τις 3 συναρτήσεις και τη λειτουργία τους. FindRoot Για όλες τις στήλες του πίνακα ελέγχου ισοτιμίας) { Κάλεσε την CreateTreeNode Διάγραψε τη ρίζα του δένδρου } Σε προηγούμενη έκδοση όμως όπου το δένδρο διαγραφόταν αφού τέλειωνε η επεξεργασία του, η FindRoot ήταν: 54

55 FindRoot Για όλες τις στήλες του πίνακα ελέγχου ισοτιμίας) { Κάλεσε την CreateTreeNode Διάγραψε το δένδρο } CreateTreeNode Αν (επίπεδο == n + 2) γύρνα πίσω αλλιώς { Αν (ο κόμβος είναι στο επίπεδο n + 1 και είναι ίδιος με την ρίζα και πληρεί τα κριτήρια) Γράψε τον κύκλο σε αρχείο Αν (variable κόμβος) όριο = γραμμές αλλιώς όριο = στήλες } Για (κ = 0 μέχρι κ = όριο) { Αν (ο πίνακας στην αντίστοιχη θέση έχει 1) { Αν (ο υποψήφιος κόμβος προγόνου του προγόνου) { Δημιούργησε έναν κόμβο και ένταξέ τον στο δένδρο Διάγραψε παιδί κόμβου } } } Στο σημείο αυτό αξίζει να επεξηγηθούν τα κριτήρια που εφαρμόστηκαν: Το 1 ο κριτήριο είναι να μην εμφανιστεί η ρίζα του δένδρου δεύτερη φορά σε κύκλο μικρότερου μήκους. Δηλαδή αυτό το κριτήριο αποκλείει την περίπτωση να θεωρηθεί ως κύκλος μήκους 8 ένας κύκλος μήκους 4 που έχει διατρεχθεί 2 φορές. Το 2 ο κριτήριο είναι να είναι όλοι οι κόμβοι ίδιας κατηγορίας ενός πιθανού κύκλου διαφορετικοί μεταξύ τους. 55

56 4.3 Οργάνωση προγράμματος εύρεσης κύκλων Για την ανάπτυξη του προγράμματος χρησιμοποιήθηκε η τεχνική του αρθρωτού σχεδιασμού, δηλαδή το πρόγραμμα χωρίστηκε σε πολλές συναρτήσεις, όπου καθεμιά επιτελεί τη δική της λειτουργία. Επίσης, χρησιμοποιήθηκε η τεχνική της αυξητικής ανάπτυξης, δηλαδή η ανάπτυξη του προγράμματος σε εκδόσεις κάθε φορά που γινόταν μια βελτίωση του κώδικα ή κάποια αλλαγή στην λειτουργικότητα του προγράμματος. Οι δομές δεδομένων που χρησιμοποιήθηκαν ήταν: α) η δομή του πίνακα για την αναπαράσταση του πίνακα βάσης και του πίνακα ελέγχου ισοτιμίας β) η δομή του δένδρου για να αναπαρασταθεί το γράφημα Tanner γ) η έννοια της δομής (struct) προκειμένου να αναπαρασταθεί κάθε φύλλο του δένδρου. Επίσης χρησιμοποιήθηκε η τεχνική της δυναμικής διαχείρισης της μνήμης με την συνάρτηση malloc τόσο για την δέσμευση μνήμης (dynamic memory allocation) για τον πίνακα βάσης όσο και για τον πίνακα ελέγχου ισοτιμίας. Επιπροσθέτως, χρησιμοποιήθηκε και το πέρασμα των παραμέτρων σε συναρτήσεις με αναφορά (call by reference) προκειμένου κάποιες αλλαγές που γίνονταν σε δείκτες ή τιμές μεταβλητών μέσα σε κάποια συνάρτηση να ενημερώνονται ταυτόχρονα σε πολλά διαφορετικά σημεία του προγράμματος. Ακόμη, χρησιμοποιήθηκε η τεχνική της αναδρομικότητας (recursion) για την κατασκευή του δένδρου και για το γράψιμο ενός κύκλου στο αρχείο κάθε φορά που έβρισκε έναν. Σε προηγούμενη έκδοση του προγράμματος το δένδρο διαγραφόταν αφότου τέλειωνε η επεξεργασία του δένδρου και χρησιμοποιήθηκε και εκεί η τεχνική της αναδρομικότητας για να αρχίσει η διαγραφή των κόμβων από τα φύλλα και να πηγαίνει προς τη ρίζα του δένδρου. Τέλος, το πρόγραμμα αναπτύχθηκε στο περιβάλλον Dev-C και η εκτέλεση του προγράμματος για την εξαγωγή των αποτελεσμάτων έγινε στον linux server limnos του εργαστηρίου ολοκληρωμένων κυκλωμάτων του τμήματος. Ο server διαθέτει 4 πυρήνες (cores) και μνήμη 7.5 GB. Επίσης το λειτουργικό του είναι η έκδοση redhat

57 4.4 Αποτελέσματα προγράμματος εύρεσης κύκλων Παρακάτω παρουσιάζονται οι πίνακες με τα πλήθη κύκλων ανά κώδικα και για κύκλους με μήκη 4, 6 και 8 και ρυθμούς κώδικα 1/2, 2/3, 3/4 και 5/6.Εξαίρεση αποτελεί ο κώδικας few 3 όπου έχουμε μόνο ρυθμό 3/4. Για κώδικες με μήκος κωδικής λέξης 648 bits: 648_1_2 648_2_3 648_3_4 648_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ Πίνακας 4-1 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα Για κώδικες με μήκος κωδικής λέξης 1296 bits: 1296_1_2 1296_2_3 1296_3_4 1296_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ Πίνακας 4-2 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 57

58 Για κώδικες με μήκος κωδικής λέξης 1296 bits: 1944_1_2 1944_2_3 1944_3_4 1944_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ Πίνακας 4-3 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα Για τον κώδικα few 3 με μήκος κωδικής λέξης 2016 bits και ρυθμό κώδικα 3/ 4 έχουμε: few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 ΜΗΚΗ ΚΥΚΛΩΝ Πίνακας 4-4 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης κύκλων για τον κώδικα few 3 58

59 4.5 Χρόνοι εκτέλεσης προγράμματος εύρεσης κύκλων Για κώδικες με μήκος κωδικής λέξης 648 bits: 648_1_2 648_2_3 648_3_4 648_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) Πίνακας 4-5 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα Για κώδικες με μήκος κωδικής λέξης 1296 bits: 1296_1_2 1296_2_3 1296_3_4 1296_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) Πίνακας 4-6 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 59

60 Για κώδικες με μήκος κωδικής λέξης 1944 bits: 1944_1_2 1944_2_3 1944_3_4 1944_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) Πίνακας 4-7 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα Για τον κώδικα few με μήκος κωδικής λέξης 2016 bits και ρυθμό κώδικα 3/4: few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 ΜΗΚΗ ΚΥΚΛΩΝ ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) Πίνακας 4-8 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων για τον κώδικα few 3 60

61 Σε αυτό το σημείο μπορούμε να κάνουμε κάποιες ενδιαφέρουσες παρατηρήσεις εξετάζοντας προσεκτικά τα αποτελέσματα στους ανωτέρω πίνακες. Μπορούμε να παρατηρήσουμε ότι σε κάθε πίνακα όπου έχουμε σταθερό μήκος κωδικής λέξης και σταθερό παράγοντα επέκτασης (και συνεπώς ίδιων διαστάσεων πίνακα ελέγχου ισοτιμίας), όσο αυξάνεται ο ρυθμός κώδικα παρατηρούμε και αύξηση στον χρόνο εκτέλεσης για κάθε μήκος κύκλου και αυτό μπορεί να γίνει αντιληπτό παρατηρώντας τους πίνακες με τα πλήθη κύκλων όπου μπορεί να δει κανείς ότι υπάρχει αντίστοιχη αύξηση του πλήθους των κύκλων ανά μήκος κύκλου γιατί έχουμε πιο πυκνό πίνακα ελέγχου ισοτιμίας. Επίσης παρατηρούμε ότι καθώς αυξάνεται το μήκος κωδικής λέξης αυξάνεται και ο παράγοντας επέκτασης. Αυτό έχει ως αποτέλεσμα πίνακα ελέγχου ισοτιμίας μεγαλύτερων διαστάσεων. Αυτό επακόλουθα οδηγεί σε μεγαλύτερο χρόνο εκτέλεσης του προγράμματος και σε περισσότερους κύκλους ανά μήκος κύκλου για τα διαφορετικά μήκη κωδικής λέξης. Επίσης, παρατηρούμε ότι όσο αυξάνεται το μήκος κωδικής λέξης και ο παράγοντας επέκτασης επακόλουθα, έχουμε πιο αραιό πίνακα ελέγχου ισοτιμίας και παρατηρείται μια μείωση του πλήθους των αποτελεσμάτων ανά μήκος κύκλου όσο αυξάνεται το μήκος κωδικής λέξης. 61

62 4.6 Σύγκριση εκδόσεων προγράμματος εύρεσης κύκλων ΧΡΟΝΟΣ ΕΚΔΟΣΗ Α ΕΚΔΟΣΗ Β ΕΚΔΟΣΗ Γ ΕΚΔΟΣΗ Δ ΕΚΔΟΣΗ Ε ΕΚΤΕΛΕΣΗΣ (s) ΜΕΓΙΣΤΗ ΑΠΑΙΤΟΥΜΕΝΗ ΜΝΗΜΗ (%) ~ 0 ~ ΑΥΞΗΣΗ ΤΑΧΥΤΗΤΑΣ ΕΚΤΕΛΕΣΗΣ ΩΣ ΠΡΟΣ ΕΚΔΟΣΗ Α (%) ΑΥΞΗΣΗ ΤΑΧΥΤΗΤΑΣ ΚΑΘΕ ΕΚΔΟΣΗΣ ΩΣ ΠΡΟΣ ΤΗΝ ΠΡΟΗΓΟΥΜΕΝΗ ΤΗΣ (%) Πίνακας 4-9 Σύγκριση εκδόσεων του προγράμματος εύρεσης κύκλων ως προς τη χρήση μνήμης και την ταχύτητα Όλες οι μετρήσεις στον ανωτέρω πίνακα έχουν γίνει χρησιμοποιώντας τον κώδικα με μήκος 648 και για ρυθμό κώδικα 1/2 και για κύκλους μήκους 6. Όπου υπάρχει το σύμβολο ~ 0 σημαίνει ότι η μνήμη που απαιτήθηκε πρακτικά ήταν πάρα πολύ μικρή και ο server την υπολόγισε ως 0%. 4.7 Διαχείριση μνήμης Η διαδικασία εύρεσης κύκλων έχει μεγάλες απαιτήσεις τόσο σε μνήμη όσο και στο χρόνο εκτέλεσης. Γι αυτό χρειάστηκε να δημιουργηθούν αρκετές εκδόσεις του προγράμματος όπου γίνονταν προσπάθειες βελτιστοποίησης που αφορούν τα δύο αυτά θέματα προκειμένου να φτάσει στην τελική του μορφή. Αρχικά έγινε προσπάθεια να αντιμετωπιστεί η μεγάλη κατανάλωση μνήμης. Στην έκδοση Α το πρόγραμμα κρατούσε στη μνήμη όλα τα δένδρα για όλους τους variable κόμβους που είχε εξετάσει. Έτσι όπως βλέπουμε η απαίτηση σε μνήμη ήταν 95.6% και η συνολική μνήμη στον server 62

63 ήταν 7.5 GB. Δηλαδή το πρόγραμμα κατανάλωνε GB! Για μεγαλύτερα μήκη κύκλων οι απαιτήσεις σε μνήμη αυξάνονταν εκθετικά και το σύστημα αδυνατούσε να ανταποκριθεί. Μια πρώτη προσπάθεια επίλυσης του προβλήματος εφαρμόσθηκε στην έκδοση Β όπου το πρόγραμμα κρατούσε στη μνήμη μόνο το δένδρο που επεξεργαζόταν κάθε φορά. Όταν τέλειωνε με την επεξεργασία ενός δένδρου απελευθέρωνε τη μνήμη που είχε δεσμευθεί για αυτό. Τα αποτελέσματα ήταν θεαματικά για κύκλους μήκους 4, 6 και 8 αλλά για κύκλους μήκους 10 και πάνω το πρόγραμμα είχε πάλι μεγάλες απαιτήσεις σε μνήμη. Έτσι δοκιμάστηκε μια ακόμα πιο δραστική λύση στο πρόβλημα στην έκδοση Γ όπου το πρόγραμμα κρατούσε στη μνήμη μόνο το μονοπάτι του δένδρου που επεξεργαζόταν κάθε φορά. Μόλις έφτανε στον κόμβο n + 1 και ολοκλήρωνε την επεξεργασία του κόμβου, διέγραφε τον κόμβο. Ύστερα επεξεργαζόταν τον προηγούμενο κόμβο και μόλις τελείωνε την επεξεργασία όλων των κόμβων που ήταν παιδιά του κόμβου αυτού διέγραφε το καθένα για το οποίο ολοκλήρωνε την επεξεργασία και αφού τα είχε επεξεργαστεί όλα διέγραφε τον κόμβο του οποίου ήταν παιδιά. Η διαδικασία αυτή συνεχιζόταν προς τα πίσω στο δένδρο, δηλαδή από τα φύλλα του προς τη ρίζα όπου και είχε διαγραφεί όλο το δένδρο και είχε τελειώσει η επεξεργασία του. Τα αποτελέσματα ήταν τα επιθυμητά αφού η μνήμη που απαιτούσε το πρόγραμμα ακόμα και για μεγάλα μήκη κύκλων ήταν ελάχιστη. Στον πίνακα παρατηρούμε ότι η μέγιστη μνήμη που απαιτήθηκε για το συγκεκριμένο κώδικα με τον οποίο έγιναν οι μετρήσεις και για το συγκεκριμένο μήκος κύκλου ήταν ~ 0 % που πρακτικά σημαίνει ότι για την ακρίβεια του μηχανήματος και σε σχέση με το συνολικό μέγεθος μνήμης του server η μνήμη που απαιτήθηκε ήταν ελάχιστη (της τάξης των μερικών MB). Τώρα το πρόγραμμα ήταν γενικό αφού μπορούσε να βρει κύκλους οποιουδήποτε μήκους απαιτώντας ελάχιστη μνήμη αλλά παρέμενε σαν πρόβλημα ο μεγάλος χρόνος εκτέλεσης του προγράμματος όσο αυξάνονταν τα μήκη κύκλων αλλά και το μήκος κωδικής λέξης του κώδικα. 63

64 4.8 Χρόνος εκτέλεσης προγράμματος εύρεσης κύκλων Τώρα το πρόγραμμα ήταν γενικό αφού μπορούσε να βρει κύκλους οποιουδήποτε μήκους απαιτώντας ελάχιστη μνήμη αλλά παρέμενε σαν πρόβλημα ο μεγάλος χρόνος εκτέλεσης του προγράμματος όσο αυξάνονταν τα μήκη κύκλων αλλά και το μήκος κωδικής λέξης του κώδικα. Χαρακτηριστικά για κύκλους μήκους 10 και πάνω ο χρόνος εκτέλεσης ξεπερνούσε την 1 εβδομάδα και ειδικά όσο αυξανόταν το μήκος κωδικής λέξης και ο ρυθμός κώδικα με εξαίρεση τον κώδικα 648 και για ρυθμούς 1/2, 2/3 και 3/4 όπου χρειαζόταν σχεδόν μια μέρα. Το πρώτο βήμα προς την προσπάθεια επίλυσης του προβλήματος ήταν να γίνει πιο συμπαγής ο κώδικας, κάτι το οποίο έγινε στην έκδοση Δ. Ύστερα χρησιμοποιήθηκε η βιβλιοθήκη Openmp που επιτρέπει τη χρήση νημάτων (threads) στη γλώσσα C για ταυτόχρονο προγραμματισμό. Αυτό υλοποιήθηκε στην έκδοση Ε. Το πρόβλημα του χρόνου λύθηκε αφού ο χρόνος εκτέλεσης μειώθηκε σημαντικά. Στο παρόν σύστημα μειώθηκε κατά 1/4 επειδή είχαμε 4 πυρήνες. Σε μεγαλύτερα συστήματα η μείωση θα είναι ακόμα μεγαλύτερη αφού όσους περισσότερους πυρήνες διαθέτει το σύστημα τόσα περισσότερα δένδρα μπορεί να επεξεργάζεται παράλληλα το πρόγραμμα. Συνεπώς η έκδοση Ε αποτελεί την τελική έκδοση του προγράμματος και είναι μια γενική λύση του προβλήματος εύρεσης κύκλων αφού το πρόγραμμα μπορεί να βρει κύκλους οποιουδήποτε μήκους στον ελάχιστο δυνατό χρόνο. Βέβαια όσο αυξάνει το μήκος των επιθυμητών κύκλων αυξάνει και πάλι ο χρόνος εκτέλεσης αλλά πρακτικά κύκλοι πολύ μεγάλου μήκους δεν έχουν τόσο ουσιαστική σημασία αφού πολύ μεγάλα trapping sets ενεργοποιούνται σπάνια. 64

65 4.9 Ταχύτητα εκτέλεσης προγράμματος εύρεσης κύκλων Όπως παρατηρούμε από τον ανωτέρω πίνακα η αύξηση της ταχύτητας εκτέλεσης του προγράμματος τόσο ανάμεσα στην έκδοση Α με τις επόμενες όσο και κάθε έκδοσης σε σχέση με την προηγούμενή της ήταν μεγάλη με μόνη εξαίρεση την έκδοση Δ ως προς την έκδοση Γ όπου υπήρξε μια μικρή μείωση της ταχύτητας. Αξίζει να τονιστεί το γεγονός ότι η έκδοση Ε είναι 90.8 % πιο γρήγορη από την έκδοση Α αλλά και οι υπόλοιπες σημειώνουν αύξηση μεγαλύτερη από το 50% σε σχέση με την έκδοση Α. Ο χρόνος εκτέλεσης μειώθηκε από τα 174 s στα 16 s. 65

66 4.10 Error Floor Στην παρακάτω εικόνα φαίνεται ένα γράφημα για το ρυθμό μεταβολής σφάλματος συναρτήσει του θορύβου αλλά και το προαναφερθέν πρόβλημα της ξαφνικής αλλαγής της κλίσης: Σχήμα 4-1 Γράφημα Error Floor Επίσης, σύμφωνα με την αναφορά [25], προκύπτει ένας τύπος υπολογισμού του ρυθμού μεταβολής σφάλματος και είναι ο ακόλουθος: FER = Όπου y, το σύνολο των εισόδων που προκαλούν μια αποτυχία αποκωδικοποίησης σε ένα trapping set και y το σύνολο όλων των πιθανών εισόδων στον αποκωδικοποιητή. 66

67 4.11 Γραφικά παραδείγματα κύκλων Παρακάτω δίνονται μερικές γραφικές απεικονίσεις κύκλων διαφόρων μηκών καθώς και η μορφή τους στον πίνακα ελέγχου ισοτιμίας όταν υπάρχουν κύκλοι σε αυτόν. Σχήμα 4-2 Κύκλος μήκους 6 Σχήμα κύκλοι μήκους 4 σε πίνακα ελέγχου ισοτιμίας [30] 67

68 Σχήμα κύκλοι μήκους 4 του προηγούμενου πίνακα ελέγχου ισοτιμίας Σχήμα 4-5 Κύκλος μήκους 8 68

69 4.12 Άλλοι Αλγόριθμοι εύρεσης κύκλων Σε αυτό το υποκεφάλαιο παρατίθεται ένας άλλος αλγόριθμος εύρεσης κύκλων που υπάρχει στη βιβλιογραφία. Ο αλγόριθμος που παρατίθεται [27] προτείνει την εκτέλεση του αλγόριθμου περάσματος μηνύματος (message passing algorithm) στο γράφημα Tanner του κάθε φορά προς εξέταση κώδικα και την μετάδοση 1 και 0 ως μηνύματα (δυαδικό αλφάβητο). Έτσι αυτό θα αναδείξει το μικρότερο μονοπάτι στο γράφημα Tanner όπου το μήνυμα θα γυρίσει πάλι στον ίδιο κόμβο από όπου ήρθε. Η ύπαρξη των κύκλων διαφαίνεται ως εξής: Στέλνεται ένα μήνυμα σε έναν κόμβο, εξετάζεται αν επιστρέφει πάλι στον ίδιο κόμβο και το μήκος κύκλου αναδεικνύεται μετρώντας το πλήθος των επαναλήψεων που γίνονται μέχρι να επιστρέψει το μήνυμα στον κόμβο. Επίσης, απαιτείται μόνο μια εξίσωση ανανέωσης κόμβου αφού δεν χρειάζεται τον διαχωρισμό των κόμβων και χρησιμοποιεί μόνο δύο αλφάβητα. Η εξίσωση είναι: όπου είναι το μήνυμα εισόδου της ακμής j που μπαίνει στον κόμβο i, είναι το μήνυμα εξόδου της ακμής j που φεύγει από τον κόμβο i. Τα δύο σύμβολα μέσα και έξω στην παρένθεση δηλώνουν τις πράξεις OR και XOR αντίστοιχα. Το δηλώνει το σύνολο των ακμών που συνδέονται με τον κόμβο i. Αν όλα τα μηνύματα εισόδου είναι 0, τότε και η έξοδος είναι 0. Αν όλες είναι 1, κάποιες έξοδοι θα είναι 0 και κάποιες 1. Έτσι λοιπόν κατά την διάρκεια της διαδικασίας περάματος μηνύματος, αν κάποια ακμή έχει 1, τότε είναι πιθανό να συμμετέχει σε κάποιο κύκλο. Επίσης, σε κάθε επανάληψη εξετάζεται μια ακμή και ποτέ δεν εξετάζεται η ίδια διπλή φορά. Δηλαδή δεν περνάμε από την ίδια ακμή με αντίθετη φορά πάλι. Έτσι αποφεύγεται η καταμέτρηση ενός κύκλου 2 φορές. Ο ανωτέρω περιγραφείσας αλγόριθμος παρατίθεται παρακάτω: 69

70 Σχήμα 4-6 Αλγόριθμος εύρεσης κύκλων [27] Πριν παρουσιαστεί ο επόμενος αλγόριθμος εύρεσης κύκλων [31] πρέπει να δοθούν κάποιοι ορισμοί που χρησιμοποιούνται για τον αλγόριθμο αυτό. Ως ίχνος (trail) ορίζεται μια διαδρομή της οποίας οι ακμές είναι διακριτές. Αν επιπλέον οι κόμβοι που υπάρχουν στο ίχνος είναι διακριτοί μεταξύ τους τότε η διαδρομή λέγεται μονοπάτι (path). Ένας κύκλος μήκους n είναι μια κλειστή διαδρομή μήκους n αν οι κορυφές είναι όλες διακριτές μεταξύ τους, δηλαδή i j, όπου i,j є [1,n]. Ως girth ορίζεται το μήκος του μικρότερου κύκλου σε έναν γράφο. 70

71 Ως περιφέρεια κύκλου (circumference) ορίζεται το μήκος του μεγαλύτερου κύκλου σε έναν γράφο. Ένας γράφος χωρίς κύκλους έχει girth =, περιφέρεια κύκλου ίση με το 0 και ονομάζεται δένδρο (tree). Επίσης ορίζεται η διαδρομή γλειφιτζούρι (lollipop) (m, n m) και περιγράφει διαδρομές μήκους n όπου οι κορυφές,,, είναι διακριτές μεταξύ τους και ισχύει ότι = για κάποιο m є [1,n]. Ο αλγόριθμος αυτός μετρά κύκλους μήκους g, g+2 και g+4 σε διμερείς γράφους G(V, ) σταθερού girth g, όπου V το σύνολο των κορυφών και το σύνολο των ακμών. Το σύνολο κορυφών V αποτελείται από δύο κλάσεις κορυφών U και W οι οποίες ικανοποιούν τις παρακάτω συνθήκες: α) V = U W β) U W = 0 Επίσης ορίζεται ο πίνακας ακμών Ε όπου το στοιχείο (I,j) του πίνακα είναι 1 αν συνδέεται το στοιχείο με το στοιχείο και 0 στην αντίθετη περίπτωση. Αναδρομικά το πρόβλημα της απαρίθμησης κύκλων μετατρέπεται σε πρόβλημα απαρίθμησης διαδρομών γλειφιτζούρια. Γι αυτό ορίζονται 8 πίνακες που μετρούν τον αριθμό των μονοπατιών και των διαδρομών γλειφιτζούρια. Ο πίνακας είναι διαστάσεων U U, όπου το στοιχείο (i,j) δείχνει τον αριθμό των μονοπατιών μήκους 2k από το στοιχείο στο στοιχείο є U. Ανάλογα ορίζεται και ο πίνακας. Τα διαγώνια στοιχεία των δύο προαναφερθέντων πινάκων είναι 0. Ο πίνακας είναι ένας πίνακας διαστάσεων U W, όπου δείχνει τον αριθμό των μονοπατιών μήκους 2k+1 από το στοιχείο στο στοιχείο. Ανάλογα ορίζεται και ο πίνακας. Ο πίνακας είναι διαστάσεων U U και το στοιχείο (i,j) δείχνει τον αριθμό των διαδρομών γλειφιτζούρια από το στο στοιχείο є U. Παρόμοια ορίζεται και ο πίνακας. Ο πίνακας είναι διαστάσεων U W και το στοιχείο (i,j) δείχνει τον αριθμό των διαδρομών γλειφιτζούρια από το є U στο στοιχείο є W. Παρόμοια ορίζεται και ο πίνακας. Οι αρχικές συνθήκες που τίθενται είναι: 71

72 β) = Ι γ) = 0 δ) = 0 Τέλος αποδεικνύεται ότι ο συνολικός αριθμός κύκλων μήκους 2k δίνεται από την ακόλουθη σχέση: = Tr( ) = Tr( ) 72

73 5 Εύρεση μοναδικών κύκλων 5.1 Αλγόριθμος εύρεσης μοναδικών κύκλων Το επόμενο βήμα μετά την εύρεση των κύκλων για κάθε κώδικα ήταν η εύρεση των μοναδικών κύκλων. Ο χρήστης δίνει ως είσοδο στο πρόγραμμα ένα αρχείο με κύκλους που βρέθηκαν με τη βοήθεια του προηγούμενου προγράμματος και το πρόγραμμα ψάχνει αν βρει ποιοι κύκλοι είναι μοναδικοί και τους γράφει σε ένα αρχείο που έχει προσδιοριστεί από το χρήστη. Για να δει αν ένας κύκλος είναι μοναδικός ψάχνει ανάμεσα σε όσους έχει βρει ως μοναδικούς μέχρι εκείνη τη στιγμή και εξετάζει αν ο παρών κύκλος αποτελεί μετατόπιση προς τα δεξιά κάποιου άλλου κύκλου, αν αποτελεί μετατόπιση προς τα αριστερά ή αν είναι κάποιος κύκλος ανεστραμμένος. Τα 3 κριτήρια αυτά εφαρμόζονται διαδοχικά και καθένα από αυτά εφαρμόζεται εφόσον το προηγούμενο κριτήριο δεν έχει δείξει ότι ο κύκλος είναι διπλός. Αν κάποιο κριτήριο από τα πρώτα 2 δείξει ότι ο κύκλος είναι διπλός, τότε παραλείπονται τα επόμενα κριτήρια και εξετάζει τον επόμενο κύκλο. Όταν ολοκληρωθεί η διαδικασία για όλους τους κύκλους, οι μοναδικοί κύκλοι βρίσκονται σε ένα αρχείο που έχει προσδιοριστεί από το χρήστη. Η επεξεργασία για την εύρεση μοναδικών κύκλων, όπως περιγράφηκε παραπάνω, γίνεται με τις συναρτήσεις FindDoubles, SearchUniqueCycles, FindShift, FindReversed, FindShiftedLeft, FindShiftedRight. Οι 4 τελευταίες βρίσκουν αν ένας κύκλος είναι διπλός. H SearchUniqueCycles ψάχνει ανάμεσα στους μοναδικούς κύκλους για να διαπιστώσει αν κάποιος είναι διπλός χρησιμοποιώντας τις 4 τελευταίες συναρτήσεις. 73

74 Ο αλγόριθμος είναι ο εξής: Για όλους τους κύκλους του αρχείου { Διάβασε ένα κύκλο Ψάξε ανάμεσα στους μοναδικούς ως τώρα κύκλους Αν (μοναδικός κύκλος) Γράψε τον κύκλο στο αρχείο μοναδικών κύκλων } 5.2 Οργάνωση προγράμματος εύρεσης μοναδικών κύκλων Για την ανάπτυξη του προγράμματος χρησιμοποιήθηκε ο αρθρωτός σχεδιασμός, δηλαδή ο διαχωρισμός του προγράμματος σε επιμέρους συναρτήσεις και η τεχνική της αυξητικής ανάπτυξης για κάθε αλλαγή στην λειτουργικότητα ή στη δομή του προγράμματος. Επίσης, η δομή του πίνακα χρησιμοποιήθηκε για την αναπαράσταση των πινάκων όπου φυλάσσονταν οι κύκλοι. Ακόμη χρησιμοποιήθηκε η τεχνική της δυναμικής διαχείρισης μνήμης με την χρήση της συνάρτησης malloc της C για την δέσμευση μνήμης για τους πίνακες που κρατούν κάθε φορά τον κύκλο προς έλεγχο και κάποιον από τους μοναδικούς κύκλους με τους οποίους συγκρίνεται. Επιπροσθέτως, χρησιμοποιήθηκε και το πέρασμα των παραμέτρων σε συναρτήσεις με αναφορά (call by reference) προκειμένου κάποιες αλλαγές που γίνονταν σε δείκτες ή τιμές μεταβλητών μέσα σε κάποια συνάρτηση να ενημερώνονται ταυτόχρονα σε πολλά διαφορετικά σημεία του προγράμματος. Τέλος, το πρόγραμμα αναπτύχθηκε στο περιβάλλον Dev-C και η εκτέλεση του προγράμματος για την εξαγωγή των αποτελεσμάτων έγινε στον linux server limnos του εργαστηρίου ολοκληρωμένων κυκλωμάτων του τμήματος. 74

75 5.3 Αποτελέσματα προγράμματος εύρεσης μοναδικών κύκλων Παρακάτω παρατίθενται τα αποτελέσματα του προγράμματος εύρεσης μοναδικών κύκλων για τους διάφορους κώδικες για τους οποίους βρέθηκαν μοναδικοί κύκλοι και για διαφορετικούς ρυθμούς κώδικα: Για κώδικες με μήκος κωδικής λέξης 648 bits: 648_1_2 648_2_3 648_3_4 648_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ Πίνακας 5-1 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα Για κώδικες με μήκος κωδικής λέξης 1296 bits: 1296_1_2 1296_2_3 1296_3_4 1296_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ Πίνακας 5-2 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 75

76 Για κώδικες με μήκος κωδικής λέξης 1944 bits: 1944_1_2 1944_2_3 1944_3_4 1944_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ Πίνακας 5-3 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα Για τον κώδικα few 3 με κωδικής λέξης 2016 bits και ρυθμό κώδικα 3/4: few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 ΜΗΚΗ ΚΥΚΛΩΝ Πίνακας 5-4 Αποτελέσματα εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για τον κώδικα few 3 76

77 5.4 Χρόνοι εκτέλεσης προγράμματος εύρεσης μοναδικών κύκλων Παρακάτω παρατίθενται οι χρόνοι εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για τους διάφορους κώδικες για τους οποίους βρέθηκαν οι μοναδικοί κύκλοι και για διαφορετικούς ρυθμούς κώδικα: Για κώδικες με μήκος κωδικής λέξης 648 bits: 648_1_2 648_2_3 648_3_4 648_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) Πίνακας 5-5 Χρόνοι εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα Για κώδικες με μήκος κωδικής λέξης 1296 bits: 1296_1_2 1296_2_3 1296_3_4 1296_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) Πίνακας 5-6 Χρόνοι εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 77

78 Για κώδικες με μήκος κωδικής λέξης 1944 bits: 1944_1_2 1944_2_3 1944_3_4 1944_5_6 Codeword (bits) Extension Factor Code Rate ΜΗΚΗ ΚΥΚΛΩΝ ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) Πίνακας 5-7 Χρόνοι εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα Για τον κώδικα few 3 με κωδικής λέξης 2016 bits και ρυθμό κώδικα 3/4: few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 ΜΗΚΗ ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) ΚΥΚΛΩΝ Πίνακας 5-8 Χρόνοι εκτέλεσης του προγράμματος εύρεσης μοναδικών κύκλων για τον κώδικα few 3 Παρατηρώντας τους ανωτέρω πίνακες διαπιστώνουμε ότι ο χρόνος εκτέλεσης αυξάνεται όσο αυξάνεται το πλήθος των κύκλων ανά μήκος κύκλου γιατί έχει περισσότερους κύκλους να ελέγξει. Αυτό συμβαίνει γιατί για σταθερό μήκος κωδικής λέξης οι διαστάσεις του πίνακα ελέγχου ισοτιμίας παραμένουν σταθερές αλλά όσο αυξάνεται 78

79 ο ρυθμός κώδικα γίνεται πιο πυκνός ο πίνακας ελέγχου ισοτιμίας. Επίσης, όσο αυξάνεται το μήκος κωδικής λέξης και για σταθερό ρυθμό κώδικα, ο πίνακας ελέγχου ισοτιμίας γίνεται πιο αραιός. 5.5 Σύγκριση εκδόσεων προγράμματος εύρεσης μοναδικών κύκλων Παρακάτω γίνεται μια σύγκριση των εκδόσεων του προγράμματος εύρεσης μοναδικών κύκλων: ΕΚΔΟΣΗ Α ΕΚΔΟΣΗ Β ΕΚΔΟΣΗ Γ ΕΚΔΟΣΗ Δ ΕΚΔΟΣΗ Ε ΕΚΔΟΣΗ Ζ ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) ΑΥΞΗΣΗ ΤΑΧΥΤΗΤΑΣ ΕΚΤΕΛΕΣΗΣ ΩΣ ΠΡΟΣ ΤΗΝ ΕΚΔΟΣΗ Α (%) ΑΥΞΗΣΗ ΤΑΧΥΤΗΤΑΣ ΚΑΘΕ ΕΚΔΟΣΗΣ ΩΣ ΠΡΟΣ ΤΗΝ ΠΡΟΗΓΟΥΜΕΝΗ ΤΗΣ (%) Πίνακας 5-9 Σύγκριση εκδόσεων του προγράμματος εύρεσης μοναδικών κύκλων ως προς τη μνήμη και την ταχύτητα Όλες οι μετρήσεις στον παραπάνω πίνακα έγιναν με τη χρήση του αρχείου κύκλων μήκους 6 του κώδικα με μήκος κωδικής λέξης 648 και ρυθμό 1 /2. Το πρόγραμμα εύρεσης μοναδικών κύκλων αντιμετώπιζε το πρόβλημα του μεγάλου χρόνου εκτέλεσης λόγω του μεγάλου πλήθους των δεδομένων και για αυτό τον λόγο υλοποιήθηκαν 5 εκδόσεις του προγράμματος προκειμένου να δοθεί λύση στο πρόβλημα αυτό και έτσι η έκδοση του προγράμματος με την οποία προέκυψαν τα αποτελέσματα είναι η έκδοση Β. Η ανάπτυξη της έκδοσης Β είχε ως στόχο να κάνει το πρόγραμμα πιο γρήγορο κάνοντας πιο συμπαγή τον κώδικα και εφαρμόζοντας διαδοχικά τα κριτήρια ώστε σε κάποιες από τις περιπτώσεις να μην εφαρμόζονται και τα τρία κριτήρια. Αυτό είχε ως αποτέλεσμα την αύξηση της ταχύτητας κατά 5.5 % αλλά πάλι υπήρχε πρόβλημα για κύκλους μήκους 8 και πάνω. Έτσι αναπτύχθηκε η έκδοση Γ η οποία ήλεγχε 79

80 μόνο τους variable κόμβους κάθε κύκλου που διάβαζε από το αρχείο και ανέπτυσσε πρότυπα πλήθους 2n 1, όπου n το πλήθος των variable κόμβων για τους κύκλους με τους οποίους γινόταν η σύγκριση του παρόντος κύκλου. Στη συνέχεια εξέταζε αυτά τα πρότυπα για να διαπιστώσει αν ο παρών κύκλος ταιριάζει με κάποιο από αυτά, δηλαδή αν ο κύκλος υπάρχει ήδη. Όμως η απόδοση δεν έγινε καλύτερη. Στην έκδοση Δ αλλάξαμε τον αλγόριθμο ώστε να μην κατασκευάζει όλα τα πρότυπα για κάθε κύκλο αλλά να κατασκευάζει ένα ένα τα πρότυπα και να τα συγκρίνει. Το επόμενο πρότυπο θα κατασκευαζόταν μόνο αν στη σύγκριση με το προηγούμενο πρότυπο το αποτέλεσμα ήταν αρνητικό (δηλαδή ο παρών κύκλος δεν ταίριαζε με το πρότυπο). Αν ήταν θετικό σταματούσε η διαδικασία κατασκευής προτύπων και το πρόγραμμα εξέταζε τον επόμενο κύκλο. Όμως ούτε αυτή η έκδοση κατάφερε να λύσει το πρόβλημα. Τέλος, στην έκδοση Ε χρησιμοποιήθηκε η βιβλιοθήκη Openmp για νήματα ούτως ώστε να κατασκευάζονται και να συγκρίνονται παράλληλα τα πρότυπα με τον παρόντα κύκλο αλλά ούτε αυτό οδήγησε σε καλύτερη απόδοση. Έτσι καταλήξαμε στην έκδοση Β για την παραγωγή των αποτελεσμάτων δεχόμενοι το συμβιβασμό να αφήσουμε τους κύκλους μήκους 8. Όμως, αργότερα από την εξαγωγή των αποτελεσμάτων αναπτύχθηκε η έκδοση Ζ ως προσπάθεια μείωσης του χρόνου εκτέλεσης. Στην έκδοση Ζ όλοι οι κύκλοι του αρχείου εισόδου αποθηκεύονταν σε ένα πίνακα δύο διαστάσεων στη μνήμη και μόνο οι μοναδικοί κύκλοι διαβάζονταν και γράφονταν σε αρχείο. Αυτό οδήγησε σε θεαματική αύξηση της ταχύτητας και μείωση του χρόνου εκτέλεσης. 80

81 6 Μέθοδος εύρεσης trapping sets Σε αυτό το κεφάλαιο περιγράφεται στην αρχή ο αλγόριθμος του προγράμματος εύρεσης κύκλων με κοινούς κόμβους και στη συνέχεια παρουσιάζονται τα αποτελέσματα από την εκτέλεση του προγράμματος και οι χρόνοι εκτέλεσης του προγράμματος. Τα ανωτέρω βρίσκονται και αναλύονται στο υποκεφάλαιο 6.1 Στο υποκεφάλαιο 6.2 περιγράφεται ο αλγόριθμος εύρεσης trapping sets και παρουσιάζονται τα αποτελέσματα των διαφορετικών εκδόσεων του προγράμματος όπως και οι χρόνοι εκτέλεσης αυτών. Τέλος, δίνονται μερικά χαρακτηριστικά γραφήματα που απεικονίζουν κάποια trapping sets του κώδικα few Εύρεση κύκλων με κοινούς κόμβους Αλγόριθμος εύρεσης κύκλων με κοινούς κόμβους Στο πρόγραμμα εύρεσης κύκλων με κοινούς κόμβους δίνονταν ως είσοδοι όλα τα αρχεία που περιείχαν μοναδικούς κύκλους για έναν πίνακα βάσης και τα αντίστοιχα μήκος κύκλων που περιείχε κάθε αρχείο και το πρόγραμμα ξεκινούσε να βρίσκει για κάθε κύκλο σε κάθε αρχείο άλλους κύκλους που είχαν κοινούς κόμβους με αυτόν, είτε variable κόμβους είτε check κόμβους. Τα αποτελέσματα γράφονταν σε ένα τελικό αρχείο που είχε προσδιορίσει ο χρήστης. Όλη η επεξεργασία που περιγράφηκε παραπάνω γίνεται από τις συναρτήσεις FindCommonNodes και CheckConditions. Στην δεύτερη γίνεται η σύγκριση μεταξύ του παρόντος κύκλου κάθε φορά και των υπολοίπων. 81

82 FindCommonNodes Για (αρχείο 1 μέχρι αρχείο n) { Υπολόγισε αριθμό κύκλων Για (i = 0 μέχρι i = αριθμός κύκλων) Βρες κύκλους με κοινούς κόμβους (κλήση της CheckConditions) } Οργάνωση προγράμματος εύρεσης κύκλων με κοινούς κόμβους Για την ανάπτυξη του προγράμματος χρησιμοποιήθηκε ο αρθρωτός σχεδιασμός, δηλαδή το πρόγραμμα χωρίστηκε σε συναρτήσεις και καθεμιά επιτελεί μια συγκεκριμένη λειτουργία αλλά και η αυξητική ανάπτυξη καθώς αναπτύχθηκε μια καινούργια έκδοση για κάθε αλλαγή στην λειτουργικότητα ή στη δομή του. Επίσης, χρησιμοποιήθηκε η δομή του πίνακα για τους πίνακες που είχαν τον κύκλο ως προς τον οποίο γίνονταν οι συγκρίσεις και τους κύκλους με τους οποίους γίνονταν οι συγκρίσεις. Ακόμη, χρησιμοποιήθηκε η τεχνική της δυναμικής διαχείρισης μνήμης με την χρήση της συνάρτησης malloc της C για την δέσμευση μνήμης για τους ανωτέρω πίνακες. Επιπροσθέτως, χρησιμοποιήθηκε και το πέρασμα των παραμέτρων σε συναρτήσεις με αναφορά (call by reference) προκειμένου κάποιες αλλαγές που γίνονταν σε δείκτες ή τιμές μεταβλητών μέσα σε κάποια συνάρτηση να ενημερώνονται ταυτόχρονα σε πολλά διαφορετικά σημεία του προγράμματος. Τέλος, το πρόγραμμα αναπτύχθηκε στο περιβάλλον Dev-C και η εκτέλεσή του έγινε στον linux server limnos του εργαστηρίου ολοκληρωμένων κυκλωμάτων. 82

83 6.1.3 Χρόνοι εκτέλεσης προγράμματος εύρεσης κύκλων με κοινούς κόμβους Παρακάτω παρατίθενται οι χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων με κοινούς κόμβους για τους διάφορους κώδικες και για διαφορετικούς ρυθμούς κώδικα: Για κώδικες με μήκος κωδικής λέξης 648 bits: 648_1_2 648_2_3 648_3_4 648_5_6 Codeword (bits) Extension Factor Code Rate ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ ( s ) Πίνακας 6-1 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων με κοινούς κόμβους για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα Για κώδικες με μήκος κωδικής λέξης 1296 bits: 1296_1_2 1296_2_3 1296_3_4 1296_5_6 Codeword (bits) Extension Factor Code Rate ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ ( s ) Πίνακας 6-2 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων με κοινούς κόμβους για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 83

84 Για κώδικες με μήκος κωδικής λέξης 1944 bits: 1944_1_2 1944_2_3 1944_3_4 1944_5_6 Codeword (bits) Extension Factor Code Rate ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ ( s ) Πίνακας 6-3 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων με κοινούς κόμβους για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα Για τον κώδικα few 3 με μήκος κωδικής λέξης 2016 bits και ρυθμό κώδικα 3/4: few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ ( s ) 42 Πίνακας 6-4 Χρόνοι εκτέλεσης του προγράμματος εύρεσης κύκλων με κοινούς κόμβους για τον κώδικα few 3 84

85 6.1.4 Σύγκριση εκδόσεων προγράμματος εύρεσης κύκλων με κοινούς κόμβους Εδώ γίνεται μια σύγκριση των εκδόσεων του προγράμματος εύρεσης κύκλων με κοινούς κόμβους. ΧΡΟΝΟΣ ΕΚΔΟΣΗ Δ ΕΚΔΟΣΗ Ε ΕΚΔΟΣΗ Ζ ΕΚΤΕΛΕΣΗΣ (s) ΑΥΞΗΣΗ ΤΑΧΥΤΗΤΑΣ ΕΚΤΕΛΕΣΗΣ ΩΣ ΠΡΟΣ ΕΚΔΟΣΗ Δ (%) ΑΥΞΗΣΗ ΤΑΧΥΤΗΤΑΣ ΚΑΘΕ ΕΚΔΟΣΗΣ ΩΣ ΠΡΟΣ ΤΗΝ ΠΡΟΗΓΟΥΜΕΝΗ ΤΗΣ (%) Πίνακας 6-5 Σύγκριση εκδόσεων του προγράμματος εύρεσης κύκλων με κοινούς κόμβους Στην έκδοση Ε έγιναν βελτιώσεις στον κώδικα και αυτό είχε ως αποτέλεσμα μια σημαντική μείωση του χρόνου εκτέλεσης και ως επακόλουθο αύξηση της ταχύτητας σε σχέση με την αρχική έκδοση. Στην έκδοση Ζ έγιναν ακόμα κάποιες βελτιώσεις στον κώδικα και αυτό οδήγησε σε μια μικρή αύξηση της ταχύτητας. Όλες οι μετρήσεις στον ανωτέρω πίνακα έχουν γίνει χρησιμοποιώντας τον κώδικα με μήκος 648 και για ρυθμό κώδικα 1/2 για κύκλους μήκους 6. 85

86 6.2 Εύρεση trapping sets Ορισμός Trapping Set Εδώ κρίνεται σκόπιμο να δώσουμε τον ορισμό των trapping sets. Έστω ότι έχουμε τον πίνακα ελέγχου ισοτιμίας H ενός LDPC (n, k, d) κώδικα και συμβολίσουμε με G(H) το αντίστοιχο διμερές γράφημα Tanner. Οι στήλες δεικτοδοτούνται από τους variable κόμβους V του G(H) και οι γραμμές από τους check κόμβους του G(H). Ο ορισμός των trapping sets είναι ο ακόλουθος: Ένα γενικό trapping set (H) ενός πίνακα ελέγχου ισοτιμίας H είναι ένας σχηματισμός α κόμβων από ο V για τους οποίους ο υπογράφος στο G(H) που επηρεάζεται από το (H) και τους γείτονές του περιέχει b > 0 check κόμβους περιττού βάρους. [24][25][26] Αλγόριθμος εύρεσης trapping sets Δημιουργήθηκαν 3 εκδόσεις του προγράμματος για την εύρεση trapping sets και όλες κάνουν επεξεργασία προκειμένου να βρουν διαφορετικού μεγέθους trapping sets. Ο αλγόριθμος όμως που χρησιμοποιήθηκε για την εύρεσή τους είναι κοινός για όλες και περιγράφεται παρακάτω. Σε κάθε μια από τις 3 εκδόσεις ο χρήστης δίνει ως είσοδο ένα αρχείο που περιέχει σύνολα κύκλων με κοινούς κόμβους ( ή μεμονωμένους κύκλους στην περίπτωση της έκδοσης Γ) και τον πίνακα ελέγχου ισοτιμίας του αντίστοιχου κώδικα από τον οποίο προήλθαν και το πρόγραμμα για κάθε σύνολο δημιουργεί δύο πίνακες. Ο ένας περιέχει τους variable κόμβους όλων των κύκλων του συνόλου και ο άλλος περιέχει όλους τους check κόμβους όλων των κύκλων του συνόλου. Επίσης γίνεται έλεγχος ούτως ώστε κάθε κόμβος μέσα σε καθέναν από τους δύο πίνακες να είναι μοναδικός και να μην επαναλαμβάνεται. Αυτοί οι δύο πίνακες αποτελούν ένα σύνολο που εξετάζεται για να διαπιστωθεί αν είναι όντως trapping set και συνεπώς αποτελεί πιθανό trapping set. Για κάθε variable κόμβο του πιθανού trapping set εξετάζεται για κάθε σύνδεσή του με check κόμβο αν αυτός ο check κόμβος ανήκει 86

87 στο πιθανό trapping set. Αν όχι, εξετάζεται αν συνδέεται με περιττό αριθμό variable κόμβων του trapping set. Αν ναι τότε έχει βρεθεί ένα trapping set. Αφού ολοκληρωθεί η διαδικασία όλα τα trapping sets θα βρίσκονται σε ένα αρχείο που έχει καθοριστεί από το χρήστη. Στις 3 εκδόσεις που αναπτύχθηκαν γίνεται αναζήτηση για διαφορετικού μεγέθους trapping sets. Στην έκδοση Α η είσοδος είναι ένα αρχείο με σύνολα κύκλων με κοινούς κόμβους. Στην έκδοση αυτή εξετάζεται αν το κάθε σύνολο αποτελεί trapping set. Στην έκδοση Β η είσοδος είναι πάλι ένα αρχείο με σύνολα κύκλων με κοινούς κόμβους και για κάθε σύνολο γίνονται όλοι οι συνδυασμοί ανά δύο των κύκλων του συνόλου και εξετάζεται κάθε συνδυασμός από αυτούς (ένωση 2 κύκλων) ούτως ώστε να διαπιστωθεί αν αποτελεί trapping set. Στην έκδοση Γ η είσοδος είναι ένα αρχείο με μοναδικούς κύκλους και εξετάζεται αν κάθε κύκλος μόνος του αποτελεί trapping set. Στο επόμενο υποκεφάλαιο παρουσιάζονται τα αποτελέσματα και από τις 3 εκδόσεις για τον κώδικα few 3. Η ανωτέρω περιγραφείσα επεξεργασία στο πρόγραμμα εύρεσης trapping sets γίνεται από τις συναρτήσεις FindTrappingSets και ReadNodes. Βέβαια η ReadNodes σε κάθε έκδοση ήταν διαφορετική καθώς εξετάζονται διαφορετικού μεγέθους trapping sets σε καθεμιά. Για την έκδοση Α: ReadNodes Μέχρι το τέλος του αρχείου { Διάβασε νέο κύκλο Αποθήκευσε τους κόμβους του σε πίνακες Αν (τέλος μπλοκ) { Έλεγξε αν το σύνολο αποτελεί trapping set Αν ναι Γράψε το σε αρχείο Διάγραψε τους πίνακες } } 87

88 Για την έκδοση Β: ReadNodes Μέχρι το τέλος του αρχείου { Διάβασε για κάθε μπλοκ τους κύκλους Αποθήκευσε τους κύκλους σε ένα πίνακα Για κάθε κύκλο από τον 1 ο έως τον n 1 { Αποθήκευσε τους κόμβους του σε πίνακες Για κάθε κύκλο από τον επόμενο του 1 ου βρόχου έως τον n) { Αποθήκευσε τους κόμβους του σε πίνακες Έλεγξε αν αποτελούν trapping set Αν ναι Γράψε το trapping set σε αρχείο Μείωσε το μέγεθος των πινάκων } Διάγραψε τους πίνακες } } Για την έκδοση Γ: ReadNodes Μέχρι το τέλος του αρχείου { Διάβασε νέο κύκλο Αποθήκευσε τους κόμβους του σε πίνακες Έλεγξε αν αποτελεί trapping set Αν ναι Γράψε το σε αρχείο Διάγραψε τους πίνακες } 88

89 FindTrappingSets Για κάθε variable κόμβο { Βρες κάθε check κόμβο που συνδέεται με αυτόν Αν ο check κόμβος δεν ανήκει σε αυτούς του πιθανού trapping set { Έλεγξε αν συνδέεται με περιττό αριθμό variable κόμβων του trapping set Αν ναι Γράψε το trapping set σε αρχείο } } Οργάνωση προγράμματος εύρεσης trapping sets Για την ανάπτυξη του προγράμματος χρησιμοποιήθηκε ο αρθρωτός σχεδιασμός, δηλαδή το πρόγραμμα χωρίστηκε σε συναρτήσεις και καθεμιά επιτελεί μια συγκεκριμένη λειτουργία αλλά και η αυξητική ανάπτυξη καθώς αναπτύχθηκε μια καινούργια έκδοση για κάθε αλλαγή στην λειτουργικότητα ή στη δομή του. Επίσης, χρησιμοποιήθηκε η δομή του πίνακα για τους πίνακες που είχαν τους variable κόμβους και τους check κόμβους σε όλες τις εκδόσεις. Ακόμη, χρησιμοποιήθηκε η τεχνική της δυναμικής διαχείρισης μνήμης με την χρήση της συνάρτησης malloc για την δέσμευση μνήμης για τους ανωτέρω πίνακες αλλά και της συνάρτησης realloc για την αύξηση ή την μείωση του μεγέθους του πίνακα σε κάθε περίπτωση σε κάθε έκδοση. Επιπροσθέτως, χρησιμοποιήθηκε και το πέρασμα των παραμέτρων σε συναρτήσεις με αναφορά (call by reference) προκειμένου κάποιες αλλαγές που γίνονταν σε δείκτες ή τιμές μεταβλητών μέσα σε κάποια συνάρτηση να ενημερώνονται ταυτόχρονα σε πολλά διαφορετικά σημεία του προγράμματος. Τέλος, το πρόγραμμα αναπτύχθηκε στο περιβάλλον Dev-C και η εκτέλεσή του έγινε στον linux server limnos του εργαστηρίου ολοκληρωμένων κυκλωμάτων. 89

90 6.2.4 Αποτελέσματα εκτέλεσης προγραμμάτων εύρεσης trapping sets Έκδοση Α Τα αποτελέσματα της έκδοσης Α του προγράμματος εύρεσης trapping sets για όλους τους κώδικες και διαφορετικούς ρυθμούς κώδικα είναι: Για κώδικες με μήκος κωδικής λέξης 648 bits: 648_1_2 648_2_3 648_3_4 648_5_6 Codeword (bits) Extension Factor Code Rate ΠΛΗΘΟΣ TRAPPING SETS Πίνακας 6-6 Αποτελέσματα εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα Για κώδικες με μήκος κωδικής λέξης 1296 bits: 1296_1_2 1296_2_3 1296_3_4 1296_5_6 Codeword (bits) Extension Factor Code Rate ΠΛΗΘΟΣ TRAPPING SETS Πίνακας 6-7 Αποτελέσματα εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 90

91 Για κώδικες με μήκος κωδικής λέξης 1944 bits: 1944_1_2 1944_2_3 1944_3_4 1944_5_6 Codeword (bits) Extension Factor Code Rate ΠΛΗΘΟΣ TRAPPING SETS Πίνακας 6-8 Αποτελέσματα εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα Για τον κώδικα few 3 με μήκος κωδικής λέξης 2016 bits και ρυθμό κώδικα 3/4: few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 ΠΛΗΘΟΣ TRAPPING SETS 0 Πίνακας 6-9 Αποτελέσματα εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για τον κώδικα few 3 Από τους ανωτέρω κώδικες μόνο αυτός με μήκος κωδικής λέξης 648 bits και ρυθμό 5/6 έχει μεγάλα trapping sets.βέβαια τόσο μεγάλα trapping sets δύσκολα ενεργοποιούνται στην πράξη. Αυτά που ενεργοποιούνται συχνά είναι μικρά trapping sets γιατί είναι δύσκολο να κατανεμηθεί θόρυβος σε όλους τους κόμβους ώστε να ενεργοποιηθούν τόσοι πολλοί κόμβοι. Γι αυτό το λόγο αναπτύχθηκαν η έκδοση Β και η έκδοση Γ. 91

92 Χρόνοι εκτέλεσης για την έκδοση Α Παρακάτω παρατίθενται οι χρόνοι εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για τους διάφορους κώδικες για διαφορετικούς ρυθμούς κώδικα: Για κώδικες με μήκος κωδικής λέξης 648 bits: 648_1_2 648_2_3 648_3_4 648_5_6 Codeword (bits) Extension Factor Code Rate ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ ( s ) Πίνακας 6-10 Χρόνοι εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 648 και διαφορετικούς ρυθμούς κώδικα Για κώδικες με μήκος κωδικής λέξης 1296 bits: 1296_1_2 1296_2_3 1296_3_4 1296_5_6 Codeword (bits) Extension Factor Code Rate ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ ( s ) Πίνακας 6-11 Χρόνοι εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 1296 και διαφορετικούς ρυθμούς κώδικα 92

93 Για κώδικες με μήκος κωδικής λέξης 1944 bits: 1944_1_2 1944_2_3 1944_3_4 1944_5_6 Codeword (bits) Extension Factor Code Rate ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ ( s ) Πίνακας 6-12 Χρόνοι εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για κώδικα με μήκος κωδικής λέξης 1944 και διαφορετικούς ρυθμούς κώδικα Για τον κώδικα few 3 με μήκος κωδικής λέξης 2016 bits και ρυθμό κώδικα 3/4: few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ ( s ) 1 Πίνακας 6-13 Χρόνος εκτέλεσης της έκδοσης Α του προγράμματος εύρεσης trapping sets για τον κώδικα με few 3 93

94 Έκδοση Β Για την έκδοση Β και σε διάστημα 16 ημερών καταφέραμε να βγάλουμε αποτελέσματα για 260 μπλοκ κύκλων με κοινούς κόμβους από τα συνολικά 3444 για τον κώδικα few 3. Έτσι για 26 δείγματα (δηλαδή 26 δεκάδες μπλοκ) υπολογίσαμε την αθροιστική μέση τιμή για το σύνολό τους και παρατηρούμε ότι από ένα σημείο και μετά υπάρχει μια σταθερότητα στην συμπεριφορά του κώδικα. Το σημείο ισορροπίας είναι κατά μέσο όρο στα 15 trapping sets και η εκτίμηση που προκύπτει από τα μέχρι τώρα δεδομένα και βάσει αυτού του συνόλου των δειγμάτων από τα συνολικά 3444 είναι ότι ο κώδικας σταθεροποιείται στα 15 trapping sets περίπου ανά μπλοκ. Αυτά φαίνονται στην εικόνα παρακάτω: Σχήμα 6-1 Αθροιστική μέση τιμή πλήθους trapping sets σε σύνολο 26 δειγμάτων Συνεπώς η εκτίμηση που προκύπτει για την συμπεριφορά του κώδικα few 3, με βάση τα δείγματα που χρησιμοποιήσαμε, είναι ότι περιέχει trapping sets συνολικά! 94

95 Τα αποτελέσματα και η ανάλυση των trapping sets φαίνονται στον παρακάτω πίνακα: few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 TRAPPING SETS ΜΕ 4 VARIABLE ΚΟΜΒΟΥΣ 28 TRAPPING SETS ΜΕ 5 VARIABLE ΚΟΜΒΟΥΣ 771 TRAPPING SETS ΜΕ 6 VARIABLE ΚΟΜΒΟΥΣ 2957 ΣΥΝΟΛΟ 3756 Πίνακας 6-14 Αποτελέσματα εκτέλεσης της έκδοσης B του προγράμματος εύρεσης trapping sets για τον κώδικα few 3 Επίσης, ο συνολικός αριθμός των trapping sets για το σύνολο των 260 μπλοκ ήταν Από αυτά 28 trapping sets είχαν 4 variable κόμβους, 771 είχαν 5 variable κόμβους και 2957 είχαν 6 variable κόμβους. Συνεπώς ένα ιδιαίτερα χρήσιμο συμπέρασμα είναι ότι στον κώδικα few 3 κυριαρχούν trapping sets μεγέθους 6 variable κόμβων και επομένως καθορίζουν και χαρακτηρίζουν την συμπεριφορά του κώδικα. Επίσης μια άλλη παρατήρηση που αξίζει να γίνει είναι ότι όλα τα μπλοκ έχουν περίπου τον ίδιο αριθμό κύκλων, δηλαδή είναι περίπου του ίδιου μεγέθους. Τέλος, ένα πολύ χρήσιμο συμπέρασμα που προκύπτει είναι για το ποιος είναι ο μέγιστος και ποιος ο ελάχιστος αριθμός κύκλων που μπορούν να ενωθούν για να σχηματίσουν ένα trapping set για τους κύκλους μήκους 6 από τους οποίους αποτελούνται τα μπλοκ κοινών κόμβων του κώδικα few 3. Ένας κύκλος μήκους 6 είναι από μόνος του ένα trapping set αν δεν υπάρχουν κύκλοι 4 (αυτό εξετάζει η έκδοση Γ παρακάτω). Άρα το ελάχιστο είναι η συμμετοχή ενός μόνο κύκλου μήκους 6 και κατά μέγιστο μπορούμε να έχουμε την ένωση 7 κύκλων μήκους 6! 95

96 Σχήμα 6-2 Μέγιστο πλήθος κύκλων μήκους 6 που μπορούν να συμμετέχουν σε ένα trapping set Στην παραπάνω εικόνα φαίνεται η ένωση 7 κύκλων μήκους 6 για, δηλαδή η μέγιστη δυνατή συμμετοχή κύκλων μήκους 6 για τον σχηματισμό ενός trapping set. Επίσης, μπορούμε να επεκτείνουμε αυτό το συμπέρασμα και για κύκλους μήκους 8 όπου το μέγιστο δυνατό πλήθος κύκλων μήκους 8 για τον σχηματισμό ενός trapping set είναι 9! Βέβαια η παρακάτω γραφική απεικόνιση έχει σχέση και με τον τρόπο που εξετάζουμε τις δομές αυτές! Δηλαδή στα προγράμματα αυτής της διπλωματικής δεν θα προέκυπτε κάποιος κύκλος που να συνδέεται με τους εξωτερικούς κύκλους μήκους 8 και όχι με αυτόν που βρίσκεται στο κέντρο γιατί έχουμε θεωρήσει ότι όλοι θα έχουν τουλάχιστον έναν κοινό κόμβο με τον κύκλο μήκους 8 που βρίσκεται στο κέντρο! Παρακάτω φαίνεται μια γραφική απεικόνιση της περίπτωσης αυτής: 96

97 Σχήμα 6-3 Μέγιστο πλήθος κύκλων μήκους 8 που μπορούν να συμμετέχουν σε ένα trapping set 97

98 Αποτελέσματα για μικρότερο πίνακα ισοτιμίας Με την χρήση της έκδοσης Β καταφέραμε να βρούμε όλα τα trapping sets που προέκυψαν από έναν πίνακα ελέγχου ισοτιμίας, ο οποίος είναι τμήμα του πίνακα ελέγχου ισοτιμίας του κώδικα few 3. Συγκεκριμένα ο πίνακας ελέγχου ισοτιμίας σε αυτή την περίπτωση έχει 88 γραμμές και 2016 στήλες. Προέκυψε από πίνακα βάσης με 22 γραμμές και 88 στήλες. Στον πίνακα αυτό προέκυψαν μόνο κύκλοι μήκους 8. Όλα τα αποτελέσματα φαίνονται στους παρακάτω πίνακες: Αποτελέσματα όλων των προγραμμάτων ΜΗΚΟΣ ΚΥΚΛΩΝ 8 ΠΛΗΘΟΣ ΚΥΚΛΩΝ 32 ΠΛΗΘΟΣ ΜΟΝΑΔΙΚΩΝ ΚΥΚΛΩΝ 4 ΠΛΗΘΟΣ TRAPPING SETS 24 Πίνακας 6-15 Αποτελέσματα εκτέλεσης όλων των προγραμμάτων για μικρότερο πίνακα ισοτιμίας Από αυτό τον μικρό πίνακα ελέγχου ισοτιμίας προέκυψαν 32 κύκλοι μήκους 8, 4 μοναδικοί κύκλοι και 24 trapping sets. Ανάλυση πλήθους Trapping Sets ΣΥΝΟΛΙΚΟ ΠΛΗΘΟΣ TRAPPING SETS 24 TRAPPING SETS ΜΕ 4 VARIABLE ΚΟΜΒΟΥΣ 4 TRAPPING SETS ΜΕ 8 VARIABLE ΚΟΜΒΟΥΣ 20 Πίνακας 6-16 Αποτελέσματα εκτέλεσης της έκδοσης B του προγράμματος εύρεσης trapping sets για μικρότερο πίνακα ισοτιμίας Από τον ανωτέρω πίνακα παρατηρούμε ότι από το σύνολο των 24 trapping sets προκύπτουν 4 με πλήθος 4 variable κόμβων και 20 με πλήθος 8 variable κόμβων. 98

99 Χρόνοι εκτέλεσης προγραμμάτων ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ (s) ΠΡΟΓΡΑΜΜΑ ΕΥΡΕΣΗΣ ΚΥΚΛΩΝ 1 ΠΡΟΓΡΑΜΜΑ ΕΥΡΕΣΗΣ ΜΟΝ. ΚΥΚΛΩΝ 995 ΠΡΟΓΡΑΜΜΑ ΕΥΡΕΣΗΣ ΚΥΚΛΩΝ ΜΕ ΚΟΙΝΟΥΣ ΚΟΜΒΟΥΣ 122 ΠΡΟΓΡΑΜΜΑ ΕΥΡΕΣΗΣ TRAPPING SETS 550 Πίνακας 6-17 Χρόνοι εκτέλεσης όλων των προγραμμάτων για μικρότερο πίνακα ισοτιμίας Έκδοση Γ Τα αποτελέσματα της έκδοσης Γ για τον κώδικα few 3 παρατίθενται παρακάτω: few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 TRAPPING SETS 3444 Πίνακας 6-18 Αποτελέσματα εκτέλεσης της έκδοσης Γ του προγράμματος εύρεσης trapping sets για τον κώδικα few 3 Χρησιμοποιήσαμε την έκδοση Γ για το αρχείο που περιείχε τους μοναδικούς κύκλους 6 του κώδικα few 3 και προέκυψε πλήθος trapping set ίσο με το πλήθος των κύκλων, δηλαδή κάθε κύκλος 6 αποτελεί trapping set, γεγονός το οποίο είναι γνωστό και από τη θεωρία. 99

100 Χρόνος εκτέλεσης για την έκδοση Γ few 3 Codeword (bits) 2016 Extension Factor 4 Code Rate 3 4 ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ ( s ) Πίνακας 6-19 Χρόνος εκτέλεσης της έκδοσης Γ του προγράμματος εύρεσης trapping sets για τον κώδικα few 3 Προκειμένου να γίνουν πιο κατανοητές οι δομές trapping sets παρουσιάζονται παρακάτω γραφικές απεικονίσεις κάποιων trapping sets του κώδικα few

101 6.2.5 Γραφική απεικόνιση μερικών trapping sets του κώδικα few 3 Παρακάτω δίνεται η γραφική απεικόνιση μέσω matlab (χρησιμοποιήθηκε η έκδοση matlab R2012b) ορισμένων trapping sets του κώδικα few 3 με την χρήση του Biograph toolbox: Σχήμα 6-2 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 101

102 Σχήμα 6-3 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 102

103 Σχήμα 6-4 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 103

104 Σχήμα 6-5 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 104

105 Σχήμα 6-6 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 105

106 Σχήμα 6-7 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 106

107 Σχήμα 6-8 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 107

108 Σχήμα 6-9 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 108

109 Σχήμα 6-10 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 109

110 Σχήμα 6-11 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 110

111 Σχήμα 6-12 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 111

112 Σχήμα 6-13 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 112

113 Σχήμα 6-14 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 113

114 Σχήμα 6-15 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 114

115 Σχήμα 6-16 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 115

116 Σχήμα 6-17 Γραφική απεικόνιση ενός trapping set του κώδικα few 3 116

117 6.2.6 Άλλοι αλγόριθμοι εύρεσης trapping sets Σε αυτό το υποκεφάλαιο παρατίθενται κάποιοι άλλοι αλγόριθμοι εύρεσης trapping sets που υπάρχουν στη βιβλιογραφία. Ένας αλγόριθμος εύρεσης trapping sets που βρίσκεται στην αναφορά [28] είναι ο ακόλουθος: Αρχικά δίνονται ως είσοδοι ο πίνακας ελέγχου ισοτιμίας, οι μέγιστες παράμετροι α, β, οι παράμετροι του αλγορίθμου του Stern, p, l και ο μέγιστος αριθμός επαναλήψεων. Στην πρώτη επανάληψη αντιμετατίθενται οι στήλες του πίνακα ελέγχου ισοτιμίας H που έχει m γραμμές και n στήλες και προκύπτει ο = [ ], 1 i m και 1 j n. Στην συνέχεια επιλέγονται β δείκτες γραμμών οι οποίοι ανήκουν στο σύνολο I = {,,.., }. Ορίζεται ένας υποπίνακας που περιέχει τις β γραμμές του πίνακα H, των οποίων οι δείκτες περιέχονται στο σύνολο I, δηλαδή = [ ], i є I, 1 j n. Επίσης ορίζεται ένας υποπίνακας που περιέχει m β γραμμές των οποίων οι δείκτες δεν περιέχονται στο προαναφερθέν σύνολο, δηλαδή = [ ], i I, 1 j n. Στην συνέχεια παράγονται χαμηλού βάρους κωδικές λέξεις c = (,, ) που ικανοποιούν την = 0 χρησιμοποιώντας τον αλγόριθμο του Stern με παραμέτρους αυτές που ορίστηκαν αρχικά. Τότε οι στήλες του αντιμετατίθενται αν οι στήλες του αντιμετατεθούν στον αλγόριθμο του Stern. Για όλες τις κωδικές λέξεις c βάρους α ή μικρότερου ακολουθείται η εξής διαδικασία: Ορίζεται α = (c) και ορίζεται ως Τ ένα support set ούτως ώστε Τ = { j є J : = 0}. Έτσι έχουμε = [ ], i є I, j є T. Αν ο έχει περιττού βάρους γραμμές, τότε το Τα αποτελεί trapping set του. Και όλη προαναφερθείσα διαδικασία γίνεται πάλι από την αρχή μέχρι τον μέγιστο αριθμό επαναλήψεων. 117

118 Πριν παρουσιαστεί ο επόμενος αλγόριθμος πρέπει να δοθεί ο ορισμός του elementary trapping set που είναι ο εξής: Ένα trapping set λέγεται elementary αν όλοι οι check κόμβοι έχουν βάρος ένα ή δύο [29]. Ένας άλλος αλγόριθμος που υπάρχει στη βιβλιογραφία είναι ο παρακάτω [29]: Κατασκευάζονται μεγαλύτερα elementary trapping sets που βασίζονται σε ένα αρχικό σύνολο μικρότερων. Συγκεκριμένα, δοθέντος ενός elementary trapping set στην είσοδο, μεγέθους, ο αλγόριθμος βρίσκει όλα τα elementary trapping sets που περιέχουν αυτό, με την ιδιότητα το μέγεθός τους να είναι το ελάχιστο μεγαλύτερο του. Στην συνέχεια ο αλγόριθμος χρησιμοποιεί στο επόμενο βήμα τα σύνολα που βρέθηκαν στο παρόν βήμα και βρίσκει ένα σύνολο από μεγαλύτερα elementary trapping sets. 118

119 7 Αποτίμηση της προτεινόμενης μεθόδου 7.1 Συνεισφορά Με την συγκεκριμένη μέθοδο που ακολουθήσαμε, βρήκαμε και απαριθμήσαμε trapping sets που αποτελούνται από την ένωση κύκλων μήκους 6 και κύκλων μήκους 4 ή μόνο κύκλων 6 (κάποιοι κώδικες δεν είχαν κύκλους 4). Τα αποτελέσματα που προέκυψαν ήταν ιδιαίτερα ικανοποιητικά γιατί με την εύρεση των trapping sets και την μελέτη των χαρακτηριστικών τους χαρακτηρίσαμε την συμπεριφορά του κώδικα few 3, κάτι το οποίο μπορεί να γίνει και για τους υπόλοιπους κώδικες με την μέθοδο που αναπτύχθηκε. Επίσης, οι λύσεις που δόθηκαν αλλά και οι αλγόριθμοι που χρησιμοποιήθηκαν αποτελούν μια γενική λύση στο πρόβλημα και μπορούν να επεκταθούν και σε μεγαλύτερο εύρος. Δηλαδή δεν περιορίζονται σε συγκεκριμένο εύρος του προβλήματος. Ως επακόλουθο υπήρξαν ιδιαίτερες απαιτήσεις μνήμης στα διάφορα στάδια επεξεργασίας και έτσι έγινε βέλτιστη διαχείριση της μνήμης κάθε φορά προκειμένου να είναι γενικές οι λύσεις που δόθηκαν στα προβλήματα που αντιμετωπίστηκαν και να μην εξαρτώνται από τους πόρους του συστήματος. Παράλληλα, επιτεύχθηκε και η εξαγωγή αποτελεσμάτων σε σχετικά σύντομο χρόνο, το οποίο ήταν αντικρουόμενο με την χρονοβόρα επεξεργασία αυτού του μεγάλου πλήθους αποτελεσμάτων. Η εργασία αυτή είχε ως σκοπό την εύρεση και απαρίθμηση trapping sets και την προσπάθεια χαρακτηρισμού της συμπεριφοράς των κωδίκων προκειμένου να αντιμετωπιστεί το πρόβλημα της ξαφνικής αλλαγής κλίσης του ρυθμού σφάλματος συναρτήσει του επιπέδου θορύβου. Στα πλαίσια της παρούσας διπλωματικής προέκυψαν συμπεράσματα και εκτιμήσεις για τη συμπεριφορά του κώδικα few

120 7.2 Μελλοντική εργασία Η εργασία αυτή χρησιμοποίησε συγκεκριμένους αλγόριθμους σε κάθε στάδιο της υλοποίησής της. Οι λύσεις αυτές που δόθηκαν στην αντιμετώπιση κάθε προβλήματος της εργασίας αυτής είναι γενικές και ισχύουν για οποιαδήποτε δεδομένα εισόδου θελήσει κάποιος να δώσει ή και να επεκτείνει το πρόβλημα σε οσοδήποτε μεγάλες διαστάσεις. Ωστόσο, υπάρχουν κάποιες πιθανές εργασίες που θα μπορούσαν να γίνουν μελλοντικά προς επέκταση των όσων έγιναν στα πλαίσια αυτής της διπλωματικής. Μια πιθανή εργασία θα ήταν να συμπεριληφθούν και οι κύκλοι μήκους 8 με την έκδοση Ζ του προγράμματος εύρεσης μοναδικών κύκλων. Μια άλλη πιθανή εργασία θα ήταν η μείωση του χρόνου εκτέλεσης της έκδοσης Β του προγράμματος εύρεσης trapping sets. Επίσης, μια πιθανή εργασία θα ήταν η κατασκευή ενός προγράμματος εύρεσης trapping sets που κάνει συνδυασμούς κύκλων περισσοτέρων από 2. Ακόμη, μια άλλη εργασία θα ήταν η κατασκευή ενός προγράμματος για την επεξεργασία των trapping sets που βρίσκουν τα προγράμματα εύρεσης trapping sets ούτως ώστε να ευρίσκονται τα μοναδικά trapping sets. Τέλος, μια πιθανή εργασία να μελετηθούν και οι υπόλοιποι κώδικες ως προς τα trapping sets και να γίνουν ανάλογες παρατηρήσεις με αυτές που έγιναν για τον κώδικα few

121 Βιβλιογραφία [1] Todd K. Moon, Error Correction Coding - Mathematical Methods and Algorithms, Wiley 2005 [2] Stephen G. Wilson, Digital Modulation and Coding, Prentice Hall, 1996 [3] W. Carry Huffman and Vera Pless, Fundamentals of Error Correcting Codes, Cambridge University Press, 2003 [4] Error Detection and Correction, διαθέσιμο στην [5] Masoretic Text, διαθέσιμο στην ah [6] Mathew C. Valenti, The evolution of Error Control Coding, IEEE [7] Pei Yuh-Sih, The Development of Error Correcting Codes, Department of Electrical Engineering, National Chiao Tung University, Taiwan, διαθέσιμο στην df [8] Bo Rong, Yiyan Wu and Gilles Gagnon, Information Theory, Shannon Limit, and Error Correction Codes for Terrestrial DTV Broadcasting, Communications Research Centre Canada, Oct. 13, 2011 διαθέσιμο στην 11.pdf [9] J.D.Key, Some Error Correcting Codes and their applications, διαθέσιμο στην 088&rep=rep1&type=pdf [10] Ling Pei Kung, Introduction to Error Correcting Codes 121

122 [11] Franz Lemmermeyer, Error Correcting Codes, February 16, 2005 [12] Tuvi Etzion, Ari Trachtenberg, Alexander Vardi, Which Codes Have Cycle-Free Tanner Graphs?, IEE Transactions on Information Theory, Vol.45,No 6, September 1999 [13] Kenneth H. Rosen, Coding Theory, AT & T Laboratories [14] David Joyner, Applied Abstract Algebra, Aug. 23, 2002, διαθέσιμο στην /node1.html [15] Ruud Pellikaan, Xin Wen Wu, Stanislav Bulygin, Relinde Jurrius, Error Correcting Codes and Cryptology, Cambridge University Press, Jan. 23, 2012 [16] Robert G.Gallager, Low Density Parity Check Codes, MIT Press, July 1963 [17] James L. Massey, Orthogonal Arrays and Error Correcting Codes in Cryptography, Eth, Zurich, διαθέσιμο στην [18] George C. Clark, Jr., J. Bibb Cain, Error Correction Coding for Digital Communications, Plenum Press, New York, 1981 [19] Peter Mathys, Theory and Practice of Error Control Codes, Introduction to Block Codes, University of Colorado, Spring 2007 [20] Tj.J.Tjalkens en F.M.J. Willems, Informatie en Communicatietheorie, διαθέσιμο στην /04/blockcodes-article.pdf [21] Amin Shokrollahi, LDPC Codes, An Introduction, Digital Fountain Inc., Apr. 2, 2003 [22] Mohsenin, Tinoos, Baas, Bevan M., A Split-Decoding Message Passing Algorithm for Low Density Parity Check Decoders, 122

123 Journal of Signal Processing Systems, Vol. 61, Issue 3, Springer, [23] Sung-Hwan Kim, Apparatus and method for generating low density parity check codes for sequential decoding algorithm, Samsung Electronics Co.,Ltd, US Patent, ,διαθέσιμο στην [24] Olginca Milenkovits, Emina Soljanin, Philip Whiting, Asymptotic Spectra of Trapping Sets in Regular and Irregular LDPC Code Ensembles, IEEE Transactions on Information Theory, Vol.53, No 1, Jan [25] Tom Richardson, Error Floors of LDPC Codes, Flarion Technologies, διαθέσιμο στο [26] William E.Ryan and Shu Lin, Channel Codes Classical and Modern, Cambridge University Press, 2009 [27] Sang Hyun LEE, Kwang Soon KIM, Yun Hee KIM, Jae Young AHN, A Cycle Search Algorithm for an LDPC Code Design, International Symposium on Information Theory and Its Applications, ISITA 2004, Parma, Italy, Oct ,2004 [28] Masanori Hirotomo, Yoshiho Konishi, Masakatu Morii, Approximate Examination of Trapping Sets of LDPC Codes Using The Probabilistic Algorithm, International Symposium on Information Theory and Its Applications, ISITA 2008, Auckland, New Zealand, Dec. 7-10, 2008 [29] Mehdi Karimi Dehkordi, Amir H. Banihashemi, An Efficient Algorithm for Finding Dominant Trapping Sets of LDPC Codes, 6 th International Symposium on Turbo Codes and Iterative Information Processing, 2010 [30] Generating the Parity Check Matrix, στην ιστοσελίδα 123

124 [31] Thomas R. Halford, Keith M.Chugg Counting Short Cycles in Bipartite Graphs, Communication Sciences Institute, Department of Electrical Engineering-Systems, University of Southern California, Los Angeles, CA

125 125

126 Παράρτημα-Κώδικες C I. Πρόγραμμα εύρεσης κύκλων main.c 126

127 libraries.h nodes.h ChangeLine.c 127

128 function_prototypes.h FindRoot.c 128

129 CreateTreeNode.c 129

130 CheckPrevious.c DeleteTreeNode.c FindDoubleNodes.c 130

131 PrintCycle.c FillMatrix.c 131

132 MakeZero.c CloseFile.c CreateMatrix1D.c 132

133 CreateMatrix.c Menu.c 133

134 OpenFile.c ReadDimensions.c 134

135 ReadLength.c ReadMatrix.c 135

136 WriteDimensions.c WriteFile.c GetCurrentTime.c 136

137 PrintElapsedTime.c 137

138 ΙΙ. Πρόγραμμα εύρεσης μοναδικών κύκλων main_find_double_cycles.c libraries.h 138

139 function_prototypes.h 139

140 SearchUniqueCycles.c FindDoubles.c 140

141 CountCycles.c CheckCondition.c CheckCount.c 141

142 FindShift.c FindReversed.c 142

143 ChangeLine.c CloseFile.c CloseAllFiles.c 143

144 FindShiftedLeft FindShiftedRight.c 144

145 CreateCharMatrix1D.c CreateMatrix1D.c FillMatrix1D.c 145

146 Menu.c OpenFile.c 146

147 ReadFilename.c ReadLength.c 147

148 WriteFile.c GetCurrentTime.c 148

149 PrintElapsedTime.c 149

150 ΙΙΙ. Πρόγραμμα εύρεσης κύκλων με κοινούς κόμβους main_find_nodes.c 150

151 libraries.h function_prototypes.h 151

152 FindCommonNodes.c 152

153 CheckConditions.c ChangeLine.c 153

154 ChangeValue.c CompareNodes.c CheckSameType.c 154

155 CheckWritten.c CloseFile.c CloseAllFiles.c 155

156 CountCycles.c CreateCharMatrix1D.c 156

157 CreateCharMatrix2D.c CreateMatrix1D.c 157

158 CreateMatrix2D.c CreateMatrixFilePointers.c 158

159 FillMatrix.c Menu.c 159

160 HandleFiles.c OpenFile.c 160

161 ReadFileNumber.c ReadFilenames.c 161

162 ReadLength.c SetForLoop.c 162

163 StartNewBlock.c WriteFile.c GetCurrentTime.c 163

164 PrintElapsedTime.c 164

165 IV. Πρόγραμμα εύρεσης trapping sets Έκδοση Α Στην έκδοση Α το πρόγραμμα βρίσκει trapping sets που μεγάλα trapping sets που περιέχουν πάρα πολλούς κόμβους καθώς εξετάζεται για κάθε ομάδα κύκλων με κοινούς κόμβους αν η ένωση όλων αυτών των κύκλων μαζί αποτελεί trapping set. 165

166 main.c 166

167 function_prototypes.h libraries.h 167

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Αποκωδικοποιητής Μέγιστης Πιθανοφάνειας για Κώδικες LDPC και Υλοποίηση σε FPGA ΔΙΠΛΩΜΑΤΙΚΗ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ.   url: στους Ηλεκτρονικούς Υπολογιστές 5 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ email: leo@mail.ntua.gr url: http://users.ntua.gr/leo Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

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

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

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

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

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

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

Τεράστιες ανάγκες σε αποθηκευτικό χώρο

Τεράστιες ανάγκες σε αποθηκευτικό χώρο ΣΥΜΠΙΕΣΗ Τεράστιες ανάγκες σε αποθηκευτικό χώρο Παράδειγμα: CD-ROM έχει χωρητικότητα 650MB, χωρά 75 λεπτά ασυμπίεστου στερεοφωνικού ήχου, αλλά 30 sec ασυμπίεστου βίντεο. Μαγνητικοί δίσκοι χωρητικότητας

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

Αθανάσιος Χρ. Τζέμος Τομέας Θεωρητικής Φυσικής. Εντροπία Shannon

Αθανάσιος Χρ. Τζέμος Τομέας Θεωρητικής Φυσικής. Εντροπία Shannon Αθανάσιος Χρ. Τζέμος Τομέας Θεωρητικής Φυσικής Εντροπία Shannon Ένα από τα βασικά ερωτήματα της θεωρίας της πληροφορίας ήταν ανέκαθεν το πώς θα μπορούσε να ποσοτικοποιηθεί η πληροφορία, ώστε να μπορούμε

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

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

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

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

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

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

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

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

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

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

Επεξεργασία Πολυµέσων. Δρ. Μαρία Κοζύρη Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας

Επεξεργασία Πολυµέσων. Δρ. Μαρία Κοζύρη Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας Ενότητα 3: Επισκόπηση Συµπίεσης 2 Θεωρία Πληροφορίας Κωδικοποίηση Θεµελιώθηκε απο τον Claude

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανίχνευση και διόρθωση σφαλμάτων σε συστήματα επικοινωνιών με κωδικοποίηση Reed-Solomon

Ανίχνευση και διόρθωση σφαλμάτων σε συστήματα επικοινωνιών με κωδικοποίηση Reed-Solomon Ανίχνευση και διόρθωση σφαλμάτων σε συστήματα επικοινωνιών με κωδικοποίηση Reed-Solomon Αλέξανδρος Βασιλείου Σεπτέμβριος 2011 Πανεπιστήμιο Πατρών PERIEQŸOMENA Συνεισφορά της εργασίας...........................

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Θέματα Συστημάτων Πολυμέσων

Θέματα Συστημάτων Πολυμέσων Θέματα Συστημάτων Πολυμέσων Ενότητα # 6: Στοιχεία Θεωρίας Πληροφορίας Διδάσκων: Γεώργιος K. Πολύζος Τμήμα: Μεταπτυχιακό Πρόγραμμα Σπουδών Επιστήμη των Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ιαφορική εντροπία Σεραφείµ Καραµπογιάς

ιαφορική εντροπία Σεραφείµ Καραµπογιάς ιαφορική εντροπία Σεραφείµ Καραµπογιάς Για πηγές διακριτού χρόνου µε συνεχές αλφάβητο, των οποίων οι έξοδοι είναι πραγµατικοί αριθµοί, ορίζεται µια άλλη ποσότητα που µοιάζει µε την εντροπία και καλείται

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

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

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

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

Πολυμέσα πάνω από κινητά δίκτυα

Πολυμέσα πάνω από κινητά δίκτυα Πολυμέσα πάνω από κινητά δίκτυα Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών http://www.csd.uoc.gr/~tziritas Άνοιξη 2016 1 Πολυμέσα σε ασύρματα δίκτυα Οι πολυμεσικές επικοινωνίες μέσω φορητών συσκευών

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

3/40. (acknowledged connectionless), (acknowledged connection oriented) 4/40

3/40. (acknowledged connectionless), (acknowledged connection oriented) 4/40 Το επίπεδο συνδέσμου μετάδοσης δεδομένων Μιλτιάδης Αναγνώστου 5 Απριλίου 2013 1/40 Επίδραση του θορύβου Παραδείγματα 2/40 Τι κάνει το επίπεδο ζεύξης ή συνδέσμου μετάδοσης δεδομένων Χρησιμοποιεί τις υπηρεσίες

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

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

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

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

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

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

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

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

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

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

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

Ψηφιακές Τηλεπικοινωνίες Ψηφιακές Τηλεπικοινωνίες Θεωρία Πληροφορίας: Κωδικοποίηση Πηγής Ψηφιακή Μετάδοση Υπάρχουν ιδιαίτερα εξελιγμένες τεχνικές αναλογικής μετάδοσης (που ακόμη χρησιμοποιούνται σε ορισμένες εφαρμογές) Επίσης,

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

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

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

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

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

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

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

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

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

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

Κωδικοποίηση Πηγής. Η λειτουργία ενός συστήματος επικοινωνίας (γενικό διάγραμμα):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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 Μάθημα: Θεωρία + προαιρετικό

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

E[ (x- ) ]= trace[(x-x)(x- ) ]

E[ (x- ) ]= trace[(x-x)(x- ) ] 1 ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ Σε αυτό το μέρος της πτυχιακής θα ασχοληθούμε λεπτομερώς με το φίλτρο kalman και θα δούμε μια καινούρια έκδοση του φίλτρου πάνω στην εφαρμογή της γραμμικής εκτίμησης διακριτού

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

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

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

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

Επιστημονικός Υπολογισμός (set3) Δρ. Γιώργος Τσιρογιάννης

Επιστημονικός Υπολογισμός (set3) Δρ. Γιώργος Τσιρογιάννης Επιστημονικός Υπολογισμός (set3) Δρ. Γιώργος Τσιρογιάννης Μοντέλο Αριθμητικής και Σφάλματα υπολογισμού Απώλεια πληροφορίας λόγω: Μαθηματικής μοντελοποίησης και αποστεύσεων Διακριτοποίηση Σφάλματα στρογγύλευσης

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

Θεωρία πληροφοριών. Τεχνολογία Πολυµέσων 07-1

Θεωρία πληροφοριών. Τεχνολογία Πολυµέσων 07-1 Θεωρία πληροφοριών Εισαγωγή Αµοιβαία πληροφορία Εσωτερική πληροφορία Υπό συνθήκη πληροφορία Παραδείγµατα πληροφορίας Μέση πληροφορία και εντροπία Παραδείγµατα εντροπίας Εφαρµογές Τεχνολογία Πολυµέσων 07-

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

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

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

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

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

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

Συμπίεση Δεδομένων Συμπίεση Δεδομένων 2013-2014 JPEG 2000 Δρ. Ν. Π. Σγούρος 2 JPEG 2000 Βασικά χαρακτηριστικά Επιτρέπει συμπίεση σε εξαιρετικά χαμηλούς ρυθμούς όπου η συμπίεση με το JPEG εισάγει μεγάλες παραμορφώσεις Ενσωμάτωση

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

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

Συμπίεση Δεδομένων Συμπίεση Δεδομένων 2014-2015 Ρυθμός κωδικοποίησης Ένας κώδικας που απαιτεί L bits για την κωδικοποίηση μίας συμβολοσειράς N συμβόλων που εκπέμπει μία πηγή έχει ρυθμό κωδικοποίησης (μέσο μήκος λέξης) L

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 7 και 8: Αναπαραστάσεις. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ

ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ 1 ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ Σε αυτό το μέρος της πτυχιακής θα ασχοληθούμε λεπτομερώς με το φίλτρο kalman και θα δούμε μια καινούρια έκδοση του φίλτρου πάνω στην εφαρμογή της γραμμικής εκτίμησης διακριτού

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

Συστήματα Πολυμέσων. Ενότητα 2: Εισαγωγικά θέματα Ψηφιοποίησης. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

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

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