«Εκπαιδευτικές εφαρμογές συνελικτικών κωδίκων στην μετάδοση σημάτων εικόνας και ήχου»

Σχετικά έγγραφα
Τμήμα Μηχανικών Η/Υ και Πληροφορικής

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

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

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

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

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

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

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

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

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

ΕΠΙΚΟΙΝΩΝΙΕΣ, ΔΙΚΤΥΑ & ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δίκτυα Υπολογιστών I Εργαστήρια

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

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

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

Αρχές Τηλεπικοινωνιών

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

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

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

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

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

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

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

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

ΠΛΗ21 Κεφάλαιο 1. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 1 Εισαγωγή

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

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

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

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

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

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

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

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

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

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

Δομή της παρουσίασης

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

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

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

Τα ηλεκτρονικά σήματα πληροφορίας διακρίνονται ανάλογα με τη μορφή τους σε δύο κατηγορίες : Αναλογικά σήματα Ψηφιακά σήματα

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

ΠΑΡΟΥΣΙΑΣΗ ΣΤΑΤΙΣΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή

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

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

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Τμήμα Φυσικής Εισαγωγή στα Συστήματα Τηλεπικοινωνιών Συστήματα Παλμοκωδικής Διαμόρφωσης

Analog vs Digital. Δούρβας Ιωάννης ΙΩΑΝΝΗΣ ΔΟΥΡΒΑΣ

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

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

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

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

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

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

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

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

Οι βασικές βαθμίδες του συστήματος των δορυφορικών επικοινωνιών δίνονται στο παρακάτω σχήμα :

ΙΚΤΥΑ ΚΙΝΗΤΩΝ ΚΑΙ ΠΡΟΣΩΠΙΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ. Ασκήσεις για τη διαχείριση ραδιοδιαύλων

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

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

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

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

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

Πολυπλεξία. Creative Commons License 3.0 Share-Alike

Συμπίεση Πολυμεσικών Δεδομένων

Το φτερό του αεροπλάνου

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

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

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8 Επεξεργασία Σήματος με την Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

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

ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ. Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Εργαστήριο 3: Διαλείψεις

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

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

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

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

Slalom Race Computer Game on Scratch

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

Transcript:

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

ΠΕΡΙΕΧΟΜΕΝΑ Α) ΕΙΣΑΓΩΓΗ Β) ΤΟ ΠΡΟΓΡΑΜΜΑ 1) Εισαγωγικές εικόνες 2) Δημιουργία της ακολουθίας α) Αποστολή ηχητικού μηνύματος β) Αποστολή εικόνας γ) Αποστολή τυχαίας ακολουθίας 3) Κωδικοποίηση της ακολουθίας 4) Διέλευση από κανάλι AWGN 5) Λήψη και αποκωδικοποίηση της ακολουθίας Γ) ΒΙΒΛΙΟΓΡΑΦΙΑ

Α) ΕΙΣΑΓΩΓΗ Ένα από τα γεγονότα που αναμφίβολα σημάδεψαν τεχνολογικά τον δεύτερο μισό του περασμένου αιώνα ήταν η αλματώδης εξέλιξη των τηλεπικοινωνιών. Η εισαγωγή των ψηφιακών συστημάτων σήμανε το ξεκίνημα μιας νέας εποχής στις τηλεπικοινωνίες, παρέχοντας σχεδόν απεριόριστες δυνατότητες βελτίωσής τους. Σήμερα πλέον πληροφορίες κάθε είδους μεταφέρονται οπουδήποτε ταχύτατα και αξιόπιστα. Στην εντυπωσιακή αυτή πορεία προόδου των ψηφιακών τηλεπικοινωνιών, σημαντικότατο ρόλο διαδραμάτισαν, ανάμεσα σε άλλα, και οι λεγόμενες τεχνικές κωδικοποίησης καναλιού(channel Coding) που χρησιμοποιήθηκαν. Με τον όρο κωδικοποίηση καναλιού αναφερόμαστε στην εισαγωγή, πριν τη μετάδοση της πληροφορίας, κάποιου ελεγχόμενου πλεονασμού ο οποίος μπορεί να χρησιμοποιηθεί στο δέκτη για να κατανικήσει τις επιδράσεις του θορύβου. Έτσι στέλνουμε περισσότερα bits από όσα είναι απαραίτητα για να μεταφέρουν την πληροφορία μας, με σκοπό να αυξήσουμε την αξιοπιστία του συστήματος μας, βοηθώντας τον δέκτη να αναπαράγει(μέσω της αποκωδικοποίησης) την αρχική ακολουθία. ιάγραμμα τηλεπικοινωνιακού συστήματος με κωδικοποίηση καναλιού.

Υπάρχουν δύο μεγάλες κατηγορίες κωδίκων που χρησιμοποιούνται στην κωδικοποίηση καναλιού, οι μπλοκ κώδικες (block codes) και οι συνελικτικοί κώδικες (convolutional codes). Η κυριότερη διαφορά τους εντοπίζεται στο ότι οι μπλοκ κώδικες χωρίζουν την πληροφορία σε κομμάτια(μπλοκ) από bits καθορισμένου μήκους τα οποία ονομάζονται και κωδικές λέξεις. Κατά τη διαδικασία της αποκωδικοποίησης αυτά τα μπλοκ εισάγωνται ένα-ένα στον αποκωδικοποιητή. Αντίθετα στην περίπτωση των συνελικτικών κωδίκων η ακολουθία των bits δεν χωρίζεται σε ομάδες, αλλά αντιμετωπίζεται ενιαία κατά την αποκωδικοποίησή της. Μια άλλη σημαντική διαφορά των δύο κατηγοριών είναι ότι οι συνελικτικοί κωδικοποιητές, αντίθετα με τους αντίστοιχους μπλοκ, έχουν μνήμη. Δηλαδή η έξοδος του κωδικοποιητή σε κάθε χρονική στιγμή δεν εξαρτάται μόνο από την είσοδό του στη συγκεκριμένη χρονική στιγμή αλλά και από κάποιες προηγούμενες. Ένα σημείο ακόμη που αξίζει να αναφερθεί, είναι ότι ενώ για τους μπλοκ κώδικες έχουν αναπτυχθεί αλγόριθμοι εύρεσης αποτελεσματικών κωδίκων, κάτι αντίστοιχο δεν έχει επιτευχθεί για τους συνελικτικούς κώδικες, με αποτέλεσμα η αναζήτηση «καλών» συνελικτικών κωδίκων να γίνεται κυρίως μέσω υπολογιστών. Οι συνελικτικοί κώδικες χρησιμοποιήθηκαν ευρέως από τη δεκαετία του 70 και μετά, κυρίως σε τηλεπικοινωνιακές ζεύξεις που υποφέρουν από ισχυρό Gaussian προσθετικό θόρυβο. Χαρακτηριστικό παράδειγμα εφαρμογής τους αποτελούν οι δορυφορικές επικοινωνίες αν και έχουν χρησιμοποίηθεί σε πολλούς τομείς πολλές φορές σε συνδυασμό με μεθόδους καταπολέμησης άλλων επιδεινώσεων του σήματος. Κύριος σκοπός της εκπαιδευτικής αυτής προσομοίωσης είναι να βοηθήσει το χρήστη, που έρχεται για πρώτη φορά σε έπαφη με τους συνελικτικούς κώδικες, να κατανοήσει τις βασικές αρχές λειτουργίας τους, καθώς και να του επιτρέψει να παρακολουθήσει από πρακτική σκοπιά (μέσω κάποιων απλών παραδειγμάτων μεταφοράς εικόνας και ήχου) πώς οι κώδικες αυτοί βελτιώνουν τις σύγχρονες ψηφιακές επικοινωνίες.

