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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών

Η μονάδα db χρησιμοποιείται για να εκφράσει λόγους (κλάσματα) ομοειδών μεγεθών, αντιστοιχεί δηλαδή σε καθαρούς αριθμούς.

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

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

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

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

Ολοκληρωμένα Κυκλώματα

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

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

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

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

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

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

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

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

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

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

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

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Νεκτάριος Κοζύρης ΑΡΙΘΜΗΤΙΚΕΣ ΠΡΑΞΕΙΣ

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

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

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

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

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

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

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

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

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

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

Η κανονική μορφή της συνάρτησης που υλοποιείται με τον προηγούμενο πίνακα αληθείας σε μορφή ελαχιστόρων είναι η Q = [A].

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

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

15/3/2009. Ένα ψηφιακό σήμα είναι η κβαντισμένη εκδοχή ενός σήματος διάκριτου. χρόνου. Φλώρος Ανδρέας Επίκ. Καθηγητής

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

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

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

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

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

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 6 η : Συμπίεση Εικόνας. Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

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

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

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

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

Ψηφιακή Επεξεργασία Σημάτων

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017

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

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

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

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

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

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

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Μεταπτυχιακό Πρόγραμμα: Ολοκληρωμένα Συστήματα Υλικού και Λογισμικού Διπλωματική Εργασία ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΥΛΙΚΟΥ ΓΙΑ ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗ VITERBI ΣΕ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ Κυρίτσης Κωνσταντίνος ΑΜ 209 Επιβλέπων Παλιουράς Βασίλειος Νοέμβριος 2013

Περιεχόμενα ΠΕΡΙΕΧΟΜΕΝΑ Περιεχόμενα... i 1 Εισαγωγή... 1 Το τηλεπικοινωνιακό κανάλι... 1 Κώδικες Διόρθωσης Λαθών... 2 2 Συνελικτικός Κωδικοποιητής... 5 Διάγραμμα καταστάσεων... 6 Διάγραμμα Trellis... 7 Puncturing... 8 3 Αλγόριθμος Viterbi... 11 Περιγραφή Αλγορίθμου... 11 Εφαρμογή στους συνελικτικούς κώδικες... 12 Διάγραμμα Trellis... 14 4 Υλοποίηση Αποκωδικοποιητή Viterbi... 17 Δομή αποκωδικοποιητή... 18 Αναπαράσταση της εισόδου... 19 Branch Metric Unit... 20 Path Metric Unit... 21 Path Metric Unit Cell... 22 Traceback Unit... 23 5 Βελτιώσεις Χρονισμού... 27 Compare Select Add... 27 Path normalization... 29 Radix 4... 31 Radix 8... 35 6 Σύγκριση Αρχιτεκτονικών διαφορετικών radix... 37 Ικανότητα διόρθωσης λαθών... 37 Σύγκριση χρονισμού και επιφάνειας... 40 Σύγκριση ποσοστού κάλυψης των επιμέρους τμημάτων... 45 i

ii 7 Συμπεράσματα... 47 Βιβλιογραφία... 49 Ευρετήριο Σχημάτων

1 ΕΙΣΑΓΩΓΗ Τα τελευταία χρόνια ο όγκος των δεδομένων που διακινείται μέσω δικτυακών συστημάτων είναι συνεχώς αυξανόμενος με την επιτακτική ανάγκη για αξιόπιστη επικοινωνία. Παρόλο που η εξέλιξη της τεχνολογίας επιτρέπει μεγαλύτερη ανοχή σε παρεμβολές στο τηλεπικοινωνιακό κανάλι, ο υψηλότερος ρυθμός δεδομένων προκαλεί παραμορφώσεις στο σήμα και κάνει το τηλεπικοινωνιακό σύστημα πιο επιρρεπές στον θόρυβο. Παράδειγμα τέτοιων συστημάτων αποτελούν εφαρμογές ασύρματων δικτύων όπως τα συστήματα κινητής τηλεφωνίας, οι δορυφορικές επικοινωνίες, ασύρματα τοπικά δίκτυα WiFi καθώς και ενσύρματων επικοινωνιών (ενσύρματα Modem). Η παρούσα διπλωματική επικεντρώνεται στα πρότυπα 802.11 που αφορούν ασύρματα τοπικά δίκτυα και πιο συγκεκριμένα στο πρόσφατο 802.11ac ώστε να τεθούν συγκεκριμένα κριτήρια απόδοσης. Αφενός γίνεται σχεδιασμός και υλοποίηση ενός αποκωδικοποιητή σύμφωνου με το πρότυπο λαμβάνοντας υπόψη περιορισμούς χρονισμού αλλά και επιφάνειας και επαλήθευση αυτών μέσω τεχνολογιών FPGA και ASIC. Αφετέρου μελετώνται διαφορετικές αρχιτεκτονικές υλοποίησης του αλγορίθμου (πχ high radix) και εξετάζονται τα πιθανά σχεδιαστικά trade-off. Εξετάζονται μέθοδοι αύξησης του throughput αλλά και θέματα απόδοσης που αφορούν την ικανότητα διόρθωσης λαθών. Το τηλεπικοινωνιακό κανάλι Μια τυπική μοντελοποίηση ενός τηλεπικοινωνιακού καναλιού φαίνεται στο Σχ. 1-1. 1

Πηγή Κωδικοποιητής Διαμορφωτής Κανάλι Δέκτης Αποκωδικοποιητής Απόδιαμορφωτής Σχ. 1-1 Επικοινωνιακό κανάλι Τα δεδομένα πριν περάσουν από το στάδιο της διαμόρφωσης πρέπει πρώτα τα κωδικοποιηθούν. Στη συνέχεια αποστέλλονται μέσω του καναλιού όπου υφίστανται διαφόρων ειδών παραμορφώσεις (προσθήκη θορύβου, αλλαγή φάσης) και στο απέναντι άκρο είναι ρόλος του αποκωδικοποιητή να αναιρέσει την επίδραση του καναλιού πάνω στο σήμα και να ανακατασκευάσει το αρχικό σήμα διορθώνοντας τα λάθη. Ο όρος «κανάλι» αναφέρεται στο φυσικό μέσο μετάδοσης του σήματος που μπορεί να είναι είτε κάποιος αγωγός ή οπτική ίνα στις ενσύρματες επικοινωνίες είτε ο αέρας στην περίπτωση των ασύρματων επικοινωνιών. Ανάλογα το κανάλι υπάρχουν διαφορετικά χαρακτηριστικά εύρους συχνοτήτων ή παρεμβολών και θορύβου οπότε γίνεται και η αντίστοιχη μοντελοποίηση. Αν και τα προς αποστολή δεδομένα αναπαρίστανται στον ψηφιακό χώρο με 0 και 1, προκειμένου να μεταδοθούν μέσω του φυσικού μέσου πρέπει να αντιστοιχηθούν σε κάποια φυσική ποσότητα η οποία μπορεί να είναι τάση σε ένα αγωγό ή συχνότητα ενός κύματος. Η στοιχειώδης ποσότητα που μεταδίδεται μέσω του μέσου ονομάζεται σύμβολο. Κάθε σύμβολο μπορεί να αντιστοιχεί σε περισσότερα του ενός δυαδικά ψηφία (bit). Κώδικες Διόρθωσης Λαθών Προκειμένου να διασφαλιστεί η αξιόπιστη επικοινωνία είναι λοιπόν απαραίτητη η κωδικοποίηση των δεδομένων (forward error correction), διαδικασία που περιορίζει το ωφέλιμο bandwidth του καναλιού καθώς απαιτεί την αύξηση των μεταδιδόμενων δεδομένων. Τα επιπλέον bit που μεταδίδονται, δίνουν τη δυνατότητα στον παραλήπτη να ανιχνεύει τα λάθη και να διορθώνει μέρος αυτών έτσι ώστε να μην απαιτείται επαναποστολή των δεδομένων. Πολλές μέθοδοι κωδικοποίησης έχουν 2

Εισαγωγή αναπτυχθεί που χωρίζονται σε δύο κατηγορίες, τους συνελικτικούς κώδικες και τους block κώδικες. Οι συνελικτικοί κώδικες χρησιμοποιούνται κυρίως σε εφαρμογές streaming αν και μπορούν να χρησιμοποιηθούν σε μετάδοση βασισμένη σε πακέτα. Ο κωδικοποιητής έχει δομή παρόμοια με αυτή ενός συνελικτικού φίλτρου έτσι ώστε κάθε απεσταλμένο σύμβολο να εξαρτάται από τα k προηγούμενα. Ο αλγόριθμος που χρησιμοποιείται για την αποκωδικοποίηση αυτών των κωδίκων ονομάζεται αλγόριθμος Viterbi για τον οποίο θα δούμε περισσότερες λεπτομέρειες στη συνέχεια. Οι block κώδικες χρησιμοποιούν πάντα σταθερού μήκους πακέτα. Η επιπλέον πληροφορία που αποστέλλεται εξαρτάται από όλο το πακέτο έτσι ώστε να είναι δυνατή η εύρεση και διόρθωση των λαθών. Η αποκωδικοποίηση του πακέτου είναι επιτυχής όταν τηρούνται κάποιοι συγκεκριμένοι κανόνες που αφορούν συνήθως κανόνες ισοψηφίας. 3

2 ΣΥΝΕΛΙΚΤΙΚΟΣ ΚΩΔΙΚΟΠΟΙΗΤΗΣ Προκειμένου να οριστεί ένας συνελικτικός κωδικοποιητής απαιτούνται τρεις παραμετροι. Rate: Είναι ο λόγος του αριθμού των bit στην είσοδο του κωδικοποιητή προς τον αριθμό των bit στην έξοδο. Constraint length: Ο αριθμός των προηγούμενων τιμών της εισόδου από τις οποίες εξαρτάται η τρέχουσα έξοδος. Παράγον πολυώνυμο: Πολυώνυμο GF2 των συντελεστών του κάθε όρου από τους constraint length όρους για την αντίστοιχη έξοδο. Ακολουθεί παράδειγμα κωδικοποιητή με rate ½ ( μία είσοδος, δύο έξοδοι), constraint length 3 και πολυώνυμα [ g0, g1] [7,5] 8 [111,101] 2. Ο κωδικοποιητής έχει constraint length 2 που σημαίνει ότι απαιτούνται δύο στοιχεία μνήμης. Έχει επίσης δύο εξόδους οπότε και ένα παράγον πολυώνυμο για κάθε μία. Όπως είναι προφανές, η έξοδος του κωδικοποιητή κάθε χρονική στιγμή εξαρτάται από τις τιμές των καταχωρητών και την τιμή της εισόδου. Η τιμή των καταχωρητών ονομάζεται κατάσταση του κωδικοποιητή και μπορεί να έχει 2 k 1 διαφορετικές τιμές, όπου k το constraint length. Από κάθε κατάσταση, ο κωδικοποιητής μπορεί να μεταβεί σε δύο πιθανές καταστάσεις ανάλογα αν η είσοδος θα είναι 0 ή 1. 5

OUT0 IN z -1 z -1 OUT1 Σχ. 2-1 Συνελικτικός κωδικοποιητής Εκτός από τη δομική αναπαράσταση του κωδικοποιητή, δύο ακόμα αναπαραστάσεις βοηθούν στην κατανόηση της λειτουργίας τόσο του κωδικοποιητή όσο και του αποκωδικοποιητή και αυτές είναι το διάγραμμα καταστάσεων και το διάγραμμα Trellis. Διάγραμμα καταστάσεων Στο διάγραμμα καταστάσεων αναπαρίσταται όλη η πληροφορία για τη λειτουργία του κωδικοποιητή. Όπως έχει ήδη αναφερθεί, η κατάσταση αφορά τις τιμές των στοιχείων μνήμης του κωδικοποιητή. Στο Σχ. 2-2 φαίνεται το διάγραμμα καταστάσεων του κωδικοποιητή του παραδείγματος. 01 11 11 10 10 01 11 01 10 Σχ. 2-2 Διάγραμμα καταστάσεων κωδικοποιητή 6

Συνελικτικός Κωδικοποιητής Κάθε κύκλος αναπαριστά μια πιθανή κατάσταση του κωδικοποιητή και μέσα σε αυτόν αναγράφεται η τιμή των στοιχείων μνήμης. Από κάθε κατάσταση ο κωδικοποιητής μπορεί να μεταβεί σε δύο πιθανές καταστάσεις καθώς και δύο είναι οι πιθανές καταστάσεις από τις οποίες μπορεί να μεταβεί σε μια συγκεκριμένη κατάσταση. Στο Σχ. 2-2 με συνεχόμενη γραμμή αναπαρίστανται οι μεταβάσεις όταν η είσοδος είναι 0 και με διακεκομμένη αυτές για είσοδο 1. Οι τιμές που αναγράφονται πάνω στις μεταβάσεις είναι οι τιμές των δύο εξόδων του κωδικοποιητή που αντιστοιχούν στη συγκεκριμένη μετάβαση. Διάγραμμα Trellis Το διάγραμμα Trellis εμπεριέχει την ίδια βασική πληροφορία που αναπαριστάται και στο διάγραμμα καταστάσεων με την προσθήκη της έννοιας του διακριτού χρόνου. Κάθε στήλη του διαγράμματος αναπαριστά μια χρονική στιγμή και σε κάθε στήλη φαίνονται όλες οι πιθανές καταστάσεις του κωδικοποιητή για τη δεδομένη χρονική στιγμή. Οι μεταβάσεις γίνονται μεταξύ των καταστάσεων όπως υπαγορεύει και το διάγραμμα καταστάσεων αλλά με φορά μόνο από μια χρονική στιγμή προς την επόμενη (μια στήλη δεξιά). 11 11 11 11 11 11 01 01 01 10 10 10 10 10 10 10 01 01 01 01 01 11 10 11 10 11 t=0 t=1 t=2 t=3 t=4 Σχ. 2-3 Διάγραμμα Trellis Στο Σχ. 2-3 φαίνεται το διάγραμμα Trellis του κωδικοποιητή του παραδείγματος. Έχει γίνει η υπόθεση ότι τη χρονική στιγμή 0 ο κωδικοποιητής βρίσκεται στην κατάσταση. Παρατηρείται ότι τη χρονική στιγμή 1 ο κωδικοποιητής έχει 2 πιθανές καταστάσεις αφού δεν υπάρχει μετάβαση προς τις 7

καταστάσεις 01 και 11. Το διάγραμμα συνεχίζεται ως έχει και για τις επόμενες χρονικές στιγμές. Όπως και στο διάγραμμα καταστάσεων, με συνεχόμενη γραμμή έχουν αναπαρασταθεί οι μεταβάσεις για είσοδο 0 ενώ με διακεκομμένη για είσοδο 1. Επίσης, πάνω στις μεταβάσεις αναγράφονται οι τιμές τις εξόδου του κωδικοποιητή που αντιστοιχούν σε κάθε μετάβαση. Η υπόθεση ότι ο κωδικοποιητής ξεκινάει από την κατάσταση 0 είναι μια συνηθισμένη υπόθεση στα πρωτόκολλα επικοινωνίας που χρησιμοποιούν τέτοιους κωδικοποιητές. Επίσης γίνεται πολλές φορές η υπόθεση ότι ο κωδικοποιητής έχει τερματίσει σε γνωστή κατάσταση (κάτι που είναι πρακτικά εφικτό με την προσθήκη κάποιων επιπλέον bit στην ακολουθία προς κωδικοποίηση), κάτι που διευκολύνει την αποκωδικοποίηση. Η δομή του διαγράμματος Trellis το καθιστά χρήσιμο εργαλείο κατά το στάδιο της αποκωδικοποίησης. Οι έξοδοι του αποκωδικοποιητή αντιμετωπίζονται πια ως αναμενόμενα δεδομένα και η αποκωδικοποίηση είναι ισοδύναμη της εύρεσης του σωστού μονοπατιού πάνω στο διάγραμμα Trellis. Puncturing Όπως έχει ήδη περιγραφεί, ένας συνελικτικός κωδικοποιητής έχει σταθερό rate. Σε πρακτικό επίπεδο όμως, μπορεί να χρειαστεί να αλλάξει το rate ανάλογα το επίπεδο του θορύβου ώστε να καταναλώνεται το μικρότερο δυνατό εύρος ζώνης του καναλιού. Ένας ευέλικτος τρόπος που μπορεί να επιτευχθεί αυτό είναι η τεχνική του Puncturing. Αφού κωδικοποιηθούν τα δεδομένα, αφαιρούνται από αυτά επιλεκτικά κάποια bit ώστε να επιτευχθεί μεγαλύτερο rate. Τα bit που αφαιρούνται υπακούν σε ένα συγκεκριμένο μοτίβο το οποίο όταν είναι βέλτιστο, διαφέρει ανάλογα με το πολυώνυμο. Για παράδειγμα έστω η κωδικοποιημένη ακολουθία (με rate 1/2) a1 a 2 a3 a 4... a1b 1a2b2a 3b3a 4b4... b1 b2 b3 b4... Για να γίνει puncturing με rate 2/3 αρκεί να αφαιρεθούν κατάλληλα κάποια bit. a1 a 2 a3 a 4... a1b 1a2a3b3 a4... b1 b3... Ο παραλήπτης αφού λάβει την punctured ακολουθία αρκεί να παρεμβάλει στις σωστές θέσεις (στις θέσεις των σβησμένων bit) σύμβολα μηδενικής πληροφορίας. Στη συνέχεια η νέα ακολουθία τροφοδοτείται στον αποκωδικοποιητή ο οποίος συνεχίζει την αποκωδικοποίηση σαν να πρόκειται για ακολουθία με rate που εξαρτάται από το πολυώνυμά του (στο προηγούμενο παράδειγμα rate ½). 8

Συνελικτικός Κωδικοποιητής Κάθε πρωτόκολλο που χρησιμοποιεί συνελικτική κωδικοποίηση για τα δεδομένα, ορίζει ακριβώς τα μοτίβα με τα οποία μπορεί να γίνει το Puncturing ώστε να υπάρχει μέγιστη απόδοση από απόψεως ικανότητας διόρθωσης λαθών. Το πρωτόκολλο 802.11 το οποίο ορίζει τη χρήση συνελικτικού κωδικοποιητή με πολυώνυμα [ g0, g1] [133,171] 8, ορίζει και τα μοτίβα σύμφωνα με τα οποία γίνεται το puncturing για διαφορετικά rates. Rate 2/3: g 0 1 1 g 1 1 0 Rate 3/4: g 0 1 1 0 g 1 1 0 1 Rate 4/5: g 0 1 1 1 1 g 1 1 0 0 0 Rate 5/6: g 0 1 1 0 1 0 g 1 1 0 1 0 1 Στους παραπάνω πίνακες, με 0 σημειώνονται τα punctured σύμβολα. Τέλος, ο τρόπος που εισάγονται τα σύμβολα μηδενικής πληροφορίας εξαρτάται από την αναπαράσταση της πληροφορίας και θα αναλυθεί σε επόμενο κεφάλαιο. 9

