ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τµήµα Ηλεκτρονικών Μηχανικών & Μηχανικών Η/Υ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Επίδοση επαναληπτικών (Turbo) κωδίκων σε δίαυλο κινητών επικοινωνιών Κωνσταντίνος Κωνσταντινίδης Επιβλέπων : Καθηγητής Α. Μαράς Επιτροπή : Καθηγητής Μ. Πατεράκης Καθηγητής Ν. Σιδηρόπουλος Χανιά, Ιούνιος 2002
Στους γονείς µου
Ευχαριστίες Θα ήθελα στο σηµείο αυτό να ευχαριστήσω και να εκφράσω την εκτίµησή µου στον επιβλέποντα καθηγητή κ. Ανδρέα Μαρά, για την ενδιαφέρουσα εργασία την οποία µου ανέθεσε, καθώς επίσης για τη βοήθεια που µου παρείχε καθ όλη τη διάρκεια της προσπάθειας να εκπονηθεί αυτή η διπλωµατική εργασία και για την υποµονή που επέδειξε στις δυσκολίες που παρουσιάστηκαν. Ακόµη, θα ήθελα να εκφράσω τις ευχαριστίες µου στον καθηγητή του Τοµέα Τηλεπικοινωνιών κ. Μιχάλη Πατεράκη, ο οποίος µέσα από τα µαθήµατά του µου κίνησε το ενδιαφέρον για τον ραγδαία αναπτυσσόµενο και πανταχού παρόντα εφαρµοζόµενο τοµέα των τηλεπικοινωνιών. Επίσης, θα ήθελα να ευχαριστήσω όλους αυτούς, φίλους, συγγενείς, συµφοιτητές και άλλους, οι οποίοι µε τον τρόπο τους µου συµπαραστάθηκαν στο να διεκπεραιώσω αυτή την εργασία, αλλά και γενικότερα µε βοήθησαν καθ όλη τη διάρκεια της θητείας µου στο Πολυτεχνείο Κρήτης.
ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ 1 ΚΕΦΑΛΑΙΟ 1 ο :ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ 3 1.1 Βασικά στοιχεία ενός ψηφιακού τηλεπικοινωνιακού συστήµατος 3 1.2 Τύποι Κωδίκων ιαύλου (Types of Channel Codes) 5 1.3 Ο θόρυβος σε τηλεπικοινωνιακά συστήµατα 6 1.4 Λευκός θόρυβος 8 1.5 ιάλειψη κατά Rayleigh 10 1.6 Ψηφιακή µετάδοση σε πολύοδα κανάλια µε διαλείψεις 11 ΚΕΦΑΛΑΙΟ 2 ο : ΕΠΑΝΑΛΗΠΤΙΚΟΣ ΚΩ ΙΚΟΠΟΙΗΤΗΣ (TURBO ENCODER) 14 2.1 Επαναληπτικός κωδικοποιητής (Turbo Encoder) 14 2.2 Αναδροµικοί Συστηµατικοί Συνελικτικοί Κώδικες (Recursive Systematic 15 Convolutional Codes RSC) 2.3 Interleaver 19 2.3.1 Ορθογώνιος ή Rectangular Interleaver 19 2.3.2 Ελικοειδής ή Helical Interleaver 20 2.3.3 Τυχαίος ή Pseudo-Random Interleaver 21 2.4 Output puncturing 21 2.5 Παράδειγµα κωδικοποίησης επαναληπτικού (turbo) κώδικα 22 ΚΕΦΑΛΑΙΟ 3 ο : ΕΠΑΝΑΛΗΠΤΙΚΟΣ ΑΠΟΚΩ ΙΚΟΠΟΙΗΤΗΣ (TURBO DECODER) 26 3.1 Αλγόριθµος αποκωδικοποίησης 26 3.2 Soft Channel Outputs 27 3.3 Επαναληπτικός (turbo) αποκωδικοποιητής SOVA 29 3.4 Υλοποίηση και λειτουργία του επαναληπτικού αποκωδικοποιητή 30 3.5 Παράδειγµα αποκωδικοποίησης επαναληπτικού (turbo) κώδικα 32
ΚΕΦΑΛΑΙΟ 4 ο : ΠΡΟΣΟΜΟΙΩΣΕΙΣ 40 4.1 ιαδικασία προσοµοιώσεων 40 4.2 Αποτελέσµατα προσοµοιώσεων 41 4.3 Ανάλυση προσοµοιώσεων 54 ΚΕΦΑΛΑΙΟ 5 ο : ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΜΕΛΛΟΝΤΙΚΕΣ ΕΠΕΚΤΑΣΕΙΣ 57 5.1 Συµπεράσµατα 57 5.2 Βελτιώσεις και µελλοντικές επεκτάσεις 59 ΠΑΡΑΡΤΗΜΑ Α: ΠΙΝΑΚΕΣ ΣΥΝΤΟΜΟΓΡΑΦΙΩΝ ΚΑΙ ΣΥΜΒΟΛΙΣΜΩΝ 60 ΠΑΡΑΡΤΗΜΑ Β: ΒΙΒΛΙΟΓΡΑΦΙΑ 61
ΕΙΣΑΓΩΓΗ Παρακολουθώντας τις εξελίξεις της εποχής παρατηρούµε µια γενική τάση, που γίνεται ολοένα και πιο έντονη. Οι ανάγκες για επικοινωνία βαίνουν αυξανόµενες και σε µια σωρεία κατευθύνσεων. Ο χρήστης ενός τηλεπικοινωνιακού δικτύου έχει µεγάλες απαιτήσεις ως προς την ποιότητα των υπηρεσιών, για τις οποίες εξάλλου πληρώνει και οι οποίες µπορούν εν συντοµία να µεταφραστούν ως εξής: Απαίτηση για γρήγορη µεταφορά δεδοµένων. Απαίτηση για αξιόπιστη µεταφορά δεδοµένων. Αυτές οι δύο απαιτήσεις αντικατοπτρίζουν µερικές από τις καθηµερινές ανάγκες ενός καταναλωτή. Για παράδειγµα ο χρήστης ενός κινητού τηλεφώνου επιθυµεί την αδιάλειπτη επικοινωνία µε τους άλλους και την επικοινωνία µε υψηλή πιστότητα. Ας σταθούµε στην δεύτερη απαίτηση, της αξιόπιστης µεταφοράς δεδοµένων. Το 1948, ο Claude E Shannon τοπθέτισε τα θεµέλια των σύγχρονων ψηφιακών τηλεπικοινωνιών. ηµοσίευσε ένα άρθρο όπου ισχυριζόταν ότι κάθε τηλεπικοινωνιακό κανάλι έχει µια µέγιστη χωρητικότητα για αξιόπιστη µετάδοση πληροφορίας. Μεταδίδοντας µε ρυθµό χαµηλότερης της χωρητικότητας µε χρήση ενός «καλού» κώδικα δεδοµένων, µπορεί να επιτευχθεί αξιόπιστη επικοινωνία. Αντιστρόφως, µεταδίδοντας µε µεγαλύτερο ρυθµό της χωρητικότητας τότε ακόµα και µε τον «καλύτερο» κώδικα η επικοινωνία θα παραµείνει αναξιόπιστη. Τα παραπάνω έδωσαν το έναυσµα στις σύγχρονες ψηφιακές τηλεπικοινωνίες για την αναζήτηση «καλών» κωδίκων, που σήµανε την γέννηση των κωδίκων αποσφαλµάτωσης (errorcorrecting code (ECC)). Μετά από περίπου 45 χρόνια από την δηµοσίευση της θεωρίας του Shannon ερευνητές κατόρθωσαν να επιτύχουν αποτελέσµατα αρκετά ικανοποιητικά. Συγκεκριµένα το 1993 µια πολύ αποτελεσµατική σχεδίαση κωδικοποίησης καναλιού αναπτύχθηκε από τους Claude Berrou, Alain Glavieux και Punja Thitimajshima, η οποία χρησιµοποιεί ιδέες βασισµένες σε block και δικτυωτούς (trellis) κώδικες. Αυτή η νέα σχεδίαση ονοµάστηκε επαναληπτικοί κώδικες ή turbo codes. Οι κώδικες αυτοί
µπορούσαν να αποδώσουν αρκετά κοντά στο όριο του Shannon για κανάλι µε προσθετικό λευκό Gaussian θόρυβο (AWGN), σε σχέση µε άλλες τεχνικές ίδιας πολυπλοκότητας οι οποίες απείχαν αρκετά από το προαναφερθέντα όριο. Οι επαναληπτικοί κώδικες χρησιµοποιούν απλούς συνελικτικούς κωδικοποιητές διαχωριζόµενους από αναδιατασόµενες βαθµίδες (interleaving stages) όπου βασική ιδέα είναι ο πρώτος κωδικοποιητής να εισάγει τα σύµβολα πληροφορίας κατευθείαν, ενώ ο επόµενος ή οι επόµενοι, µέσω του Interleaver, να εισάγουνε τα δυαδικά ψηφία µε µια αναδιάταξη. Συνήθως οι κωδικοποιητές είναι Recursive Systematic encoders οι οποίοι είναι ίδιοι µεταξύ τους και καθιστούν τον turbo κώδικα συµµετρικό. Η αποκωδικοποίηση των turbo κωδίκων πραγµατοποιείται αποκωδικοποιώντας, συνήθως µε τον αλγόριθµο χαλαρών αποφάσεων Viterbi (Soft-Output Viterbi Algorithm(SOVA)), τους συνελικτικούς κωδικοποιητές ξεχωριστά σε µια αλυσιδωτή σειρά όπου στον τελευταίο αποκωδικοποιητή από την µια πλευρά εξάγονται µε harddecision τα αποκωδικοποιηµένα bits στην έξοδο και από την άλλη πλευρά εξάγει extrinsic πληροφορία την οποία εισάγει ο πρώτος αποκωδικοποιητής ως προηγούµενη πληροφορία. Αυτό έχει σαν αποτέλεσµα να ξεκινάει µια επαναληπτική διαδικασία πάνω στην οποία βασίζεται η θεωρία των turbo κωδίκων. Σύµφωνα µε τα παραπάνω, σκοπός της παρούσας εργασίας είναι η ανάλυση της επίδοσης των επαναληπτικών κωδίκων ή κωδίκων turbo σε διαύλους κινητών επικοινωνιών, όπου εκτός του θορύβου (AWGN) υπάρχει και διάλειψη κατά Rayleigh. Στο κεφάλαιο 1 παρατίθενται γενικές πληροφορίες για ένα τυπικό τηλεπικοινωνιακό σύστηµα και γίνεται αναφορά για τον συγκεκριµένο τηλεπικοινωνιακό δίαυλο. Στο κεφάλαιο 2 περιγράφεται λεπτοµερώς η δοµή και λειτουργία του turbo κωδικοποιητή. Επίσης, περιγράφονται οι διάφοροι Interleavers που χρησιµοποιούνται, καθώς και τα πλεονεκτήµατα ή µειονεκτήµατα που καθένας από αυτούς έχει. Στο κεφάλαιο 3 περιγράφεται µε κάθε λεπτοµέρεια η λειτουργία του turbo αποκωδικοποιητή. Στο κεφάλαιο 4 παρουσιάζονται και αναλύονται τα αποτελέσµατα των προσοµοιώσεων. Τέλος, στο κεφάλαιο 5 συνοψίζονται τα βασικά συµπεράσµατα από την παρούσα διατριβή και αναφέρονται πιθανές βελτιώσεις και µελλοντικές επεκτάσεις.
ΚΕΦΑΛΑΙΟ 1 ο ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ 1.1 Βασικά στοιχεία ενός ψηφιακού τηλεπικοινωνιακού συστήµατος Όπως ήδη αναφέρθηκε, η µεγάλη αύξηση στην ανταλλαγή πληροφοριών είναι πλέον ένα κύριο χαρακτηριστικό της καθηµερινότητας. Η µετάδοση πληροφοριών από την πηγή πληροφορίας ως τον προορισµό πρέπει να πραγµατοποιείται µε τέτοιο τρόπο, ώστε η ποιότητα της λαµβανόµενης πληροφορίας να είναι όσο το δυνατόν πλησιέστερη στην ποιότητα της µεταδιδόµενης πληροφορίας. Τα µέρη από τα οποία αποτελείται ένα τυπικό ψηφιακό τηλεπικοινωνιακό σύστηµα είναι: ψηφιακή πηγή (digital source). κωδικοποιητή πηγής (source encoder). κωδικοποιητής διαύλου (channel encoder). διαµορφωτής (modulator). δίαυλος (channel). αποδιαµορφωτής (demodulator). αποκωδικοποιητής διαύλου (channel decoder). αποκωδικοποιητής πηγής (source decoder). digital sink. Η εικόνα 1.1 παρουσιάζει το λειτουργικό διάγραµµα και τα βασικά στοιχεία ενός ψηφιακού τηλεπικοινωνιακού συστήµατος. Η έξοδος της πηγής δεδοµένων µπορεί να είναι είτε ένα αναλογικό σήµα, όπως φωνή ή video, είτε ένα ψηφιακό σήµα όπως η έξοδος ενός τηλετύπου, το οποίο είναι διακριτό στο χρόνο και ανήκει σε µετρήσιµο σύνολο, όσον αφορά τους χαρακτήρες στην έξοδό του. Σε ένα ψηφιακό τηλεπικοινωνιακό σύστηµα τα παραγόµενα µηνύµατα µετατρέπονται σε ακολουθίες δυαδικών ψηφιακών συµβόλων, τα οποία είναι γνωστά σαν bits. Ο ιδανικότερος τρόπος να αναπαραστήσουµε την έξοδο της πηγής θα ήταν µε όσο το δυνατόν λιγότερα δυαδικά ψηφία γίνεται, οδηγούµενοι έτσι σε όσο το δυνατόν λιγότερο ή και καθόλου πλεονασµό. Η διαδικασία της αποτελεσµατικής µετατροπής της εξόδου της
αναλογικής ή ψηφιακής πηγής σε ακολουθία δυαδικών ψηφίων ονοµάζεται κωδικοποίηση πηγής ή συµπίεση δεδοµένων ( source encoding or data compression ). Η ακολουθία των δυαδικών ψηφίων από τον κωδικοποιητή πηγής (source encoder) µεταβιβάζεται στον κωδικοποιητή καναλιού (channel encoder). Σκοπός ύπαρξης του τελευταίου είναι να εισάγει µε ελεγχόµενο τρόπο κάποια πλεονάζοντα στοιχεία στην ακολουθία δυαδικής πληροφορίας έτσι ώστε τα δεδοµένα να προφυλάσσονται κατά των διαταραχών που δηµιουργούνται από το τηλεπικοινωνιακό κανάλι και που µπορεί να οδηγήσουν σε παρερµηνεία του µεταδιδόµενου µηνύµατος στον αποκωδικοποιητή. Το τελευταίο επιτυγχάνεται µε τους κώδικες ελέγχου µετάδοσης σφάλµατος ή error-correcting codes (ECC). Συγκεκριµένα, στο ψηφιακό σύστηµα µετάδοσης, ο έλεγχος σφαλµάτων επιτυγχάνεται µε την χρήση ενός κωδικοποιητή καναλιού στο µεταδότη και µε έναν αντίστοιχο αποκωδικοποιητή στο δέκτη, όπως θα δούµε παρακάτω. Υπάρχουν δύο βασικές διαφορετικές τεχνικές, διαθέσιµες για τον έλεγχο µετάδοσης σφαλµάτων. Η πρώτη τεχνική, που εµπλέκει τα σχήµατα κωδικοποίησης, αναφέρεται σαν πρόσω διόρθωση σφάλµατος (Forward Error Correction). Σε µια διάταξη FEC εξαρτιόµαστε από την κωδικοποίηση για να επιτύχουµε διόρθωση σφάλµατος. Επιπλέον, για να επιτευχθούν χαµηλοί ρυθµοί σφάλµατος, προστίθενται πλεονάζοντα δυαδικά ψηφία. Ουσιαστικά, η µέθοδος αυτή πραγµατοποιείται στον αποκωδικοποιητή. Η δεύτερη µορφή ονοµάζεται αίτηση αυτόµατης επανάληψης (Automatic Repeat request). Στο σύστηµα αυτό, ο δέκτης δεν καλείται να διορθώσει, αλλά µόνο να ανιχνεύσει σφάλµατα. Όταν ανιχνευθεί σφάλµα σε µια κωδική λέξη, ο δέκτης δίνει σήµα στον ποµπό και η λέξη αναµεταδίδεται. Εφόσον συµβεί αυτό, σε ένα ARQ σύστηµα πρέπει να προβλεφθεί ένα κανάλι ανάδρασης. Έτσι, η πρόσθετη πολυπλοκότητα συµβάλλει στην αξιοπιστία της λαµβανόµενης πληροφορίας και στην πιστότητα του δέκτη. Η δυαδική ακολουθία µεταβιβάζεται στη συνέχεια στο ψηφιακό διαµορφωτή (digital modulator), ο οποίος είναι υπεύθυνος για την αλληλεπίδραση (interface) µε το φυσικό µέσο. Καθώς σχεδόν όλα τα τηλεπικοινωνιακά κανάλια που συναντώνται στην πράξη είναι ικανά για τη διάδοση ηλεκτρικών σηµάτων, ο πρωταρχικός σκοπός του ψηφιακού διαµορφωτή είναι η αντιστοίχηση των δυαδικών ακολουθιών πληροφορίας σε κυµατοµορφές. Το τηλεπικοινωνιακό κανάλι είναι το φυσικό µέσο το οποίο χρησιµοποιείται για να σταλούν σήµατα από τον ποµπό στο δέκτη. Στις ασύρµατες τηλεπικοινωνίες
είναι συνήθως η ατµόσφαιρα. Πάντως, όποιο και αν είναι το χρησιµοποιούµενο µέσο, το µεταδιδόµενο σήµα µεταβάλλεται από µια ποικιλία διαφόρων µηχανισµών, όπως ο θερµικός θόρυβος από τα ηλεκτρονικά εξαρτήµατα, ο θόρυβος ανάφλεξης από τα αυτοκίνητα, ο ατµοσφαιρικός θόρυβος, οι κεραυνοί, κτλ. Στο άλλο άκρο του συστήµατος ο ψηφιακός αποκωδικοποιητής (digital demodulator) επεξεργάζεται το λαµβανόµενο σήµα, αναλύοντάς το σε µια ακολουθία αριθµών που αναπαριστά τα µεταδιδόµενα σύµβολα. Στη συνέχεια, ο αποκωδικοποιητής καναλιού (channel decoder) προσπαθεί να ανακατασκευάσει αυτήν την ακολουθία στην αυθεντική ακολουθία δεδοµένων, βάσει της γνώσης που ήδη κατέχει για την υπάρχουσα κωδικοποίηση. Data Source Source Encoder Channel Encoder Digital Modulator Transmitter Noise Channel Data Sink Source Decoder Channel Decoder Digital Demodulator Receiver Εικόνα 1.1: Γενική µορφή ψηφιακού τηλεπικοινωνιακού συστήµατος 1.2 Τύποι Κωδίκων ιαύλου (Types of Channel Codes) Η κωδικοποίηση καναλιού (channel coding) χρησιµοποιείται συχνά στις ψηφιακές τηλεπικοινωνίες, για να προστατέψει την ψηφιακή πληροφορία από το θόρυβο και την παρεµβολή και µειώνει τον αριθµό των εσφαλµένων δυαδικών ψηφίων. Η κωδικοποίηση καναλιού πραγµατοποιείται µε την προσθήκη
πλεοναζόντων δυαδικών ψηφίων στην µεταδιδόµενη ροή πληροφορίας. Αυτά τα επιπλέον δυαδικά ψηφία επιτρέπουν την ανίχνευση και διόρθωση σφαλµάτων δυαδικών ψηφίων στην λαµβανόµενη ροή δεδοµένων και παρέχουν πιο αξιόπιστη µετάδοση πληροφορίας. Το αναµενόµενο κόστος, όταν χρησιµοποιούµε κωδικοποίηση καναλιού για την προστασία της πληροφορίας, είναι αφενός η µείωση στο βαθµό δεδοµένων και αφετέρου η αύξηση του εύρους ζώνης. Υπάρχουν δύο κύριοι τύποι κωδικοποίησης καναλιού, οι κώδικες οµάδας (block codes) και οι συνελικτικοί κώδικες (convolutional codes). Οι Block κώδικες χρησιµοποιούνται είτε για την ανίχνευση είτε για τη διόρθωση σφαλµάτων. Οι Block κώδικες δέχονται ένα block από k δυαδικά ψηφία πληροφορίας και παράγουν ένα block από n κωδικοποιηµένα δυαδικά ψηφία. Σύµφωνα µε διάφορους κανόνες, n k πλεονάζοντα δυαδικά ψηφία προστίθενται σε k δυαδικά ψηφία πληροφορίας για να σχηµατίσουν τα n κωδικοποιηµένα δυαδικά ψηφία. Συνήθως, αυτοί οι κώδικες αναφέρονται ως (n,k) block κώδικες. Οι πιο γνωστοί βlock κώδικες που χρησιµοποιούνται είναι οι Hamming κώδικες, Golay κώδικες, BCH κώδικες, και τέλος οι Reed-Solomon κώδικες. Οι συνελικτικοί κώδικες είναι οι πιο ευρέως χρησιµοποιούµενοι κώδικες καναλιού σε πρακτικά τηλεπικοινωνιακά συστήµατα. Οι συνελικτικοί κώδικες µετατρέπουν µια ολόκληρη ροή δεδοµένων σε µία και µοναδική κωδικοποιηµένη λέξη. Τα κωδικοποιηµένα δυαδικά ψηφία εξαρτώνται όχι µόνο από τα k δυαδικά ψηφία εισόδου αλλά και από τα προηγούµενα δυαδικά ψηφία εισόδου. Η κύρια στρατηγική αποκωδικοποίησης των συνελικτικών κώδικων βασίζεται στον ευρέως γνωστό αλγόριθµο Viterbi. 1.3 Ο θόρυβος σε τηλεπικοινωνιακά συστήµατα Ο όρος θόρυβος αναφέρεται σε ανεπιθύµητα ηλεκτρικά σήµατα, τα οποία είναι παρόντα στα ηλεκτρικά και ηλεκτρονικά συστήµατα. Η παρουσία θορύβου, προστιθέµενου σε ένα σήµα πληροφορίας, τείνει να καλύψει ή να µεταβάλλει τη µορφή του σήµατος, περιορίζει την ικανότητα του δέκτη να πάρει σωστές αποφάσεις για τα λαµβανόµενα σύµβολα και ως συνέπεια συντελεί στη µείωση του ρυθµού µετάδοσης δεδοµένων. Ο θόρυβος πηγάζει από ποικιλία πηγών, είτε αυτές είναι τεχνητές είτε φυσικές. Στις τεχνητές µπορούµε να αναφέρουµε το θόρυβο ανάφλεξης
από τα µπουζί των αυτοκινήτων, τις ταλαντώσεις κυκλωµάτων, κτλ. Στο «φυσικό» θόρυβο περιλαµβάνονται ο θερµικός θόρυβος κυκλωµάτων, οι µεταβολές της ατµόσφαιρας, ο διαγαλαξιακός θόρυβος, κτλ. Μπορούµε να περιγράψουµε το θερµικό θόρυβο ως Gaussian τυχαία διαδικασία µηδενικής µέσης τιµής. Μια γκαουσιανή διαδικασία, n(t), είναι µια τυχαία συνάρτηση, της οποίας η τιµή, σε κάθε χρονική στιγµή t, χαρακτηρίζεται στατιστικά από µια γκαουσιανή συνάρτηση πυκνότητας πιθανότητας: 2 1 n 2 σ 1 p(n) = e (1.1) σ 2π 2 όπου σ είναι η διασπορά της κανονικής τυχαίας µεταβλητής Ν. Η κανονικοποιηµένη συνάρτηση πυκνότητας βρίσκεται θέτοντας τη διασπορά ίση µε τη µονάδα, δηλαδή σ 2 = 1 και φαίνεται στην παρακάτω εικόνα: Εικόνα 1.2: Γκαουσιανή Κατανοµή Η γκαουσιανή κατανοµή συχνά χρησιµοποιείται ως µοντέλο θορύβου για διάφορα συστήµατα λόγω του κεντρικού οριακού θεωρήµατος, το οποίο αναφέρει ότι κάτω από πολύ γενικές συνθήκες η κατανοµή πιθανότητας (probability distribution) του
αθροίσµατος στατιστικώς ανεξάρτητων τυχαίων µεταβλητών προσεγγίζει τη γκαουσιανή όσο ο αριθµός, ή πλήθος, αυτών τείνει στο άπειρο. Συνεπώς, ακόµη και εάν ανεξάρτητοι µηχανισµοί παραγωγής θορύβου έχουν διαφορετικές κατανοµές, το ολικό άθροισµα αυτών ακολουθεί, ασυµπτοτικά όµως, τη γκαουσιανή κατανοµή. 1.4 Λευκός θόρυβος Το κυρίαρχο φασµατικό χαρακτηριστικό του θερµικού θορύβου είναι ότι η φασµατική πυκνότητα ισχύος είναι η ίδια για όλες τις συχνότητες που µας ενδιαφέρουν. Με άλλα λόγια, ο θερµικός θόρυβος εναποθέτει ίσα ποσά ισχύος θορύβου σε όλες τις συχνότητες. Έτσι, το φάσµα ισχύος µπορεί να δοθεί από τη σχέση : G N W ( f ) (1.2) n = 0 2 Hz όπου ο διαιρέτης 2 συµπεριλαµβάνεται για να τονίσει ότι η (f ) G n είναι πυκνότητα φάσµατος ισχύος «διπλής όψεως». Όταν η ισχύς του θορύβου έχει τέτοια οµοιόµορφη φασµατική πυκνότητα, τον ονοµάζουµε «λευκό θόρυβο». Το επίθετο «λευκός» χρησιµοποιείται σε παραλληλισµό µε το λευκό φως, το οποίο περιέχει ίσα ποσά όλων των συχνοτήτων στο ορατό φάσµα της ηλεκτροµαγνητικής ακτινοβολίας. Η συνάρτηση αυτοσυσχέτισης του λευκού θορύβου δίδεται από τον αντίστροφο µετασχηµατισµό Fourier της πυκνότητας ισχύος : R n ( τ) = F 1 N 0 { G (f )} = δ( τ) n 2 (1.3) Έτσι, η αυτοσυσχέτιση του λευκού θορύβου είναι µια δέλτα συνάρτηση µε βάρος τον παράγοντα N 0 και ορίζεται µόνο στο σηµείο τ = 0. Αξίζει να σηµειωθεί ότι 2 R n (t) = 0 για τ 0 και άρα δυο διαφορετικά δείγµατα του λευκού θορύβου, όσο κοντά και να βρίσκονται, είναι ασυσχέτιστα. Η µέση ισχύς του λευκού θορύβου είναι άπειρη γιατί το εύρος ζώνης του είναι άπειρο. Αυτό άλλωστε φαίνεται και από την οαρακάτω εξίσωση N 0 Pn = df = (1.4) 2
G n (f ) R n ( τ) N 0 2 N 0 2 f τ 0 0 Εικόνα 1.3: Πυκνότητα φάσµατος ισχύος λευκού γκαουσιανού θορύβου Παρόλο που η αφαιρετική έννοια του λευκού θορύβου είναι χρήσιµη, καµία διαδικασία θορύβου δεν µπορεί να είναι καθαρά λευκή, αλλά συνήθως έτσι προσεγγίζεται. Η «συνάρτηση» δέλτα στη συνάρτηση αυτοσυσχέτισης σηµαίνει ότι το σήµα θορύβου είναι πλήρως ασυσχέτιστο µε το µετατοπισµένο στο χρόνο είδωλό του για τ > 0. Αφού η διαδικασία θορύβου είναι γκαουσιανή και τα δείγµατα ασυσχέτιστα, θα είναι επιπλέον και ανεξάρτητα. Το αποτέλεσµα είναι ότι ο θόρυβος επηρεάζει κάθε σύµβολο ξεχωριστά. Ο λευκός θόρυβος είναι µια εξιδανικευµένη διαδικασία µε φασµατική πυκνότητα ισχύος διπλής όψεως ίση µε Συνεπώς, N 0 2 για όλο το φάσµα των συχνοτήτων. σ 2 = df =. N 0 2 Παρόλο που η παραπάνω διασπορά έχει τιµή ίση µε το άπειρο, η διασπορά του φιλτραρισµένου Πρόσθετου Λευκού Γκαουσιανού Θορύβου (Additive White Gaussian Noise AWGN) είναι πεπερασµένη. Αποδεικνύεται λοιπόν ότι στην έξοδο του συσχετιστή (correlator) η διασπορά είναι όπου ψ j σ (t) είναι µια ορθογώνια συνιστώσα. T 2 N0 = var( nj ) = E n( t) ψ j( t) dt = 0 2, (1.4) 2
y(t)=ax(t)+n(t) x(t) A = α(t) n(t) Εικόνα 1.4 : Block diagram of a AWGN channel model for a transmission system Στην παραπάνω εικόνα απεικονίζεται το διάγραµµα ενός µοντέλου AWGN καναλιού. Σε κανάλι µε AWGN, τα δυαδικά ψηφία επηρεάζονται από το θόρυβο σύµφωνα µε την παρακάτω σχέση: y k = ax k + n k όπου n k είναι ο θόρυβος και a = 1 για AWGN. 1.5 ιάλειψη κατά Rayleigh Για πολλά κανάλια, το µοντέλο καναλιού µε πρόσθετο λευκό Gaussian θόρυβο (AWGN) µε σταθερό θόρυβο είναι κατάλληλο. Εν τούτοις, σε πολλά ασύρµατα περιβάλλοντα (wireless environments), το κανάλι είναι συχνά ασταθές λόγο διάλειψης (fading) που παρουσιάζεται στο µεταδιδόµενο σήµα. Η διάλειψη είναι αποτέλεσµα του φυσικού µέσου του καναλιού, όπου το channel gain είναι µια τυχαία διαδικασία που περιγράφεται από µια συνάρτηση πυκνότητας πιθανότητας και µια συνάρτηση αυτοσυσχέτισης. y(t)=ax(t)+n(t) x(t) A = α(t) n(t) Εικόνα 1.5: Block diagram of Rayleigh fading channel model for a transmission system Στην περίπτωση όπου έχουµε διάλειψη κατά Rayleigh, η κωδικοποιηµένη λέξη θα επηρεαστεί τόσο από τον θόρυβο, όσο και από την χρονικά µεταβαλλόµενη διάλειψη σε κινητά ράδιο-κανάλια σύµφωνα µε την παρακάτω σχέση:
y k = a k x k + n k όπου n k είναι ο θόρυβος και a k µια τυχαία µεταβλητή µε Rayleigh κατανοµή. Από την θεωρία γνωρίζουµε ότι η περιβάλλουσα µηδενικής µέσης τιµής Gaussian θορύβου κατανέµεται σύµφωνα µε την κατανοµή Rayleigh. 1.6 Ψηφιακή µετάδοση σε πολύοδα κανάλια µε διαλείψεις Μερικές από τις περιπτώσεις πολύοδων καναλιών, όπως συνήθως εµφανίζονται στον χρήστη, περιγράφονται παρακάτω : Μετάδοση σήµατος µέσω της ιονόσφαιρας Η µετάδοση µέσω της ατµόσφαιρας, όπως φαίνεται στην εικόνα 1.6, οδηγεί στην «κύρτωση» ή διάθλαση των µεταδιδόµενων σηµάτων από την ιονόσφαιρα, η οποία αποτελείται από διάφορα φορτισµένα στρώµατα, τα οποία βρίσκονται σε υψόµετρο από 30 έως 250 µίλια από την επιφάνεια της γης. Ως συνέπεια της ύπαρξης αυτών των στρωµάτων τα σήµατα καταφθάνουν στο δέκτη από διαφορετικά µονοπάτια, φαινόµενο το οποίο ονοµάζεται πολύοδη διάδοση (multipath propagation). Αυτά τα σήµατα έχουν διαφορετικές φάσεις, µε αποτέλεσµα κάποιες φορές να προστίθενται καταστροφικά, οδηγώντας στο φαινόµενο που περιγράφεται από τον όρο διάλειψη σήµατος. ionoshere Earth ΕΙΚΟΝΑ 1.6 Κυψελωτές επικοινωνίες. Στην κινητή τηλεφωνία, στην µετάδοση για παράδειγµα από τον σταθµό βάσης σε ένα αυτοκίνητο, το µεταδιδόµενο σήµα συνήθως αντανακλάται από γειτονικά κτίρια, λόφους, δέντρα και άλλα αντικείµενα. Έτσι, παρατηρούνται σήµατα που λαµβάνονται από διαφορετικές κατευθύνσεις και µε διαφορετικές καθυστερήσεις. ηλαδή, έχουµε το ίδιο
φαινόµενο µε την προηγούµενη περίπτωση. Το ίδιο ισχύει και για την επικοινωνία από το αυτοκίνητο στο σταθµό βάσης, αφού µια βασική αρχή είναι ότι το κανάλι συµπεριφέρεται κατά τον ίδιο τρόπο και προς τις δυο κατευθύνσεις. ΕΙΚΟΝΑ 1.7 Μικροκυµατική µετάδοση µε οπτική επαφή. Στην περίπτωση µετάδοσης µε οπτική επαφή, οι κεραίες λήψης και µετάδοσης βρίσκονται σε ψηλά σηµεία. Είναι πιθανόν όµως να υπάρξουν αντανακλάσεις από το γήινο έδαφος, και έτσι να έχουµε ένα ή και περισσότερα µονοπάτια µέσω των οποίων φθάνει το σήµα. Για αυτό το λόγο χρησιµοποιούνται κατευθυντικές κεραίες και άλλες µέθοδοι. Direct path secondary path ΕΙΚΟΝΑ 1.8
Ραδιοεπικοινωνία µεταξύ αεροπλάνων. Και σε αυτήν την περίπτωση µπορεί να υφίστανται δευτερεύοντα µονοπάτια λόγω αντανακλάσεων από το έδαφος. Direct path secondary path Earth ΕΙΚΟΝΑ 1.9
ΚΕΦΑΛΑΙΟ 2 ο ΕΠΑΝΑΛΗΠΤΙΚΟΣ ΚΩ ΙΚΟΠΟΙΗΤΗΣ (TURBO ENCODER) 2.1 Επαναληπτικός κωδικοποιητής (Turbo Encoder) Η δοµή ενός επαναληπτικού κωδικοποιητή (turbo encoder) παρουσιάζεται στο σχήµα 2.1. Στην γενική περίπτωση, ο κωδικοποιητής αποτελείται από τα εξής δύο µέρη: από τα µη-κωδικοποιηµένη δυαδικά ψηφία της πληροφορίας και µια οµάδα parity ακολουθιών που παράγονται περνώντας µια αναδιατεταγµένη (interleaved) εκδοχή δυαδικών ψηφίων της πληροφορίας διαµέσου των συνελικτικών κωδικοποιητών. Οι κωδικοποιητές ως επί το πλείστον χρησιµοποιούν Αναδροµικούς Συστηµατικούς Κωδικοποιητές (Recursive Systematic Εncoders). Επίσης, στους περισσότερους επαναληπτικούς κώδικες, οι κωδικοποιητές που χρησιµοποιούνται είναι ίδιοι (καθιστώντας τους επαναληπτικούς κώδικες συµµετρικούς), ενώ χρησιµοποιούνται δυο σύνολα από parity δυαδικά ψηφία, εκ των οποίων το ένα παράγεται από τη µη-αναδιαταγµένη ακολουθία δεδοµένων και το άλλο παράγεται από την αναδιαταγµένη ακολουθία. Αυτή η δόµηση παρουσιάζεται στο σχήµα 2.2. Τα parity δυαδικά ψηφία συνήθως υφίστανται µια αναδιάταξη που καλείται puncturing µε σκοπό να αυξηθεί ο ρυθµός κωδικοποίησης σε ½. Data Source Systematic Bits Encoder (1) Parity Bits(1) Interleaver (1).... Interleaver (n) Encoder (2).... Encoder (n+1) Parity Bits(2).... Parity Bits(n+1) Σχήµα 2.1: Ένας τυπικός επαναληπτικός κωδικοποιητής.
Data Source Systematic Bits Encoder (1) Parity Bits(1) Interleaver (1) Encoder (2) Parity Bits(2) Σχήµα 2.2:Two-component επαναληπτικός κωδικοποιητής. 2.2 Αναδροµικοί Συστηµατικοί Συνελικτικοί Κώδικες (Recursive Systematic Convolutional Codes RSC) Οι συνελικτικοί κωδικοποιητές θεωρούνται ως µηχανή πεπερασµένων καταστάσεων (Finite State Machine (FSM)). Επίσης, η υλοποίηση της παρούσας διπλωµατικής εργασίας επικεντρώνεται µόνο σε συµµετρικούς επαναληπτικούς κώδικες (επαναληπτικούς κώδικες µε πανοµοιότυπους component codes). Η παραπάνω διαδικασία απλουστεύει την διαχείριση της δικτυωτής αποπεράτωσης (trellis coding) για τους αναδροµικούς συστηµατικούς συνελικτικούς (RSC) κώδικες. Ο αναδροµικός συστηµατικός συνελικτικός κωδικοποιητής προέρχεται από τον µη-αναδροµικό συστηµατικό συνελικτικό κωδικοποιητή, τροφοδοτώντας προς τα πίσω (στην είσοδο) µία από τις κωδικοποιηµένες εξόδους. Το σχήµα 2.3 παρουσιάζει ένα συνηθισµένο συνελικτικό κωδικοποιητή. Ο συνελικτικός κωδικοποιητής αναπαριστάται από µία ακολουθία γεννητριών g 1 = [1 1 1] και g 2 = [1 0 1], ενώ ισοδύναµα σε πιο συµπαγή µορφή αναπαριστάται ως G = [g 1, g 2 ]. Ο RSC κωδικοποιητής, που παράγεται από τον παραπάνω συνελικτικό g 2 κωδικοποιητή, µπορεί να αναπαριστάται από την σχέση G = [1, g 1 ] όπου η πρώτη έξοδος g 1 επανατροφοδοτείται στην είσοδο. Στην παραπάνω σχέση το 1 δηλώνει τη συστηµατική έξοδο (systematic output), το g 2 δηλώνει την προς τα εµπρός ανάδραση στην έξοδο, και τέλος το g 1 είναι η ανάδραση στην είσοδο του RSC κωδικοποιητή. Στο σχήµα 2.3 παρουσιάζεται ο τελικός RSC κωδικοποιητής.
Σχήµα 2.3: Ένας συνηθισµένος συνελικτικός κωδικοποιητής. Σχήµα 2.4: RSC κωδικοποιητής ο οποίος προέρχεται από τον κωδικοποιητή του σχήµατος 2.3. Οι Αναδροµικοί Συστηµατικοί Συνελικτικοί κώδικες περιγράφονται, όπως αναφέρθηκε, από ένα πίνακα, ο οποίος αποτελείται από γεννήτριες πολυωνύµων (generator polynomials). Στην περίπτωση ενός RSC κώδικα µε k εισόδους και n εξόδους, έχουµε στην είσοδο k καταχωρητές καθυστέρησης. Η είσοδος σε κάθε καταχωρητή παράγεται από την παρούσα είσοδο και µια κατάσταση του καταχωρητή, σύµφωνα µε ένα πολυώνυµο ανάδρασης. Οι γεννήτριες πολυωνύµων στην περίπτωση αυτή δίνονται από την ακόλουθη σχέση:
G( D) g1, k+ 1( D) g1, n( D) 1 0 L 0 L g1,1( D) g1,1( D) g2, k 1( D) g2, n( D) + 0 1 L 0 L g ( D) g ( D) M M O M M O M gkk, + 1 ( D) gkn, ( D) 0 0 L 1 L gkk, ( D) gkk, ( D) = 2,2 2,2 (2.1) όπου g x,x (D) είναι το πολυώνυµο ανάδρασης για είσοδο x [1,k]. Έστω ένα πολυώνυµο ανάδρασης τάξης v: v ( x) i g x,x (D)= g i D (2.2) i= 0 Θεωρώντας τώρα έναν κωδικοποιητή µε µία µόνο είσοδο (k = 1), η σύνδεση ανάδρασης που εµφανίζεται στο σχήµα 2.5 δίνεται από την παρακάτω σχέση: v (1) i g 1,1 (D)= g i D (2.3) i= 0 Το ψηφίο που αποθηκεύεται στο πρώτο στοιχείο καθυστέρησης, a t, δίνεται από την σχέση: v (1) a t = d t + g i a t i (mod 2) (2.4) i= 1 όπου d t είναι το ψηφίο δεδοµένου που περνάει στον κωδικοποιητή την στιγµή t. Ανακατατάσσοντας την προηγούµενη εξίσωση έχουµε: v (1) d t = g i a t i (mod 2) (2.5) i= 0 όπου g 0 = 1, αφού η εξωτερική είσοδος είναι πάντα συνδεδεµένη. Τελικώς, για να τερµατιστεί ο κωδικοποιητής, ο όρος a t πρέπει να κρατηθεί ίσος µε µηδέν για v χρονικά βήµατα. Έτσι, η είσοδος πρέπει να είναι: v (1) d t = g i a t i (mod 2) (2.6) i= 1 για της τιµές του t που καθορίζουν την περιοχή ουράς (tail region), αφού εκεί a t = 0.
Σχήµα 2.5: ιάγραµµα ενός RSC κωδικοποιητή µε ανάδραση. Στο σηµείο αυτό θα παρουσιαστεί ένα παράδειγµα RSC κωδικοποιητή για ευκολότερη κατανόηση. Στο σχήµα 2.6 αναπαριστάνεται ένας απλός RSC κωδικοποιητής µε g 2 G = [1, g ], όπου g 1 1 = [1 1] και g 2 = [1 0]. Σχήµα 2.6: RSC κωδικοποιητής r=1/2 µε ακολουθίες εισόδου και εξόδου. Το σχήµα 2.6 δείχνει το διάγραµµα καταστάσεων του RSC κωδικοποιητή που χρησιµοποιείται στο παράδειγµα. Σχήµα 2.7: ιάγραµµα καταστάσεων του RSC κωδικοποιητή του σχήµατος 2.6.
2.3 Interleaver Ο interleaver είναι µια συνάρτηση µίας προς µίας αντιστοιχίας, η οποία αντιστοιχίζει µια ακολουθία r δυαδικών ψηφίων σε µια άλλη ακολουθία r δυαδικών ψηφίων. Όπως χρησιµοποιείται στους επαναληπτικούς κώδικες, ο interleaver ερµηνεύει την αντιστοίχιση αυτή µε το να µεταθέτει τα δυαδικά ψηφία της εισόδου σύµφωνα µε την παρακάτω σχέση: όπου x r 1 0 x~ t = x (t) λ, t [0,r-1] (2.7) 1 = x0, x 1,..., x r-1 είναι η ακολουθία εισόδου, ~ r x 0 = ~ x 0, ~ x 1,..., ~ x r 1 είναι η αναδιατεταγµένη ακολουθία, και λ (t) είναι η συνάρτηση µετάθεσης. Για να εφαρµοστεί στους επαναληπτικούς κώδικες, ο interleaver/ de-interleaver πρέπει να ικανοποιεί τις παρακάτω προϋποθέσεις: Μέσα στον επαναληπτικό κωδικοποιητή, ο interleaver θα πρέπει να επιστρέφει την αναδιαταγµένη ακολουθία που αντιστοιχεί στην δοθείσα ακολουθία εισόδου, όπως ορίζεται από την σχέση (2.7). Στον αποκωδικοποιητή, ο interleaver θα πρέπει να αντιστοιχεί τις πιθανότητες που σχετίζονται µε την ακολουθία εισόδου στην αντίστοιχη θέση στην ακολουθία εισόδου. Η σχεδίαση ενός interleaver είναι ένας σηµαντικός παράγοντας, ο οποίος καθορίζει την καλή απόδοση των επαναληπτικών κωδίκων. Στα επόµενα µέρη παρουσιάζονται τα είδη interleavers που χρησιµοποιήθηκαν. 2.3.1 Ορθογώνιος ή Rectangular Interleaver Ο απλούστερος interleaver είναι ένας αποθηκευτής στον οποίο δεδοµένα γράφονται γραµµή προς γραµµή και διαβάζονται στήλη προς στήλη. Αυτός ο τύπος interleaver ονοµάζεται row-column, ορθογώνιος ή rectangular interleaver και ανήκει στην κατηγορία των οµαδικών ή block interleavers. Για παράδειγµα, τα δεδοµένα µπορούν να γραφούν όπως δείχνει ο παρακάτω πίνακας.
x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 x 16 x 17 x 18 x 19 x 20 x 21 Πίνακας 1: Μνήµη όπου γράφονται δεδοµένα γραµµή προς γραµµή. Η διαδικασία αναδιάταξης συνεχίζεται µε την ανάγνωση δεδοµένων όπως φαίνεται στο πίνακα 2. x 1 x 4 x 7 x 10 x 13 x 16 x 19 x 2 x 5 x 8 x 11 x 14......... Πίνακας 2: Από την µνήµη διαβάζονται τα δεδοµένα στήλη προς στήλη. 2.3.2 Ελικοειδής ή Helical Interleaver Αυτός ο τύπος interleaver είναι µια τροποποίηση του ορθογώνιου ή rectangular interleaver. Σε ένα helical interleaver µε R γραµµές και C στήλες, τα δεδοµένα γράφονται γραµµή προς γραµµή όπως φαίνεται στον πίνακα 1. Η ανάγνωση των δεδοµένων γίνεται διαγωνίως, ξεκινώντας από την τελευταία κάτω-αριστερή εγγραφή. Στον πίνακα 3 παρουσιάζεται σχηµατικά η προαναφερθείσα διαδικασία. x 19 x 17 x 15 x 10 x 8 x 6 x 1 x 20 x 18 x 13 x 11 x 9......... Πίνακας 3: Από την µνήµη διαβάζονται τα δεδοµένα διαγωνίως.
2.3.3 Τυχαίος ή Pseudo-Random Interleaver Ο pseudo-random interleaver ορίζεται από µια γεννήτρια τυχαίων αριθµών ή από ένα look-up table, όπου όλοι οι ακέραιοι αριθµοί από 1 µέχρι N (όπου N το µέγεθος του block στο οποίο γίνεται αναδιάταξη) µπορούν να παραχθούν µε µια τυχαία συνέλιξη. Η παραπάνω προσέγγιση µπορεί να οδηγήσει σε καλούς ή κακούς interleavers, ειδικά στην περίπτωση όπου έχουµε µικρούς σε µέγεθος interleavers. Το µόνο κριτήριο για την επιλογή µεταξύ αυτών βασίζεται σε υπολογιστικές προσοµοιώσεις. Από τις προσοµοιώσεις που έχουν πραγµατοποιηθεί οι τυχαίοι interleavers παρουσιάζουν καλές αποδόσεις τις οποίες θα παρατηρήσουµε αναλυτικότερα στο Κεφάλαιο 4. Σε γενικές γραµµές όµως, φαίνεται να µην υπάρχει αναλυτικό κριτήριο για τους interleavers αυτούς. Στο σχήµα 2.8 παρουσιάζεται ένας τυχαίος ή pseudo-random interleaver µε µήκος 8, δηλαδή L=8. Σχήµα 2.8: Ένας τυχαίος ή pseudo-random interleaver µε L=8. 2.4 Output puncturing. Σχήµα 2.9: Puncturing output, Code Rate 1/2
Στην έξοδο του κωδικοποιητή συνηθίζεται να εφαρµόζεται η µέθοδος puncturing µε σκοπό να αυξηθεί ο ρυθµός κωδικοποίησης στο 1 / 2. Στο σχήµα 2.9 παρουσιάζεται το block διάγραµµα, όπου εφαρµόζεται η παραπάνω µέθοδος. Για έναν επαναληπτικό κώδικα µε βαθµό 1/2 ο οποίος έχει υποστεί puncturing, αφενός η πρώτη ροή εξόδου (first output stream) είναι η ίδια ροή εισόδου (input stream) µε την προσθήκη επιπρόσθετων δυαδικών ψηφίων. Αφετέρου, η δεύτερη ροή εξόδου παράγεται µε την πολυπλεξία µεταξύ των δυαδικών ψηφίων στην έξοδο του κάθε RSC κωδικοποιητή. 2.5 Παράδειγµα κωδικοποίησης επαναληπτικού (turbo) κώδικα Στο µέρος αυτό θα παρουσιάσουµε ένα παράδειγµα λειτουργίας κωδικοποίησης επαναληπτικών κωδίκων για ευκολότερη κατανόηση. Επειδή οι επαναληπτικοί (turbo) κώδικες είναι γραµµικοί block κώδικες, η εφαρµογή της κωδικοποίησης µπορεί να εκτιµηθεί ως ένας modulo-2 matrix πολλαπλασιασµός ενός διανύσµατος πληροφορίας µε έναν πίνακα γεννήτριας. Στο παράδειγµα θα περιγραφεί η κωδικοποίηση µιας ακολουθίας µε την βοήθεια πινάκων. Κωδικοποίηση Θεωρούµε ότι έχουµε τον εξής πίνακα γεννήτριας g = [1 1 1 ; 1 0 1] που ως αποτέλεσµα έχει την δηµιουργία του παρακάτω κωδικοποιητή: Σχήµα 2.10: RSC κωδικοποιητής µε generator matrix g = [1 1 1;1 0 1]
Ο κωδικοποιητής έχει µήκος 3 µε µνήµη µόνο 2. Ο αλγόριθµος κωδικοποίησης είναι όµοιος µε αυτόν ενός συνελικτικού κωδικοποιητή έτσι ώστε να παραχθεί ένας block κώδικας. Χρησιµοποιώντας παράλληλα συνδεδεµένους συνελικτικούς κωδικοποιητές, είναι επιθυµητό για τους κωδικοποιητές να ξεκινούν και να τερµατίζουν σε µηδενική κατάσταση. Για να εξασφαλιστεί αυτό, χρειάζονται επιπρόσθετα δυαδικά ψηφία ώστε να καθαρίσει η µνήµη του κωδικοποιητή. Αυτό συνεπάγεται ότι ο αριθµός των επιπρόσθετων δυαδικών ψηφίων που χρειάζονται να είναι ίσος µε την µνήµη του κωδικοποιητή. Στο συγκεκριµένο παράδειγµα, αυτό σηµαίνει ότι χρειάζονται 2 επιπλέον δυαδικά ψηφία. Ας θεωρήσουµε ότι έχουµε ως είσοδο u = [1 0 1]. Ο πίνακας καταστάσεων που παράγεται, παρουσιάζεται παρακάτω: Input u k State T 1 State T 2 Feedback X Output c k 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 Πίνακας 4: Πίνακας καταστάσεων του RSC κωδικοποιητή. Βλέπουµε ότι σύµφωνα µε των πίνακα, η έξοδος είναι c = [1 1 0 1 1]. Interleaving Ο τύπος interleaver που χρησιµοποιήθηκε στο παράδειγµα είναι ένας pseudorandom interleaver, ο οποίος περιγράφεται από τον πίνακα 5. Η συνάρτηση του interleaver α(l) σηµαίνει ότι το l th δυαδικό ψηφίο θα πάρει την θέση του α(l) th δυαδικού ψηφίου του αρχικού κώδικα. Ο παραπάνω πίνακας µπορεί επίσης να αντιπροσωπευτεί από ένα πίνακα α = [2 5 4 1 3]. Έτσι, µε είσοδο u = [1 0 1 (0 1)], η αναδιαταγµένη µορφή της εισόδου θα είναι η έξοδος [0 1 0 1 1].
l α(l) 1 2 2 5 3 4 4 1 5 3 Πίνακας 5: Πίνακας στον οποίο φαίνεται η αναδιάταξη των δυαδικών ψηφίων, το l th δυαδικό ψηφίο θα πάρει την θέση του a(l) th δυαδικού ψηφίου του αρχικού κώδικα. Πολυπλεξία και Output Puncturing Στο σχήµα 2.10 φαίνεται το τελικό διάγραµµα του επαναληπτικού κωδικοποιητή, που αποτελείται από δύο RSC κωδικοποιητές, τον interleaver και τον πολυπλέκτη. Σχήµα 2.11: Τελικό διάγραµµα επαναληπτικού (turbo) κωδικοποιητή. Σύµφωνα µε το διάγραµµα του σχήµατος 2.11, για είσοδο u = [1 0 1 0 1] η πρώτη ροή εξόδου x 0 είναι η ίδια ροή εισόδου u µε επιπρόσθετα δυαδικά ψηφία. Τη διαδικασία αυτή την ονοµάζουµε padding και είναι ίση µε [1 0 1 0 1]. Η έξοδος του
κωδικοποιητή 1, c 1, είναι ίση µε [1 1 0 1 1], ενώ η είσοδος του κωδικοποιητή 2 είναι [0 1 0 1 1] και η έξοδος, c 2, είναι ίση µε [0 1 1 0 0]. Η έξοδος του επαναληπτικού κωδικοποιητή είναι το αποτέλεσµα της πολυπλεξίας των αντίστοιχων τριών παραπάνω κωδικών λέξεων. Υπάρχουν δύο διαφορετικοί τρόποι για να επιτύχουµε πολυπλεξία: µε puncturing στην έξοδο ή χωρίς. Για την περίπτωση που δεν έχουµε στην έξοδο puncturing, ο κώδικας εξόδου απλά υφίσταται πολυπλεξία µε το να παίρνει ένα δυαδικό ψηφίο από κάθε ροή εναλλακτικά. Το αποτέλεσµα είναι να παραχθεί ο παρακάτω κώδικας: x 0 : [1 0 1 0 1] c 1 : [1 1 0 1 1] => y: [1 1 0 0 1 1 1 0 1 0 1 0 1 1 0] c 2 : [0 1 1 0 0] Εάν στην έξοδο υλοποιηθεί η µέθοδος puncturing, τότε οι έξοδοι των κωδικοποιητών θα υποστούν πολυπλεξία µεταξύ τους επιτυγχάνοντας µε αυτό το τρόπο ρυθµό κωδικοποίησης ίσο µε 1 / 2. Συνεπώς, πολυπλέκοντας τις εξόδους c 1 και c 2 των δυο κωδικοποιητών θα έχουµε: c 1 : [1 1 0 1 1] c 2 : [0 1 1 0 0] => x 1 : [1 1 0 0 1] Τελικά, η έξοδος του επαναληπτικού (turbo) κωδικοποιητή παράγεται µε την πολυπλεξία των δεδοµένων x 0 και την ροή x 1 των κωδικοποιητών, που έχει είδη υποστεί πολυπλεξία. ηλαδή, x 0 : [1 0 1 0 1] x 1 : [1 1 0 0 1] => y: [1 1 0 1 1 0 0 0 1 1]
ΚΕΦΑΛΑΙΟ 3 ο ΕΠΑΝΑΛΗΠΤΙΚΟΣ ΑΠΟΚΩ ΙΚΟΠΟΙΗΤΗΣ (TURBO DECODER) Επαναληπτικός αποκωδικοποιητής (Turbo Decoder) 3.1 Αλγόριθµος αποκωδικοποίησης Μια καλή ιδιότητα των συνελικτικών κωδικοποιητών είναι το γεγονός ότι η αποκωδικοποίηση µπορεί να πραγµατοποιηθεί µε διάφορους τρόπους. Υπάρχουν δύο πρωτεύουσες στρατηγικές αποκωδικοποίησης των επαναληπτικών κωδίκων. Οι στρατηγικές αυτές βασίζονται στον αλγόριθµο maximum a posterior (MAP) και στον αλγόριθµο χαλαρών εξόδων Viterbi (soft output Viterbi algorithm, SOVA). Ανεξάρτητα από τον αλγόριθµο που εφαρµόζεται, ο επαναληπτικός αποκωδικοποιητής χρησιµοποιεί δύο κωδικοποιητές, µε τον ίδιο αλγόριθµο, οι οποίοι λειτουργούν µε επαναληπτικό τρόπο. Ο αλγόριθµος SOVA είναι µια µορφή εκτίµησης ακολουθιών µέγιστης πιθανότητας (maximum likelihood sequence estimation (MLSE)). Αυτό σηµαίνει ότι, όταν ένα σύστηµα λαµβάνει µία πλήρη ακολουθία από δυαδικά ψηφία, η MLSE µέθοδος διαλέγει την πιο κατάλληλη ακολουθία, η οποία στάλθηκε βάσει κάποιου κριτηρίου. Στην διπλωµατική αυτή χρησιµοποιείται ο αλγόριθµος SOVA επειδή είναι λιγότερο πολύπλοκος από τον MAP αλγόριθµο, ενώ παρέχει συγκρίσιµα αποτελέσµατα στην απόδοση. Επίσης, ο αλγόριθµος SOVA είναι µία προέκταση του αλγορίθµου Viterbi, το οποίο σηµαίνει πλεονέκτηµα στην υλοποίηση σε σχέση µε τον αλγόριθµο MAP. Ο επαναληπτικός (turbo) κώδικας αποτελείται από δύο ή περισσότερους όµοιους συνελικτικούς τύπου RSC κωδικοποιητές, διαχωρισµένους από έναν ή περισσότερους interleavers, αντίστοιχα. Όπως έχει αναφερθεί, ο interleaver αναδιατάσσει την ακολουθία πληροφορίας του δεύτερου κωδικοποιητή, µε σκοπό να αποσυσχετίσει τις εισόδους των δύο κωδικοποιητών. Εφόσον υπάρχουν δύο κωδικοποιηµένες ακολουθίες στον αποκωδικοποιητή, η εφαρµογή της αποκωδικοποίησης ξεκινά µε την αποκωδικοποίηση πρώτα µίας ακολουθίας, ώστε να υπάρχει η πρώτη εκτίµηση της ακολουθίας πληροφορίας. Αυτό απαιτεί από τον αποκωδικοποιητή να χρησιµοποιεί είσοδο χαλαρών αποφάσεων (soft decision) και να παράγει ένα είδος χαλαρής εξόδου (soft output) όπως θα δούµε και παρακάτω. Όπως έχει ήδη αναφερθεί, η βασική ιδέα στην οποία στηρίζονται οι επαναληπτικοί (turbo) κώδικες είναι η επαναληπτική αποκωδικοποίηση. Ο αλγόριθµος αποκωδικοποίησης είναι όµοιος µε εκείνου του αλγόριθµου Viterbi, µε την έννοια ότι παράγει χαλαρές εξόδους. Ενώ ο αλγόριθµος Viterbi εξάγει 0 ή 1 για κάθε εκτιµώµενο δυαδικό ψηφίο, ο αλγόριθµος αποκωδικοποίησης turbo κωδίκων εξάγει µια συνεχόµενη εκτίµηση για κάθε δυαδικό ψηφίο. Στόχος του αποκωδικοποιητή Viterbi είναι να ελαχιστοποιήσει την πιθανότητα σφάλµατος της κωδικοποιηµένης λέξης µε την εύρεση εκτίµησης µέγιστης πιθανοφάνειας της µεταδιδόµενης κωδικοποιηµένης λέξης, ενώ η αποκωδικοποίηση χαλαρών εξόδων προσπαθεί να ελαχιστοποιήσει το σφάλµα δυαδικού ψηφίου µε την εκτίµηση
µεταγενέστερων πιθανοτήτων µεµονωµένων δυαδικών ψηφίων της κωδικοποιηµένης λέξης. Ο επαναληπτικός αποκωδικοποιητής αποτελείται από M στοιχειώδεις αποκωδικοποιητές, έναν για κάθε κωδικοποιητή που υπάρχει στο τµήµα της επαναληπτικής κωδικοποίησης. Κάθε στοιχειώδης αποκωδικοποιητής χρησιµοποιεί τον αλγόριθµο SΟVA ώστε να παράγει µια «χαλαρή» απόφαση για κάθε λαµβανόµενο δυαδικό ψηφίο. Μετά από µία επανάληψη της διαδικασίας αποκωδικοποίησης, κάθε στοιχειώδης αποκωδικοποιητής µοιράζει την χαλαρή απόφαση µε τους άλλους M - 1 στοιχειώδεις αποκωδικοποιητές. Σύµφωνα µε την θεωρία, όσο ο αριθµός των επαναλήψεων τείνει στο άπειρο, τόσο η εκτίµηση στην έξοδο του αποκωδικοποιητή θα τείνει στην a posteriori (MAP) λύση. 3.2 Soft Channel Outputs u Channel Encoder x y u' Channel Channel Decoder Σχήµα 3.1: Μοντέλο ταξινόµησης για SOVA παραγωγή. Από το µοντέλο ταξινόµησης του σχήµατος 3.1, το δυαδικό ψηφίο πληροφορίας u αντιστοιχίζεται στα κωδικοποιηµένα δυαδικά ψηφία x. Στην συνέχεια τα κωδικοποιηµένα δυαδικά ψηφία x µεταδίδοντα µέσω του καναλιού και λαµβάνονται ως y. Από το µοντέλο ταξινόµησης, ο υπό συνθήκη (ως προς τα y) λόγος λογαριθµικής πιθανότητας (log-likelihood ratio) του x υπολογίζεται από την σχέση P( x = + 1 y) L( x y) = ln P( x = 1 y) Χρησιµοποιώντας το θεώρηµα Bayes, ο υπό συνθήκη λόγος λογαριθµικής πιθανότητας είναι ίσος µε p( y x = + 1) P( x = + 1) L ( x y) = ln p( y x = 1) P( x = 1) p( y x = + 1) P( x = + 1) = ln + ln p( y x = 1) P( x = 1) Για µοντέλο καναλιού υποθέτουµε ότι είναι ο δίαυλος σταθερής διάλειψης (flat fading) µε προσθετικό Gaussian θόρυβο. Χρησιµοποιώντας την Gaussian probability density function (pdf), f(z),
2 ( z m) 2 2 1 σ f ( z) = e 2πσ όπου m είναι ο µέσος και σ 2 είναι η διασπορά, µπορεί να δειχθεί ότι p( y x = + 1) e ln = ln p( y x = 1) e = ln Eb 2 ( y a) N0 Eb 2 ( y+ a) N0 e e E b = 4 N Eb 2ay N0 Eb 2ay N0 E όπου b είναι ο λόγος σήµατος προς θόρυβο και a είναι το εύρος διάλειψης (fading N 0 amplitude). Στην περίπτωση που έχουµε Gaussian κανάλι χωρίς διάλειψη a = 1. 0 ay Ο υπό συνθήκη λόγος λογαριθµικής πιθανότητας του x, L(x y), ισούται µε L( x y) = Lc y + L( x) όπου L c ορίζεται να είναι η αξιοπιστία καναλιού (channel reliability) και είναι ίση µε Eb Lc = 4 a N 0 3.3 Επαναληπτικός (turbo) αποκωδικοποιητής SOVA Στον αποκωδικοποιητή, ο αλγόριθµος SOVA κάνει εκτιµήσεις για την ακολουθία εισόδου, χρησιµοποιώντας µία από τις δύο κωδικοποιηµένες ροές που παράγονται από τον επαναληπτικό (turbo) κωδικοποιητή. Το σχήµα 3.2 δείχνει την είσοδο και την έξοδο του SOVA αλγόριθµου. Σχήµα 3.2 Είσοδος και έξοδος του SOVA. Ο αποκωδικοποιητής SOVA εισάγει τις εισόδους L(u) και L c y, όπου L(u) είναι µία προηγούµενη ακολουθία της ακολουθίας πληροφορίας u. Η ακολουθία y είναι η λαµβάνουσα ακολουθία από το κανάλι, η οποία πολλαπλασιάζεται µε L c πού είναι η σταθερά αξιοπιστίας καναλιού για συγκεκριµένο E b /N 0 (λόγος σήµατος προς θόρυβο). Η ακολουθία L(u) παράγεται και προωθείται από τον προηγούµενο αποκωδικοποιητή SOVA. Στην περίπτωση όπου δεν υπάρχει προηγούµενος
αποκωδικοποιητής SOVA, τότε δεν υπάρχουν προηγούµενες τιµές. Έτσι, η ακολουθία L(u) αρχικοποιείται σε µηδενική ακολουθία. Ο αποκωδικοποιητής SOVA παράγει u και L(u ) ως εξόδους, όπου u είναι η εκτιµώµενη ακολουθία πληροφορίας και L(u ) είναι η log-likelihood ratio ( χαλαρή ) ακολουθία. 3.4 Υλοποίηση και λειτουργία του επαναληπτικού αποκωδικοποιητή Ο επαναληπτικός (turbo) αποκωδικοποιητής αποτελείται από δύο συνδεδεµένους σειριακά αποκωδικοποιητές, οι οποίοι χρησιµοποιούν για αποκωδικοποίηση τον αλγόριθµο SOVA. Το σχήµα 3.3 παρουσιάζει την δοµή του επαναληπτικού αποκωδικοποιητή. y1 La2(u') Decoder 1 + - Le1(u') La1(u') - X Int 1 Lc y2,y3 Le2(u') Int 2 Decoder 2 X Deint. + - La2(u') - Lc Deint. Decision Unit u' Σχήµα 3.3 Επαναληπτικός αποκωδικοποιητής SOVA. Ο επαναληπτικός αποκωδικοποιητής επεξεργάζεται τα δυαδικά ψηφία, που λαµβάνει από το κανάλι, βάσει ενός frame. Τα δυαδικά αυτά ψηφία πολλαπλασιάζονται µε έναν συντελεστή που ονοµάζεται channel reliability και είναι ίσος µε 4 E b N 0 a. Στην συνέχεια, τα ψηφία περνούν από τον πολυπλέκτη (demultiplexer) µε σκοπό να µετατραπούν αφενός σε συστηµατική ( systematic ) ροή y 1 και αφετέρου στις δύο ροές parity check y 2 και y 3 των δύο κωδικοποιητών 1 και 2, αντίστοιχα, του επαναληπτικού κωδικοποιητή. Ο αποκωδικοποιητής SOVA παράγει την χαλαρή ή L-value L(u ) για τα εκτιµώµενα δυαδικά ψηφία u. H χαλαρή ή L-value L(u ) µπορεί να αναλυθεί σε τρεις διαφορετικούς όρους. L(u ) = L(u)+y 1 +L e (u ),
όπου, L(u) είναι µία προηγούµενη τιµή και παράγεται από τον προηγούµενο SOVA αποκωδικοποιητή και y 1 είναι η συστηµατική ροή. L e (u ) είναι η τιµή που παράγεται από τον παρών αποκωδικοποιητή SOVA. Η πληροφορία η οποία ανταλλάσσεται µεταξύ των δύο SOVA αποκωδικοποιητών είναι L e (u )= L(u )- L(u)- y 1 Από το σχήµα 3.3 βλέπουµε ότι ο αποκωδικοποιητής SOVA έχει διάταξη κλειστού βρόχου. Σε αυτόν τον βρόχο κάθε αποκωδικοποιητής SOVA εκτιµάει την ακολουθία πληροφορίας, χρησιµοποιώντας διαφορετικές ροές parity check. Επιπλέον, ο επαναληπτικός αποκωδικοποιητής εφαρµόζει επαναληπτική αποκωδικοποίηση ώστε να παρέχει πιο αξιόπιστες εκτιµήσεις από τις δύο διαφορετικές ροές parity check, ελπίζοντας να επιτύχει καλύτερη απόδοση στην αποκωδικοποίηση. Ο αλγόριθµος επαναληπτικής αποκωδικοποίησης για n-οστή επανάληψη περιγράφεται ως εξής: 1. Ο αποκωδικοποιητής SOVA1 εισάγει ακολουθίες y 1 (systematic), y 2 (parity check), και L α2 (u ) και εξάγει ακολουθία L e1 (u ). Για την πρώτη επανάληψη, η ακολουθία L α2 (u ) = 0 επειδή δεν υπάρχει προηγούµενη τιµή διότι ο αποκωδικοποιητής SOVA2 δεν έχει ακόµα εξάγει τιµές. 2. Από την πληροφορία που εξάγει ο αποκωδικοποιητής SOVA1 αφαιρούµε τις ακολουθίες L α2 (u ) και y 1 οπότε έχουµε, L α1 (u ) = L e1 (u ) L α2 (u ) y 1. Στην συνέχεια η ακολουθία πολλαπλασιάζεται µε τον συντελεστή channel reliability ώστε να αντισταθµίσουµε την παραµόρφωση. 3. Οι ακολουθίες y 1 και L α1 (u ) στην συνέχεια αναδιατάσσονται και γίνονται Ι{y 1 } και Ι{ L α1 (u )}. 4. Ο αποκωδικοποιητής SOVA2 εισάγει ακολουθίες Ι{y 1 } (systematic), y 3 (parity check), και Ι{ L α1 (u )} και εξάγει ακολουθίες Ι{L e2 (u )} και. Ι{u }. 5. Από την πληροφορία που εξάγει ο αποκωδικοποιητής SOVA2 αφαιρούµε τις ακολουθίες Ι{L α1 (u )} και Ι{y 1 } οπότε έχουµε, Ι{L e2 (u )} = Ι{L e2 (u )} Ι{ L α1 (u )} Ι{y 1 }. Στην συνέχεια η ακολουθία πολλαπλασιάζεται µε τον συντελεστή channel reliability ώστε να αντισταθµίσουµε την παραµόρφωση. 6. Οι ακολουθίες Ι{L e2 (u )} και Ι{u } τέλος αναδιατάσσονται ξανά, οπότε γίνονται L α2 (u ) και u. Η ακολουθία L e2 (u ) στην συνέχεια τροφοδοτείται πίσω στον αποκωδικοποιητή SOVA1 ως προηγούµενη τιµή για την επόµενη επανάληψη και η ακολουθία u είναι τα εκτιµώµενα δυαδικά ψηφία για την n-οστή επανάληψη. 3.5 Παράδειγµα αποκωδικοποίησης επαναληπτικού (turbo) κώδικα Στο µέρος αυτό θα παρουσιάσουµε ένα παράδειγµα λειτουργίας αποκωδικοποίησης επαναληπτικών κωδίκων για ευκολότερη κατανόηση. Ο SOVA
αποκωδικοποιητής χρησιµοποιεί αλγόριθµο όµοιο µε τον αλγόριθµο Viterbi. Έστω ότι από τον κωδικοποιητή έχουµε την κωδικοποιηµένη έξοδο [1 1 0 1 1 0 0 1 1 1] Υποθέτοντας ότι το κανάλι έχει θόρυβο, µερικά από τα δυαδικά ψηφία θα υποστούν µεταβολή κατά την µετάδοση, οπότε τα λαµβανόµενα δυαδικά ψηφία θα είναι [1 1 1 1 1 0 0 0 1 1] (τα δυαδικά ψηφία που είναι υπογραµµισµένα έχουν µεταδοθεί λάθος) Όπως και ο αλγόριθµος Viterbi, έτσι και ο αποκωδικοποιητής SOVA χρησιµοποιεί µια µηχανή πεπερασµένων καταστάσεων (Finite State Machine (FSM)). Το αυτόµατο αυτό δηµιουργήθηκε από τον πίνακα γεννητριών g = [1 1 1 ; 1 0 1] που συναντήσαµε στο κεφάλαιο 2. Στο αυτόµατο, κάθε δυαδική είσοδος αντιστοιχίζεται µε µία δυαδική έξοδο (η οποία είναι η πλεονάζον έξοδος του κωδικοποιητή). Με την µέθοδο αυτή, έχουµε 2 δυαδικά ψηφία εισόδου για τον αποκωδικοποιητή (την έξοδο δεδοµένων και την πλεονάζουσα έξοδο). Ο αριθµός των καταστάσεων του αυτοµάτου είναι 2 m, όπου m=k-1, µε k το πλάτος του πίνακα γεννήτριας G. Στο σχήµα 3.4 φαίνεται το δικτυωτό (trellis) που δηµιουργήθηκε χρησιµοποιώντας το αυτόµατο. Το δικτυωτό αντιπροσωπεύει όλα τα πιθανά µονοπάτια που τα δεδοµένα εισόδου µπορούν να χρησιµοποιήσουν, βάσει του αυτοµάτου. Σε κάθε κατάσταση συσχετίζουµε µια τιµή που αντιστοιχεί στο βάρος µονοπατιού στην κατάσταση αυτή και επίσης την κατάσταση µε το βάρος που οδηγεί στην παρούσα κατάσταση. 00 00 00 00 00 00 01 01 01 01 01 01 10 10 01 01 01 01 11 11 11 11 11 11 Σχήµα 3.4: ικτυωτό (trellis) διάγραµµα. Για να υπολογίσουµε το βάρος χρησιµοποιούµε τον ακόλουθο αλγόριθµο: Ξεκινάµε από την κατάσταση 00, η οποία έχει µηδενικό βάρος.
Για κάθε κατάσταση του δικτυωτού (trellis) κοιτάµε και τις δυο καταστάσεις που οδηγούν σε αυτήν. Px xx' b Pz Py yy' b' zz' Σχήµα 3.5: Κατάσταση zz και η δύο προηγούµενες καταστάσεις που οδηγούν σε αυτήν. Για να υπολογίσουµε το βάρος του P z πρέπει πρώτα να υπολογίσουµε αν το καλύτερο µονοπάτι περνάει από το P x ή από το P y. Για παράδειγµα, στην περίπτωση P x, κοιτάµε την έξοδο η οποία αντιστοιχίζεται µε είσοδο 0 στην κατάσταση xx. Στην συνέχεια υπολογίζουµε την διαφορά L i µεταξύ της εξόδου αυτής και της i-οστής εισόδου. Αν L i = -1: τότε όλα τα δυαδικά ψηφία είναι λάθος. 0: τότε ένα δυαδικό ψηφίο είναι όµοιο. 1: τότε τα δυο δυαδικά έχουν την σωστή τιµή. Επιπλέον, έχουµε να υπολογίσουµε την προηγούµενη τιµή L p για το i δυαδικό ψηφίο που προέρχεται από τον προηγούµενο αποκωδικοποιητή. L p = 0.5* την προηγούµενη τιµή, αν b = 1. L p = - 0.5* την προηγούµενη τιµή, αν b = 0. Έτσι, αν το βάρος P x είναι µεγαλύτερο από το βάρος P y τότε έχουµε P z = P x + L i + L p και αντιστοιχίζουµε στο zz το xx ως προηγούµενη κατάσταση. Με αυτόν τον τρόπο δηµιουργούµε τα βάρη των καταστάσεων του δικτυωτού. Για τον υπολογισµό της εξόδου µε hard απόφαση (δηλαδή, 0 ή 1) του αποκωδικοποιητή, λαµβάνουµε υπόψη µόνο την κατάσταση µε το υψηλότερο βάρος στο δικτυωτό. Από την κατάσταση αυτή διασχίζουµε το δικτυωτό προς τα πίσω ψάχνοντας κάθε φορά το µεγαλύτερο βάρος και δηµιουργώντας ταυτόχρονα το καλύτερο µονοπάτι (surviving path). Παρακάτω παρουσιάζεται το αυτόµατο που χρησιµοποιείται στο παράδειγµα :
State 1 State 2 Input Output Next State 1 Next State 2 Decoder Input 0 0 0 0 0 0 00 0 0 1 1 1 0 11 0 1 0 0 1 0 00 0 1 1 1 0 0 11 1 0 0 1 1 1 01 1 0 1 0 0 1 10 1 1 0 1 0 1 01 1 1 1 0 1 1 10 Πίνακας 3.1: Το αυτόµατο που χρησιµοποιείται στο παράδειγµα. Στο σχήµα 3.6 φαίνεται το δικτυωτό (trellis) που αντιστοιχεί στο παραπάνω αυτόµατο, όπου µε L σηµειώνονται τα βάρη σε κάθε κατάσταση. Το µονοπάτι που επιβιώνει είναι το [1 0 1 0 1] 00 L = -1 L = -2 L = 1 L = 2 L = 3 0 0 0 0 0 00 00 00 00 00 1 1 1 1 1 1 1 1 1 1 L = 1 L = 1 L = 2 L = 2 01 01 01 01 01 01 0 0 0 0 0 L = -1 L = 0 L = 1 L = 2 1 1 1 1 1 10 10 01 01 01 0 0 0 0 0 L = 3 01 L = 1 L = 2 L = 2 L = 3 0 0 0 0 0 11 11 11 11 11 11 1 1 1 1 1 Original 1 1 0 1 1 0 0 1 1 1 Received 1 1 1 1 1 0 0 0 1 1 Σχήµα 3.6: Το surviving path που αντιστοιχεί στο παράδειγµα. Για να υπολογίσουµε την χαλαρή έξοδο πρέπει να λάβουµε υπόψη µας τα µονοπάτια που δεν είναι τα καλύτερα. Για κάθε δυαδικό ψηφίο της εξόδου µε hard
απόφαση ψάχνουµε για µονοπάτια των οποίων το βάρος διαφέρει ελάχιστα από εκείνο της hard εξόδου και των οποίων τα δυαδικά ψηφία είναι διαφορετικά. Ξεκινάµε µε το καλύτερο (surviving) µονοπάτι, όπου για κάθε κατάσταση στο µονοπάτι αυτό θα κάνουµε µία τροποποίηση την οποία λαµβάνουµε υπόψη µας ώστε να υπολογίσουµε το επόµενο καλύτερο µονοπάτι. Κατά µήκος των µονοπατιών κρατάµε µόνο εκείνα τα οποία δηµιουργούν µόνο µία τροποποίηση στο δυαδικό ψηφίο. Στο σηµείο αυτό θα ορίσουµε µία συνάρτηση delta για να περιγράψουµε την τάση να έχουµε non-surviving µονοπάτια. Η συνάρτηση αυτή είναι η διαφορά της ολικής πιθανότητας όταν έχουµε διαφορετική απόφαση σε µία συγκεκριµένη κατάσταση. Υπολογισµός της χαλαρής εξόδου (soft output) Για να υπολογίσουµε την χαλαρή έξοδο, θεωρούµε ότι έχουµε nonsurviving µονοπάτια. Θεωρούµε non-surviving µονοπάτια εκείνα τα οποία δηµιουργούνται µέσο διαφορετικών αποφάσεων σε κάθε κατάσταση. Σύµφωνα µε αυτό θα έχουµε: Στην βαθµίδα 5 αντί να γυρίσουµε στην 01 κατάσταση θα γυρίσουµε στην κατάσταση 00 στην βαθµίδα 4. Η είσοδος σε σχέση µε το τελικό µονοπάτι γίνεται bit1 = 11100. Στο σχήµα 3.7 φαίνεται το µονοπάτι που δηµιουργείται. 00 L = -1 L = -2 L = 1 L = 2 L = 3 0 0 0 0 0 00 00 00 00 00 1 1 1 1 1 1 1 1 1 1 L = 1 L = 1 L = 2 L = 2 01 01 01 01 01 01 0 0 0 0 0 L = -1 L = 0 L = 1 L = 2 1 1 1 1 1 10 10 01 01 01 0 0 0 0 0 L = 3 01 L = 1 L = 2 L = 2 L = 3 0 0 0 0 0 11 11 11 11 11 11 1 1 1 1 1
Σχήµα 3.7: Non-surviving path που αντιστοιχεί στο παράδειγµα. Στην βαθµίδα 4 αντί να γυρίσουµε στην 11 κατάσταση θα γυρίσουµε στην κατάσταση 10 στην βαθµίδα 3. Η είσοδος σε σχέση µε το τελικό µονοπάτι τώρα γίνεται bit1 = 11011. Στο σχήµα 3.8 φαίνεται το µονοπάτι που δηµιουργείται. 00 L = -1 L = -2 L = 1 L = 2 L = 3 0 0 0 0 0 00 00 00 00 00 1 1 1 1 1 1 1 1 1 1 L = 1 L = 1 L = 2 L = 2 01 01 01 01 01 01 0 0 0 0 0 L = -1 L = 0 L = 1 L = 2 1 1 1 1 1 10 10 01 01 01 0 0 0 0 0 L = 3 01 L = 1 L = 2 L = 2 L = 3 0 0 0 0 0 11 11 11 11 11 11 1 1 1 1 1 Σχήµα 3.8: Non-surviving path που αντιστοιχεί στο παράδειγµα. Στην βαθµίδα 3 αντί να γυρίσουµε στην 11 κατάσταση θα γυρίσουµε στην κατάσταση 10 στην βαθµίδα 2. Η είσοδος σε σχέση µε το τελικό µονοπάτι γίνεται bit1 = 01001. Στο σχήµα 3.9 φαίνεται το µονοπάτι που δηµιουργείται.