Β) ΤΟ ΠΡΟΓΡΑΜΜΑ 1) Εισαγωγικές εικόνες Η αρχική σελίδα της εργαστηριακής άσκησης μας προσφέρει δύο δυνατότητες. Αρχική σελίδα. Επιλέγοντας τη θεωρητική εισαγωγή μπορούμε να πάρουμε μια ιδέα πολύ σύντομα, του τι είναι και που χρησιμοποιούνται οι συνελικτικοί κώδικες. Θεωρητική εισαγωγή στους συνελικτικούς κώδικες.

Επιλέγοντας προσομοίωση συνεχίζουμε στο κυρίως μέρος της άσκησης. ιάγραμμα ροής της προσομοίωσης. Η επόμενη εικόνα μας παρουσιάζει απλά ένα διάγραμμα ροής της προσομοίωσης το οποίο αποτελείται από τέσσερα στάδια. Τη δημιουργία της προς μετάδοση ακολουθίας, την κωδικοποίησή της, τη διέλευση της μέσα από κανάλι AWGN και τέλος την αποκωδικοποίησή της στο δέκτη.

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

α) Αποστολή ηχητικού μηνύματος Θεωρητική ανάλυση: Ο ήχος (όπως άλλωστε και η εικόνα) είναι από τη φύση του αναλογική πληροφορία. Θα μπορούσε δηλαδή να αναπαρασταθεί τέλεια με τη μορφή ενός συνεχούς (αναλογικού) σήματος. Ένα τέτοιο σήμα όμως δεν είναι κατάλληλο για μετάδοση μέσα από ένα ψηφιακό σύστημα, όπως επιβάλλεται να είναι κάποιο που χρησιμοποιεί συνελικτική κωδικοποίηση. Για το λόγο αυτό πρέπει να μετατρέψουμε τον ήχο σε ψηφιακή μορφή. Γενικά η μετατροπή ενός αναλογικού σήματος σε ψηφιακό γίνεται μέσω μιας διαδικασίας δειγματοληψίας. ειγματοληψία συνεχούς σήματος. Κατά τη δειγματοληψία, παίρνουμε δείγματα του αναλογικού σήματος στις χρονικές στιγμές Τ, 2Τ, 3Τ... Ο χρόνος Τ που μεσολαβεί μεταξύ δύο διαδοχικών δειγμάτων συνιστά την περίοδο δειγματοληψίας. Επειδή ένα αναλογικό σήμα μπορεί να πάρει οποιαδήποτε τιμή θεωρητικά θα απαιτούνταν άπειρα bits για να αποθηκεύσουμε το κάθε δείγμα με πλήρη ακρίβεια. Καθώς όμως κάτι τέτοιο είναι αδύνατο αντιστοιχίζουμε τα δείγματα σε κάποιες προεπιλεγμένες τιμές μέσω μιας διαδικασίας κβάντισης. Ο αριθμός των διαστημάτων κβάντισης που χρησιμοποιούνται εξαρτάται από τον αριθμό των bits που μπορούμε να διαθέσουμε για την αποθήκευση του κάθε δείγματος.

ιαδικασία κβάντισης. Από τα παραπάνω γίνεται εύκολα αντιληπτό ότι η ποιότητα του ψηφιοποιημένου σήματος εξαρτάται άμεσα από την περίοδο δειγματοληψίας και το διάστημα κβάντισης που χρησιμοποιούμε. Μεγαλύτερη συχνότητα δειγματοληψίας (περισσότερα δείγματα/sec) και μικρότερα διαστήματα κβάντισης (περισσότερα bits/δείγμα) έχουν ως αποτέλεσμα καλύτερη απόδοση του αναλογικού σήματος σε ψηφιακή μορφή. Στην περίπτωσή μας κατά την ηχογράφηση του μηνύματος η συχνότητα δειγματοληψίας είναι 22050 Hz ενώ για την αποθήκευση κάθε δείγματος χρησιμοποιούνται 8 bits. Έτσι το συνολικό μέγεθος της δημιουργούμενης ακολουθίας είναι 22050x8xt όπου t η διάρκεια σε sec.

Πρόσομοίωση: παρακάτω οθόνη. Επιλέγοντας να στείλουμε ένα ηχητικό μήνυμα μεταφερόμαστε στην Ηχογράφηση μηνύματος και μετατροπή του σε ψηφιακό σήμα. Πατώντας στην «ΕΝΑΡΞΗ ΗΧΟΓΡΑΦΗΣΗΣ» αρχίζουμε να ηχογραφούμε το μήνυμά μας το οποίο σταματάμε επιλέγοντας «ΤΕΡΜΑΤΙΣΜΟΣ ΗΧΟΓΡΑΦΗΣΗΣ». Μπορούμε αν θέλουμε να ακούσουμε το μήνυμα που έχουμε μόλις ηχογραφήσει πατώντας «Play». Στη συνέχεια επιλέγοντας «ΜΕΤΑΤΡΟΠΗ ΣΕ ΑΚΟΛΟΥΘΙΑ» μετατρέπουμε το ηχητικό μας μήνυμα σε ακολουθία από bits(ψηφιακή μορφή) για να μπορέσουμε στη συνέχεια να το κωδικοποιήσουμε. Τέλος έχουμε τη δυνατότητα αν θέλουμε να δούμε οποιοδήποτε μέρος της ακολουθίας αυτής επιλέγοντας «ΠΡΟΒΟΛΗ ΑΚΟΛΟΥΘΙΑΣ».

