ΚΩΔΙΚΕΣ LDPC Τεχνικές Κωδικοποίησης 2010-2011 1 Καράς Δημήτριος, ΑΕΜ 6375 Χρόνης Θεόδωρος, ΑΕΜ 2628 Ημερομηνία: 25-10-2011
Κώδικες LDPC Ιστορικά στοιχεία LDPC: Low Density Parity Check, χαμηλής πυκνότητας πίνακα ελέγχου ισοτιμίας Ο C. E. Shannon το 1948 απέδειξε ότι αν ο ρυθμός μετάδοσης είναι μικρότερος από τη χωρητικότητα C του καναλιού, υπάρχει πάντα ένα σχήμα κωδικοποίησης που εξασφαλίζει τη μείωση της πιθανότητας σφάλματος Το 1963 ο Robert Gallager δημοσίευσε τους κώδικες LDPC, οι οποίοι αποδεικνύεται ότι παρέχουν near-capacity performance, αλλά η τεχνολογία της εποχής δεν επέτρεπε την πρακτική εφαρμογή τους Αργότερα, το 1981, ο Tanner γενίκευσε τους LDPC κώδικες και εισήγαγε την την έννοια του γραφήματος Tanner Εφαρμογές: DVB-S2, 10GBase-T Ethernet, ITU- T G.hn 2
Γενικά για τους κώδικες LDPC Χαμηλή πυκνότητα πίνακα ελέγχου ισοτιμίας (parity check matrix) H, κάτω από 0.01 για μείωση της υπολογιστικής πολυπλοκότητας Ο πίνακας H έχει τα παρακάτω χαρακτηριστικά: Κάθε γραμμή του αποτελείται από ρ μονάδες Κάθε στήλη του αποτελείται από γ μονάδες Ο αριθμός των από κοινού μονάδων μεταξύ στηλών, έστω λ, δεν μπορεί να είναι μεγαλύτερος από 1, δηλαδή λ=0 ή λ=1. Το ρ και το γ είναι μικρά σε σύγκριση με το μήκος του κώδικα και τον αριθμό γραμμών του H. 3
Η μέθοδος του Gallager Πρόκειται για την αρχική πρόταση του Gallager για την κατασκευή ενός πίνακα που ορίζει έναν κώδικα LDPC 1. Επιλέγουμε έναν θετικό ακέραιο k>0, καθώς και τα ρ και γ. 2. Σχηματίζουμε έναν υποπίνακα H 1 διαστάσεων k x kρ έτσι ώστε κάθε γραμμή να έχει ρ μονάδες και κάθε στήλη να έχει μόνο μία. 3. Σχηματίζουμε άλλους γ-1 υποπίνακες, H 2, H 3,, H γ. Ο καθένας είναι μια μετάθεση στηλών του H 1. 4. Σχηματίζουμε τον πίνακα ελέγχου ισοτιμίας διαστάσεων kγ x kρ ως εξής: H =[H 1 H 2 H γ] 4 Αυτός ο τρόπος κατασκευής ικανοποιεί τις παραπάνω συνθήκες Ο Gallager δεν πρότεινε μέθοδο επιλογής μεταθέσεων
Οι μέθοδοι του MacKay Επιγραμματικά αναφέρουμε και κάποιες άλλες μεθόδους κατασκευής του πίνακα H που προτάθηκαν από τον MacKay: 1. Ο H παράγεται τυχαία με στήλες βάρους γ και ομοιόμορφη κατανομή βαρών των γραμμών. Ανά 2 οι γραμμές έχουν το πολύ 1 κοινή μονάδα. 2. Παρόμοια με το 1, αλλά υπάρχει ένας αριθμός (έως και J/2, όπου J είναι ο αριθμός των γραμμών του H) στηλών βάρους 2 οι οποίες δεν έχουν κοινή μονάδα. Οι υπόλοιπες στήλες κατασκευάζονται τυχαία με βάρος 3. Πάλι έχουμε ομοιόμορφη κατανομή βαρών γραμμών. 3. Για την αποφυγή κύκλων με μήκος μικρότερο από ένα l (π.χ. l=6), διαγράφονται μερικές στήλες από τους πίνακες που προκύπτουν από τις προηγούμενες μεθόδους. 5 Αυτές οι μέθοδοι δίνουν κώδικες που αποδίδουν κοντά στο όριο του Shannon αλλά έχουν πολύ μεγάλη υπολογιστική πολυπλοκότητα
Γράφημα Tanner Γραφική αναπαράσταση των κωδίκων LDPC, αναπτύχθηκε το 1981 απ' τον Tanner Διμερές γράφημα (bipartite graph) με δύο κατηγορίες κόμβων: 1. Μεταβλητοί κόμβοι (variable nodes, VN) 2. Κόμβοι ελέγχου (check nodes, CN) Σχηματίζεται με βάση τον πίνακα ελέγχου ισοτιμίας H: Αν h ij =1, ο i-οστός CN συνδέεται με τον j-οστό VN 6
Γράφημα Tanner Βοηθάει στην αναπαράσταση της διαδικασίας αποκωδικοποίησης Κάθε CN μπορεί να θεωρηθεί ως ένας επεξεργαστής, ο οποίος: 1. Παίρνει πληροφορίες από τους VN (αλλιώς bit nodes, τα εισερχόμενα bit) 2. Παίρνει αιτήματα από VN για να αποφανθεί αν η τιμή του είναι σωστή 3. Χρησιμοποιεί τις πληροφορίες που έχει συλλέξει για να αποφανθεί Πώς μας βοηθάει το γράφημα Tanner; Η παρουσία βραχύκυκλων στο γράφημα μειώνει την αποτελεσματικότητα της αποκωδικοποίησης Αν ο H ήταν πυκνός θα ήταν πιθανότερος ο σχηματισμός βραχύκυκλων 7
Αποκωδικοποίηση Η πολυπλοκότητα του αποκωδικοποιητή αποτελεί το κυρίαρχο πρόβλημα λόγω του μεγάλου τους μήκους (frame 64800 sto DVB-S2). Αποκλείεται η αποκωδικοποίηση συνδρόμου. Δεν έχουν συγκεκριμμένη δομή ώστε να χρησιμοποιηθεί ως πλεονέκτημα. Συνολικά το απαιτούμενο Hardware είναι ακριβότερο αντίστοιχης υλοποίησης Turbo αποκωδικοποιητή. Ωστόσο είναι ισχυρά παραλληλοποιήσιμος και ήδη έχουν εμφανιστεί στη βιβλιογραφία υλοποιήσεις με GPUs. Χρησιμοποιούνται επαναληπτικοί (iterative) αλγόριθμοι πάνω στο γράφημα Tanner οι οποίοι διενεργούν τοπικούς υπολογισμούς και διακινούν τα αποτελέσματα τους μέσω μηνυμάτων. 8 Η αραιότητα του γραφήματος Tanner έχει ως αποτέλεσμα το πλήθος των διακινούμενων μηνυματων να είναι αρκετά μικρό. Οι υπολογισμοί επαναλαμβάνονται μέχρι είτε να αποσφαλματωθεί το εισερχόμενο μπλόκ είτε ο αριθμός τους να ξεπεράσει ένα φράγμα.
1.0 Αυστηρά η με Επιείκια? 0.5 1.0 0.5 0.5 1.0 0.5 1.0 Hard decision Bit-flipping αλγόριθμος Binary Symmetric κανάλι Weighted bit-flipping αλγόριθμος (ενδιάμεση κατάσταση...) Soft decision 0.4 0.3 Sum-product αλγόριθμος (message passing/ belief propagation algorithm) Η κύρια διαφορά με τον bit-flippping είναι ότι αντί για τιμές bit 0 η 1 έχουμε πιθανότητες 0.2 0.1 4 2 2 AWGN κανάλι 2 1 9 Min-sum αλγόριθμος (Χαμηλότερης πολυπλοκότητας προσέγγιση του Sum-Product αλγόριθμου) 2 1 1 1 2 2 4
Περιγραφικά βήματα του Αλγορίθμου Hard Decision : Bit-flipping Για να αποφασίσουμε ποια είναι η σωστή τιμή του κάθε bit θα λάβουμε τις εξής γνώμες : 1. Την τιμή του ίδιου του bit που έχουμε λάβει. 2. Τις γνώμες κάθε check node που είναι συνδεδεμένο στο variable node που εξετάζουμε. πχ Έλεγχος ορθότητας c0 το οποίο αντιστοιχεί στους f1,f3: 3 Γνώμες και αποφασίζει πλειοψηφικά για την σωστή τιμή του 10 Η διαδικασία εκτελείται επαναληπτικά και μπορούμε να θέσουμε κριτήριο τερματισμού πχ. Τον αριθμό των επαναλήψεων, η το πλήθος των λαθών.
Παράδειγμα bit-flipping Ας υποθέσουμε ότι ο πομπός στέλνει Την κωδική λέξη c=[10010101]. Τότε c.h T =[0000]. Έστω ότι ο δέκτης λαμβάνει το r=[11010101] δηλαδή γίνεται λάθος στο 2ο bit 1η επανάληψη : f1 : c0 + c1 + c2 + c4 1ο βήμα : r H T =[1100] άρα υπάρχει λάθος 2ο βήμα : [1100].Η=[12111101] 3ο βήμα : thresold = max(fj)=2 άρα r=[10010101] 4o βήμα : πήγαινε στο βήμα 1. 2η επανάληψη 1ο βήμα : c.h T =[0000] άρα το [100010101] είναι η κωδική λέξη. 11 Προσοχή υπάρχει κύκλος c2->f1->c5->f2->c2 (4-κύκλος) έτσι λοιπόν αν είχαμε κάνει λάθος στο 3ο bit θα είχαμε αποτυχημένη αποκωδικοποίηση (εγκλωβισμός σε loop)
Αλγόριθμος Gallager Ο πίνακας μπορεί να περιλαμβάνει ακόμα και εκατομμύρια bits! Είναι όμως αραιός! Άρα το πλήθος των parity check εξισώσεων αυξάνεται σχεδόν γραμμικά όσο ο κώδικας μεγαλώνει. Τους κύκλους εν γένει, δεν μπορούμε να τους αποφύγουμε αλλά σίγουρα αποφεύγουμε τους 4-κύκλους Αλγόριθμος 1. Υπολόγισε το s = r. H T (πράξεις στο GF(2)). Αν s=0 τότε σταματά αφού το r είναι έγκυρη κωδική λέξη. 2. Υπολόγισε το f = s. H (πράξεις στο Ζ). 3. Εντόπισε τα στοιχεία του f τα οποία είναι μεγαλύτερα από ένα προκαθορισμένο κατώφλι και στη συνέχεια άλλαξε όλα τα bits στο r που αντιστοιχούν σε αυτά τα στοιχεία. 4. Αν δεν έχεις φτάσει το μέγιστο αριθμό επαναλήψεων, γύρνα στο Βήμα 1 χρησιμοποιώντας το τρέχον r. 12
Log-Likelihood Ratio Υπάρχει αβεβαιότητα ως προς την κατηγοριοποίηση ενός λαμβανόμενου σύμβολου. Γι' αυτό εισάγουμε την έννοια του LLR, που για binary σύμβολα είναι: L(c r)=log( Pr (c=0 r) Pr (c=1 r)) Υπό συνθήκη πιθανότητες να έχει σταλεί 0 ή 1 δεδομένου του λαμβανόμενου συμβόλου Αυτές όμως υπολογίζονται δύσκολα, άρα αν θεωρήσουμε τα 2 σύμβολα ισοπίθανα, από τον κανόνα του Bayes: L(c r)=log( Pr(r c=0) Pr(r c=1)) 13 Αυτές οι πιθανότητες πλέον υπολογίζονται εύκολα γνωρίζοντας τη μέθοδο διαμόρφωσης και τα χαρακτηριστικά θορύβου! Χρησιμοποιείται στον αλγόριθμο αποκωδικοποίησης sum-product
14 Soft Decision : Sum-Product
15 Ο αλγόριθμος Sum-Product
16
Προσομοίωση στο DVB-S2 Γενικά για το DVB-S2 Μετάδοση τηλεοπτικού σήματος (ήχος και εικόνα) Αλυσιδωτή κωδικοποίηση: εξωτερικός κώδικας BCH, εσωτερικός LDPC Υποστηρίζει διάφορους ρυθμούς κωδικοποίησης και μήκη frame Προσομοίωση στο MATLAB με το Simulink 17
Προσομοίωση στο DVB-S2 Αποτελέσματα προσομοιώσεων 18
Error Floor Drawback & the need for concatenation When a small number of check sums are not satisfied because of a very small number of errors there is a chance that iterations get into a trapping phenomenon (due to Tanner Graph Cycles) thus the decoding algorithm is not able to correct them resulting to an error floor. The error floor has turn our focus on: better code construction techniques, code concatenation with conventional codes such as Reed-Solomon or BCH. decoding-based strategies Two-stage decoding The 1st stage is (LDPC Decoding) the regular message passing scheme, The 2nd stage (BCH Decoding) is performed only if the iterative decoding fails. 19
Απόδοση LDPC & BCH κωδίκων στο DVB-S2 Modulation Coding Rate Es/No BER 8-PSK 3 /4 7.85 3*10^(-3) 8-PSK 2/3 7.85 <2.5*10^(-6) QPSK 1 /4-2 2*10^(-3) QPSK 1 /4-1 <2.5*10^(-6) 20
Τεχνικές Κωδικοποίησης 2010-2011 Ευχαριστούμε για την προσοχή σας! 21