3 ΑΛΓΟΡΙΘΜΟΣ VITERBI Το πρόβλημα που καλείται να λύσει ένας αποκωδικοποιητής είναι η εύρεση της ακολουθίας bit που στάλθηκε δεδομένης της ληφθείσας ακολουθίας συμβόλων. Αυτό είναι ένα πρόβλημα δυναμικού προγραμματισμού εύρεσης της πιθανότερης ακολουθίας καταστάσεων που έχει ως αποτέλεσμα την ακολουθία των παρατηρούμενων συμβόλων, τα οποία μπορούν να θεωρηθούν ως ένα κρυμμένο μοντέλο Markov. Ο αλγόριθμος που λύνει βέλτιστα αυτό το πρόβλημα, ονομάζεται αλγόριθμος Viterbi και προτάθηκε το 1967 από τον Andrew Viterbi από τον οποίο πήρε και το όνομά του. Ο αλγόριθμος έχει ευρύ πεδίο εφαρμογών όπως είναι η αναγνώριση ομιλίας, η υπολογιστική γλωσσολογία και οι τηλεπικοινωνίες ενώ συναντώνται εφαρμογές και στη βιοπληροφορική καθώς το πρόβλημα που λύνει βρίσκει εφαρμογή σε πολλούς κλάδους της τεχνολογίας. Στην περίπτωση της συνελικτικής αποκωδικοποίησης το πρόβλημα ισοδυναμεί με την εύρεση του ελάχιστου μονοπατιού σε διευθυνόμενο ακυκλικό γράφο (διάγραμμα Trellis). Περιγραφή Αλγορίθμου Έστω μια ακολουθία παρατηρούμενων συμβόλων y,..., 1 y T T στοιχείων με καταστάσεις στο πεπερασμένο σύνολο S, i η αρχική πιθανότητα της κατάστασης i και i, jοι πιθανότητες μετάβασης από την κατάσταση i στην κατάσταση j. Η πιθανότερη ακολουθία x,..., 1 x T από την οποία προέκυψαν οι παρατηρήσεις προκύπτει από τις σχέσεις: 11

12 V P y k 1, k 1 V max P( y k) a V t, k x S t x, k t 1, x k όπου V tk, είναι η πιθανότητα της πιο πιθανής ακολουθίας καταστάσεων για τις πρώτες t παρατηρήσεις που καταλήγει στην κατάσταση k. Όπως φαίνεται, οι σχέσεις αυτές δεν δίνουν την πιθανότερη ακολουθία καταστάσεων. Για να γίνει αυτό ο αλγόριθμος έχει ένα δεύτερο βήμα που υπολογίζει το μονοπάτι προς τα πίσω: x arg max ( V ) T x S T, x xt 1 Ptr( xt, t) Δηλαδή, πρώτα βρίσκει ο αλγόριθμος την τελική κατάσταση ως αυτή με τη μέγιστη τελική πιθανότητα και στη συνέχεια ανακτά τις καταστάσεις προς τα πίσω από την κατάσταση που χρησιμοποιήθηκε στη σχέση υπολογισμού των πιθανοτήτων V. tk, Εφαρμογή στους συνελικτικούς κώδικες Στην περίπτωση των συνελικτικών κωδίκων για τηλεπικοινωνιακά κανάλια υποθέτουμε ότι η μετάδοση 0 ή 1 είναι ισοπίθανη και κατ επέκταση η μεταβάσεις από μία κατάσταση στις επόμενες δύο είναι ισοπίθανες. Συνεπώς axk, 0.5 για τις δυνατές μεταβάσεις και axk, 0 για τις υπόλοιπες. Για απλοποίηση των υπολογισμών, δεδομένου ότι οι συντελεστές αυτοί λαμβάνουν μέρος σε πράξεις πολλαπλασιασμού και εύρεσης μεγίστου μπορεί να γίνει η απλοποίηση axk, 1για x Sk, όπου S k το σύνολο των επιτρεπτών καταστάσεων από τις οποίες ο κωδικοποιητής μπορεί να μεταβεί στην k. Από τις σχέσεις (1) ισοδύναμα προκύπτει λοιπόν ότι: log( V ) max log P( y k) log ( V ) (2) t, k x S k t t 1, x Οι πράξεις που γίνονται είναι ισοδύναμες με τις (1) για την εύρεση της ακολουθίας καταστάσεων αλλά η χρήση προσθέσεων αντί για πολλαπλασιασμών κάνει απλούστερη την υλοποίηση. Ορίζοντας δύο νέα μεγέθη P tk, και B tk, τελικά προκύπτει: P max ( B P ) (3) Το tk, t, k x S k t, k t 1, x P ονομάζεται στο εξής path metric και το B, branch metric. Υπολογισμός Branch metrics Ο υπολογισμός των branch metrics εξαρτάται από την εφαρμογή, και με βάση τον τρόπο υπολογισμού οι υλοποιήσεις χωρίζονται σε hard decision και soft decision. Στις υλοποιήσεις τύπου hard decision οι παρατηρήσεις κβαντίζονται σε δύο μόνο tk (1)

Αλγόριθμος Viterbi επίπεδα και ο υπολογισμός των branch metrics γίνεται υπολογίζοντας την απόσταση Hamming ανάμεσα στο ληφθέν σήμα και στο αναμενόμενο. Στην περίπτωση των soft decision υλοποιήσεων χρησιμοποιούνται περισσότερα bit για την αναπαράσταση της παρατηρούμενης τιμής και συνεπώς μπορεί να υπολογιστεί η αξιοπιστία του σήματος με μεγαλύτερη ακρίβεια υπολογίζοντας την ευκλείδεια απόσταση μεταξύ του παρατηρούμενου σήματος και της αναμενόμενης τιμής. Η ευκλείδεια απόσταση για μια γκαουσιανή κατανομή όμως προσεγγίζει την P( k y t ) οπότε αντίστοιχα η σχέση (3) γίνεται: P min ( B P ) (4) t, k x S k t, k t 1, x Η ποσότητα B tk, αντιπροσωπεύει τα branch metrics υπολογισμένα με την ευκλείδεια απόσταση και θα χρησιμοποιείται στο εξής ως B tk,. Οποιεσδήποτε παραλλαγές στον τρόπο υπολογισμού των branch metric που θα είναι ισοδύναμες και θα έχουν κατ επέκταση ίδιο αποτέλεσμα σύγκρισης, θα συμβολίζονται ως B tk,. Για ένα κωδικοποιητή με coderate 1/ J υπάρχουν 2 J πιθανοί συνδυασμοί των εξόδων του κάθε χρονική στιγμή. Οπότε για το σύμβολο της τρέχουσας χρονικής στιγμής θα πρέπει να υπολογιστούν οι αποστάσεις από τις αναμενόμενες τιμές. Ισχύει λοιπόν ότι: J 1 l j j 2 t t ( l ), όπου J {0,...,2 1} j 0 B y s L l (5) j όπου L l είναι ένα δυαδικό διάνυσμα μεγέθους J και αναπαριστά την πιθανή έξοδο του κωδικοποιητή. Η ποσότητα sl ( j l ) αναπαριστά τη συνάρτηση του διαμορφωτή που αντιστοιχεί τις δυαδικές τιμές σε τιμές της φυσικής ποσότητας. Αναπτύσσοντας την (5): 2 ( ) ( ) J 1 l j 2 j j j 2 t t t l l j 0 B y y s L s L Αφού τα branch metrics στη συνέχεια προστίθενται στα path metrics και συγκρίνονται μεταξύ τους, μπορούν να παραληφθούν οι όροι που είναι σταθεροί για όλα τα branch metrics καθώς και οι σταθεροί πολλαπλασιαστικοί όροι. J 1 l j j t t l j 0 B y s( L ) Θεωρώντας ότι έχει γίνει διαμόρφωση BPSK και η αντιστοίχιση είναι 0 1 1-1 τότε ισχύει: j j s( L ) 2L 1, συνεπώς: l l 13

J 1 J 1 l j j j t 2 t l t j 0 j 0 B y L y Επειδή όμως ο δεύτερος όρος είναι ίδιος για όλα τα branch metrics μπορεί να απλοποιηθεί. J 1 l j j t 2 t l j 0 B y L Θεωρώντας ότι στο κανάλι προστίθεται λευκός γκαουσιανός θόρυβος με διασπορά 2 2y, τότε η ποσότητα ισοδυναμεί με το λόγο λογαριθμικών πιθανοτήτων (log 2 likelihood ratio LLR) που ορίζεται ως: P( x 0 y) LLR log P ( x 1 y ) Συνεπώς διαιρώντας με μια σταθερή 2 : J 1 l j j t t l j 0 B LLR L (6) Υπολογισμός Path metrics Κατά τη διάρκεια των απλοποιήσεων για τον υπολογισμό των branch metrics λήφθηκε υπ όψιν το γεγονός ότι σύμφωνα με τη σχέση (4), αυτά θα χρησιμοποιηθούν για συγκρίσεις. Η σχέση (4) παραμένει ως μετά τις διαδοχικές απλοποιήσεις. P min ( B P ). l t, k x S k t, k t 1, x Ο υπολογισμός του path metric που σχετίζεται με την κατάσταση k απαιτεί τον υπολογισμό του ελάχιστου από τα πιθανά path metrics. Κάθε πιθανό path metric αποτελεί το άθροισμα ενός path metric της προηγούμενης χρονικής στιγμής και ενός branch metric όπως ορίζει το διάγραμμα Trellis. l Το B tk, συμβολίζει το branch metric από το σύνολο των 2 J διαφορετικών πιθανών branch metric για τη χρονική στιγμή t και την κατάσταση k. Διάγραμμα Trellis Ένα χρήσιμο εργαλείο στην κατανόηση αλλά και την εφαρμογή των μεθόδων αποκωδικοποίησης των συνελικτικών κωδίκων είναι το διάγραμμα Trellis. Ο αλγόριθμος Viterbi περιγράφει τη διαδικασία προς τα πίσω ανάκτησης της ακολουθίας καταστάσεων. Η διαδικασία ισοδυναμεί στο διάγραμμα Trellis με εύρεση του προς τα πίσω μονοπατιού στο διάγραμμα Trellis. 14