1 0 10 20 30 40 50 60 70 80 90 100 β) Αποστολή εικόνας Θεωρητική ανάλυση: Γραφική απεικόνιση της ακολουθίας των bits. Για την εικόνα που επίσης είναι αναλογική πληροφορία ισχύουν όσα αναφέρθηκαν πριν για τον ήχο. Οι παράμετροι που επηρεάζουν την ποιότητα του ψηφιακού σήματος στην περίπτωση αυτή είναι ο αριθμός των pixels που αποτελούν την εικόνα (η συχνότητα δειγματοληψίας κατά μήκος των δύο αξόνων ουσιαστικά) και ο αριθμός των bits που χρησιμοποιούνται για την αποθήκευση του κάθε pixel. Μια εικόνα αναπαρίσταται στο MATLAB με τη μορφή ενός τρισδιάστατου πίνακα με διαστάσεις (μήκος εικόνας)x(πλάτος εικόνας)x3 όπου το μήκος και το πλάτος μετριούνται σε pixel. Η τρίτη διάσταση του πίνακα αντιστοιχεί στα τρία βασικά χρώματα (κόκκινο, πράσινο, μπλε) τα οποία συνδυαζόμενα μπορούν να συνθέσουν κάθε χρωματική απόχρωση. Κάθε στοιχείο του πίνακα είναι ένας ακέραιος από 0 εώς 255 (2 8 πιθανοί αριθμοί δηλαδή χρησιμοποιούμε 8 bits/στοιχείο) που μας δείχνει πόσο «συμμετέχει» το συγκεκριμένο χρώμα στο χρωματισμό του pixel. Έτσι κατά τη μετατροπή της ψηφιακής εικόνας η ακολουθία που δημιουργείται έχει μέγεθος (μήκος εικόνας)x(πλάτος εικόνας)x3x8 bits.

Πρoσομοίωση: Αν αντί για ήχο επιλέξουμε να στείλουμε μια εικόνα μεταφερόμαστε στην παρακάτω οθόνη. 20 40 60 80 100 120 50 100 150 Επιλογή εικόνας και μετατροπή της σε ψηφιακό σήμα. Εδώ καλούμαστε να επιλέξουμε ανάμεσα σε κάποιες προεπιλεγμένες εικόνες διαφορετικού μεγέθους αυτήν που θέλουμε να στείλουμε. Στη συνέχεια όπως ακριβώς και στην περίπτωση του ήχου μετατρέπουμε την εικόνα σε ακολουθία από bits ενώ φυσικά έχουμε και εδώ τη δυνατότητα να δούμε μια γραφική απεικόνιση της ακολουθίας αυτής.

γ) Αποστολή τυχαίας ακολουθίας Εναλλακτικά το πρόγραμμα μας παρέχει τη δυνατότητα δημιουργίας μιας τυχαίας ακολουθίας. ημιουργία τυχαίας ακολουθίας. Στην περίπτωση αυτή επιλέγουμε απλά τον αριθμό τον bits που θέλουμε να αποτελούν την ακολουθία καθώς και έναν συντελεστή τυχαιότητας. Ο τελευταίος μπορεί να είναι οποιοσδήποτε ακέραιος αριθμός. Διαφορετικοί συντελεστές τυχαιότητας παράγουν διαφορετικές ακολουθίες ενώ ο ίδιος συντελεστής τυχαιότητας θα παράγει πάντα την ίδια ακολουθία. Τέλος όπως στην αποστολή ήχου ή εικόνας, μας δίνεται και εδώ η δυνατότητα να δούμε μια γραφική απεικόνιση της ακολουθίας που δημιουργήσαμε. 3) Κωδικοποίηση της ακολουθίας Θεωρητική ανάλυση:

Στο παρακάτω σχήμα βλέπουμε μια τυπική μορφή ενός συνελικτικού κωδικοποιητή. Αυτός αποτελείται από 2 πολυπλέκτες, 3 καταχωρητές και 3 αθροιστές mod-2. Συνελικτικός κωδικοποιητής (3,2,2). Οι συνελικτικοί κωδικοποιητές περιγράφονται συνήθως με τη μορφή (n,k,m) όπου n είναι ο αριθμός των εξόδων του κωδικοποιητή, k ο αριθμός των εισόδων και m η τάξη μνήμης του. Η σημαντικότερη παράμετρος ενός συνελικτικού κωδικοποιητή είναι ο κωδικός ρυθμός R (Code Rate) που ισούται με τoν αριθμό των εισόδων προς τον αριθμό των εξόδων. Σε έναν κωδικοποιητή R=n/k για κάθε n bits της αρχικής ακολουθίας, δημιουργούνται k bits της κωδικοποιημένης ακολουθίας που θα σταλεί τελικά. Δηλαδή ο κωδικός ρυθμός μας δείχνει το ποσοστό των bits πλεονασμού που προστίθενται κατά την κωδικοποίηση. Για παράδειγμα σε έναν κωδικοποιητή με R=1/4 για κάθε bit πληροφορίας προστίθενται τέσσερα bit πλεονασμού. Όπως γίνεται εύκολα αντιληπτό όσο μικρότερος είναι ο κωδικός ρυθμός του κωδικοποιητή(περισσότερα bits πλεονασμού σε σχέση με τα bits πληροφορίας) τόσο πιο αποδοτικός είναι αυτός στην καταπολέμηση του θορύβου. Τυπικοί κωδικοί ρυθμοί που χρησιμοποιούνται είναι 1/2, 1/3, 1/4, 2/3, 3/4 κτλ.

Έστω τώρα ότι έχουμε έναν κωδικοποιητή (2,1,2) όπως φαίνεται στο σχήμα. Συνελικτικός κωδικοποιητής (2,1,2). Καθώς ο κωδικοποιητής έχει μία είσοδο και δύο εξόδους σε κάθε χρονική στιγμή εισέρχεται ένα bit και εξέρχονται δύο. Αφού όπως είπαμε οι συνελικτικοί κωδικοποιητές έχουν μνήμη, τα bit εξόδου εξαρτώνται σε κάθε χρονική στιγμή τόσο από το bit εισόδου όσο και από την κατάσταση των καθυστερητών οι οποίοι περιέχουν bit προηγούμενων χρονικών στιγμών. Έστω για παράδειγμα ότι οι καθυστερητές του κωδικοποιητή μας είναι στη μηδενική κατάσταση και εισάγουμε την ακολουθία 1101. Οι αθροιστές mod-2 των εξόδων δίνουν το υπόλοιπο της διαίρεσης με 2 του αθροίσματος των εισόδων τους. Δηλαδή δίνουν 1 για περιττό αριθμό εισόδων 1 και 0 για άρτιο αριθμό εισόδων 1 (ή αν δεν έχουν καμία είσοδο 1). Σε κάθε χρονική στιγμή ένα νέο bit έρχεται στην είσοδο. Το bit που βρίσκονταν εκεί ολισθαίνει προς τα δεξιά και αποθηκεύεται στον πρώτο καταχωρητή. Συγχρόνως το bit που ήταν αποθηκευμένο σε αυτόν ολισθαίνει και αποθηκεύεται στον δεύτερο καταχωρητή. Το bit που ήταν αποθηκευμένο σε αυτόν απελευθερώνεται από τη μνήμη του κωδικοποιητή αφού δεν επηρεάζει άλλες εξόδους. Έτσι σε κάθε χρονική στιγμή τ i ο πρώτος καταχωρητής περιέχει την είσοδο για τ i-1 και ο δεύτερος την αντίστοιχη για τ i-2. Η διαδικασία της κωδικοποίησης φαίνεται παρακάτω.

τ 1 τ 2 τ 3

τ 4 Παράδειγμα κωδικοποίησης. Τελικά, βάζοντας τα bit στη σειρά με την οποία εξέρχονται, παίρνουμε την κωδικοποιημένη ακολουθία: 1 1 1 0 1 0 0 0 Ένας συνελικτικός κωδικοποιητής αλλάζει καταστάσεις ανάλογα με το περιεχόμενο των καταχωρητών του. Γενικά ένας κωδικοποιητής Κ καταχωρητών έχει 2Κ διαφορετικές καταστάσεις. Έτσι μπορούμε να περιγράψουμε τον κώδικα με ένα διάγραμμα μετάπτωσης καταστάσεων(state-transition diagram). Στο διάγραμμα αυτό κάθε κατάσταση του κωδικοποιητή αναπαρίσταται από ένα τετράγωνο, ενώ οι μεταβάσεις ανάμεσα στις καταστάσεις δηλώνονται με βέλη που συνδέουν τα τετράγωνα αυτά. Πάνω σε κάθε βέλος προσδιορίζονται τόσο η είσοδος που προκάλεσε αυτή τη μετάπτωση, όσο και η έξοδος του κωδικοποιητή. Το διάγραμμα μετάπτωσης καταστάσεων του συνελικτικού κώδικα(2,1,2) που περιγράφηκε προηγουμένως δίνεται στο σχήμα.

ιάγραμμα μετάπτωσης καταστάσεων κωδικοποιητή (2,1,2). Στο διάγραμμα αυτό είναι πολύ εύκολο να παρακολουθήσουμε τη διαδικασία της αποκωδικοποίησης του προηγούμενου παραδείγματος. Ξεκινώντας από την κατάσταση 00 και λαμβάνοντας κατά σειρά στην είσοδο τα bit 1 1 0 1, βλέπουμε ότι το μονοπάτι που ακολουθήθηκε είναι το 00 10 11 01 10 ενώ η κωδικοποιημένη ακολουθία στην έξοδο προκύπτει φυσικά και πάλι 1 1 1 0 1 0 0 0. Μια δεύτερη και πιο δημοφιλής μέθοδος για την περιγραφή των συνελικτικών κωδίκων είναι ο καθορισμός του διαγράμματος δικτυώματος (trellis diagram) που αντιστοιχεί στον κώδικα. Το διάγραμμα trellis είναι ένας τρόπος παρουσίασης των μεταπτώσεων μεταξύ των καταστάσεων καθώς εξελίσσεται ο χρόνος. Για να κατασκευάσουμε το διάγραμμα trellis τοποθετούμε σε έναν κατακόρυφο άξονα όλες τις δυνατές καταστάσεις και επαναλαμβάνουμε τον άξονα αυτόν για κάθε χρονική περίοδο μετάπτωσης. Κατόπιν, κάθε μετάπτωση από μια κατάσταση σε μια άλλη δηλώνεται με ένα ευθύγραμμο τμήμα που συνδέει τα παραστατικά σημεία των δύο παραστάσεων σε δύο διαδοχικούς κατακόρυφους άξονες. Ουσιαστικά ένα διάγραμμα trellis είναι η επανάληψη στο χρόνο ενός διαγράμματος μετάπτωσης καταστάσεων. Μας επιτρέπει έτσι να παρακολουθήσουμε

την πορεία της κωδικοποίησης στο χρόνο, γεγονός που το καθιστά ιδιαίτερα χρήσιμο κατά την αποκωδικοποίηση της ακολουθίας όπως θα δούμε αργότερα. Στο παρακάτω σχήμα φαίνεται το μονοπάτι που ακολουθείται στο trellis κατά την κωδικοποίηση της ακολουθίας του προηγούμενου παραδείγματος. τ 0 τ 1 τ 2 τ 3 τ 4 ιάγραμμα trellis. Πρoσομοίωση: Το επόμενο βήμα μετά τη δημιουργία της προς μετάδοση ακολουθίας είναι η κωδικοποίησή της. Εάν έχουμε επιλέξει αποστολή ήχου ή εικόνας μας δίνεται η δυνατότητα να διαλέξουμε ανάμεσα σε μια ομοιόμορφη κωδικοποίηση(ίδιος κωδικοποιητής για όλα τα bits) ή σε έναν χωρισμό των bits σε οκτώ ομάδες ανάλογα με την αξία τους(διαφορετικός κωδικοποιητής για κάθε ομάδα). Ένας τέτοιος χωρισμός αν και δεν έχει νόημα από καθαρά τηλεπικοινωνιακής άποψης, καθώς κάτι τέτοιο θα οδηγούσε σε κατακόρυφη αύξηση της πολυπλοκότητας τόσο του πομπού όσο και του δέκτη, μπορεί εντούτοις να μας βοηθήσει να δούμε ότι σε ένα σύστημα μεταφοράς εικόνας ή ήχου σαν αυτό που προσομοιώνουμε, το ποσοστό των εσφαλμένων bits, δεν είναι πάντα αντιπροσωπευτικό της επιδείνωσης της επικοινωνίας.

Επιλογή ανάμεσα σε ομοιόμορφη κωδικοποίηση και χωρισμό των bits. Όπως εξηγήσαμε στην θεωρητική ανάλυση του σταδίου δημιουργίας της ακολουθίας, όταν μετατρέπουμε ένα ηχητικό σήμα ή μια εικόνα σε ακολουθία από bits, τα bit αυτά διαμορφώνουν ανά 8 μια ομάδα(αφού χρησιμοποιούμε κβάντιση 8 bit). Από τα παραπάνω γίνεται εύκολα αντιληπτό ότι μέσα σε κάθε τέτοια ομάδα τα bits δεν είναι ισοδύναμα αλλά καθένα έχει διαφορετική βαρύτητα. Αν για παράδειγμα θεωρήσουμε ότι κάθε οκτάδα bit αντιπροσωπεύει έναν ακέραιο από 0 ως 255(2 8 πιθανοί συνδυασμοί) και ότι λαμβάνεται λάθος το πιο σημαντικό bit θα λάβουμε έναν αριθμό που θα διαφέρει από τον πραγματικό κατά 128 μονάδες! Αντίθετα αν το λάθος γίνει στο λιγότερο σημαντικό bit ο λαμβανόμενος αριθμός θα απέχει από τον πραγματικό μόλις κατά 1 μονάδα. Φυσικό επακόλουθο του γεγονότος αυτού είναι ότι λάθη στα πιο σημαντικά bits προκαλούν εμφανή επιδείνωση της εικόνας ή του ήχου ενώ λάθη στα λιγότερο σημαντικά bits δεν τα επηρεάζουν ιδιαίτερα. Για να το δούμε αυτό και πρακτικά μπορούμε να επιλέξουμε να χωρίσουμε τα bits πριν την κωδικοποίηση. Έτσι έχουμε τη δυνατότητα, επιλέγοντας πιο «ισχυρούς» κωδικοποιητές για τα πιο σημαντικά bits σε σχέση με τους κωδικοποιητές των λιγότερο σημαντικών και ρυθμίζοντας κατάλληλα το θόρυβο, να δημιουργήσουμε ένα σύστημα που παρά τον σχετικά υψηλό αριθμό λαθών που θα παρουσιάζει, θα διατηρεί μια ιδιαίτερα υψηλή ποιότητα στην εικόνα ή τον ήχο. Αντίστροφα

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

Αν θελήσουμε να επιλέξουμε έναν έτοιμο κώδικα αρχικά καλούμαστε να επιλέξουμε μια κατηγορία κωδίκων ανάλογα με τον κωδικό ρυθμό τους (Code Rate) R. Επιλογή ρυθμού κώδικα. Όπως είναι γνωστό ο ρυθμός ενός κώδικα αποτελεί την ουσιαστικότερη παράμετρό του. Ισούται με τον αριθμό των εισόδων προς τον αριθμό των εξόδων του κωδικοποιητή και μας δείχνει την ποσότητα της πλεονάζουσας πληροφορίας που στέλνεται σε σχέση με την αρχική. Όπως είναι λογικό όσο περισσότερη πλεονάζουσα πληροφορία στέλνουμε τόσο ανθεκτικότερο γίνεται το σύστημά μας στο θόρυβο(με αντίτιμο φυσικά τη μειωμένη ταχύτητα ή την αύξηση των απαιτήσεων σε εύρος ζώνης). Έτσι από τις έτοιμες κατηγορίες που έχουμε οι κώδικες με R=1/4 αποτελούν τους πιο αποτελεσματικούς στην καταπολέμηση του θορύβου ενώ αντίθετα οι κώδικες της κατηγορίας R=3/4 είναι οι λιγότερο αποτελεσματικοί.

Αφού επιλέξουμε κατηγορία καλούμαστε να επιλέξουμε έναν συγκεκριμένο κωδικοποιητή από την κατηγορία αυτή. 50 100 150 200 250 300 350 400 450 100 200 300 400 500 600 700 Επιλογή συνελικτικού κώδικα. Η διάκριση μεταξύ των κωδικοποιητών της κατηγορίας γίνεται με βάση την παράμετρο m που ονομάζεται μήκος εξαναγκασμού(constraint length) και ουσιαστικά μας δείχνει πόσες διαφορετικές χρονικά εξόδους του κωδικοποιητή μπορεί να επηρεάζει ένα bit εισόδου. Για παράδειγμα σε ένα κωδικοποιητή με m=3 ένα bit που φτάνει στην είσοδό του τη χρονική στιγμή t επηρεάζει τις εξόδους κατά τις χρονικές στιγμές t,t+1,t+2,t+3 αφού παραμένει στους ολισθητές του κωδικοποιητή για 3 ακόμη χρόνους. Στην περίπτωση των κωδίκων που έχουν περισσότερες από μία εισόδους εκτός της παραμέτρου m, χρησιμοποιείται και ο συνολικός αριθμός των ολισθητών Κ για τη διάκριση ανάμεσα σε διαφορετικούς κωδικοποιητές με ίδιο μήκος εξαναγκασμού.

Αφού επιλέξουμε τον κωδικοποιητή που θέλουμε κωδικοποιούμε την ακολουθία. Στη συνέχεια μπορούμε αν θέλουμε να δούμε μια γραφική απεικόνιση της αρχικής ακολουθίας μαζί με την κωδικοποιημένη. 1 0 2 4 6 8 10 12 14 16 18 20 1 0 0 5 10 15 20 25 30 Γραφική απεικόνιση αρχικής και κωδικοποιημένης ακολουθίας. Όπως είδαμε προηγουμένως, μπορούμε εναλλακτικά να μην επιλέξουμε κάποιον έτοιμο κώδικα αλλά να δημιουργήσουμε έναν δικό μας δίνοντας τις παραμέτρους του. Αξίζει να αναφερθεί στο σημείο αυτό ότι από όλο το πλήθος των δυνατών συνελικτικών κωδίκων μόνο ένα μικρό ποσοστό εμφανίζουν τα επιθυμητά χαρακτηριστικά ωστέ να βρίσκουν εφαρμογή στις τηλεπικοινωνίες. Αυτό μπορούμε να το διαπιστώσουμε εύκολα δημιουργώντας τυχαίους συνελικτικούς κώδικες και παρατηρώντας κάθε φορά τη συμπεριφορά του συστήματος.

Δημιουργώντας έναν νέο κωδικοποιητή καλούμαστε αρχικά να δώσουμε τον αριθμό των εισόδων και των εξόδων που θα έχει αυτός. Φυσικά ο αριθμός των εξόδων πρέπει πάντα να είναι μεγαλύτερος του αριθμού των εισόδων ώστε να υπάρχει πλεονάζουσα πληροφορία. Καθορισμός αριθμού εισόδων και εξόδων κωδικοποιητή. Στη συνέχεια πρέπει να δώσουμε για κάθε είσοδο του κωδικοποιητή το μήκος εξαναγκασμού της. Καθορισμός των μηκών εξαναγκασμού. Τέλος ανάλογα με τον αριθμό εισόδων-εξόδων και τα μήκη εξαναγκασμού που έχουμε επιλέξει πρέπει να δηλώσουμε με ποιές εξόδους συνδέεται ο κάθε ολισθητής

της κάθε εισόδου ώστε να καθοριστεί πλήρως το μπλοκ διάγραμμα του νέου κωδικοποιητή..\images\block_diagrams\cl3_1.bmp Καθορισμός των συνδέσεων μεταξύ των εισόδων και των εξόδων. Μόλις επιλέξουμε και την τελευταία σύνδεση η ακολουθία μας κωδικοποιείται αυτόματα πριν μεταφερθούμε στην επόμενη οθόνη του προγράμματος.

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

