02.08.2013 Views

Codifica di Canale - InfoCom - Sapienza

Codifica di Canale - InfoCom - Sapienza

Codifica di Canale - InfoCom - Sapienza

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

INFO-COM Dpt.<br />

Dipartimento <strong>di</strong> Scienza e Tecnica<br />

dell’Informazione e della Comunicazione<br />

Università degli Stu<strong>di</strong> <strong>di</strong> Roma <strong>Sapienza</strong><br />

<strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong><br />

Co<strong>di</strong>ci a blocco<br />

TELECOMUNICAZIONI<br />

Profs. Roberto Cusani – Francesca Cuomo<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010


Co<strong>di</strong>ci <strong>di</strong> canale<br />

Contesto in cui si utilizzano i co<strong>di</strong>ci “<strong>di</strong> canale”: un sistema <strong>di</strong><br />

trasmissione (o <strong>di</strong> memorizzazione) soggetto ad errori <strong>di</strong> trasmissione<br />

(o <strong>di</strong> recupero dell’informazione)<br />

Obiettivo della co<strong>di</strong>ficazione: ridurre la probabilità <strong>di</strong> errore nella<br />

trasmissione <strong>di</strong> un messaggio, tramite introduzione <strong>di</strong> ridondanza nel<br />

messaggio trasmesso<br />

Co<strong>di</strong>ci semplici e noti:<br />

lingua parlata<br />

co<strong>di</strong>ce a ripetizione<br />

co<strong>di</strong>ce a controllo <strong>di</strong> parità<br />

Si fa riferimento a messaggi e sistemi binari e quin<strong>di</strong> a co<strong>di</strong>ci binari<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

2


Esempi pratici:<br />

co<strong>di</strong>ce fiscale<br />

co<strong>di</strong>ci a barre<br />

numerazione assegni<br />

biglietti aerei<br />

Co<strong>di</strong>ci <strong>di</strong> canale<br />

La ridondanza implica un allungamento del messaggio trasmesso,<br />

con conseguenze indesiderate del tipo: aumento dello spazio <strong>di</strong><br />

memoria richiesto (“ storage”) aumento <strong>di</strong> tempi <strong>di</strong> trasmissione<br />

(e/o memorizzazione) aumento della banda richiesta (es.<br />

applicazioni real-time)<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

3


Applicazioni della co<strong>di</strong>fica <strong>di</strong> canale<br />

L’importanza della co<strong>di</strong>fica <strong>di</strong> canale cresce con le trasmissioni <strong>di</strong>gitali<br />

Primo impiego dei co<strong>di</strong>ci: trasmissioni con lo spazio profondo:<br />

canale AWGN, banda illimitata, pochi ricevitori (costi trascurabili)<br />

Memorie <strong>di</strong> massa:<br />

compact <strong>di</strong>sc, <strong>di</strong>gital versatile <strong>di</strong>sc, nastri magnetici<br />

Comunicazioni <strong>di</strong>gitali senza filo (“wireless”):<br />

GSM, UMTS, wifi, wimax<br />

Comunicazioni <strong>di</strong>gitali su filo (“wired”):<br />

Modem per linea telefonica<br />

Broadcasting <strong>di</strong>gitale:<br />

DAB, DVB<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

4


Prestazioni e complessità della co<strong>di</strong>ficazione<br />

I primi sistemi <strong>di</strong> comunicazione numerici sono stati progettati<br />

cercando <strong>di</strong> ottenere una bassa probabilità <strong>di</strong> errore con l’uso <strong>di</strong><br />

elevata potenza oppure bande più larghe<br />

In trasmissione tale approccio è adeguato se la probabilità <strong>di</strong> errore<br />

richiesta non è troppo bassa, ed è basato sul concetto <strong>di</strong> ottenere<br />

buone prestazioni acquistandole con le risorse più preziose, cioè<br />

potenza e banda<br />

Grazie ai risultati ottenuti da C. E. Shannon si è visto che l’impiego<br />

<strong>di</strong> complesse tecniche <strong>di</strong> co-deco<strong>di</strong>fica, consentite dal progresso<br />

tecnologico, si possono ottenere elevate prestazioni al prezzo <strong>di</strong><br />

aumentare la complessità del sistema<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

5


Modello <strong>di</strong> Sistema <strong>di</strong> Trasmissione<br />

Sequenza binaria (data stream) emessa dalla sorgente<br />

Il data stream va in ingresso al co<strong>di</strong>ficatore <strong>di</strong> canale che<br />

effettua l’operazione <strong>di</strong> co<strong>di</strong>fica (introduzione <strong>di</strong> ridondanza)<br />

Code stream in uscita dal co<strong>di</strong>ficatore.<br />