Αλγόριθμος Viterbi Επιζών μονοπάτι Αν και ο αλγόριθμος Viterbi υποδεικνύει πως το βήμα ανάκτησης της ακολουθίας των καταστάσεων πρέπει να γίνεται αφού έχει τελειώσει ο υπολογισμός των path metrics, είναι χρήσιμο σε πρακτικές εφαρμογές να ξεκινάει η διαδικασία ανάκτησης των καταστάσεων πριν τελειώσει το πρώτο βήμα. Μη γνωρίζοντας λοιπόν την κατάσταση με το ελάχιστο path metric μπορεί να ξεκινήσει κανείς την προς τα πίσω ανάκτηση από οποιαδήποτε από τις καταστάσεις. 11 11 11 11 11 11 11 11 01 01 01 01 01 01 01 10 10 10 10 10 10 10 10 10 01 01 01 01 01 01 01 01 11 10 11 10 11 10 11 10 11 10 11 10 11 t1 t2 t3 Σχ. 3-1 Επιζώντα μονοπάτια στο διάγραμμα Trellis Αυτό που παρατηρείται είναι ότι αυτά τα διαφορετικά μονοπάτια που προκύπτουν ταυτίζονται από ένα σημείο και πριν. Αυτό σημαίνει ότι από εκείνο το σημείο μπορεί το κύκλωμα να πάρει απόφαση για την πιο πιθανή ακολουθία των καταστάσεων χωρίς να γνωρίζει απαραίτητα την κατάσταση στην οποία τελειώνει η ακολουθία. Όπως φαίνεται στο Σχ. 3-1 η επιλογή κάθε κόμβου δημιουργεί ένα μονοπάτι στο διάγραμμα Trellis. Με έντονη γραμμή φαίνεται στο σχήμα το μονοπάτι προς τα πίσω από κάθε πιθανή κατάσταση για ένα κώδικα με constraint length 3. Από τη χρονική στιγμή t3 ξεκινάει η διαδικασία της ανάκτησης προς τα πίσω της ακολουθίας καταστάσεων. Τη χρονική στιγμή t2 κάποια μονοπάτια συγκλίνουν και επιβιώνουν τα δύο από αυτά και τελικά τη χρονική στιγμή t1 και πίσω υπάρχει πια μόνο ένα μονοπάτι. Όποια είσοδο κι αν πάρει ο αποκωδικοποιητής τις επόμενες χρονικές στιγμές, η απόφαση για τις χρονικές στιγμές από την t1 και πριν, δεν πρόκειται να αλλάξει. 15

4 ΥΛΟΠΟΙΗΣΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗ VITERBI Στο κεφάλαιο αυτό παρουσιάζεται η υλοποίηση του αλγορίθμου Viterbi σε hardware. O αποκωδικοποιητής Viterbi που σχεδιάστηκε πληροί τις προδιαγραφές για λειτουργία συμβατή με το πρωτόκολλο 802.11ac που αφορά ασύρματες επικοινωνίες σε τοπικά δίκτυα (WiFi). Ο συνελικτικός κωδικοποιητής του προτύπου έχει coderate ½ και constraint length 7, με πολυώνυμα τα [133,171] 8. H υποστήριξη διαφορετικών coderates γίνεται με puncturing, αλλά η λειτουργία του αποκωδικοποιητή παραμένει ίδια ανεξάρτητα του coderate. Η προσέγγιση που γίνεται σε αυτό το κεφάλαιο αφορά την υλοποίηση μιας παράλληλης αρχιτεκτονικής με τη λιγότερη απαίτηση σε υλικό. Με τον όρο παράλληλη εννοείται ο υπολογισμός των αντίστοιχων path metric σε ξεχωριστό υλικό για κάθε πιθανή κατάσταση (64), ενώ υπάρχει και η σειριακή αρχιτεκτονική ελάχιστου υλικού όπου το ίδιο υλικό επαναχρησιμοποιείται για τους υπολογισμούς που αφορούν διαφορετικές καταστάσεις. Βελτιστοποιήσεις και παραλλαγές σχετικές με αύξηση του throughput θα παρουσιαστούν στο επόμενο κεφάλαιο. Όπως έχει ήδη υπαινιχθεί σε προηγούμενο κεφάλαιο όπου έγινε ο διαχωρισμός μεταξύ hard και soft decision, σε ένα πραγματικό σύστημα, ένας κβαντιστής προηγείται του αποκωδικοποιητή. Η αναπαράσταση επίσης της κβαντισμένης τιμής ποικίλει και μπορεί να είναι είτε απλά η τιμή όπως μεταδόθηκε είτε οι τιμές των LLR. Στην παρουσίαση της υλοποίησης στο κεφάλαιο αυτό γίνεται η υπόθεση ότι προηγείται κβαντιστής 4 bit που κβαντίζει τα υπολογισμένα LLR από το διαμορφωμένο σε BPSK σήμα του καναλιού. Η επιλογή τόσο μικρού αριθμού bit για την αναπαράσταση γίνεται με βασικό γνώμονα την ελάχιστη χωρική πολυπλοκότητα του τελικού σχεδιασμού. 17

Δομή αποκωδικοποιητή Οι λειτουργίες που πρέπει να εκτελεστούν όπως περιγράφηκαν στο προηγούμενο κεφάλαιο χωρίστηκαν σε τρία βασικά block όπως φαίνεται στο Σχ. 4-1. LLR0 LLR1 4 Branch Metric Unit branches 4*5 Path Metric Unit decisions 64 Traceback Unit decoded data 4 Σχ. 4-1 Block διάγραμμα αποκωδικοποιητή Το κομμάτι Branch metrics unit (BMU) έχει ως είσοδο δύο LLR (ένα για κάθε πολυώνυμο) και σαν έξοδο υπολογίζει τα πιθανά branch metrics. Όπως έχει ήδη αναφερθεί, ο αριθμός των διαφορετικών branch metrics που μπορούν να προκύψουν μια δεδομένη χρονική στιγμή είναι συγκεκριμένος και προκειμένου να μην υπολογίζονται για κάθε πιθανή κατάσταση εκ νέου τα αντίστοιχα branch metrics, υπολογίζονται μία φορά και στη συνέχεια διανέμονται στο αντίστοιχο τμήμα του υπολογίζει τα path metrics κάθε κατάστασης στην οποία λαμβάνουν μέρος. Το κομμάτι Path metric unit (PMU) είναι υπεύθυνο για τον υπολογισμό των path metric κάθε κατάστασης για κάθε χρονική στιγμή. Υλοποιεί ουσιαστικά μια στήλη του διαγράμματος Trellis. Αποτελείται από αντίγραφα του ίδιου βασικού κυττάρου υπολογισμού που υπολογίζει το path metric μιας κατάστασης (κόμβοι μιας στήλης του διαγράμματος Trellis). Οι διασυνδέσεις μεταξύ των κυττάρων γίνονται με βάση τη δομή που υπαγορεύει το διάγραμμα καταστάσεων του κωδικοποιητή. Οι είσοδοι του Path metric unit είναι τα branch metrics και έχει ως εξόδους τις αποφάσεις του κάθε κόμβου. Οι αποφάσεις είναι απαραίτητες για το δεύτερο βήμα του αλγορίθμου όπου υπολογίζεται προς τα πίσω η πιο πιθανή ακολουθία καταστάσεων. Όπως έχει ήδη αναφερθεί και φαίνεται και από το διάγραμμα Trellis, κάθε κόμβος έχει δύο πιθανούς κόμβους από τους οποίους μπορεί να μεταβεί σε αυτόν. Η απόφαση λοιπόν κάθε κόμβου χρειάζεται 1 bit για να αναπαρασταθεί που δηλώνει ποια από τις πιθανές διαδρομές επιλέχθηκε τελικά κατά τον υπολογισμό του ελάχιστου μονοπατιού. Τέλος, το τελευταίο τμήμα του αποκωδικοποιητή είναι το Traceback unit (TU). Το κομμάτι αυτό δέχεται ως είσοδο τα decision bits του Path metric unit και παράγει την αποκωδικοποιημένη ακολουθία. 18

Υλοποίηση Αποκωδικοποιητή Viterbi Αναπαράσταση της εισόδου Η είσοδος του αποκωδικοποιητή είναι τα υπολογισμένα LLR του σήματος. Προέρχονται από ομοιόμορφο κβαντιστή 4 bit. Η αναπαράσταση που χρησιμοποιείται είναι η binary offset. Binary Value Meaning Strongest 0 0111 Weakest 0 10 Weakest 1 1111 Strongest 1 Πίνακας 1 - Binary offset κωδικοποίηση των LLR Σημειώνεται ότι αυτός ο τρόπος κβαντισμού της εισόδου αντιστοιχεί τις μισές τιμές για τις θετικές τιμές του σήματος και τις άλλες μισές για τις αρνητικές τιμές (Υπενθυμίζεται ότι στη διαμόρφωση BPSK που χρησιμοποιείται, το δυαδικό 0 αντιστοιχίζεται στο 1 ενώ το δυαδικό 1 στο -1). Αυτός ο διαχωρισμός δεν δημιουργεί ασυμμετρίες στο σήμα που εισέρχεται στον αποκωδικοποιητή που θα προκαλούσε υποβάθμιση της απόδοσης. Δεν υπάρχει επίσης στάθμη που να αντιστοιχεί στις τιμές γύρω από το 0. Όταν κάποιο LLR έχει την τιμή 0, αυτό πρακτικά σημαίνει ότι δεν υπάρχει πληροφορία για το αντίστοιχο bit. Είναι όμως χρήσιμη η αναπαράσταση της «μηδενικής πληροφορίας» σε τεχνικές όπως το puncturing, για αυτό γίνεται ένα mapping από την αναπαράσταση της εισόδου σε μια εσωτερική αναπαράσταση. Προκειμένου να διευκολυνθούν οι πράξεις των συγκρίσεις των ποσοτήτων στα επόμενα blocks (path metric unit), επιλέχθηκε η αναπαράσταση συμπληρώματος ως προς 2. Επίσης, για να εισαχθεί η καινούργια τιμή που αναπαριστά τη μηδενική πληροφορία, αλλά και για να κρατηθούν ίσες οι σχετικές αποστάσεις μεταξύ των αναπαραστάσιμων τιμών το μέγεθος των LLR αυξήθηκε κατά 1bit. Binary Value Meaning Internal representation Strongest 0 01111 0111 Weakest 0 1 N/A Zero information 0 10 Weakest 1 11111 1111 Strongest 1 101 Πίνακας 2 - Εσωτερική αναπαράσταση LLR 19