Πρoσομοίωση: Το επόμενο βήμα της προσομοίωσης είναι η διέλευση της κωδικοποιημένης ακολουθίας από ένα κανάλι λευκού Gaussian προσθετικού θορύβου (AWGN). Επιλογή παραμέτρων θορύβου. Οι μόνοι παράμετροι που έχουμε να επιλέξουμε όσον αφορά το θόρυβο του καναλιού είναι ένας συντελεστής τυχαιότητας(για τη δημιουργία της τυχαίας ακολουθίας θορύβου όπως ακριβώς συμβαίνει και με τη δημιουργία τυχαίας ακολουθίας πληροφορίας) και η ισχύς του θορύβου(σε db σε σχέση με την ισχύ του σήματος). Υπενθυμίζεται ότι ισχύς θορύβου 0dB αντιστοιχεί σε θόρυβο ίσης ισχύος με το σήμα(σήμα «πνιγμένο» στο θόρυβο), ενώ αντίθετα τιμές της ισχύος του θορύβου μεγαλύτερες των 20dB αντιστοιχούν σε αμελητέας ισχύος θόρυβο(πρακτικά ανεπηρέαστο από θόρυβο σήμα). Αφού έχουμε δώσει τις παραμέτρους αυτές επιλέγουμε «ΠΡΟΣΘΗΚΗ AWGN» για να δημιουργήσουμε την ενθόρυβη πλέον ακολουθία που θα λάβουμε στο δέκτη.

5) Λήψη και αποκωδικοποίηση της ακολουθίας Θεωρητική ανάλυση: Για την αποκωδικοποίηση των συνελικτικών κωδίκων έχουν προταθεί κατά καιρούς διάφοροι τρόποι. Στην προσομοίωση αυτή χρησιμοποιούμε αποκλειστικά τον αλγόριθμο Viterbi ο οποίος είναι και ο συνηθέστερα χρησιμοποιούμενος στην πράξη, ιδιαίτερα για κώδικες με μικρά μήκη εξαναγκασμού. Για κώδικες με μεγάλα μήκη εξαναγκασμού η υλοποίηση του γίνεται δύσκολη αφού η πολυπλοκότητά του αυξάνει με τον αριθμό των καταστάσεων του κωδικοποιητή. Έχει αποδειχθεί μαθηματικά ότι ο αλγόριθμος Viterbi δίνει μια βέλτιστη λύση στο πρόβλημα της εύρεσης της διαδρομής μέσα στο διάγραμμα trellis της οποίας η ακολουθία απέχει λιγότερο από τη λαμβανόμενη. Η διατύπωση του αλγορίθμου έχει ως εξής: Βήμα 1 ο Ξεκινώντας σε κάποια χρονική στιγμή υπολογίζουμε τη μερική μετρική για το μονοπάτι που εισέρχεται σε κάθε κατάσταση. Αποθηκεύουμε το μονοπάτι(επιζών) και τη μετρική του για κάθε κατάσταση. Βήμα 2 ο Προχωράμε στην επόμενη χρονική στιγμή. Υπολογίζουμε τη μερική μετρική όλων των μονοπατιών που καταλήγουν σε κάθε κατάσταση, προσθέτοντας τη μετρική του τελευταίου κλάδου που καταλήγει στην κατάσταση με τη μετρική του επιζήσαντος μονοπατιού που συνδέεται με αυτόν στην προηγούμενη χρονική στιγμή. Για κάθε κατάσταση αποθηκεύουμε το μονοπάτι με τη μεγαλύτερη μετρική, μαζί με τη μετρική του και απορρίπτουμε όλα τα υπόλοιπα. Βήμα 3 ο Αν δεν έχουμε φτάσει στο τέλος της ακολουθίας επαναλαμβάνουμε το 2 ο βήμα. Αλλιώς σταματάμε. Η μετρική ενός μονοπατιού με ακολουθία v δίνεται από τον τύπο logp(r v) όπου P(r v) η πιθανότητα να λάβουμε την ακολουθία r αν έχουμε στείλει την ακολουθία v. Η ιδέα στην οποία βασίστηκε ο αλγόριθμός Viterbi είναι εξαιρετικά απλή. Έστω ότι σε κάποια χρονική στιγμή j φτάνουν σε κάποια κατάσταση του trellis δύο μονοπάτια με διαφορετικές μετρικές. Το μονοπάτι με τη μικρότερη μετρική(λιγότερο πιθανό) αποκλείεται να αποτελεί μέρος του πιο πιθανού μονοπατιού στο τέλος της

κωδικοποίησης. Πράγματι αν συνέβαινε κάτι τέτοιο, προσθέτοντας το κομμάτι του μονοπατιού αυτού από τη θεωρούμενη χρονική στιγμή j μέχρι το τέλος, στο μονοπάτι με τη μεγαλύτερη μετρική από τα δύο αρχικά, θα μπορούσαμε να φτιάξουμε ένα συνολικό μονοπάτι με μεγαλύτερη μετρική από αυτό που υποθέσαμε ως πιο πιθανό. Αυτό φυσικά είναι άτοπο αφού το πιο πιθανό μονοπάτι είναι εξ ορισμού αυτό με τη μεγαλύτερη μετρική. Έτσι μπορούμε σε κάθε βήμα να κρατάμε μόνο ένα από τα μονοπάτια που εισέρχονται σε κάθε κατάσταση του trellis απορρίπτοντας τα υπόλοιπα, χωρίς απώλεια πληροφορίας και επομένως χωρίς επίδραση στην επίδοση του συστήματός μας. Όταν η κωδικοποιημένη ακολουθία φτάνει στο δέκτη δεν αποτελείται πλέον από ακέραια bits 0 ή 1 αλλά από αλλειωμένα από θόρυβο bits με τυχαίες τιμές γύρω από την αρχική τους (π.χ. 0.345, 1.234, -0.54 κτλ.). Προτού τα bits αυτά εισέρθουν στον αποκωδικοποιητή υφίστανται μια διαδικασία κβάντισης. Όταν η κβάντιση γίνεται σε δύο μόνο επίπεδα (Q=2 δηλαδή τα bits παίρνουν την τιμή 0 ή 1 ανάλογα με το αν η τιμή τους είναι μεγαλύτερη ή μικρότερη του 0.5), λέμε ότι ο αποκωδικοποιητής παίρνει «σκληρές» αποφάσεις (hard-decision decoding). Αντίθετα όταν τα bit εισόδου του αποκωδικοποιητή κβαντίζονται σε περισσότερα επίπεδα (Q>2) λέμε ότι ο αποκωδικοποιητής παίρνει «μαλακές» αποφάσεις (soft-decision decoding). Αν και όπως είναι φυσικό οι soft-decision αποκωδικοποιητές υπερτερούν σε απόδοση, αφού περιέχουν περισσότερη πληροφορία για την ακολουθία εισόδου, οι hard-decision αποκωδικοποιητές έχουν επικρατήσει στα περισσότερα συστήματα λόγω της εξαιρετικής απλότητας υλοποίησής τους. Στην προσομοίωσή μας η αποκωδικοποίηση γίνεται αποκλειστικά με χρησιμοποίηση hard-decision. Ο αλγόριθμος viterbi που περιγράψαμε παρέχει όπως έχει αναφερθεί μια βέλτιστη εκτίμηση του μονοπατιού που ακολουθήθηκε μέσα στο trellis. Ωστόσο η υλοποίησή του παρουσιάζει ένα σημαντικό πρόβλημα. Καθώς η αποκωδικοποίηση εξελίσσεται ο αποκωδικοποιητής κρατάει κάθε φορά στη μνήμη K μονοπάτια κάθε ένα από τα οποία καταλήγει σε μια από τις Κ καταστάσεις του trellis. Για μεγάλες ακολουθίες όμως μήκους L, από κάποιο σημείο και έπειτα η αποθήκευση Κ μονοπατιών μήκους L απαιτεί τόσο μεγάλη ποσότητα μνήμης στον αποκωδικοποιητή που καταντάει ασύμφορη. Ένα άλλο πρόβλημα που δημιουργείται είναι η τεράστια καθυστέρηση που παρατηρείται καθώς η αποκωδικοποίηση δεν μπορεί να ξεκινήσει αν το trellis δεν φτάσει προηγουμένως στο τέλος (αν δεν έχουν ληφθεί δηλαδή όλα τα bits της κωδικοποιημένης ακολουθίας). Για την αντιμετώπιση των προβλημάτων

αυτών υιοθετούμε μια σχεδόν βέλτιστη λύση που είναι γνωστή ως μέθοδος με περικοπή μνήμης διαδρομής (path-memory truncation). Στη μέθοδο αυτή ορίζουμε μια παράμετρο d που αποτελεί το «βάθος» μνήμης (trace-back depth) του αποκωδικοποιητή. Πλέον ο αποκωδικοποιητής δεν αποθηκεύει ολόκληρα τα μονοπάτια των survivors αλλά μόνο τις τελευταίες d τιμές τους. Τη χρονική στιγμή λοιπόν d+1 ο αποκωδικοποιητής παίρνει μια απόφαση για τα πρώτα k bits της αποκωδικοποιημένης ακολουθίας (όπου k ο αριθμός των εισόδων του κώδικα) η οποία δεν μπορεί πλέον να αλλάξει από τις επόμενες τιμές της εισόδου. Έτσι τώρα αφενός η μνήμη που απαιτείται στον αποκωδικοποιητή για την αποθήκευση των survivors είναι πολύ λιγότερη, αφετέρου η αποκωδικοποίηση παρουσιάζει μια πολύ μικρότερη σταθερή καθυστέρηση k. d bits. Αν και με τη μέθοδο αυτή η αποκωδικοποίηση δεν είναι πλέον βέλτιστη έχει αποδειχθεί μέσω προσομοιώσεων ότι αν το «βάθος» μνήμης είναι τουλάχιστον πέντε φορές μεγαλύτερο από την τάξη μνήμης του κώδικα (d 5. m), η απώλεια σε απόδοση του συστήματος είναι πολύ μικρή. Τέλος αξίζει να αναφέρουμε ότι λόγω της μεθόδου που ακολουθείται για την αποκωδικοποίηση των συνελικτικών κωδίκων, όταν σε αυτήν υπάρχουν λάθη αυτά συνήθως εμφανίζονται σε ομάδες. Ένα λάθος στην αποκωδικοποίηση σημαίνει ότι σε κάποια χρονική στιγμή κάποιο λανθασμένο μονοπάτι προτιμήθηκε σε βάρος του σωστού το οποίο απορρίφθηκε. Μέχρι το λανθασμένο αυτό μονοπάτι να συγκλίνει ξανά και να ενωθεί με το σωστό απαιτούνται κάποιες χρονικές στιγμές. Η απόκλιση αυτή λοιπόν από το σωστό μονοπάτι έχει ως αποτέλεσμα τη λανθασμένη αποκωδικοποίηση κάποιων bits. Αυτή η ιδιότητα των συνελικτικών κωδίκων τους καθιστά ακατάλληλους για τη διόρθωση λαθών που εμφανίζονται κατά «ριπές» (burst-errors). Η διαδικασία αυτή φαίνεται στο παρακάτω σχήμα.

Απόκλιση από το σωστό μονοπάτι κατά την αποκωδικοποίηση. Πρoσομοίωση: Το τελευταίο βήμα της προσομοίωσης μας είναι η λήψη της ενθόρυβης κωδικοποιημένης ακολουθίας, η αποκωδικοποίηση της και ο υπολογισμός των λαθών. 1 0 9.995 9.9955 9.996 9.9965 9.997 9.9975 9.998 9.9985 9.999 9.9995 10 x 10 4 1 0 9.995 9.9955 9.996 9.9965 9.997 9.9975 9.998 9.9985 9.999 9.9995 10 x 10 4 1 0 9.995 9.9955 9.996 9.9965 9.997 9.9975 9.998 9.9985 9.999 9.9995 10 10 4 Λήψη της κωδικοποιημένης ακολουθίας και υπολογισμός των λαθών.

Στο σημείο αυτό μπορούμε επιλέγοντας «ΥΠΟΛΟΓΙΣΜΟΣ ΛΑΘΩΝ» να δούμε τα λανθασμένα bits τόσο σε αριθμό όσο και σε ποσοστό επί του συνόλου.ακόμη επιλέγοντας την περιοχή της ακολουθίας που θέλουμε και πιέζοντας «ΠΡΟΒΟΛΗ», έχουμε τη δυνατότητα να αντιπαραβάλουμε γραφικά την ακολουθία που στάλθηκε με αυτήν που λήφθηκε μετά την επίδραση του θορύβου και να εντοπίσουμε τα λάθη. Αν η αρχική μας πληροφορία ήταν εικόνα, μπορούμε τέλος να δούμε πώς θα λαμβανόταν αυτή χωρίς τη χρησιμοποίηση κωδικοποίησης. 20 40 60 80 100 120 50 100 150 Εικόνα στη λήψη χωρίς χρησιμοποίηση κωδικοποίησης. Αντίστοιχα αν η αρχική μας πληροφορία ήταν ένα ηχητικό μήνυμα μπορούμε να ακούσουμε πως θα λαμβανόταν αυτό αν μεταδίδονταν ακωδικοποίητο.

1 0 10 20 30 40 50 60 70 80 90 100 1 0 10 20 30 40 50 60 70 80 90 100 1 0 10 20 30 40 50 60 70 80 90 100 Λήψη ακολουθίας και υπολογισμός λαθών για ηχητικό μήνυμα. Στο σημείο αυτό πρέπει να σημειώσουμε ότι η εικόνα ή ο ήχος στην περίπτωση αυτή δεν προέρχονται από την ακολουθία που στάλθηκε μέσα από το κανάλι, καθώς δεν υπάρχει τρόπος να τα ανακτήσουμε από αυτήν χωρίς να εκτελέσουμε την αποκωδικοποίησή της. Έτσι για να μπορέσουμε να δούμε τις επιδράσεις του θορύβου σε ένα σύστημα χωρίς κωδικοποίηση, δημιουργούμε μια ακολουθία όμοια με την αρχική την οποία περνάμε μέσα από το ίδιο κανάλι χωρίς να την έχουμε προηγουμένως κωδικοποιήσει. Η τελευταία οθόνη του προγράμματος είναι και η πλέον σημαντική αφού εδώ εκτελείται η αποκωδικοποίηση της ακολουθίας.

