½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÀÄ ½ Ð Ü Ιστοσελίδα: www.telecom.tuc.gr/courses/tel412 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ¼ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Κυκλικοι Κωδικες Ορισμός: Ενας κυκλικός κώδικας είναι ένα γραμμικός κώδικας μπλοκ στον οποίο αν c είναι μία κωδική λέξη, τότε μία κυκλική ολίσθηση του c είναι επίσης κωδική λέξη. Παράδειγμα 0 0 0 1 1 0 C 1 = 1 0 1 0 1 1 0 0 0 0 1 0 C 3 = 1 0 1 0 1 1 1 1 1 0 0 0 :κυκλικός, C 2 = 0 1 0 1 0 1 1 1 1 :μηγραμμικός μηκυκλικός : μη κυκλικός, ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Πολυώνυμο κωδικής λέξης: c(p) = nx c i p n i = c 1 p n 1 +c 2 p n 2 +...+c n 1 p+c n ÔÓÐÙôÒÙÑÓ Ø c = [c 1 c 2... c n ]). i=1 Ηκωδικήλέξη c (1) = [c 2 c 3... c n c 1 ]έχειπολυώνυμοτο c (1) (p) = c 2 p n 1 + c 3 p n 2 +... + c n p + c 1. Παρατηρούμε ότι: p c(p)+c 1 (p n +1) = c 1 p n +...+c n 1 p 2 +c n p+c 1 p n +c 1 = c 2 p n 1 +...+c n p+c 1 = c (1) (p). Άρα, c (1) (p) = p c(p) + c 1 (p n + 1) p c(p) = c 1 (p n + 1) + c (1) (p) c (1) (p) = p c(p) (mod (p n + 1)). Ομοίως, c (2) (p) = p c (1) (p) + c 2 (p n + 1) p c (1) (p) = c 2 (p n + 1) + c (2) (p) c (2) (p) = p c (1) (p) (mod (p n + 1)). Γενικά, i = 1, 2, 3,..., c (i) (p) = p c (i 1) (p) (mod (p n + 1)) c (i) (p) = p i c(p) (mod (p n + 1)). ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ¾ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
π.χ.,αν i = 2,τότε c (2) (p) = p c (1) (p) (mod (p n + 1)) c (2) (p) = p c (1) (p) + a(p n + 1)) c (1) (p) = p c(p) (mod (p n + 1)) c (1) (p) = p c(p) + b(p n + 1)) c (2) (p) = p 2 c(p) + (p b c (1) (p) + a)(p n + 1) c (2) (p) = p 2 c(p) (mod (p n + 1)) Παρατηρούμε ότι: c (n) (p) = p n c(p) (mod (p n + 1)) = p n c(p) + c(p) + c(p) (mod (p n + 1)) = (p n + 1)c(p) + c(p) (mod (p n + 1)) = c(p) (mod (p n + 1)) c (n) (p) }{{} = c(p) (αφούτα c (n) (p)και c(p)είναιβαθμού n 1) Ò Ñ Ò Ñ ÒÓ Ó c (n) = c ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Θεώρημα - Ολα τα πολυώνυμα ενός κυκλικού κώδικα (n, k) είναι πολλαπλάσια ενός πολυωνύμου βαθμού n kτηςμορφής g(p) = p n k + g 2 p n k 1 + g 3 p n k 2 +... + g n k p + 1 πουονομάζεταιπολυώνυμογεννήτοραςτουκώδικακαιείναιδιαιρέτηςτου p n + 1. -Σεκάθελέξηπληροφορίας x = [x 1...x k ]αντιστοιχείένα πολυώνυμο λέξης πληροφορίας X(p) της μορφής X(p) = x 1 p k 1 + x 2 p k 2 +... + x k 1 p + x k. -Τοπολυώνυμοκωδικήςλέξης cπουαντιστοιχείστο xδίνεταιαπότησχέση c(p) = X(p)g(p). -Ηκωδικήλέξη c = [c 1...c n ]είναιηδιακριτήσυνέλιξητων x = [x 1...x n ]και g = [1, g 2...g n k, 1]. ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Παρατήρηση: Υπάρχουν 2 k διαφορετικά xπουαντιστοιχούνσε 2 k διαφορετικάπολυώνυμα X(p), επομένωςσε 2 k διαφορετικέςκωδικέςλέξεις c. Εστω c m (p) = X m (p) g(p)τοπολυώνυμοτης c m, m = 1, 2, 3,...,2 k. Τότε, c (1) m (p) = p c m (p) + c m1 (p n + 1) = p X m (p) g(p) + c m1 a(p) g(p) c (1) m (p) = (p X m (p) + c m1 a(p)) g(p) Το c (1) m (p) αντιστοιχεί και αυτό σε κάποια κωδική λέξη. (αφούτο g(p)είναιδιαιρέτηςτου p n + 1) ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Παράδειγμα (n, k) = (7, 4), n k = 3 p 7 + 1 = (p + 1)(p 3 + p 2 + 1)(p 3 + p + 1) (i) g(p) = p 3 + p 2 + 1 c(p) = X(p)g(p) X(p) = x 1 p 3 + x 2 p 2 + x 3 p + x 4 x 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 p 3 p 2 X(p) p 1 p +1 p 2 +1 p 2 +p p 2 +p +1 p 3 +1 p 3 +p p 3 +p +1 p 3 +p 2 p 3 +p 2 +1 p 3 +p 2 +p p 3 +p 2 +p +1 0 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
(ii) g(p) = p 3 + p + 1 c(p) = X(p)g(p) p 3 +p 2 +1 p 4 +p 3 +p p 5 +p 4 +p 2 p +1 p 5 +p 4 +p 3 +1 p 5 +p 3 +p 2 +p p 5 +p +1 p 6 +p 5 +p 3 p 6 +p 5 +p 2 +1 p 6 +p 5 +p 4 +p p 6 +p 5 +p 4 +p 3 +p 2 +p +1 p 6 +p 4 +p 3 +p 2 p 6 +p 4 +1 p 6 +p 2 +p p 6 +p 3 +p +1 X(p) = x 1 p 3 + x 2 p 2 + x 3 p + x 4 0 c(p) = X(p)g(p) Ομοίως, κατασκευάζουμε τον πίνακα με τα X(p), c(p), c. c 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Αλγόριθμος κατασκευής κυκλικού κώδικα (n, k) 1. Παραγοντοποιούμετο p n + 1σεπαράγοντες. 2. Διαλέγουμε έναν παράγοντα βαθμού (n k) και τον ονομάζουμε g(p). 3. Γιακάθεέναναπότους 2 k συνδιασμούςαπο bitsεισόδου x m δημιουργούμετο αντίστοιχοπολυώνυμο X m (p)βαθμού k 1, m = 1, 2, 3,..., 2 k. 4. Γιακάθεπολυώνυμολέξηςπληροφορίας X m (p),υπολογίζουμετοαντίστοιχο πολυώνυμοκωδικήςλέξης c m (p) = X m (p)g(p), m = 1, 2, 3,..., 2 k. 5. Οισυντελεστέςτου c m (p)αποτελούντηνκωδικήλέξη c m, m = 1, 2, 3,...,2 k. Πολυώνυμο Ισοτιμίας Εστω g(p)τοπολυώνυμογεννήτορας,δηλ. p n + 1 = h(p)g(p).τότε,τοπολυώνυμο h(p) ονομάζεται πολυώνυμο ισοτιμίας και έχει βαθμό k. Αποδεικνύεταιότιτοαντίστροφοπολυώνυμοτου h(p)(δηλ.το p k h(p 1 ))είναι πολυώνυμο γεννήτορας του δυϊκού (n, n k) κυκλικού κώδικα. ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Παράδειγμα (n, k) = (7, 4) p 7 + 1 = (p + 1)(p 3 + p 2 + 1)(p 3 + p + 1) g(p) = p 3 + p 2 + 1 X m (p) =πολυώνυμολέξηςπληροφορίαςβαθμού k 1, m = 1, 2, 3,..., 2 k c m (p) = X m (p)c(p), m = 1, 2, 3,...,2 k Δυϊκός κώδικας: (n, n k) = (7, 3) h(p) = p7 +1 p 3 +p 2 +1 = (p + 1)(p3 + p + 1) = p 4 + p 3 + p 2 + 1 p 4 h(p 1 ) = p 4 (p 4 + p 3 + p 2 + 1) = p 4 + p 2 + p + 1 X m(p) =πολυώνυμολέξηςπληροφορίαςβαθμού n k 1, m = 1, 2, 3,..., 2 n k c m(p) = X m(p)p k h(p 1 ), m = 1, 2, 3,...,2 n k m = 1, 2,...,2 k και l = 1, 2,...,2 n k, c m c l (δηλ. c m c lt = 0) ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Γεννήτορας Πίνακας Κυκλικού Κώδικα Συστηματική μορφή: G = [I k P] k n 1 k {}}{ Γραμμή i : g i = 0...0 1 0...0 p i,1 p i,2...p i,n k i 1 n, 1 i k Αλλάτοδιάνυσμα g i αποτελείτηνκωδικήλέξητηςλέξηςεισόδου [0...0 1 0...0] 1 k. i Επομένως, το αντίστοιχο πολυώνυμο g i (p) = p n i + p i,1 p n k 1 + p i,2 p n k 2 +... + p i,n k πρέπει να είναι πολλαπλάσιο του πολυωνύμου γεννήτορα g(p) του υπό μελέτη κώδικα. Άρα, g i (p) = X(p)g(p) p n 1 + p i,1 p n k 1 + p i,2 p n k 2 +... + p i,n k = X(p)g(p) p i,1 p n k 1 + p i,2 p n k 2 +... + p i,n k = p n i (mod(g(p))), 1 i k. Επομένως, αν γνωρίζουμε το g(p), τότε μέσω της(1) μπορούμε να υπολογίσουμε όλα ταστοιχεία p i,j i = 1,...,k, j = 1,...,n k,καινακατασκευάσουμετον Gσε συστηματική μορφή. ½µ ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½¼ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Παράδειγμα (n, k) = (7, 4) g(p) = p 3 + p 2 + 1 p 6 (mod(p 3 + p 2 + 1)) = p 2 + p p 5 (mod(p 3 + p 2 + 1)) = p + 1 p 4 (mod(p 3 + p 2 + 1)) = p 2 + p + 1 p 3 (mod(p 3 + p 2 + 1)) = p 2 + 1 Άρα, G = 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Κωδικοποίηση Κυκλικών Κωδίκων Εφόσον c(p) = X(p)g(p),συμπεραίνουμεότι c = x g(συνέλιξη). Η συνέλιξη αυτή υλοποιείται μέσω FIR φίλτρου. Για τους κυκλικούς κώδικες είναι εύκολη η κατασκευή του αποκωδικοποιητή τους. g(p) = p n k + g 2 p n k 1 +... + g n k p + 1 g = [1 g 2 g 3... g n k 1] ½ g n k g n k 1 gn k 2 g 2 ¾ Input [x 0...0 }{{}] n k ¾ ½ Output c ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½¾ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Παράδειγμα (n, k) = (7, 4) g(p) = p 3 + p 2 + 1 g = [1101] Κωδικες Καναλιου ½ ¾ ¾ ½ Input [x 0 0 0] ¾ c ½ È Ö Õ Ñ Ò Ø ÕÛÖ ØôÒ Ó Ó ÇÐ ½ ¾ ³ ÜÓ Ó ¹ ¼ ¼ ¼ ¼ ¹ x 1 ½ x 1 ¼ x 1 x 1 x 2 ¾ x 1 + x 2 x 1 x 1 + x 2 x 2 x 3 x 2 + x 3 x 1 + x 2 x 1 + x 2 + x 3 x 3 x 4 x 1 + x 3 + x 4 x 1 + x 2 + x 3 x 2 + x 3 + x 4 x 4 ¼ x 1 + x 2 + x 3 x 2 + x 3 + x 4 ¼ x 1 + x 3 + x 4 ¼ x 2 + x 3 + x 4 ¼ ¼ x 1 + x 2 + x 3 ¼ ¼ ¼ ¼ x 2 + x 3 + x 4 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Ο κωδικοποιητής ενός κυκλικού κώδικα μπορεί να σχεδιαστεί και βάσει του πολυωνύμου ισοτιμίας h(p), αντί του g(p). - Οταν k < n 2 (δηλ. R < 1 2 ),οκωδ/τήςβάσειτου h(p)είναιαπλούστερος. - Οταν k > n 2 (δηλ. R > 1 2 ),οκωδ/τήςβάσειτου g(p)είναιαπλούστερος. ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Κωδικας Bose-Chaudhuri-Hocquenghem (BCH) (n, k) n = 2 m 1 k n mt, m 3, t < 2m 1 2 d min 2t + 1 Ιδιότητες 1. Ο κώδικας BCH διορθώνει μέχρι t σφάλματα. 2. Ο κώδικας Hamming είναι υποπερίπτωση του κώδικα BCH. 3. Ο κώδικας BCH προσφέρει μεγάλη ποικιλία επιλογών ρυθμού κωδικοποίησης, λόγω των αυθαίρετων t και m. 4. Οταν k < 500,οκώδικας BCHείναιοκαλύτεροςγνωστόςκώδικας. 5. Χρησιμοποιείται στο κανάλι ελέγχου(control channel) σε συστήματα κινητής τηλεφωνίαςστιςηπα,καισεσυστήματα pagers(n = 31, k = 21). 6. Εύκολη αποκωδικοποίηση με τον αλγόριθμο Berlekamp-Massey. ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Παράδειγμα α) (n, k) = (15, 5), R = 1 3. Απότονπίνακατουβιβλίου: t = 3, g(p) = 2467. Αλλά, (2467) 8 = (010100110111) 2. Άρα: g 1 11 = [10100110111], g(p) = p 10 + p 8 + p 5 + p 4 + p 2 + p + 1. β) (n, k) = (15, 7), R = 7 15. t = 2, g(p) = 721. Άρα: g 1 9 = [111010001], g(p) = p 8 + p 7 + p 6 + p 4 + 1. ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Κωδικας Reed-Solomon (RS) Μη-δυαδικόςκώδικας BCH.Συνήθως q = 2 l. N = q 1 = 2 l 1 coded symbols K = 1, 3, 5,...,N 2 info symbols D min = N K + 1 symbols t = D min 1 2 symbols = N K 2 symbols n = Nl = l(2 l 1) k = Kl R = k n = K N = K 2 l 1 info bits coded bits ( ή ) info symbols coded symbols ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Ιδιότητες 1. Μεγάληελάχιστηαπόσταση D min. 2. Κατάλληλος κώδικας για q-αδική διαμόρφωση(π.χ. 64-QAM). 3. Κατάλληλος κώδικας για διόρθωση καταιγιστικών σφαλμάτων σε bits. 4. Μεγάλη ποικιλία επιλογής ρυθμού κωδικοποίησης R : 1 2 l 1 R 1 2 2 l 1 5. Διορθώνειμέχριτοπολύ t = D min 1 2 symbol errors. 6. Χρησιμοποιείται σε: ADSL (maximum values: l = 8, q = 256, N = 255, K = 223, t = 16 symbols) CD/DVD Barcodes Wireless (mobile phones, digital video broadcasting (DVB), satellite) Space missions ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø