Udine, 24 Febbraio 2005 Principi di Teoria dei Codici Andrea Tonello e-mail: tonello@uniud.it http://www.diegm.uniud.it/tlc/tonello UNIVERSITÀ DEGLI STUDI DI UDINE DIEGM DIPARTIMENTO DI INGEGNERIA ELETTRICA, GESTIONALE E MECCANICA
Sommario Approcci alla Codifica di Canale Codici a Blocco Prestazioni Codici a Blocco Codici Convoluzionali Bibliografia: J. Proakis, Digital Communications S. Lin, D. Costello, Error Control Coding 2
Modello Sistema di Comunicazione Codificatore Sorgente Codificatore Canale Modulatore Numerico Canale De-Modul. De-Cod. Canale De-Cod. Sorgente Lo scopo della Codifica di Canale e` di consentire la correzione e/o rivelazione degli errori introdotti dal canale. 3
Codifica di Canale b Codificatore c Idea: Introdurre ridondanza in trasmissione, ad. es. ripetere l informazione. Il codificatore attua una trasformazione dalle parole di ingresso b alle parole di uscita c con una certa legge: b=[,b i, b i+1, ] c=[,c i, c i+1, ] Alfabeto: il campo cui appartengono gli elementi delle parole di ingresso, ad. es. GF(2). Codice: insieme delle parole codificate. Rate: rapporto tra numero di simboli di ingresso e quello di uscita (<1). 4
Approcci alla Codifica di Canale Codici Algebrici a Blocco Codici Convoluzionali Codifica e Modulazione Congiunta Modulazione codificata a traliccio (TCM) Turbo Codici 5
Codici a Blocco 6
Codici a Blocco Codice a blocco (n, k): Parole (Vettori) di ingresso hanno lunghezza k : b=[b 1,,b k ] Parole di uscita hanno lunghezza n>k : c=[c 1,,c n ] Alfabeto e` q-ario e le operazioni sono definite su un campo finito GF(q) con q primo o potenza di un numero primo. Se q e` primo, l algebra e` modulo q. Definizione: e` un insieme di q k parole di n elementi. Codice Lineare: se c 1 e c 2 sono di codice allora ac 1 + bc 2 =c 3 e` di codice. La parola nulla appartiene al codice. 7
Matrice di Codice c = b G Matrice di Codice. Elementi appartenti a GF(q) 1n 1k k n Le k righe di G sono vettori linearmente indipendenti e sono di codice. I vettori di codice appartengono al sottospazio k-dimensionale generato dalle righe di G. Forma sistematica c = b k+ 1 n [ c,...,c ] G 1... 0 p 11... p 1n k =.................. 0... 1 p k1... p kn k = [ I P] 8
Matrice di Controllo Parita` Matrice di Controllo Parita` ( G)( H) T = 0 k (n k) k n (n k) n Le n-k righe di H sono vettori linearmente indipendenti e generano il codice duale (n-k,n) Le parole del codice duale sono ortogonali a quelle del codice (n,k) Se il codice e` in forma sistematica: P [ I k P] = 0 I G n k T H = T H P In k 9
Matrice di Controllo Parita` Matrice di Controllo Parita`ci consente di verificare se un vettore e` di codice ch T = 0 se c 0 se c Vettore Sindrome: s 1(n k) = ch T Assumendo il codice binario abbiamo: 2 k vettori di ingresso e di codice. 2 n possibile vettori di dimensione n, quindi 2 n -2 k non sono di codice. 2 n-k sindromi. 10
Distanza e Peso di Hamming Distanza di Hamming: numero di simboli di cui differiscono due parole con alfabeto q-ario d( H rr 1, 2) Peso di Hamming: numero di simboli diversi da zero w() H r1 Vale la seguente: d( c, c ) = w( c c ) H 1 2 H 1 2 11
Distanza Minima Distanza Minima di Hamming: e` la minima distanza tra parole di codice 1 2 { } d = min d ( c, c ) c c H,min H 1 2, In un codice lineare la distanza minima e` pari al peso minimo: d H,min = w H,min Dim: 1 2 1 2 { c c } d = min d (, ) H,min H 1 2 c, c c, c { c c } = min w ( ) H 1 2 { c } = min w ( ) c 0 H 12
Singleton Bound Bound di Singleton: In un codice lineare a blocco dh,min n k+ 1 Codici a massima distanza verificano dh,min = n k+ 1 Dim: Basta pensare alla forma sistematica. Gli unici codici binari a massima distanza sono quelli ripetitivi altrimenti ci sono quelli di Reed Solomon su GF(q). 13
Esempi di Codici Lineari a Blocco Codici di Hamming. Codici di Hadamard. Codici BCH (Bose, Chaudhuri, Hocquenghem) e di Reed Solomon. 14
Codici di Hamming Binari (n,k) = (2 m-1,2 m-1 -m) m>1 intero n-k=m La matrice H ha le n colonne ottenute prendendo tutti i vettori di m elementi binari escluso il vettore nullo. Codice di Hamming (7,4) 1 0 1 1 1 0 0 T H= [ P In k] = 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1 = [ k ] = G I P Il peso minimo e` uguale a 3 15
Codici di Hadamard (n,k) = (2 m,m+1) m>1 intero Si ottengono dalle matrici di Hadamard cosi` definite 0 0 M2 M 2 M = M = 2 4 0 1 M2 M2 L insieme delle parole di lunghezza n=4 ottenute dalle 4+4 righe di e di sono un codice a blocco lineare con k=3 e peso minimo d min =n/2=2 M4 M4 16
Codici BCH e Reed Solomon Binari (n,k) hanno parametri n=2 m -1 n-k mt con m 3 t 1 d min =2t+1 Reed Solomon sono una sottoclasse non binaria. 17
Modello di Canale 18
Modello di Canale Codificatore Canale Equivalente De-Codificatore b c y b Modulatore Canale Demodulatore possono essere visti come un blocco equivalente. Bisogna definire la relazione ingresso-uscita. Essa dipende dal tipo di modulazione e demodulazione/decodifica: Demodulazione/Decodifica Congiunta. Demodulazione/Decodifiva disgiunta: HARD SOFT 19
Modello di Canale Alfabeto di codice binario, Modulazione 2-PAM, Rumore Additivo Gaussiano Bianco x yi = ESxi+ n i = 2ci 1 i c {0,1} i x { + 1, 1} n i = N(0,N / 2) ed indip. i 0 In forma vettoriale possiamo raccogliere le n osservazioni in un vettore e scrivere y= E S x+ n C e` una relazione biunivoca tra c ed x x = 2c 1 20
Decodifica Soft 21
Decodifica Ottima a Massima Verosimiglianza Il decodificatore ML decide per la parola di codice che massimizza la densita` di probabilita` del vettore ricevuto condizionata dal vettore trasmesso: p ( y x) = p (y x ) = YX Y X i i i i i= 1 n 1 1 (yi ESx i) N πn i= 1 0 e n 0 2 = (πn ) 0 n/2 e 1 y E Sx N 0 2 Il decodificatore ML decide per il vettore di codice che e` a distanza Euclidea minima dal vettore ricevuto xˆ = argmin{ y E x } x S 2 2 y E x = (y E x ) n S i S i i= 1 2 22
Probabilita` Errore con Decodifica Soft P = P[ cˆ c] = P[ xˆ x] e = P[ x= x ]P[ xˆ x x= x ] x i i i P[E ] P[ xˆ x x= x ] = P[ E ] P[E ] ij i ij ij j j E = { xˆ = x x= x } ij j i 23
Probabilita` Errore a Coppie P[E ] = P[ x= x xˆ = x ] ij i j = P[d ( y, E xˆ ) < d ( y, E x)] E S E S = x xˆ + n n < 2 2 P[ E S ( ) 0] = P[E x xˆ 2 E ( x xˆ) n < 0] S 2 T S V.a. gaussia a media nulla e varianza: 2N E x ˆ 0 S x 2 2 2 E S ˆ E ˆ Sd E(, ) P[E ij] Q x x Q x x = = 2N 2N 0 0 Q(a) distribuzione gaussiana complementare 24
Probabilita` Errore Condizionata P[ xˆ x x= x ] P[E ] xˆ x 0 j j i i Q Q i S j 2 E,min xˆ x 0 2 Ed( S E x ˆ i, xj) 2N Ed 2N Ed 2 k S E,min (2 1)Q 2N 0 ij d = min { x x } E,min x, 1 2 1 x2 Minima distanza Euclidea tra parole di codice 2-PAM 25
Probabilita` Errore P = P[ x= x ]P[ xˆ x x= x ] e i i x i 2 k S E,min (2 1) P[ x= xi]q 2N x 0 i Ed 2 k S E,min (2 1)Q 2N 0 Ed P e blocco 2 2 Ed S E,min k Ed S E,min LQ P e (2 1)Q 2N 0 2N 0 n. parole a d E,min L= 1 k 2 P e bit 2 2 Ed S E,min k Ed L Q P S E,min b (2 1)Q k 2N 0 2N 0 26
Confronto Sistema Codificato e Non Codificato P b,cod 2E Rd b H.min = Q N 0 2E b Pb,UNCOD = Q N 0 d E,min = 2dH,min b = S = S E E /R E n/k Per mantenere la velocita` di TX uguale bisogna incrementare la banda di 1/R G= Rd H,min Esempio: Hamming (7,4) G= 3 4/7= 2.34 db 27
Canale Binario Simmetrico 28
Modello di Canale Binario Simmetrico (BSC) Decodifica hard: operiamo la demodulazione ottenendo un canale equivalente binario y r {0,1} i i 1-p 0 0 p 1 1 Probabilita` di transizione (con trasmissione 2-PAM) e` 2E p P Q N b = e = 0 29
Decodifica ML in Canale BSC In forma vettoriale abbiamo per il canale binario simmetrico senza memoria r = c+ e Decodifica ML hard: massimizziamo la probabilita P[ r = rˆ c= cˆ] = P[r = r ˆ c = c ˆ ] n i= 1 n i= 1 = P[e = rˆ c ˆ c = c ˆ ] i i i i w ( rˆ cˆ) n w ( rˆ cˆ) H p (1 p) = H i i Se p<1/2, decidiamo per il vettore di codice a distanza di Hamming minima cˆ = argmin{d ( r, c)} c H 30
Correzione Con decodifica Hard possiamo correggere tutti i pattern di errore di peso minore uguale di 1 t = (dh,min 1) 2 Puo` accadere che correggiamo errori di peso > t 31
Rivelazione Con decodifica Hard possiamo rivelare tutti i pattern di errore di peso minore uguale di dh,min 1 Con la decodifica a sindrome, un pattern di errore di peso d H,min -1 non puo` trasformare la parola originaria in un altra parola di codice. Tuttavia possiamo anche rivelare pattern errore di peso maggiore di d H,min -1 poiche`: 2 k di codice e 2 n ricevute 2 n -2 k non sono di codice quindi rivelabili via decodifica a sindrome 2 n -2 n +2 k = 2 k non sono rivelabili Frazione di non rivelabili e` piccola: (2 k 1) /( 2 n 1) ~ 2 k-n 32
Probabilita` di Errore Con decodifica Hard possiamo correg. tutti i pattern di errore di peso minore uguale di t n n i n i P e(blocco) P[w( e) > t] = p (1 p) i=+ t 1 i Tipicamente la decodifica Hard differisce per 1-2 db da quella Soft in termine di Eb/No per ottenere la stessa Pe. 33
Codici Convoluzionali 34
Codice Convoluzionale Un codificatore convoluzionale e` una macchina a stati finiti lineare. Codice convoluzionale binario di rate k/n genera ogni k bit d ingresso n bit di uscita combinando modulo 2 i contenuti di uno shif register di lunghezza kk: b i 1 2 K 1 2 k 1 2 k 1 2 k + + + c i 1 c i n Gli shift sono k bit d ingresso alla volta. K e` detta constraint length (lunghezza di vincolo). 35
Codice Convoluzionale Binario 1/n Esempio rate ½ e K=3 + c i 1 b i 1 2 K=3 + c i 2 Viene descritto da una sequenza generatrice (detta polinomio di codice) g g (1) (2) = [101] [5] in ottale = [111] [7] in ottale Ciascuna uscita puo` essere ottenuta da un filtraggio modulo 2 (n) (n) ci = b g (i) 36
Diagramma a Traliccio (Trellis) Ingresso-uscita puo` essere rappresentata da un traliccio 00 01 0/00 1/11 10 11 stato transizioni ingresso/uscite Numero di stati uguale a 2 K-1 Numero di rami entranti/uscenti per stato uguale a 2 (rate 1/n) Lungezza del traliccio uguale al numero totale di bit di ingresso Se il codice e` terminato si parte dallo stato 0 e si ritorna allo stato 0 37
Decodifica ML Il decodificatore soft a massima verosimiglinza cerca tra tutte le parole di codice quelle a distanza euclidea minima (con rumore AWGN). Se consideriamo trasmissione 2-PAM e rumore additivo bianco il modello e`: y = E x + n i S i i 2 Sx i S i i y E = (y E x ) 2 Se assumiamo un codice di rate 1/n, allora i 2 y E x = d ( y, E x) = (y E x ) S E S ni+ m S ni+ m i m= 1 = BM( x ) = BM( x ) + BM( x ) i j i j< i PM(i 1) n BM( xi ) 2 La distanza totale e` ottenibile come somma di Branch metrics 38
Algoritmo di Viterbi La ricerca esaustiva delle sequenza a distanza minima si ottiene con una operazione ricorsiva di ADD, COMPARE, SELECT sul traliccio 00 01 10 11 Ciascun ramo puo` essere etichettato con il bit di ingresso, gli n bit di uscita, e la metrica di ramo (Branch Metric). Percorsi entranti in uno stesso stato (nodo) sono competitors e sopravvive solo quello con metrica di percorso (Path Metric) piu` piccola. Giunti alla fine del traliccio sompravviveranno un numero di percorsi pari al numero di stati. Scelgo quello di metrica piu` piccola, da cui ottengo la sequenza di bit di ingresso (sequenza decodificata). 39
Conclusioni La codifica di canale e` essenziale per consentire comunicazioni affidabili. Il codice deve essere progettato in funzione dell applicazione e del canale trasmissivo. 40