1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Αποκωδικοποίηση της ακολουθίας και υπολογισμός λαθών. Αρχικά επιλέγουμε την τιμή του «βάθους» μνήμης (trace-back depth) του αποκωδικοποιητή μας. Στη συνέχεια επιλέγοντας «ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗ ΑΚΟΛΟΥΘΙΑΣ» εκτελούμε την αποκωδικοποίηση ενώ κάνοντας κλικ στο κουμπί «ΥΠΟΛΟΓΙΣΜΟΣ ΛΑΘΩΝ» μπορούμε να δούμε τα λάθη σε σύνολο και σε ποσοστό. Συγκρίνοντας τις δύο πιθανότητες λάθους πριν και μετά την κωδικοποίηση βλέπουμε πόσο βελτίωσε το σύστημά μας η χρήση του συνελικτικού κώδικα. Μάλιστα μπορούμε να εκτελέσουμε διαδοχικές κωδικοποιήσεις επιλέγοντας διαφορετικές τιμές του trace-back depth και έτσι να δούμε πως η παράμετρος αυτή επηρεάζει τον αριθμό των λαθών μετά την αποκωδικοποίηση. Φυσικά έχουμε και πάλι να αντιπαραβάλουμε οποιοδήποτε κομμάτι της αρχικής ακολουθίας με την αποκωδικοποιημένη και να εντοπίσουμε τυχόν λάθη. Στην περίπτωση που η αρχική πληροφορία μας ήταν εικόνα, επιλέγοντας το αντίστοιχο κουμπί μπορούμε να αντιπαραβάλουμε την εικόνα που στάλθηκε χωρίς συνελικτική κωδικοποίηση, με την εικόνα που προήλθε από την κωδικοποιημένη ακολουθία. Έτσι βλέπουμε με πιο εύληπτο τρόπο πως η χρησιμοποίηση του συνελικτικού κώδικα βελτίωσε το σύστημά μας στην πράξη.

20 40 60 80 100 120 50 100 150 20 40 60 80 100 120 50 100 150 Η εικόνα όπως λαμβάνεται με και χωρίς τη χρήση κωδικοποίησης. Φυσικά αν η αρχική μας ακολουθία ήταν ένας ήχος κάνοντας κλικ στο αντίστοιχο κουμπί («ΗΧΟΣ») μπορούμε αντίστοιχα να ακούσουμε το μήνυμα που προήλθε από την αποκωδικοποίηση της ακολουθίας, συγκρίνοντάς το με το αντίστοιχο που της μη κωδικοποιημένης ακολουθίας. 1 0 10 20 30 40 50 60 70 80 90 100 1 0 10 20 30 40 50 60 70 80 90 100 1 0 10 20 30 40 50 60 70 80 90 100 Αποκωδικοποίηση ακολουθίας και υπολογισμός λαθών για ηχητικό μήνυμα.

Τέλος οποιοδήποτε είδος ακολουθίας και αν επιλέξαμε να στείλουμε, κάνοντας κλικ στο κουμπί «TRELLIS» μεταφερόμαστε στην παρακάτω οθόνη. 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Οθόνη προβολής κινούμενου trellis. Εδώ μπορούμε να δούμε μια κινούμενη αναπαράσταση της εφαρμογής του αλγορίθμου viterbi για την εύρεση του πιθανότερου μονοπατιού μέσα στο trellis. Αρχικά επιλέγουμε τα όρια αποκωδικοποίησης δηλαδή από ποια χρονική στιγμή και μέχρι ποια θέλουμε να δούμε το trellis να κινείται, και την ταχύτητα της κίνησης (τυπικές τιμές 1-10). Στη συνέχεια επιλέγοντας «ΣΧΕΔΙΑΣΗ» η αναπαράσταση αρχίζει. Αν έχουμε επιλέξει η αναπαράσταση να ξεκινήσει από την πρώτη χρονική στιγμή θα δούμε αρχικά το trellis να ανοίγει σε όλες του τις καταστάσεις. Από το σημείο αυτό και μετά βλέπουμε πως σε κάθε βήμα από τους κλάδους που εισέρχονται σε κάθε κατάσταση κρατάμε μόνο αυτόν με την καλύτερη μετρική. Συγχρόνως καθώς η αποκωδικοποίηση εξελίσσεται τα μονοπάτια που δεν καταλήγουν σε survivor διαγράφονται έτσι ώστε σε κάθε χρονική στιγμή να υπάρχουν σχεδιασμένα στο trellis τόσα μονοπάτια όσες και οι καταστάσεις του κώδικα. Αν αντίθετα η αρχική στιγμή που επιλέξαμε είναι σε κάποιο προχωρημένο σημείο της ακολουθίας, η αποκωδικοποίηση μέχρι το σημείο αυτό εκτελείται αυτόματα και η κινούμενη αναπαράσταση ξεκινά εμφανίζοντας τους survivors εκεί.

Μόλις το trellis ολοκληρώσει την κίνηση του προς την τελευταία χρονική στιγμή που έχουμε επιλέξει μια διακεκομένη κόκκινη γραμμή μας δείχνει το σωστό μονοπάτι (το μονοπάτι της αρχικής μας ακολουθίας). Αν δηλαδή σε κάποιο σημείο το μονοπάτι αυτό δε συμπίπτει με κάποιον survivor σημαίνει ότι εκεί έγινε κάποιο λάθος κατά την αποκωδικοποίηση. Αλλάζοντας τα όρια προβολής και επιλέγοντας «ΠΡΟΒΟΛΗ» μπορούμε να μεταφερθούμε σε οποιοδήποτε προηγούμενο κομμάτι της ακολουθίας και να αναζητήσουμε τέτοια λάθη. Αξίζει να αναφέρουμε εδώ ότι πολλές φορές για να δούμε κάποιο λάθος θα πρέπει πρώτα η αποκωδικοποίηση να προχωρήσει μέχρι κάποιο σημείο αρκετές χρονικές στιγμές μετά. Αυτό συμβαίνει γιατί μπορεί το σωστό μονοπάτι να αποτελεί έναν από τους survivors για αρκετές χρονικές στιγμές μέχρι τελικά να απορριφθεί οπότε και το λάθος της αποκωδικοποίησης τελικά θα συμβεί. 15 10 5 0 556 557 558 559 560 561 562 563 564 Απεικόνιση αποκωδικοποίησης με κινούμενο trellis.

Γ) ΒΙΒΛΙΟΓΡΑΦΙΑ 1) Shu Lin and Daniel J. Costello, JR. ERROR CONTROL CODING, Fundamentals and applications 2) John G. Proakis και Masoud Salehi Communication Systems Engineering