Codifica di Canale - InfoCom - Sapienza
Codifica di Canale - InfoCom - Sapienza
Codifica di Canale - InfoCom - Sapienza
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