In ricezione il deco<strong>di</strong>ficatore, rimuovendo la ridondanza, effettua<br />

rivelazione o correzione <strong>di</strong> eventuali errori introdotti dal canale<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010


Errori sui bit<br />

Il canale <strong>di</strong> comunicazione (attraverso la sua risposta impulsiva)<br />

può introdurre <strong>di</strong>storsioni nel segnale ricevuto<br />

– Con<strong>di</strong>zioni <strong>di</strong> Nyquist non verificate in ricezione<br />

Negli apparati in ricezione è presente una componente ad<strong>di</strong>tiva <strong>di</strong><br />

rumore termico<br />

– Disturbo sovrapposto al segnale ricevuto<br />

Entrambi questi fenomeni possono portare ad errori sul flusso<br />

binario in uscita al demodulatore numerico<br />

Ex: Tx [001010001] Rx [000010001]<br />

Errore sul terzo bit<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010


Effetto della co<strong>di</strong>fica <strong>di</strong> canale<br />

Me<strong>di</strong>ante l’introduzione <strong>di</strong> ridondanza nel flusso binario trasmesso<br />

l’operazione <strong>di</strong> co<strong>di</strong>fica <strong>di</strong> canale mira a<br />

– Rilevare la presenza <strong>di</strong> errori<br />

• Ex: co<strong>di</strong>ce <strong>di</strong> parità<br />

00-0 01-1 10-1 11-0<br />

permette <strong>di</strong> rilevare la presenza <strong>di</strong> un errore<br />

– Correggere un numero limitato <strong>di</strong> errori<br />

• Ex: co<strong>di</strong>ce a ripetizione<br />

0-000 1-111<br />

Diminuzione della probabilità <strong>di</strong> errore sul bit SENZA AUMENTARE LA<br />

POTENZA TRASMESSA<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010


Co<strong>di</strong>ci<br />

lineari<br />

Co<strong>di</strong>ci<br />

ciclici<br />

Classificazione dei co<strong>di</strong>ci <strong>di</strong> canale<br />

Co<strong>di</strong>ci a<br />

blocchi<br />

Co<strong>di</strong>ci non<br />

lineari<br />

Co<strong>di</strong>ci <strong>di</strong><br />

canale<br />

Co<strong>di</strong>ci lineari<br />

(convoluzionali)<br />

Co<strong>di</strong>ci ad<br />

albero<br />

Co<strong>di</strong>ci non<br />

lineari<br />

TCM Turbo<br />

co<strong>di</strong>ci<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

9


Co<strong>di</strong>ci a blocchi<br />

Data stream (non co<strong>di</strong>ficato) e code stream (co<strong>di</strong>ficato) vengono<br />

segmentati in blocchi <strong>di</strong> lunghezza prestabilita (dataword e codeword)<br />

Per un co<strong>di</strong>ce a blocchi (n,k) le data word consistono in k bit e le<br />