Branch Metric Unit Όπως αναλύθηκε στο προηγούμενο κεφάλαιο, υπάρχουν 2 J (1/ J : coderate) όπως προκύπτει από J 1 l j j t t l j 0 B LLR L πιθανά branch metrics. Στην περίπτωση του κωδικοποιητή που περιγράφεται, J 2 συνεπώς θα υπάρχουν τέσσερα διαφορετικά branch metrics και αυτά θα είναι: 0 B 0 B B 1 2 LLR 3 B LLR1 LLR 0 0 LLR 1 Οπότε το κύκλωμα που υλοποιεί τον υπολογισμό των branch metrics φαίνεται στο Σχ. 4-2. LLR0 4 5 branch0 branch1 LLR1 4 5 5 5 branch2 branch3 Σχ. 4-2 Branch Metric Unit Puncturing Προκειμένου να υποστηριχθεί η λειτουργία του puncturing στον αποκωδικοποιητή, υπάρχει μια επιπλέον είσοδος μήκους όσο και το πλήθος των LLR ( στην προκειμένη περίπτωση 2 bit). Όταν το αντίστοιχο bit υποδηλώνει ότι το συγκεκριμένο LLR δεν είχε μεταδοθεί από το κανάλι και συνεπώς πρέπει να αντικατασταθεί από την κωδική λέξη που αντιστοιχεί στη μηδενική πληροφορία. 20

Υλοποίηση Αποκωδικοποιητή Viterbi ERASE 2 LLR0 4 5 6 branch0 branch1 LLR1 4 5 6 6 6 branch2 branch3 Σχ. 4-3 Branch metric unit με puncturing Το τελικό κύκλωμα λοιπόν που υλοποιεί και τη λειτουργία του Puncturing καθώς και την αντιστοίχιση από την εξωτερική αναπαράσταση των LLR στην εσωτερική που περιγράφηκε προηγουμένως φαίνεται στο Σχ. 4-3. Path Metric Unit Η αρχιτεκτονική που υλοποιήθηκε, χρησιμοποιεί ξεχωριστό hardware για τις πράξεις του κάθε κόμβου (κάθε κόμβος αντιστοιχεί σε μια κατάσταση). Οι κόμβοι μεταξύ τους διασυνδέονται όπως υποδηλώνει το διάγραμμα καταστάσεων. Έτσι κάθε χρονική στιγμή, υπολογίζονται οι πράξεις που αντιστοιχούν σε μία στήλη του διαγράμματος Trellis. Όλες οι μονάδες υπολογισμού των Path metrics (PMU cell) είναι ταυτόσημες και υλοποιούν τη βασική πράξη του αλγορίθμου όπως περιγράφηκε στο προηγούμενο κεφάλαιο. Κάθε κύτταρο συνδέεται με δύο άλλα πριν καθώς και με δύο άλλα μετά ακριβώς όπως περιγράφει και η δομή του διαγράμματος Trellis. Επίσης κάθε κύτταρο επιλέγει από τα πιθανά branch metrics αυτά που θα του χρειαστούν στους υπολογισμούς του τα οποία είναι τα ίδια για κάθε κύκλο. Το διάνυσμα των αποφάσεων όλων των κόμβων είναι είσοδος του επόμενου σταδίου που υλοποιεί τη διαδικασία του traceback του αλγορίθμου. 21

Branch Metrics Q S ET Q S S ET ET Q Q C LR C LR C LR D D Decisions 64 PMUcell 0 PMUcell 1 PMUcell 63 Σχ. 4-4 Δομή Path Metric Unit Αυτό το τμήμα του αποκωδικοποιητή είναι και αυτό με τη μεγαλύτερη πολυπλοκότητα (κάτι που θα αναλυθεί περαιτέρω σε επόμενο κεφάλαιο) καθώς αποτελεί τον βασικό πυρήνα του αλγορίθμου με τις περισσότερες αριθμητικές πράξεις και έχει υλοποιηθεί πλήρως παράλληλη αρχιτεκτονική όσον αφορά τις καταστάσεις. Path Metric Unit Cell Ο βασικός πυρήνας υπολογισμού του αλγορίθμου περιγράφεται από τη σχέση l Pt, k min x S ( B, 1, ) k t k Pt x. Αυτή είναι και η σχέση που υλοποιεί το βασικό δομικό στοιχείο του αλγορίθμου MPU cell. Κάθε κατάσταση έχει σύμφωνα με τη δομή του κωδικοποιητή δύο υποψήφιες καταστάσεις από οποίες μπορεί να μεταβεί ο κωδικοποιητής σε αυτή. Το σύνολο S k αποτελείται για κάθε κόμβο από αυτές τις καταστάσεις. Στο Path metric λοιπόν που αντιστοιχεί σε κάθε υποψήφια κατάσταση, προστίθεται το αντίστοιχο branch metric και επιλέγεται το ελάχιστο άθροισμα. 22

Υλοποίηση Αποκωδικοποιητή Viterbi Branch 0 < Decision Path 0 Path 1 Branch 1 Σχ. 4-5 Δομή του Path Metric Unit Cell new Path 0 Το ελάχιστο άθροισμα θα αποτελεί για την επόμενη χρονική στιγμή το Path metric αυτού του κόμβου και είναι μία από τις εξόδους του cell. Κατά τη σύγκριση των πιθανών path metric, πρέπει επίσης να διατηρηθεί η πληροφορία της απόφασης η οποία θα είναι και η είσοδος του επόμενου τμήματος του αλγορίθμου. Traceback Unit Traceback ονομάζεται το δεύτερο στάδιο του αλγορίθμου Viterbi. Από την περιγραφή του αλγορίθμου προκύπτει ότι για να εφαρμοστεί το δεύτερο αυτό βήμα θα πρέπει να έχει ολοκληρωθεί το πρώτο βήμα του υπολογισμού των Path metrics για κάθε χρονική στιγμή. Μια τέτοια προσέγγιση είναι όμως μη πρακτική σε περιπτώσεις όπου αποστέλλονται μεγάλου μήκους πακέτα η ακόμα περισσότερο σε περιπτώσεις όπου γίνεται streaming. Ακόμα όμως και στην περίπτωση που τα πακέτα δεν είναι μεγάλα σε μήκος, δεδομένου ότι τα μονοπάτια πάνω στο διάγραμμα Trellis μπορεί αν έχουν συγκλίνει, είναι σπατάλη να αποθηκεύεται όλη η πληροφορία για το πακέτο ως το τέλος του πρώτου βήματος. Επίσης το γεγονός ότι πρέπει να τελειώσει το πρώτο βήμα του αλγορίθμου την επεξεργασία όλου του πακέτου πριν ξεκινήσει το στάδιο του traceback, προσθέτει πολύ στην καθυστέρηση της εξόδου (latency). Στις πραγματικές υλοποιήσεις γίνεται traceback μόνο συγκεκριμένο αριθμό βημάτων προς τα πίσω, ο αριθμός των οποίων ονομάζεται traceback length. Για την υλοποίηση του υπάρχουν δύο βασικές τεχνικές, η κλασσική υλοποίηση του traceback και η τεχνική Register Exchange. Σύμφωνα με την κλασσική υλοποίηση του traceback, τα decisions του PMU αποθηκεύονται σε μια RAM για να διαβαστούν αργότερα ενώ υπολογίζονται τα path metrics. Στη συνέχεια ξεκινάει η διαδικασία της εύρεσης του μονοπατιού ξεκινώντας από την κατάσταση με το ελάχιστο path metric. Από εκεί, χρησιμοποιώντας την πληροφορία των αποφάσεων που είναι αποθηκευμένη στη RAM, γίνεται προς τα πίσω ανάκτηση του μονοπατιού. Μόλις τελειώσει αυτή η διαδικασία, συνεχίζει το 23

πρώτο στάδιο του αλγορίθμου για τις επόμενες καταστάσεις κ.ο.κ. Εναλλακτικά, αντί να ξεκινήσει η διαδικασία από την κατάσταση με το ελάχιστο path metric, μπορεί να ξεκινήσει από όλες τις δυνατές καταστάσεις προς τα πίσω και να καταγραφεί η έξοδος μόνο από το σημείο που έχουν συγκλίνει όλα τα πιθανά μονοπάτια. Η δεύτερη μέθοδος καταναλώνει περισσότερους πόρους υλικού/ χρόνου αλλά έχει καλύτερη απόδοση από πλευράς διόρθωσης λαθών. Register Exchange Η τεχνική του register exchange, η οποία και χρησιμοποιείται από την παρούσα εργασία, καταργεί τη χρήση RAM και χρησιμοποιεί καταχωρητές σε μια δομή ίδια με το διάγραμμα trellis. Χρησιμοποιείται λοιπόν μια δομή με γραμμές όσες και οι καταστάσεις και στήλες όσο και το επιθυμητό traceback length. Η λογική της τεχνικής αυτής είναι ότι η i στήλη έχει επεξεργαστεί την πληροφορία των i τελευταίων χρονικών στιγμών, και η κάθε σειρά αντίστοιχα δείχνει ποια θα ήταν η έξοδος αν η αποκωδικοποίηση ξεκινούσε από την αντίστοιχη κατάσταση. decision 0 decoded 0 decision 1 decoded 1 decision 2 decoded 2 decision 3 decoded 3 decision 63 decoded 63 Σχ. 4-6 Δομή register exchange 24

