½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÀÄ ½ Ð Ü Ιστοσελίδα: www.telecom.tuc.gr/courses/tel412 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ¼ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Συνελικτικοι Κωδικες (n, k) L blocks ½ ¾ k ½ ¾ k ½ ¾ k [ ] g1 G T kl n = c (i) = [ X (i) X (i 1)... X (i L+1)] G 1 kl kl n, G = [ ] g1 T...gn T c 1 n º g n kl n R = k n Παράδειγμα (n, k) = (2, 1), R = 1 2 L = 3 c (i) 1 = X (i) + X (i 2) c (i) 2 = X (i 1) + c (i) 1 = X (i) + X (i 1) + X (i 2) g 1 = [1 01] g 2 = [1 11] X (i) X (i 1) X (i 2) c (i) 1 c (i) 2 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Διάγραμμα Μετάπτωσης Καταστάσεων(state-transition diagram) #καταστάσεων=2 (L 1)k #μεταπτώσεωναπόμίακατάσταση=2 k Παράδειγμα (n, k) = (2, 1), R = 1 2, L = 3, G = #καταστάσεων=2 (3 1)1 = 4 1 1 0 1 1 1 #μεταπτώσεων=2 1 = 2 0/00 0/11 00 1/11 0/01 01 10 1/00 0/10 11 1/10 1/01 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ¾ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Διάγραμμα δικτυώματος(trellis diagram) #καταστάσεων=2 (L 1)k #κλάδων(μεταπτώσεων)απόμίακατάσταση=2 k Παράδειγμα (n, k) = (2, 1), R = 1 2, L = 3, G = 1 1 0 1 1 1 00 01 10 11 0/00 0/00 0/00 1/11 0/01 1/11 1/10 1/11 0/01 1/00 1/01 0/11 0/10 1/10 Εστω x = (1101011) Προσθέτουμε 2 μηδενικά στην είσοδο: x = (110101100) και παίρνουμε την κωδικοποιημένη ακολουθία: c = (111010000100101011) ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Βέλτιστη Συνελικτική Αποκωδικοποίηση (i) SDD: N 1 N 2...N N X 1 X 2...X M C 1 C 2...C N A 1 A 2...A N Y 1 Y 2...Y N X 1 X 2...X M encoder modulator SDD detector encoding : c 1...c N = f(x 1...x M ) modulation : a i = g(c i ), i = 1, 2,..., N ([g(c 1...c N )] = [g(c 1 )...g(c N )]) ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
ML decoding : X 1 X 2... X M = arg min [Y 1... Y N ] [g(f(x 1... X M ))] 2 X 1 X 2...X M = arg min X 1 X 2...X M [Y 1... Y N ] [g(c 1 (X 1... X M ))g(c 2 (X 1... X M ))... g(c N (X 1... X M ))] 2 = arg min X 1 X 2...X M i=1 = arg min X 1 X 2...X M i=1 = arg min X 1 X 2...X M i=1 NX (Y i g(c i (X 1... X M ))) 2 NX (Y i a i (X 1... X M )) 2 NX d (Y i, c i (X 1... X M )), όπου d(y i, c i (X 1...X M )) = (Y i a i (X 1...X M )) 2. ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
(i) HDD: Κωδικες Καναλιου N 1 N 2...N N X 1 X 2...X M 0 ĉ 1 ĉ 2...ĉ N C 1 C 2...C N A 1 A 2...A N encoding : c 1...c N = f(x 1...x M ) modulation : a i = g(c i ), i = 1, 2,...,N Ĉi = 1, Y i > 0 0, Y i < 0 Y 1 Y 2...Y N ML decoding : ] ) X 1 X 2...X M = arg min d H ([Ĉ1...Ĉ N, f(x 1...X M ) X 1 X 2...X M X 1 X 2...X M ] = arg min d H ([Ĉ1...Ĉ N, [c 1 (X 1...X M )...c N (X 1...X M )] X 1 X 2...X M = arg min X 1 X 2...X M όπου d H = Hamming distance. N i=1 ) d H (Ĉi, c i (X 1...X M ) ) Ì Ó ØÓ SDD Ó ØÓ HDD ÔÓ Ø Ø ÔÖÓ Ð Õ ØÓÔÓ ÑÔÓÖ Ò Ö ÖÓ Ø ÑÓÖ º ÓÒ Û ÓÔÓ Ö Ø ÑÓÖ trellis Ó Ð Ö ÑÓ Viterbi Ö Ø Ð ML ÔÓ ÓØ ÕÖ ÒÓ ÔÓ ÓÒØ ØÓ exhaustive searchµº ÌÀÄ ½¾  ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Αλγόριθμος Viterbi Κωδικες Καναλιου Πρέπειναελέγξουμεόλεςτιςπιθανέςακολουθίεςεισόδου X 1...X M,επομένως όλες τις πιθανές διαδρομές στο trellis. Κάθεδιαδρομήέχει M k ακμές. Σεκάθεδιαδρομή c(x 1...X M ),ηακμήτηχρονικήστιγμή i = 1,..., M k αντιστοιχεί στα bitsεισόδου X (i 1)k+1, X (i 1)k+2,...,X ik και στα coded bits: }{{} k bits c (i 1)n+1, c (i 1)n+2,...,c in }{{} n bits Σε κάθε ακμή κάθε διαδρομής, αντιστοιχούμε ένα βάρος w i (X 1...X M ) = d ([ ] [ Y (i 1)n+1,...,Y in, c(i 1)n+1 (X 1...X M ),...,c in (X 1...X M ) ]) = in j=(i 1)n+1 d(y j, c j (X 1...X M )), για SDD ή wi (X 1... X M ) = d H hĉ(i 1)n+1,...,Ĉini, ˆc (i 1)n+1 (X 1...X M ),...,c in (X 1...X M ) = inx j=(i 1)n+1 d H (Ĉj, c j (X 1...X M )), HDD ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Επομένως, το πρόβλημα ξαναγράφεται ισοδύναμα ως εξής: X 1...X M = arg min X 1...X M M k i=1 w i (X 1...X M ) Άρα, αναζητούμε τη διαδρομή με το ελάχιστο συνολικό βάρος. Εστω S i {1, 2,...,2 k(l 1) }το state(κατάσταση)τηχρονικήστιγμή i. Εστω [X 1...X i ] (j) τομονοπάτιμετοελάχιστοβάροςμέχριτο state S i = j. Δηλαδή, [X 1...X i ] (i) = arg min X 1...X ik i w l (X 1...X ik ) l=1 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Τότε,γιαναβρούμετομονοπάτιμετοελάχιστοβάροςμέχριτο state S i+1 = k,αρκεί ναελέγξουμεταμονοπάτιαπροςόλατα states S i = j, j = 1,...,2 k(l 1),καινα προσθέσουμετοβάροςτηςμετάβασηςαπότο S i = jστο S j+1 = k. S 0 = 0 S i = 1 S i = 2 S i = 2 k(l 1) S i+1 = k Επομένως, [X 1... X i+1 ] (i) = arg min X 1...X (i+1)k ( ix = arg min X 1...X (i+1)k = arg min X 1...X (i+1)k j=1 Xi+1 j=1 w j (X 1...X (i+1)k ), s.t. S i+1 = k w j (X 1...X (i+1)k ) + w i+1 (X 1... X (i+1)k ) ( ix ) w j (X 1...X ik ) + w(s i (X 1...X ik ) S i+1 = k) j=1 ), s.t. S i+1 = k ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Παράδειγμα Στο προηγούμενο παράδειγμα, έστω ότι [Ĉ1...ĈN] = [01 10 11 11 01 00 01] 1 2 3 4 5 6 7 i = 1: [X 1 ] (1) = 0 w i (0) = 1 [X 1 ] (3) = 1 w i (1) = 1 i = 2: [X 1 X 2 ] (1) = 00 w i (00) = 2 [X 1 X 2 ] (2) = 10 w i (10) = 3 [X 1 X 2 ] (3) = 01 w i (01) = 2 [X 1 X 2 ] (4) = 11 w i (11) = 1 i = 3: [X 1 X 2 X 3 ] (1) = arg min{2 + 2, 3 + 1} = [000]ή[100], w(000) = w(100) = 4 [X 1 X 2 X 3 ] (2) = arg min{2 + 1, 1 + 1} = [110] w(110) = 2 [X 1 X 2 X 3 ] (3) = arg min{2 + 0, 3 + 2} = [001] w(001) = 2 [X 1 X 2 X 3 ] (4) = arg min{2 + 1, 1 + 1} = [111] w(111) = 2 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½¼ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Συναρτηση Μεταφορας Συνελικτικων Κωδικων g (1) (D) = g (1) 0 + g (1) 1 D +... + g(1) L DL g (2) (D) = g (2) 0 + g (2) 1 D +... + g(2) L DL. g (n) (D) = g (n) 0 + g (n) 1 D +... + g (n) L DL X(D) = X 0 + X 1 D +... + X K k C (1) (D) = g (1) (D)X(D). C (n) (D) = g (n) (D)X(D) D K k generator polynomials (πολυώνυμα γεννήτορες) message polynomial(πολυώνυμομηνύματος) output polynomials (πολυώνυμα εξόδου) ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Παράδειγμα X ff ff C 1 C 2 (n, k) = (2, 1) g (1) (D) = 1 + D + D 2 g (2) (D) = 1 + D 2 Εστω ότι X = [10011]. Τότε, X(D) = 1 + D 3 + D 4 C (1) (D) = (1 + D + D 2 )(1 + D 3 + D 4 ) = 1 + D + D 2 + D 3 + D 6 C (1) = [1111001] C (2) (D) = (1 + D 2 )(1 + D 3 + D 4 ) = 1 + D 2 + D 3 + D 4 + D 5 + D 6 C (2) = [1011111] 9 = ; C = [11 10 11 11 01 01 11] ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½¾ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Συνάρτησημεταφοράς: T(D, N, J) = α d D d N f(d) J g(d) Για κάθε κλάδο που συνδέει δύο καταστάσεις, ορίζουμε την ποσότητα D α N β J α = #1 s coded bits d = #1 s β = #1 s info bits g(d) = # Ð ÛÒ Ø ÒØ ØÓ Õ ÖÓÑ f(d) = #1 s Ø ÙÒÓÐ Ó Ó Ô info bits Παράδειγμα X C 1 C 2 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
00 a,e 01 b 10 c 11 d DNJ X d DNJ DJ Xa D 2 NJ Xc DJ X b D 2 J Xe J 8 X a = JX a NJ 9 J >< X c = D 2 NJX a + NJX b X b = DJX c + DJX d >= >: 8 >< >: X d = DNJX c + DNJX d >; X e = D 2 JX b + JX e X a = JX a X c = D 2 NJX a + DNJ 2 X c + DNJ 2 X d X e = D 3 J 2 X c + D 3 J 2 X d + JX e X d = DNJX c + DNJX d 9 >= >; ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
8 >< >: 8 >< Κωδικες Καναλιου X a = JX a NX e = D 2 J(DNJX c + DNJX d ) + NJX >= e X c = D 2 NJX a + J(DNJX c + DNJX d ) X d = DNJX c + DNJX >; d 9 X a = JX a NX e = D 2 JX d + NJX >= e 9 >: 8 X c = D 2 NJX a + JX d X d = DNJX c + DNJX d >; 9 >< X a = JX a NX e = D 2 JX d + NJX e >= >: 8 >< DNJX c = D 3 N 2 J 2 X a + DNJ 2 X d X d = DNJX c + DNJX d X a = JX a >; 9 >= >: 8 >< NX e = D 2 JX d + NJX e X d = D 3 N 2 J 2 X a + DNJ 2 X d + DNJX d 9 X a = JX a >= >; >: NX e = D 2 JX d + NJX e (1 DNJ DNJ 2 )X d = D 3 N 2 J 2 X a >; ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
8 < : 8 < : X a = JX a D 3 N 2 J 2 NX e = D 2 J 1 DNJ DNJ 2 X a + NJX e 9 X a = JX a = X e = ; D 5 NJ 3 (1 J)(1 DNJ DNJ 2 ) X a 9 = ; T(D, N, J) = D 5 NJ 3 + D 6 N 2 J 4 + D 6 N 2 J 5 + D 7 N 3 J 5 +... `D5 NJ 3 Ð Ó ½ ½ ¾ ¼ info bits, ½ ½ ¼ coded bits d free = 5. Σύντομηγραφή (N = J = 1) : T(D) = D 5 + 2D 6 + 4D 7 +... (Χρησιμοποιούμετηνταυτότητα: (1 a) 1 = 1 + a + a 2 + a 3 +...) ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Γραμμικοτητα Συνελικτικων Κωδικων Εστω συνελικτικός κώδικας (n, k), με μνήμη L. Ηείσοδος x 1 (1 K)αντιστοιχείστηνέξοδο c 1 ( 1 ( K k + L 1) n ). Ηείσοδος x 2 (1 K)αντιστοιχείστηνέξοδο c 2 ( 1 ( K k + L 1) n ). Τότε, 0 c 1 = x 1 g B @ к h i c 1 c n+1 c 2n+1... c ( K k +L 2)n+1 h i c 2 c n+2 c 2n+2... c ( K k +L 2)n+2 h i c n c 2n c 3n... c ( K k +L 1)n = [x 1... x k (L 1)k z } { 0...0] g 1 = [x 1... x k 0... 0] g 2 º = [x 1... x k 0... 0] g n 1 C A και c 2 = x 2 g. Επομένως, (c 1 + c 2 ) = (x 1 + x 2 ) g. Άρα,αν c 1 και c 2 είναικωδικέςέξοδοι,τότεη c 1 + c 2 είναιεπίσηςκωδικήέξοδος.συνεπώς,οκώδικαςείναιγραμμικός. ÌÀÄ ½¾  ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Επιδοση Συνελικτικων Κωδικων(με Βελτιστη Αποκωδικοποιηση) Υποθέσεις: # info-bits: K(έστω 0...0) # επιστροφών στο 0: J(τυχαία μεταβλητή) #σφαλμάτων: e(τυχαίαμεταβλητή) #σφαλμάτωνστην iδιαδρομή: e i (τυχαίαμεταβλητή) # info-bitsστην iδιαδρομή: K i (τυχαίαμεταβλητή) P K = j=0 E{e j J=j}p J (j) P E{K} j=0 je{e 1}p J (j) P j=0 E{K j J=j}p J (j) = E{e 1} P P j=0 jp J(j) j=0 je{k 1}p J (j) = E{e 1}E{J} E{K 1 }E{J} = E{e 1} E{K 1 } Πιθ.σφάλματος: P b = E{e} = T(D, N, J) = α d D d N f(d) J g(d) ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
SDD: N = J = 1 : T(D) = a d D d ( ) 2Ec P(e 1 ) = a d Q d 1 N 0 2 a d e Ec N 0 d = 1 2 T(D) D=e Ec N 0 J = 1 : T(D, N) = E{e 1 } = a d D d N f(d) a d f(d)q ( ) 2Ec d N 0 1 2 a d f(d)e Ec N 0 d N = 1 : T(D, J) = a d D d N g(d) E{K 1 } = k a d g(d)q ( ) 2Ec d N 0 ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ½ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø
Γιαμεγάλο SNR, ( ) 2E P(e 1 ) a dfree Q c N 0 d free HDD: E{e 1 } a dfree f(d free )Q E{K 1 } ka dfree g(d free )Q Ομοίως: P(e 1 ) = E(e 1 ) = E{e 1 } = k Σημείωση: Κωδικες Καναλιου ( 2E c a d (4p(1 p)) d/2 1 2 a d free e E c N d free 0 ) N 0 d free ( 2E c N 0 d free ) a d f(d)(4p(1 p)) d/2 a d g(d)(4p(1 p)) d/2 1 2 a d free f(d free )e E c N 0 d free k 2 a d free g(d free )e E c N 0 d free Το αποτέλεσμα της αποκωδικοποίησης μίας συνελικτικά κωδ/νης πληροφορίας αποτελείται από σφάλματα που εμφανίζονται σε καταιγισμό. Γιαυτό, συνήθως χρησιμοποιούμε έναν interleaver και έναν εξωτερικό κωδ/τή Reed-Solomon. ÌÀÄ ½¾ Â ÛÖ ÈÐ ÖÓ ÓÖ ÃÛ ÛÒ ¾¼ ÌÑ Ñ ÀÅÅÍ ÈÓÐÙØ ÕÒ Ó ÃÖ Ø