codeword in n bit (n


Esempi <strong>di</strong> co<strong>di</strong>ci elementari<br />

Co<strong>di</strong>ce a ripetizione (3,1) ovvero n=3,<br />

k=1<br />

Nel co<strong>di</strong>ce si usano solo 2 delle 8<br />

possibili sequenze <strong>di</strong> lunghezza 3<br />

Co<strong>di</strong>ce a controllo <strong>di</strong> parità (3,2)<br />

L’ultimo bit è un bit <strong>di</strong> parità rispetto<br />

ai primi 2.<br />

co<strong>di</strong>ficatore<br />

Data words Code words<br />

0 000<br />

1 111<br />

co<strong>di</strong>ficatore<br />

Data words Code words<br />

00 000<br />

01 011<br />

10 101<br />

11 110<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

11


Esempio <strong>di</strong> co<strong>di</strong>ce <strong>di</strong> controllo <strong>di</strong> parità (4,3)<br />

Esempio <strong>di</strong> co<strong>di</strong>ce <strong>di</strong> parità (4, 3):<br />

[0000], [0011], [0101], [0110]<br />

[1001], [1010], [1100], [1111]<br />

Il numero <strong>di</strong> 1 presenti in tutte le parole è sempre pari<br />

La ricezione della parola: [0100]<br />

è affetta da errore poiché contiene un numero <strong>di</strong>spari <strong>di</strong> 1<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

12


Esempio <strong>di</strong> co<strong>di</strong>ce <strong>di</strong> controllo <strong>di</strong> parità (6,3)<br />

Esempio <strong>di</strong> co<strong>di</strong>ce <strong>di</strong> parità (6, 3):<br />

[000000], [001011], [010110], [011101]<br />

[100101], [101110], [110011], [111000]<br />

gli ultimi 3 bit sono calcolati sommando bit 1-2, 2-3 e 1-3 rispettivamente<br />

Ricevendo la seguente parola:<br />

[010111]<br />

si rivela un errore dal momento che il bit 6 è <strong>di</strong>verso dalla somma del bit<br />

1 e 3<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

13


Co<strong>di</strong>ci a blocchi – (senza memoria)<br />

Differenza tra “co<strong>di</strong>ce” e “co<strong>di</strong>ficatore” :<br />

Co<strong>di</strong>ce: è una collezione <strong>di</strong> code word, in<strong>di</strong>pendente dal modo nel<br />

quale le code word stesse sono ottenute<br />

<strong>Co<strong>di</strong>fica</strong>tore: si riferisce alla corrispondenza uno-a-uno tra data word e<br />

code word, e si applica anche al <strong>di</strong>spositivo che realizza tale compito<br />

Il co<strong>di</strong>ce (n,k) è a blocchi quando il co<strong>di</strong>ficatore è senza memoria, cioè<br />

quando agli stessi k bit della data word corrispondono sempre gli stessi<br />

n bit della code word<br />

Il rapporto R c = k/n è la frequenza del co<strong>di</strong>ce (“rate”)<br />

Ogni dataword (blocco) viene co<strong>di</strong>ficata in<strong>di</strong>pendentemente senza<br />

interazioni con le data word precedenti o successive<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

14


Co<strong>di</strong>ci ad albero<br />

La corrispondenza tra data word e code word ha memoria: gli n bit<br />

della codeword <strong>di</strong>pendono anche da alcune data word precedenti<br />

Riferimento a data stream infinitamente lunghi ed a code stream che<br />

iniziano al tempo zero e continuano indefinitamente nel futuro<br />

il data stream viene <strong>di</strong>viso in segmenti (data frame) <strong>di</strong> k 0 data bit, con<br />

k 0 (generalmente) un intero piccolo<br />

<strong>Co<strong>di</strong>fica</strong>tore: macchina a stati finiti che mantiene una certa memoria<br />

delle data frame precedenti:<br />

Nel caso più semplice memorizza le m data frame più recenti inviate<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

15


Co<strong>di</strong>ce lineare<br />

Co<strong>di</strong>ci lineari e non lineari<br />

L’insieme delle code word (ovvero code stream per i co<strong>di</strong>ci ad<br />

albero) è chiuso per la somma modulo 2, ovvero:<br />

considerate due qualsiasi code word, la loro somma modulo 2 è<br />

ancora una code word<br />

ciò implica che la parola <strong>di</strong> tutti zeri è una code word<br />

Co<strong>di</strong>ce non lineare<br />

In caso <strong>di</strong> non vali<strong>di</strong>tà della proprietà precedente<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

16


<strong>Co<strong>di</strong>fica</strong>tori sistematici<br />

Il <strong>Co<strong>di</strong>fica</strong>tore si <strong>di</strong>ce sistematico quando i primi k bit <strong>di</strong> ogni code<br />

word x coincidono con i k bit della data word u<br />

A volte si parla <strong>di</strong> sistematicità del co<strong>di</strong>ce, anziché del co<strong>di</strong>ficatore:<br />

tuttavia, dal momento che la proprietà riguarda il mapping delle data<br />

word nelle code word, è propria del co<strong>di</strong>ficatore<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

17


Rivelazione <strong>di</strong> errore e ritrasmissioni<br />

In accordo a come il sistema fa uso delle capacità del co<strong>di</strong>ce, si<br />

<strong>di</strong>stingue tra: Co<strong>di</strong>ci a rivelazione d’errore e Co<strong>di</strong>ci a correzione<br />

d’errore<br />

Questa <strong>di</strong>stinzione non riguarda i co<strong>di</strong>ci ma piuttosto le strategie<br />

seguite dal sistema <strong>di</strong> co-deco<strong>di</strong>ficazione<br />

Nella rivelazione d’errore il deco<strong>di</strong>ficatore osserva la sequenza<br />

ricevuta all’uscita del demodulatore/decisore, e rileva se sono<br />

avvenuti errori o meno<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

18


Rivelazione d’errore<br />

Automatic Repeat reQuest - ARQ<br />

La rivelazione d’errore è utilizzata per realizzare uno <strong>di</strong> due possibili<br />

schemi:<br />

Nel monitoraggio dell’errore (error monitoring), il deco<strong>di</strong>ficatore<br />

fornisce all’utente una in<strong>di</strong>cazione continua sulla qualità della<br />

sequenza ricevuta, in modo che si possa scartare la sequenza se<br />

l’affidabilità <strong>di</strong>viene troppo bassa<br />

Nella richiesta <strong>di</strong> ripetizione (ARQ, Automatic Repeat reQuest) si<br />

chiede al trasmettitore <strong>di</strong> ripetere le trasmissioni fallite e, dunque,<br />

deve essere <strong>di</strong>sponibile un canale <strong>di</strong> ritorno (feedback) dal ricevitore<br />

al trasmettitore<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

19


Correzione d’errore (Forward ( Forward Error Correction-FEC<br />

Correction FEC)<br />

Il deco<strong>di</strong>ficatore tenta <strong>di</strong> ripristinare la corretta sequenza trasmessa<br />

quando vengono rilevati errori nella sequenza ricevuta<br />

A parità <strong>di</strong> co<strong>di</strong>ce la Forward Error Correction (FEC) richiede<br />

algoritmi <strong>di</strong> deco<strong>di</strong>fica più complessi rispetto alla rivelazione d’errore<br />

con ARQ<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

20


Correzione d’errore (Forward Error Correction - FEC)<br />

Il deco<strong>di</strong>ficatore tenta <strong>di</strong> ripristinare la corretta sequenza trasmessa<br />

ESEMPIO: Co<strong>di</strong>ce ciclico (6, 3):<br />

[000000], [001011], [010110], [011101],<br />

[100101], [101110], [110011], [111000]<br />

utilizzato su un sistema con correzione <strong>di</strong> errore<br />

Sequenza <strong>di</strong> parole ricevute:<br />

[000100] → [011101] → [101111] → [111000]<br />

La prima e la terza parola non appartengono al co<strong>di</strong>ce e quin<strong>di</strong> se ne<br />

può tentare una correzione, ad esempio limitando al minimo il<br />

numero <strong>di</strong> bit da mo<strong>di</strong>ficare nelle parole errate:<br />

[000000] → [011101] → [101110] → [111000]<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

21


Confronto tra ARQ e FEC<br />

La scelta <strong>di</strong>pende dalla particolare applicazione e dalla complessità<br />

del sistema <strong>di</strong> trasmissione considerato<br />

Lo schema ARQ è usualmente impiegato nelle comunicazioni tra<br />

computer, essendo <strong>di</strong>sponibile un canale <strong>di</strong> trasmissione a due vie<br />

insieme a <strong>di</strong>spositivi con grande memoria che memorizzano le<br />

informazioni entranti mentre effettuano, su richiesta, la procedura <strong>di</strong><br />

trasmissione<br />

Lo schema FEC si adotta quando si vuole proteggere l’informazione<br />

in un canale a una via oppure quando è richiesto il tempo reale<br />

oppure ritar<strong>di</strong> controllati (es. trasmissioni vocali <strong>di</strong>gitali interattive,<br />

deep-space communications)<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

22


Co<strong>di</strong>ci a blocco lineari<br />

Un co<strong>di</strong>ce a blocco è lineare se l’insieme delle codeword è chiuso per<br />

la somma modulo 2, ovvero, considerate due qualsiasi codeword, la<br />

loro somma modulo 2 è ancora una codeword<br />

Le operazioni <strong>di</strong> somma nelle sequenze binarie sono trattate con<br />

l’aritmetica modulo 2 ovvero definendo un Campo <strong>di</strong> Galois GF(2)<br />

Nella pratica tale aritmetica è realizzata tramite operatori logici:<br />

somma prodotto<br />

0+0 = 0 0 x 0 = 0<br />

0+1 = 1 0 x 1 = 0<br />

1+0 = 1 1 x 0 = 0<br />

1+1 = 0 1 x 1 = 1<br />

Somma algebrica<br />

modulo 2<br />

EXOR<br />

logico<br />

0+0 = 0 0⊕0 = 0<br />

0+1 = 1 0⊕1 = 1<br />

1+0 = 1 1⊕0 = 1<br />

1+1 = 2 0 1⊕1 = 0<br />

Prodotto<br />

algebrico<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

AND<br />

logico<br />

0 x 0 = 0 0∧0 = 0<br />

0 x 1 = 0 0∧1 = 0<br />

1 x 0 = 0 1∧0 = 0<br />

1 x 1 = 1 1∧1 = 1<br />

23


Co<strong>di</strong>ci a blocco lineari<br />

Un co<strong>di</strong>ce lineare possiede le seguenti proprietà:<br />

– La somma <strong>di</strong> due codeword è ancora una codeword.<br />

– La n–pla <strong>di</strong> tutti zeri è sempre una codeword<br />

Un co<strong>di</strong>ficatore a blocco (n, k) lineare è una corrispondenza tra:<br />

dataword u = [u [u0,…, 0,…, u uk-1] k-1] <strong>di</strong> k <strong>di</strong>git e<br />

codeword x = [x 0,…, x n-1] <strong>di</strong> n <strong>di</strong>git<br />

È realizzabile tramite una coppia <strong>di</strong> registri a scorrimento connessi tra<br />

<strong>di</strong> loro attraverso un banco <strong>di</strong> sommatori modulo 2 (EXOR logici)<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

24


Co<strong>di</strong>ci sistematici<br />

<strong>Co<strong>di</strong>fica</strong>tore (n, k) sistematico: i primi k bit delle codeword generate<br />

corrispondono ai bit delle dataword che le generano<br />

La sistematicità è una proprietà del CODIFICATORE, ovvero della regola <strong>di</strong><br />

associazione tra dataword e codeword (un co<strong>di</strong>ce può, al limite, essere<br />

esprimibile in forma sistematica, i.e. contiene parole che iniziano come le<br />

dataword)<br />

Semplifica la struttura in deco<strong>di</strong>fica<br />

Si può <strong>di</strong>mostrare che, dato un co<strong>di</strong>ce lineare con date prestazioni<br />

(probabilità <strong>di</strong> rilevare e/o correggere una parola errata) ne esiste sempre<br />

uno equivalente esprimibile in forma sistematica<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

25


Co<strong>di</strong>ce a ripetizione (4,1):<br />

0 0000<br />

1 1111<br />

x0 = u0 x2 = u0 Esempi <strong>di</strong> co<strong>di</strong>ci a blocco lineari<br />

x1 = u0 x3 = u0 Co<strong>di</strong>ce a parità doppia (4,2):<br />

00 0000<br />

01 0011<br />

10 1101<br />

11 1110<br />

x 0 = u 0<br />

x 2 = u 0+u 1<br />

x 1 = u 1<br />

x 3 = u 0+u 1<br />

x 3<br />

k = 1<br />

u 0<br />

x 2 x 1 x 0<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

x 3<br />

u 1<br />

u 0<br />

n = 4<br />

x 2 x 1 x 0<br />

26


Co<strong>di</strong>ce <strong>di</strong> Hamming (7,4)<br />

Il co<strong>di</strong>ce è sistematico ed utilizza solo 2 4 = 16<br />

delle 2 7 = 128 possibili sequenze<br />

Il co<strong>di</strong>ce è dato da:<br />

x i = u i<br />

x 5 = u 1+u 2+u 3<br />

x 6 = u 2+u 3+u 4<br />

x 7 = u 1+u 2+u 4<br />

i=1,2,3,4<br />

+ + +<br />

k=4<br />

u u4 u u3 u u2 u u1 x 7 x 6 x 5 x 4 x 3 x 2 x 1<br />

n=7<br />

Co<strong>di</strong>ce <strong>di</strong> Hamming (7,4)<br />

Data words Code words<br />

0000 0000 000<br />

0001 0001 011<br />

0010 0010 110<br />

0011 0011 101<br />

0100 0100 111<br />

0101 0101 100<br />

0110 0110 001<br />

0111 0111 010<br />

1000 1000 101<br />

1001 1001 110<br />

1010 1010 011<br />

1011 1011 000<br />

1100 1100 010<br />

1101 1101 001<br />

1110 1110 100<br />

1111 1111 111<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

27


Matrice generatrice del co<strong>di</strong>ce<br />

Il co<strong>di</strong>ce viene specificato dalle connessioni tra gli sta<strong>di</strong> del registro <strong>di</strong><br />

ingresso ed i sommatori<br />

Se il co<strong>di</strong>ce è sistematico, vanno assegnate solo le (n-k) equazioni<br />

del controllo <strong>di</strong> parità<br />

L’informazione che specifica la regola <strong>di</strong> co<strong>di</strong>fica (ovvero, la<br />

struttura del co<strong>di</strong>ficatore) è rappresentabile in modo sintetico da una<br />

matrice binaria G <strong>di</strong> <strong>di</strong>mensioni k x n (matrice generatrice del co<strong>di</strong>ce)<br />

L’elemento (i,j) <strong>di</strong> G vale 1 se l’i-esima cella del registro d’ingresso è<br />

connessa al j-esimo sommatore, altrimenti vale 0<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

28


Matrice generatrice del co<strong>di</strong>ce<br />

Si può quin<strong>di</strong> scrivere: x = u G (1)<br />

con x = [x 1,…,x n] vettore (1 x n) ed u = [u 1,…,u k] vettore (1 x k)<br />

Dalla (1), x viene ottenuto sommando le righe <strong>di</strong> G che<br />

corrispondono agli 1 nella u<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

29


Esempio<br />

Per il co<strong>di</strong>ce <strong>di</strong> Hamming (7,4), la matrice generatrice G può essere<br />

ricavata per ispezione dal co<strong>di</strong>ficatore:<br />

xi = ui i=1,2,3,4<br />

⎡1 0 0 0 1 0 1⎤<br />

x5 = u1+u2+u ⎢<br />

3<br />

0 1 0 0 1 1 1<br />

⎥<br />

G = ⎢ ⎥<br />

x6 = u2+u3+u4 ⎢0 0 1 0 1 1 0⎥<br />

x = u +u +u<br />

⎢ ⎥<br />

7 = u ⎢ ⎥<br />

1+u2+u4 ⎣0 0 0 1 0 1 1⎦<br />

Ad esempio, la code word che corrisponde alla data word u =<br />

[1100] si calcola sommando (mod. 2) le prime due righe <strong>di</strong> G:<br />

x = u G<br />

1000101 +<br />

0100111 =<br />

1100010<br />

code word<br />

(coincide con risultato nella<br />

tabella del co<strong>di</strong>ficatore)<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

30


Matrice generatrice del co<strong>di</strong>ce<br />

Per un co<strong>di</strong>ce sistematico le prime k colonne <strong>di</strong> G formano una<br />

matrice identità k x k, ovvero I k ,e si ha: G = [ I k ¦ P ]<br />

dove P è una matrice <strong>di</strong> <strong>di</strong>mensioni [k x (n-k)] contenente le<br />

informazioni relative ai controlli <strong>di</strong> parità<br />

Per un co<strong>di</strong>ce sistematico la conoscenza <strong>di</strong> P definisce in modo<br />

completo la regola <strong>di</strong> co<strong>di</strong>fica<br />

ESEMPIO Per il co<strong>di</strong>ce <strong>di</strong> Hamming (7,4) si ha:<br />

⎡1 ⎢<br />

0<br />

G = ⎢<br />

⎢0 ⎢<br />

⎣0 0<br />

1<br />

0<br />

0<br />

0<br />

0<br />

1<br />

0<br />

0<br />

0<br />

0<br />

1<br />

1<br />

1<br />

1<br />

0<br />

0<br />

1<br />

1<br />

1<br />

1⎤<br />

1<br />

⎥<br />

⎥<br />

0⎥<br />

⎥<br />

1⎦<br />

⎡1 ⎢<br />

0<br />

I4<br />

= ⎢<br />

⎢0 ⎢<br />

⎣0 0<br />

1<br />

0<br />

0<br />

0<br />

0<br />

1<br />

0<br />

0⎤<br />

0<br />

⎥<br />

⎥<br />

0⎥<br />

⎥<br />

1⎦<br />

⎡1 0 1⎤<br />

⎢<br />

1 1 1<br />

⎥<br />

P = ⎢ ⎥<br />

⎢1 1 0⎥<br />

⎢ ⎥<br />

⎣0 1 1⎦<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

31


Proprietà dei co<strong>di</strong>ci a controllo <strong>di</strong> parità<br />

Proprietà 1: Ogni code word è una somma <strong>di</strong> righe della matrice<br />

generatrice<br />

Proprietà 2: Il co<strong>di</strong>ce a blocchi è costituito da tutte le possibili<br />

somme delle righe della matrice generatrice<br />

Proprietà 3: La somma <strong>di</strong> due code word è ancora una code word<br />

Proprietà 4: La n-pla <strong>di</strong> tutti zeri è sempre una code word<br />

Dalle proprietà 1-4, i co<strong>di</strong>ci a controllo <strong>di</strong> parità sono anche detti<br />

co<strong>di</strong>ci lineari<br />

In effetti, la linearità viene espressa dalla: x = u G<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

32


Equivalenza tra co<strong>di</strong>ci a blocchi e sistematici<br />

Ogni co<strong>di</strong>ce a blocchi (n,k) non sistematico è equivalente a un co<strong>di</strong>ce<br />

sistematico (n,k) a blocchi<br />

Quin<strong>di</strong> si possono considerare solo co<strong>di</strong>ci sistematici<br />

Infatti due co<strong>di</strong>ci con matrici generatrici ottenibili l’una dall’altra con<br />

operazioni sulle righe e permutazioni sulle colonne hanno la stessa<br />

probabilità <strong>di</strong> rilevare una parola errata co<strong>di</strong>ci “equivalenti”<br />

la probabilità <strong>di</strong> errore sul bit può essere <strong>di</strong>versa: co<strong>di</strong>ci equivalenti<br />

possono avere co<strong>di</strong>ficatori <strong>di</strong>versi e, cioè, <strong>di</strong>versi mapping tra le data<br />

word e le code word<br />

Se interessa la probabilità <strong>di</strong> rilevare una parola errata si possono<br />

considerare solo co<strong>di</strong>ci sistematici<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

33


Peso e <strong>di</strong>stanza <strong>di</strong> Hamming Hamming, , e <strong>di</strong>stanza minima<br />

Peso <strong>di</strong> Hamming <strong>di</strong> una code word: numero <strong>di</strong> 1 contenuti<br />

Distribuzione dei pesi del co<strong>di</strong>ce: insieme <strong>di</strong> tutti i pesi <strong>di</strong> un co<strong>di</strong>ce,<br />

insieme al numero <strong>di</strong> code word <strong>di</strong> quel peso<br />

Co<strong>di</strong>ci equivalenti hanno la stessa <strong>di</strong>stribuzione dei pesi<br />

Distanza <strong>di</strong> Hamming <strong>di</strong>j tra due code word xi e xj: numero <strong>di</strong><br />

posizioni in cui le due code word <strong>di</strong>fferiscono. Si ha : 0 ≤ d ij ≤ n<br />

Distanza minima d min del co<strong>di</strong>ce: la più piccola tra le <strong>di</strong>stanze <strong>di</strong><br />

Hamming <strong>di</strong> <strong>di</strong>stinte code word (i≠j)<br />

TEOREMA: la <strong>di</strong>stanza minima <strong>di</strong> un co<strong>di</strong>ce a blocchi lineare è il<br />

peso minimo della code word <strong>di</strong>versa da zero<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

34


Peso e <strong>di</strong>stanza <strong>di</strong> Hamming Hamming, , e <strong>di</strong>stanza minima<br />

TEOREMA: la <strong>di</strong>stanza minima <strong>di</strong> un co<strong>di</strong>ce a blocchi lineare è il peso<br />

minimo della code word <strong>di</strong>versa da zero<br />

Dimostrazione<br />

in un co<strong>di</strong>ce lineare: la somma <strong>di</strong> due parole è una parola <strong>di</strong> co<strong>di</strong>ce e<br />

restituisce la parola nulla se e solo se le due parole sono uguali<br />

la <strong>di</strong>stanza <strong>di</strong> Hamming tra due parole è pari al peso della somma<br />

le possibili <strong>di</strong>stanze <strong>di</strong> Hamming tra coppie <strong>di</strong> parole <strong>di</strong>verse corri-<br />

spondono ai pesi delle parole del co<strong>di</strong>ce <strong>di</strong>verse dalla parola nulla<br />

La <strong>di</strong>stanza minima <strong>di</strong> Hamming è il peso minimo tra i pesi delle<br />

parole <strong>di</strong> co<strong>di</strong>ce <strong>di</strong>verse dalla parola nulla.<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

35


Esempio<br />

Per il co<strong>di</strong>ce <strong>di</strong> Hamming (7,4) si ha la<br />

seguente <strong>di</strong>stribuzione dei pesi:<br />

Peso Numero <strong>di</strong> code words<br />

0 1<br />

3 7<br />

4 7<br />

7 1<br />

Dalla proprietà (5) si ottiene: d min = 3<br />

Co<strong>di</strong>ce <strong>di</strong> Hamming (7,4)<br />

Data words Code words<br />

0000 0000 000<br />

0001 0001 011<br />

0010 0010 110<br />

0011 0011 101<br />

0100 0100 111<br />

0101 0101 100<br />

0110 0110 001<br />

0111 0111 010<br />

1000 1000 101<br />

1001 1001 110<br />

1010 1010 011<br />

1011 1011 000<br />

1100 1100 010<br />

1101 1101 001<br />

1110 1110 100<br />

1111 1111 111<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

36


Rivelazione d’errore<br />

TEOREMA (SULLA RILEVAZIONE D’ERRORE):<br />

Un co<strong>di</strong>ce lineare a blocchi (n,k) con <strong>di</strong>stanza minima d min può rilevare<br />

tutti i vettori errore <strong>di</strong> peso non maggiore <strong>di</strong>:<br />

d min -1<br />

ovvero si rivela un numero massimo <strong>di</strong> errori pari a (d min-1)<br />

Una configurazione <strong>di</strong> errori tale da tramutare una parola <strong>di</strong> co<strong>di</strong>ce valida<br />

in un’altra parola <strong>di</strong> co<strong>di</strong>ce valida non è rilevabile (i.e. un numero <strong>di</strong><br />

errori pari in un co<strong>di</strong>ce a parità)<br />

La <strong>di</strong>stanza minima tra due codeword valide è d min<br />

Un numero <strong>di</strong> errori minore <strong>di</strong> d min è pertanto sempre rilevabile<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

37


Correzione <strong>di</strong> Errori<br />

Laddove si riceva una parola y si hanno due possibilità<br />

– y è una parola <strong>di</strong> co<strong>di</strong>ce valida<br />

• Non vi sono errori<br />

• Vi sono errori tali da mo<strong>di</strong>ficare la parola trasmessa in un’altra<br />

parola <strong>di</strong> co<strong>di</strong>ce valida<br />

– y non è una parola <strong>di</strong> co<strong>di</strong>ce valida<br />

• Si richiede la ri-trasmissione avendo rilevato la presenza <strong>di</strong><br />

errori<br />

• Si corregge la parola ricevuta<br />

– y è data dalla parola trasmessa più il vettore <strong>di</strong> errore<br />

– si assume sia stata trasmessa la parola <strong>di</strong> co<strong>di</strong>ce a<br />

<strong>di</strong>stanza minima da y (si ipotizza cioè che sia avvenuto il<br />

numero minimo <strong>di</strong> errori possibili) DECODIFICA a<br />

MASSIMA VEROSIMIGLIANZA (ML)<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010


Correzione <strong>di</strong> errori<br />

L’algoritmo <strong>di</strong> deco<strong>di</strong>fica basato sulla minima <strong>di</strong>stanza ipotizza che e, il<br />

vettore errore effettivamente occorso, sia quello a minimo peso<br />

nell’insieme dei 2 k vettori errore che portano alla sindrome associata<br />

alla sequenza ricevuta y<br />

TEOREMA (SULLA CORREZIONE D’ERRORE):<br />

un co<strong>di</strong>ce lineare a blocchi (n,k), con <strong>di</strong>stanza minima d min , può<br />

correggere tutti i vettori d’errore contenenti un numero <strong>di</strong> errori non<br />

maggiore <strong>di</strong>:<br />

t<br />

⎢( d −1)<br />

⎥<br />

⎣ 2 ⎦<br />

min =<br />

⎢ ⎥<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

39


Deco<strong>di</strong>fica a massima verosimiglianza (ML)<br />

Rappresentazione qualitativa delle<br />

regioni <strong>di</strong> decisione assegnate alle<br />

code words:<br />

d min<br />

Code words Sequenze<br />

ricevute con<br />

errori<br />

Detected Errors Corrected Errors<br />

dmin ( dmin −1) ⎢⎣ ( dmin<br />

−1)/2<br />

⎥⎦<br />

2 1 0<br />

3 2 1<br />

4 3 1<br />

5 4 2<br />

6 5 2<br />

7 6 3<br />

8 7 3<br />

9 8 4<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

40


Deco<strong>di</strong>fica a massima verosimiglianza (ML)<br />

ESEMPIO: Il co<strong>di</strong>ce <strong>di</strong> Hamming (7,4) presenta d min = 3 e quin<strong>di</strong> può<br />

t = ⎢⎣ (3 − 1) / 2⎥⎦ = 1<br />

correggere errori, ovvero gli errori singoli<br />

Un co<strong>di</strong>ce a blocchi (n,k) con <strong>di</strong>stanza minima d min è un co<strong>di</strong>ce a<br />

correzione <strong>di</strong> t errori (t-error correcting code), o co<strong>di</strong>ce (n,k,t)<br />

L’obiettivo <strong>di</strong> un co<strong>di</strong>ce a blocchi (n,k) è <strong>di</strong> usare la propria ridondanza<br />

per ottenere la maggiore d min possibile<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

41


Probabilità <strong>di</strong> errore sul bit e sulla parola<br />

Obiettivo generale della co<strong>di</strong>fica: minimizzare la probabilità d’errore sul<br />

bit P b(e)<br />

Co<strong>di</strong>ci a blocchi: si cerca <strong>di</strong> minimizzare la probabilità d’errore sulla<br />

parola co<strong>di</strong>ficata P w(e)<br />

Nella correzione dell’errore, se il co<strong>di</strong>ce (n,k) corregge t errori:<br />

si ha un errore sulla parola quando si hanno almeno t+1 bit errati su<br />

n della parola <strong>di</strong> co<strong>di</strong>ce ricevuta<br />

la parola <strong>di</strong> co<strong>di</strong>ce decisa, con errore, contiene almeno d min= 2t+1<br />

bit errati su n<br />

nella parola dati ci sono, in me<strong>di</strong>a, k(2t+1)/n bit errati<br />

relazione tra probabilità d’errore sulla<br />

parola e probabilità d’errore sul bit:<br />

2t + 1<br />

Pb ( e) ≈<br />

Pw ( e)<br />

n<br />

R. Cusani, F. Cuomo – Telecomunicazioni – <strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Canale</strong> – Aprile 2010<br />

42

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!