Υλοποίηση Αποκωδικοποιητή Viterbi Υπολογισμός της ακολουθίας εξόδου Στην τελευταία στήλη πίνακα βρίσκονται τα υποψήφια bit της αποκωδικοποιημένης ακολουθίας. Στην περίπτωση που το traceback length είναι αρκετά μεγάλο, θεωρούμε ότι τα μονοπάτια έχουν όλα συγκλίνει ανεξάρτητα από την κατάσταση από την οποία ξεκίνησε το traceback. Όταν όμως υπάρχουν ασυμφωνίες μεταξύ των bit που αντιστοιχούν σε διαφορετικές καταστάσεις τότε ο αλγόριθμος υποδεικνύει ότι πρέπει να επιλεγεί η έξοδος από τη σειρά που αντιστοιχεί στην κατάσταση με το ελάχιστο path metric. Επειδή η εύρεση του ελάχιστου απαιτεί ένα αρκετά μεγάλο αριθμό συγκρίσεων (64 στην περίπτωση του constraint length 7) χρειάζεται ένα αρκετά μεγαλύτερο κύκλωμα καθώς και μια αύξηση στην καθυστέρηση. Μια λύση που αποτελεί συμβιβασμό μεταξύ των δύο είναι ο υπολογισμός της πλειοψηφίας. Δεδομένου ότι το traceback length είναι αρκετά μεγάλο, ακόμα και αν δεν έχουν συγκλίνει όλα τα μονοπάτια, λίγα θα έχουν επιβιώσει και από κάποιες μόνο καταστάσεις. Έτσι η εφαρμογή της πλειοψηφίας θα μπορέσει να διορθώσει τυχόν λάθη που γίνονται σε αυτή την περίπτωση. Προφανώς η μέθοδος της πλειοψηφίας δεν είναι η βέλτιστη από πλευράς λαθών αλλά έχει ωστόσο πολύ μικρή αρνητική επίδραση. Ο υπολογισμός της πλειοψηφίας μεταξύ 64 bit απαιτεί πολύ λιγότερο υλικό σε σχέση με την εύρεση του ελαχίστου από τα 64 μονοπάτια. 25

5 ΒΕΛΤΙΩΣΕΙΣ ΧΡΟΝΙΣΜΟΥ Στο κεφάλαιο αυτό θα παρουσιαστούν κυκλωματικές βελτιώσεις που παρουσιάστηκαν στο προηγούμενο κεφάλαιο που αφορούν τη χρονική βελτιστοποίηση με σκοπό την επίτευξη μεγαλύτερου throughput. Θα περιγραφούν επίσης υλοποιήσεις του αποκωδικοποιητή με αρχιτεκτονικές διαφορετικής βάσης (radix). Compare Select Add Κάθε κύτταρο του path metric unit υπολογίζει σε κάθε κύκλο τη βασική πράξη του l αλγορίθμου Viterbi όπως ορίζεται από τη σχέση Pt, k min x S ( B, 1, ) k t k Pt x. Αυτό σημαίνει ότι οι πράξεις που πρέπει να υλοποιηθούν σε κάθε κύκλο είναι μια πρόσθεση, μια σύγκριση και μια επιλογή του ελάχιστου. Branch 0 < Decision Path 0 Path 1 Branch 1 new Path Σχ. 5-1 Αρχιτεκτονική add-compare-select 27

Αυτή η αλληλουχία των πράξεων ορίζει και το κρίσιμο μονοπάτι του συνολικού κυκλώματος αφού είναι η πιο χρονοβόρα διαδικασία και αποτελεί τον βασικό πυρήνα του αλγορίθμου. Επειδή κάθε βήμα του αλγορίθμου χρησιμοποιεί τα δεδομένα που υπολογίστηκαν στο προηγούμενο βήμα, δεν μπορεί να εφαρμοστεί η τεχνική του pipelining για την ελαχιστοποίηση του κρίσιμου μονοπατιού. Αυτό όμως που μπορεί να γίνει είναι διαφορετικός χρονοπρογραμματισμός των πράξεων. Αντί οι πράξεις να γίνουν με αυτή τη σειρά, μπορούν να γίνει πρώτα η σύγκριση των αποτελεσμάτων του προηγούμενου κύκλου και στη συνέχεια η πρόσθεση και η επιλογή του ελάχιστου όπως φαίνεται στο Σχ. 5-2. < Decision Path 0 Path 1 new Path Branch 0 Branch 1 Σχ. 5-2 Αλλαγή στη σειρά των πράξεων (csa) Το κρίσιμο μονοπάτι παραμένει ίδιο, όσο δηλαδή η καθυστέρηση μιας σύγκρισης, μιας πρόσθεσης και μιας επιλογής. Η νέα αλληλουχία των πράξεων επιτρέπει να γίνει ένας μετασχηματισμός που επιφέρει αύξηση μεν του απαραίτητου υλικού αλλά μείωση του κρίσιμου μονοπατιού. 28

Βελτιώσεις Χρονισμού < Decision Path 0 Branch 0 new Path 0 Path 1 Branch 1 new Path 1 Σχ. 5-3 Bελτιστοποιημένη αρχιτεκτονική Compare Select Add Ο κάθε κόμβος έχει τώρα δύο εξόδους οι οποίες είναι ένα από τα πιθανά path metrics των δύο επόμενων κόμβων καθώς και δύο εισόδους που είναι τα πιθανά path metrics του τρέχοντος κόμβου που υπολογίστηκαν από τον προηγούμενο κύκλο. Το υλικό του κάθε κυττάρου έχει αυξηθεί κατά δύο αθροιστές και ένα πολυπλέκτη ενώ το κρίσιμο μονοπάτι έχει γίνει πια μια πρόσθεση/σύγκριση και μια επιλογή. Η καθυστέρηση ενός αθροιστή και ενός συγκριτή είναι σχεδόν ίδιες αφού η σύγκριση υλοποιείται με μια αφαίρεση που έχει σχεδόν όση καθυστέρηση έχει και η πρόσθεση. Χοντρικά, έχει υποδιπλασιαστεί το κρίσιμο μονοπάτι ενώ αντίστοιχα έχει διπλασιαστεί το υλικό. Path normalization Όπως έχει ήδη περιγραφεί, ο αλγόριθμος Viterbi εκτελείται σε επαναλήψεις κατά τις οποίες υπάρχουν ποσότητες (path metrics) που συνεχώς αυξάνονται (πρόσθεση branch metrics). Το πρόβλημα που αντιμετωπίζει μια υλοποίηση ενός τέτοιου αλγορίθμου είναι ότι η πεπερασμένη ακρίβεια αναπαράστασης των path metric θα προκαλέσει αναπόφευκτα υπερχείλιση αν δεν ληφθεί υπ όψη με αποτέλεσμα την πρόκληση λαθών στις πράξεις (πχ. σύγκριση μεταξύ των path metrics). 29

Για αυτό το λόγο είναι απαραίτητο ένα επιπλέον κύκλωμα το οποίο θα εκτελεί κάποια κανονικοποίηση σε κάθε κύκλο η ανά τακτά χρονικά διαστήματα. Μια τέτοια κανονικοποίηση που δεν επηρεάζει τη λειτουργία του αλγορίθμου, δηλαδή της βασικές πράξεις της πρόσθεσης και της εύρεσης του ελαχίστου, είναι η αφαίρεση από όλα τα Path metrics του ελαχίστου αυτών. Μια τέτοια προσέγγιση προσθέτει επιπλέον υλικό που πρέπει αν εκτελέσει τις 64 συγκρίσεις (για κώδικες με constraint length 7) και τις 64 αφαιρέσεις για την κανονικοποίηση. Το επιπλέον αυτό υλικό προσθέτει, εκτός από αύξηση στην επιφάνεια του ολοκληρωμένου, και αύξηση στην καθυστέρηση υπολογισμού σε κάθε κύκλο. Μια εναλλακτική προσέγγιση στο πρόβλημα αυτό απαιτεί τη διερεύνηση των διαφορών των Path metrics κάθε χρονική στιγμή. Έστω δύο τυχαίες καταστάσεις k 1 και k 2 με Pt, k P 1 t, k, όπου P 2 tk, το path metric της κατάστασης k τη χρονική στιγμή t. Έστω K το constraint length του κωδικοποιητή. Αν p 1 είναι το βέλτιστο μονοπάτι που καταλήγει στην κατάσταση k 1 τη χρονική στιγμή t, τότε έστω s η κατάσταση από την οποία διέρχεται το p 1 τη χρονική στιγμή t 1 t ( K 1) και p 1 το τμήμα του μονοπατιού από την s στην k 1 ενώ p 1 το τμήμα του μονοπατιού από την αρχή ως την s τη χρονική στιγμή t 1. Θεωρείται χωρίς βλάβη της γενικότητας ότι τα branch metric είναι θετικά. Επειδή ο κωδικοποιητής έχει K 1 στοιχεία μνήμης, θα υπάρχει μονοπάτι p 2 από την s στην k 2 αφού η μία προηγείται της άλλης κατά K 1 χρονικές στιγμές. Έστω ότι το βέλτιστο μονοπάτι που καταλήγει στην k 2 περιλαμβάνει το p 2. Τότε, αν W( p 1 ') και W p είναι τα κόστη των διαδρομών p ' και 1 p 2 30 2 αντίστοιχα, θα ισχύει ότι t k2 t k1 s t1 s t1 P P P W( p ) P W( p ) W( p ).,,, 2, 1 2 Αν όμως το βέλτιστο μονοπάτι που καταλήγει στην k 2 δεν περιλαμβάνει το p 2 τότε το βέλτιστο μονοπάτι θα έχει κόστος μικρότερο από το κόστος της διαδρομής p p. Συνεπώς, θα ισχύει ότι 1 2 άρα P P W( p ) t, k 2 t1, s 2 P P P W( p ) P W( p ) W( p ) t, k 2 t, k1 t1, s 2 t1, s 1 2 Αντίστοιχα αν ισχύει P P τότε t, k1 t, k2 P P W( p ). Αν λοιπόν τα t, k1 t, k2 2 branch metrics μπορούν να πάρουν και αρνητικές τιμές και max p 2 είναι η μέγιστη απόλυτη τιμή της διαδρομής p 2 τότε ισχύει P P 2 max p. Η μέγιστη t, k1 t, k2 2 τιμή της ποσότητας max p 2 εξαρτάται από τη μέγιστη τιμή των branch metrics.

Βελτιώσεις Χρονισμού Αν B max είναι η μέγιστη απόλυτη τιμή των branch metrics τότε P P 2 ( K 1) B. t, k1 t, k2 max Γνωρίζοντας τη μέγιστη δυνατή διαφορά μεταξύ δύο path metrics, τότε μπορεί να επιτραπεί να γίνει υπερχείλιση κατά την πρόσθεση και να μπορούν να συγκριθούν μέσω της σχετικής τους απόστασης. Αν ο χώρος τιμών των path metrics είναι διπλάσιος από τη μέγιστη διαφορά τους τότε όταν η διαφορά τους είναι μικρότερη από τη μέγιστη διαφορά η σύγκριση γίνεται κανονικά και όταν η διαφορά τους είναι μεγαλύτερη από τη μέγιστη δυνατή τότε η σύγκριση έχει αντίθετα αποτελέσματα καθώς ένα από τα δύο έχει υπερχειλίσει. Χρησιμοποιώντας αναπαράσταση συμπληρώματος ως προς 2 η σύγκριση μπορεί να γίνει εύκολα ελέγχοντας τα πιο σημαντικά bit των αριθμών. Όταν αυτά είναι ίδια, τότε διατηρείται το αποτέλεσμα της σύγκρισης, διαφορετικά αντιστρέφεται όπως φαίνεται και στο Σχ. 5-4. sign(pm0) sign(pm1) Decision pm0 b b-1 < new Path pm1 b-1 b Σχ. 5-4 Modulo σύγκριση Radix 4 Η αρχιτεκτονική που περιγράφηκε στο προηγούμενο κεφάλαιο ήταν μια αρχιτεκτονική radix 2 και σε κάθε κόμβο του διαγράμματος καταστάσεων που περιγράφει τον συνελικτικό κωδικοποιητή, εισέρχονται 2 ακμές και εξέρχονται 2. Σε κάθε κύκλο του ρολογιού υπολογίζονται λοιπόν τα path metrics που αντιστοιχούν σε μια στήλη του διαγράμματος Trellis. Ένας τρόπος να επιταχυνθεί ο τρόπος υπολογισμού είναι ο υπολογισμός να γίνεται ανά δύο στήλες. Αυτή η αρχιτεκτονική ονομάζεται radix 4. Υπολογίζοντας τα path metrics ανά δύο βήματα, κάθε κόμβος του διαγράμματος Trellis συνδέεται με 4 επόμενους. Στην είσοδο του αποκωδικοποιητή εισέρχονται σε κάθε κύκλο δύο ζεύγη από LLR ενώ στην έξοδο εξέρχονται 2 bit ανά 31

κύκλο. Κάθε ένας από τους κόμβους, συγκρίνει 4 πιθανά path metrics για να επιλέξει το ελάχιστο. Σε σχέση με τη radix 2 αρχιτεκτονική όπου το κρίσιμο μονοπάτι αποτελείται από μια πρόσθεση και μια σύγκριση (για την αρχιτεκτονική acs) είτε από μια πρόσθεση μόνο (csa αρχιτεκτονική), το κρίσιμο μονοπάτι της radix 4 αρχιτεκτονικής πρέπει να είναι λιγότερο από διπλάσιο ώστε να υπάρχει αύξηση του throughput. Υπολογισμός Branch metrics Από τη στιγμή που κάθε κόμβος θα πρέπει να εκτελεί τις πράξεις που αντιστοιχούν σε δύο διαδοχικούς κόμβους του διαγράμματος Trellis, θα πρέπει να προστεθούν δύο φορές τα αντίστοιχα branch metrics. Όπως έχει όμως περιγραφεί, τα πιθανά branch metrics είναι συγκεκριμένα και 2 J σε πλήθος (1/ J : coderate) δηλαδή 4 για coderate ½. Στην περίπτωση της radix 4 αρχιτεκτονικής, τα πιθανά branch metrics είναι και οι πιθανοί συνδυασμοί των τεσσάρων branch metrics ανά δύο δηλαδή 16 πιθανά branch metrics. Με άλλα λόγια αποφεύγεται έτσι η πρόσθεση δύο branch metric με την πρόσθεση απλά ενός μεγαλύτερου. Path Metric Unit cell Όπως και στη radix 2 αρχιτεκτονική, η πιο απλή (αλλά και πιο αργή) εκδοχή είναι η add-compare-select. Η υλοποίησή της radix 4 αρχιτεκτονικής είναι αντίστοιχη με της radix 2. Path 0 Path 1 Path 2 new Path Path 3 Branch 0 Branch 1 Branch 2 Branch 3 Σχ. 5-5 Radix 4 Path Metric Unit cell < Decision Το υλικό που απαιτείται έχει υπερδιπλασιαστεί καθώς χρειάζονται 4 αθροιστές αντί για 2 και ο συγκριτής των 4 πιθανών path metrics ισοδυναμεί με το τριπλάσιο υλικό που απαιτείται για τη σύγκριση των 2. Το κρίσιμο μονοπάτι δεν έχει 32

Βελτιώσεις Χρονισμού αυξηθεί τόσο καθώς ισοδυναμεί με την καθυστέρηση ενός αθροιστή, δύο συγκριτών (θεωρείται ότι ο συγκριτής τεσσάρων αποτελείται από δύο στάδια συγκριτών ανά δύο) και μιας επιλογής από τα 4 πιθανά. Θεωρώντας την καθυστέρηση του πολυπλέκτη αμελητέα και στις δύο περιπτώσεις καθώς και την καθυστέρηση του αθροιστή ίση με αυτή του συγκριτή, πρόκειται για μια αύξηση της καθυστέρησης κατά 50% και δεδομένου ότι σε κάθε κύκλο υπολογίζονται 2 bit της εξόδου, το throughput αυξάνεται κατά 33% (σε σχέση με την απλή acs radix 2 αρχιτεκτονική). Αυτό είναι βέβαια μια ασαφής προσέγγιση που δεν λαμβάνει εκτός των άλλων υπ όψιν την καθυστέρηση που εισέρχεται λόγω του αυξημένου fanout και routing των σημάτων. CSA αρχιτεκτονική Προκειμένου να αυξηθεί περαιτέρω το throughput πρέπει η radix 4 αρχιτεκτονική να συγκριθεί με την ταχύτερη radix 2 αρχιτεκτονική, αυτή που υλοποιεί την compare-select-add λογική. Κάθε κόμβος έχει ως είσοδο 4 πιθανά path metrics και αντίστοιχα στην έξοδο άλλα 4. Η αρχιτεκτονική μετασχηματίζεται όπως φαίνεται στο Σχ. 5-6. 33

Path 0 Path 1 Path 2 Path 3 Branch 0 < Decision new Path 0 Branch 1 new Path 1 Branch 2 new Path 2 Branch 3 Σχ. 5-6 Radix 4 csa αρχιτεκτονική new Path 3 Παρατηρείται ότι σε αυτή την αρχιτεκτονική, το υλικό έχει αυξηθεί εκθετικά σε σχέση με την απλή radix 2 αρχιτεκτονική. Από 4 αθροιστές που απαιτούσε η compare select add αρχιτεκτονική για την υλοποίηση ενός κόμβου, αυτή η αρχιτεκτονική χρειάζεται 16. Το κρίσιμο μονοπάτι σε αυτή την περίπτωση είναι η καθυστέρηση σύγκρισης των 4 πιθανών Path metrics που ισοδυναμεί κατά προσέγγιση με την καθυστέρηση δύο αθροίσεων. Συνεπώς το κύκλωμα έχει το ίδιο throughput με την radix 2 csa αρχιτεκτονική και το πρόβλημα βρίσκεται στην καθυστέρηση της σύγκρισης των 4 πιθανών path metrics. Σύγκριση path metrics Λύση στην αδυναμία της radix 4 compare-select-add αρχιτεκτονικής να αυξήσει το throughput μπορεί να δοθεί μέσω της βελτιστοποίησης της σύγκρισης των τεσσάρων path metrics. Αντί της κλασσικής προσέγγισης της σύγκρισης ανά δύο σε δύο στάδια, μπορεί να γίνει σύγκριση ανά δύο όλων των πιθανών συνδυασμών των 34

Βελτιώσεις Χρονισμού path metric και το αποτέλεσμα της σύγκρισης να προκύψει μετά από λογική επεξεργασία των επιμέρους αποτελεσμάτων των συγκρίσεων. Path 0 Path 1 Path 2 Path 3 < Path 0 Path 1 Path 2 Path 3 < < < Decision < < Decision < < < Σχ. 5-7 Παράθεση μεθόδων σύγκρισης τεσσάρων metrics Με αυτόν τον τρόπο, η καθυστέρηση της σύγκρισης των τεσσάρων path metric μειώνεται στην καθυστέρηση της σύγκρισης 2 path metric και την πρόσθεση καθυστέρηση της επιπλέον λογικής. Το κρίσιμο μονοπάτι έχει μειωθεί κατά την καθυστέρηση μιας σύγκρισης που ήταν σημαντικό τμήμα αυτού. Χρησιμοποιώντας τον συγκριτή αυτού του τύπου, επιτυγχάνεται διπλασιασμός του throughput είτε συγκρίνονται οι acs είτε οι csa αρχιτεκτονικές. Ο διπλασιασμός είναι βέβαια μια υπερεκτίμηση της αύξησης καθώς δεν έχουν ληφθεί υπ όψιν οι καθυστερήσεις τις επιπλέον λογικής καθώς ή η καθυστέρηση του μεγαλύτερου πολυπλέκτη ή όπως αναφέρθηκε προηγουμένως, η αύξηση του fanout. Radix 8 Με την ίδια λογική που μετατράπηκε η radix 2 αρχιτεκτονική σε radix 4, μπορούν να προκύψουν αρχιτεκτονικές μεγαλύτερων radix. Στη radix 8 αρχιτεκτονική υπολογίζονται 3 bit εξόδου ανά κύκλο και κάθε κόμβος της μονάδας path metric unit υπολογίζει τις πράξεις που αντιστοιχούν σε τρεις στήλες του διαγράμματος Trellis. 35

Η αύξηση του throughput που αναμένεται είναι τριπλάσια σε σχέση με τη radix 2 αρχιτεκτονική. Όμως οι πρόσθετες καθυστερήσεις που εισέρχονται στο κύκλωμα περιορίζουν αυτή την αύξηση η οποία στην πραγματικότητα είναι πολύ μικρότερη. Η επιλογή τέτοιων αρχιτεκτονικών όμως έχει, όπως έχει ήδη περιγραφεί, μεγάλο αντίκτυπο στο υλικό που απαιτείται μερικά τμήματα του οποίου αυξάνονται εκθετικά. 36

6 ΣΥΓΚΡΙΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΩΝ ΔΙΑΦΟΡΕΤΙΚΩΝ RADIX Στο κεφάλαιο αυτό θα παρατεθούν οι συγκρίσεις υλικού και throughput μεταξύ των αρχιτεκτονικών που περιγράφηκαν στα προηγούμενα κεφάλαια. Οι μετρήσεις έχουν γίνει με το εργαλείο Design Compiler της Synopsys με βιβλιοθήκη 90nm. Οι μετρήσεις που αφορούν BER (bit error rate) έγιναν σε FPGA της Xilinx της οικογένειας Virtex 7. Ικανότητα διόρθωσης λαθών Για την ικανότητα διόρθωσης λαθών, το κύκλωμα συγκρίθηκε με θεωρητικό μοντέλο καθώς και με το μοντέλο του Matlab για τον συνελικτικό αποκωδικοποιητή. Για την υλοποίηση των μετρήσεων στο FPGA χρησιμοποιήθηκε κύκλωμα προσομοίωσης καναλιού λευκού θορύβου με δυνατότητα μεταβολής του SNR. Στο πλαίσιο ανάπτυξης και επιβεβαίωσης των κυκλωμάτων αναπτύχθηκε επίσης bit true μοντέλο σε γλώσσα C το οποίο είχε πανομοιότυπα αποτελέσματα σε το RTL μοντέλο του κυκλώματος. BER συναρτήσει SNR μεταξύ των διαφορετικών μοντέλων Στο Σχ. 6-1 συγκρίνονται από άποψης BER οι δύο αρχιτεκτονικές (radix 2 και radix 4). Για τη σύγκριση χρησιμοποιήθηκαν τα bit true μοντέλα των αρχιτεκτονικών που αναπτύχτηκαν τα οποία έχουν ίδια συμπεριφορά με τα κυκλώματα που σχεδιάστηκαν. 37

Σχ. 6-1 Σύγκριση BER μεταξύ radix 2 και radix 4 Όπως είναι αναμενόμενο, οι δύο αρχιτεκτονικές ταυτίζονται από άποψης διόρθωσης λαθών. Οι καμπύλες του BER είναι συνεχώς κάτω από το θεωρητικό μέγιστο εκτός από την περιοχή των μεγαλύτερων SNR. Το φαινόμενο αυτό οφείλεται στον κβαντισμό των LLR εισόδου του αποκωδικοποιητή καθώς οι τιμές τους είναι συνεχώς αυξανόμενες όσο αυξάνεται το SNR. Στη συνέχεια, στο Σχ. 6-2 συγκρίνεται η απόκριση του bit true μοντέλου και του αντίστοιχου RTL μοντέλου για την radix 2 αρχιτεκτονική. Οι συμπεριφορές των δύο ταυτίζονται και οι τυχόν μικροδιαφορές οφείλονται στα διαφορετικά πειράματα που έγιναν για την κάθε μέτρηση. Για την επαλήθευση της ταυτοσημίας των δύο μοντέλων συγκρίθηκαν οι αποκρίσεις των μοντέλων για ίδια διανύσματα εισόδου σε επίπεδο bit. BER συναρτήσει SNR για διαφορετικές μεθόδους υπολογισμού της εξόδου Οι προηγούμενες μετρήσεις έχουν γίνει για επαρκώς μεγάλο traceback length (tb) ώστε να έχουν συγκλίνει όλα τα μονοπάτια. Προκειμένου να ελεγχθεί η περίπτωση μη σύγκλισης των μονοπατιών, έγιναν μετρήσεις με ένα Traceback τυπικού μήκους (96). Στο Σχ. 6-3 συγκρίνεται το BER δύο διαφορετικών εκδόσεων της radix 2 αρχιτεκτονικής με τη μόνη διαφορά στον τρόπο υπολογισμού της εξόδου. Το Traceback είναι μεν αρκετά μεγάλο, αλλά όχι τόσο ώστε να εξασφαλίζει ότι όλα τα μονοπάτια συγκλίνουν. Επίσης οι μετρήσεις έχουν γίνει για coderate 5/6 ώστε να γίνονται περισσότερα λάθη ώστε να γίνει η σύγκριση. Στην πρώτη περίπτωση (κόκκινη καμπύλη) εφαρμόζεται η πιο απλή υλοποίηση όπου θεωρείται ότι όλα τα μονοπάτια έχουν συγκλίνει και διαλέγεται τυχαία η έξοδος ενός από αυτά. Στη 38

Σύγκριση Αρχιτεκτονικών διαφορετικών radix δεύτερη περίπτωση (πράσινη καμπύλη) υπολογίζεται η πλειοψηφία των τιμών της εξόδου όπως έχει περιγραφεί σε προηγούμενο κεφάλαιο. Σχ. 6-2 Σύγκριση bit true - RTL μοντέλου Σχ. 6-3 Σύγκριση BER με εφαρμογή ή μη πλειοψηφίας Παρατηρείται μια βελτίωση της τάξης του 0.2dB μεταξύ των δύο καμπυλών και αφορά τις περιπτώσεις όπου δεν είχαν συγκλίνει όλα τα μονοπάτια και η πρώτη μέθοδος είχε επιλέξει λάθος αποτέλεσμα. 39

Προκειμένου να διερευνηθούν περαιτέρω οι μέθοδοι υπολογισμού της εξόδου, έγιναν μετρήσεις με πολύ μικρό Traceback length (24). Ο αλγόριθμος Viterbi περιγράφει τη διαδικασία του traceback, ως την προς τα πίσω ανάκτηση της ακολουθίας από το τέλος του πακέτου. Μια τέτοια μέθοδος δεν έχει όμως πρακτική εφαρμογή. Οι μέθοδοι υπολογισμού της εξόδου που περιγράφηκαν στο αντίστοιχο κεφάλαιο είναι προσεγγίσεις του τρόπου που υποδεικνύει ο αλγόριθμος. Στο Σχ. 6-4 συγκρίνονται η μέθοδος του traceback ανά τμήματα μήκους traceback length που εφαρμόζει η συνάρτηση που υλοποιεί τον αποκωδικοποιητή στο Matlab με τη μέθοδο της πλειοψηφίας. Οι δύο αυτές μέθοδοι συγκρίνονται επίσης με τη μέθοδο επιλογής της εξόδου από τον κόμβο που αντιστοιχεί στην κατάσταση με το ελάχιστο path metric, όπως έχει περιγραφεί σε προηγούμενο κεφάλαιο. Σχ. 6-4 Σύγκριση μεθόδων υπολογισμού εξόδου Παρατηρείται λοιπόν ότι σε τόσο μικρά traceback length η προσέγγιση υπολογισμού της πλειοψηφίας έχει χειρότερη απόδοση από πλευράς BER. Το matlab που υλοποιεί τη μέθοδο του traceback από την κατάσταση με το μικρότερο path metric ανά πλαίσιο μήκους traceback length έχει καλύτερη απόδοση αλλά χειρότερη από το ιδανικό κατά 0.3 db. Τέλος, η μέθοδος επιλογής από την κατάσταση με τον ελάχιστο path metric έχει την καλύτερη απόδοση με απόσταση <0.1dB από το ιδανικό ακόμα και σε τόσο μικρό traceback length. Σύγκριση χρονισμού και επιφάνειας Οι παραλλαγές των αρχιτεκτονικών που περιγράφηκαν στα προηγούμενα κεφάλαια είχαν στόχο να βελτιώσουν τους χρονισμούς των κυκλωμάτων για την επίτευξη υψηλότερου throughput. Μεταξύ των διαφορετικών παραλλάγων των κυρίως 40

Σύγκριση Αρχιτεκτονικών διαφορετικών radix αρχιτεκτονικών (radix 2, radix 4, radix 8) συγκρίνονται αυτές με το υψηλότερο throughput. Τα αποτελέσματα είναι εκτιμήσεις των εργαλείων της Synopsys και αποτελούν εκτιμήσεις που δίνουν ωστόσο μια καθαρή εικόνα περί των trade-off μεταξύ των αρχιτεκτονικών. Στο Σχ. 6-5 φαίνεται το μέγιστο throughput που επιτυγχάνεται για τις τρεις αρχιτεκτονικές. Όσο αυξάνεται το radix της αρχιτεκτονικής, επιτυγχάνεται ταυτόχρονα και μεγαλύτερο throughput. Όμως το overhead που προστίθεται λόγω των επιπλέον κυκλωμάτων αλλά και του μεγαλύτερο fanout και routing των καλωδίων θέτει όριο στην αύξηση του throughput. Σημειώνεται ότι θέτοντας στο εργαλείο πιο αυστηρό χρονικό περιορισμό τελικά το κρίσιμο μονοπάτι από τη μονάδα path metric unit, βρίσκεται στη μονάδα του register exchange η οποία έχει και το μεγαλύτερο fanout. Σχ. 6-5 Σύγκριση μέγιστου επιτεύξιμου throughput Η αντίστοιχη αύξηση του υλικού μεταξύ των αρχιτεκτονικών έχει εκθετική αύξηση όπως έχει ήδη φανεί κατά την περιγραφή των αρχιτεκτονικών. Αυτό φαίνεται και στο Σχ. 6-6. Η αύξηση της επιφάνειας που απαιτείται αυξάνεται με μεγαλύτερο από διπλάσιο ρυθμό μεταξύ των αρχιτεκτονικών. Για την καλύτερη εποπτεία της σχέσης μεταξύ επιφάνειας και throughput παρατίθεται το Σχ. 6-7 όπου φαίνεται η επιφάνεια που καλύπτει το παραγόμενο από το εργαλείο κύκλωμα για την επίτευξη του συγκεκριμένου throughput. 41