Sistemi di Telecomunicazioni
Corso di Laurea Specialistica in
Ingegneria delle Telecomunicazioni (DM 270)
A.A. 2014-2015
Pietro Guccione
Contenuti
Teoria dell’Informazione
 Basi della Teoria dell’informazione
 Teorema di Shannon
 Prestazioni dei sistemi di codifica
 Regime a potenza o a banda limitata
 Teorema della capacità di canale
 Introduzione ai codici
P Guccione
Teoria dell’Informazione
Lo schema di principio su cui si basa la teoria dell’informazione è il seguente
sorgente
destinazione
canale
rumore
Le principali domande a cui dà risposta la teoria dell’informazione sono quindi:
• il modo più economico per rappresentare i messaggi in modo da trasmettere
informazione, con qualità prefissata, su un canale non ideale
• come si possa trasmettere l’informazione su canale non ideale in modo
affidabile
Tecniche utilizzabili in pratica:
• codifica di sorgente senza/con perdita di informazione. (Esempi: file/immagine)
• codici di rivelazione/correzione dell’errore
Codifica senza vincoli di complessità: limite di Shannon
P Guccione
Codifica di sorgente
È necessario definire la qualità dell’informazione emessa da una sorgente.
Questa è detta entropia. È legata al costo minimo per la rappresentazione della
sequenza di messaggi emessi dalla sorgente
Tipi di sorgenti:
• continue: filtraggio, campionamento, quantizzazione
• discrete: intrinsecamente, come file, etc
• con memoria: i bit dipendono tra loro. Spesso è difficile valutare il grado di
correlazione tra i simboli (esempio: nella lingua parlata la correlazione esiste, può
essere anche molto lunga, ed è variabile nel tempo e a seconda del linguaggio)
• senza memoria: i bit sono emessi indipendentemente l’uno dall’altro
Le sorgenti si suppongono stazionarie: la probabilità di emissione dei simboli è
costante nel tempo.
Le sorgenti si suppongono ergodiche: l’osservazione di una realizzazione
permette di dedurre informazioni statistiche sull’intero processo (medie d’insieme e
temporali coincidono con probabilità 1).
P Guccione
Teorema dell’equipartizione 1
Permette di ricavare il concetto di informazione legata all’emissione di un simbolo.
Data una sorgente che emette simboli xi, scelti in un alfabeto di M simboli, ciascuno
con probabilità pi=P(xi), un messaggio molto lungo, fatto da N simboli, conterrà:
Np1 simboli x1, Np2 simboli x2, …, NpM simboli xM.
Per la legge dei grandi numeri, al tendere di N ad infinito la probabilità che siano
presenti proprio Np1 simboli x1, Np2 simboli x2, …, NpM simboli xM tende ad 1.
Questi messaggi si differenziano per la posizione dei simboli al loro interno.
La probabilità del singolo messaggio:
pmess  p1Np1  p2Np2  ... pMNpM
Siccome i messaggi emessi sono equiprobabili (per l’ergodicità), allora i possibili
messaggi sono: 1/pmess. Il minimo numero di bit necessari per descrivere tutto il
messaggio è:
n  log 2
P Guccione
1
  log 2 pmess
pmess
Teorema dell’equipartizione 2
Quindi il numero medio di bit necessari per descrivere il singolo simbolo è:
Questa quantità è l’entropia della sorgente. Si misura in bit/simbolo e dice qual è
l’informazione media legata alla sorgente, cioè la parte non predicibile del messaggio.
La quantità
Rappresenta il minimo numero di bit teoricamente necessari
per descrivere mediamente un simbolo.
Si definisce
informazione legata al simbolo emesso xi.
Esempio: entropia di una sorgente che emette due simboli indipendenti
tra loro:
P Guccione
Proprietà legate all’entropia
L’entropia rappresenta il modo più economico con cui si può codificare una
sorgente, ed è quindi sempre minore del numero medio di bit per simbolo
necessari a codificare qualunque sorgente.
numero medio di bit per simbolo
Un codice è univocamente decodificabile se vale la disuguaglianza:
Da qui si ricava che:
Se si sceglie, per ciascun simbolo, un numero di bit pari a:
si ha facilmente che:
Se si effettuano codifiche a blocchi, si ha
e quindi:
B
quindi se N è sufficientemente grande, il numero di bit per simbolo tende ad H(X).
P Guccione
Codifiche prossime all’entropia /1
Codifica di Huffmann: costruita mediante un albero binario, è univocamente decodificabile, poiché ogni codice non è prefisso dei codici precedenti.
È necessario conoscere le probabilità di emissione dei simboli.
Codifica universale: non richiede la conoscenza delle probabilità di emissione dei
simboli.
Si basa sull’idea di codificare sequenze sufficientemente lunghe.
Si consideri una sorgente binaria con probabilità di emissione pari a p per 1 e 1-p per 0.
Il singolo messaggio sarà impredicibile, ma su una sequenza lunga possiamo
prevedere che vi saranno Np uni e N(1-p) zeri. [La deviazione standard per una
binomiale tende a diventare trascurabile rispetto al valore medio (cresce con la radice
quadrata di N).]
P Guccione
Codifiche prossime all’entropia /2
Dato un messaggio di N simboli, si conta il numero di 1 e si codifica con:

bit. Al crescere di N il numero di bit/simbolo è trascurabile: lim
N 
log( N  1)
0
N
Inoltre si codifica anche la particolare disposizione degli 1 nel messaggio. Sono
necessari
bit.
Si può dimostrare che il costo del messaggio tende ad H(X) al tendere di N ad infinito.
P Guccione
Entropia condizionata
Si introduce quando esiste memoria nella sorgente: l’emissione di un simbolo dipende
da quella dei simboli precedenti.
Il condizionamento non aumenta l’entropia:
Entropia congiunta:
Per sorgenti con memoria è possibile definire l’entropia come il limite dell’entropia
condizionata ai simboli precedenti, facendo tendere il numero dei simboli precedenti
ad infinito (o sino a che non si esaurisce la memoria della sorgente):
H ( X )  lim H ( X k / X k 1 , X k 2 ,...,X k N )
N 
Nelle sorgenti con memoria conviene, per ridurre il numero di bit/simbolo, codificare
a blocchi, quindi sfruttare la conoscenza della memoria della sorgente.
P Guccione
Modelli del canale di trasmissione 1
Un canale di trasmissione può sempre essere ridotto al suo modello equivalente
discreto, dato che, dopo codifica, il segnale passa attraverso il mezzo trasmissivo,
viene ricevuto (eventualmente modula / demodula una portante) e campionato:
sorgente
X
codifica
canale
filtro rx
mezzo trasmissivo
campionatore
sorgente
Y=X+N
noise
La descrizione di una canale di trasmissione richiede:
• la conoscenza dell’alfabeto di ingresso e la probabilità di emissione dei simboli P( xi )
• la conoscenza dell’alfabeto di uscita yj
• le probabilità di transizione ingresso/uscita: P( y j / xi )
Si possono quindi calcolare le probabilità di emissione dei simboli P( y j )
Nell’ipotesi di ingresso continuo o uscita continua, le probabilità discrete diventano
densità di probabilità: p( x), p( y), p( y / x)
I modelli che usualmente si adottano sono: AWGN (con uscita continua: decisione soft)
e BSC (Binary Symmetric Channel, con uscita discreta: decisione hard).
P Guccione
Modelli del canale di trasmissione 2
È detta informazione mutua che transita su canale, la quantità
L’informazione mutua dipende dal canale e dalla statistica della sorgente ed ha il
significato di informazione residua che giunge a destinazione dopo che è stata
tolta l’equivocazione dovuta al canale.
Se invece la si scrive come:
ha il significato di informazione che
giunge a destinazione “corretta” dalla presenza del rumore.
Infatti risulta:
essendo:
Equivocazione, cioè quella parte di
informazione dovuta alla non
idealità del canale. Al variare della statistica
della sorgente il canale può essere più o
meno in grado di trasmettere informazione.
Si definisce capacità del canale, la massima informazione mutua possibile, al variare
della distribuzione di probabilità della sorgente all’ingresso:
P Guccione
Capacità di canale
Nel caso discreto la capacità di canale vale quindi:
Nel caso continuo, definita l’entropia come:
si ha, se è continua solo Y:
se è continua X ed Y:
Poiché si considera sempre rumore additivo ed indipendente: y=x+n, si ha anche:
Quindi:
P Guccione
Teorema di Shannon 1
Per calcolare la capacità con l’espressione precedente basta cercare il massimo
dell’entropia H(Y).
Se p(y) è la densità di probabilità di una generica variabile casuale y con valor medio my
e varianza σy2 e se Z(y) è la densità gaussiana di pari valor medio e varianza, si ha
Se come caso particolare si pone p(y) = Z(y) si ottiene il valore dell’entropia di una
variabile casuale gaussiana con varianza σy2
Se invece y è una generica variabile casuale, con densità p(y) e varianza σy2 si ha
con uguaglianza se e solo se p(y) = Z(y), cioè nel caso gaussiano.
P Guccione
Teorema di Shannon 2
Il valore dell’entropia di una sorgente gaussiana è:
Se la sorgente ha densità di probabilità qualunque p(y) invece:
Fissata la potenza (e quindi la varianza), l’entropia di Y è massima se è gaussiana.
Poiché si suppone il rumore gaussiano, la statistica di ingresso che rende massima
la capacità di canale è la statistica gaussiana.
Sotto tali condizioni, se si fissa la potenza della sorgente in ingresso:
,
essendo:
, si ha:
Quindi, equivalentemente:
C
P Guccione
1 
S
log1  
2  N
 bit 


 symbol 
Prestazioni dei sistemi di codifica 1
Scelta una modulazione numerica, il problema della codifica consiste nel cercare
il massimo di H(Y) (e quindi dell’informazione mutua) a parità di energia media
spesa per generare i simboli:
Per semplicità tuttavia si effettua la
ricerca supponendo i simboli in
ingresso equiprobabili
(e commettendo un piccolo errore).
Esempio: in una PAM a 4 livelli,
i più esterni sono più protetti da
rumore, ma costano di più.
L’ottimizzazione del
sistema prevederebbe il loro uso con
probabilità inferiore a quella dei
simboli interni.
Capacità di trasmissione per codifiche M-PAM (con ingressi
equiprobabili) rispetto ad una sorgente con ingresso gaussiano
P Guccione
Prestazioni dei sistemi di codifica 2
Con M livelli la capacità non può superare log 2 M
 bit 


 symbol 
qualunque sia l’SNR.
I sistemi di trasmissione più raffinati hanno un numero elevato di livelli ed un codice
che li utilizza con probabilità non uniforme.
La capacità di un sistema bi-dimensionale è doppia degli M-PAM, dato che
corrisponde a 2 M-PAM
su due portanti in quadratura.
Generalizzando, il teorema di Shannon
si può anche scrivere come:
S

C  log1  
 N
 bit 
 2D 


dove 2D equivale a “2-dimensioni”.
Capacità di costellazioni bidimensionali con emissione di simboli
equiprobabili confrontate con un ingresso continuo gaussiano
P Guccione
Riassunto dei risultati
Codifica in banda-base (M-PAM) o passa-banda (M-QAM) si possono ridurre allo
stesso modello discreto,
dove si suppone X la sequenza di simboli
all’ingresso ed N il rumore gaussiano additivo, con densità spettrale di potenza
monolatera pari a N0.
Detto 1 / T il symbol rate [symbol/sec],  il bit rate, misurato in [bit/2D] e
Es l’energia/2D, si hanno i seguenti risultati:
• la minima banda nominale è
• il data rate, in bit/sec è:
• la potenza del segnale (energia media / sec) è:
• il rapporto segnale rumore vale:
• la capacità del canale:
P Guccione
SNR normalizzato
Se  è l’efficienza spettrale nominale, la capacità di canale è sempre maggiore:
  C[bit ( 2 D ]  log2 (1  SNR)
La relazione precedente può essere scritta come:
SNR  2   1
Definiamo un rapporto segnale rumore normalizzato:
In base al teorema di Shannon:
Inoltre, essendo:
si ottiene:
La quantità precedente è detta rapporto segnale rumore per bit di informazione.
Il teorema di Shannon, in termini di
P Guccione
Regime a potenza limitata
Un canale AWGN può essere classificato come funzionante in regime a banda
limitata o potenza limitata, essendo banda e potenza i due vincoli per una
trasmissione numerica. La differenza sta nell’efficienza spettrale.
Come “linea di divisione” si usa =2 bit/2D, corrispondente alla massima efficienza
che si ottiene con una codifica binaria.
Potenza limitata (<2 bit/2D)
• SNR basso,
•
• La capacità cresce linearmente con l’SNR,
• Al tendere di →0, SNRnorm  Eb / N 0  log2 e
• Convengono codifiche binarie.
Esempio: comunicazione da spazio profondo.
Non si hanno limiti nella banda, ma restrizioni nell’uso della potenza, quindi
il sistema lavora con valori di
2 1
Eb / N 0 
 ln 2(1.59dB),
 0

R  ( P / N 0 ) / ln 2 [bit / s]
P Guccione
Regime a potenza limitata 1
Esempio: 2-PAM. Simboli trasmessi:
(potenza limitata)
SNRnorm 
Eb 
E 2
 b

N0 2  1 N0 3
Limite di Shannon: =2 bit/2D nella 2-PAM,
quindi
Eb / N0 
2  1


3
( 1.76dB)
2
Massimo guadagno di
codifica che si può ottenere a Pe=10-5
P Guccione
Regime a potenza limitata 2
In un regime a potenza limitata quindi l’efficienza spettrale nominale è sempre minore
di 2bit/2D, che corrisponde a quella ottenibile con una codifica di canale 2-PAM.
Le quantità sono normalizzate “per bit” e si usa Eb/N0 come misura normalizzata
del rapporto segnale rumore. Per un codice a blocchi basato sul 2-PAM, si ha
Eb   2
2
d min
 4 2
 la probabilità d’errore per simbolo è: P( E )  Q( 2Eb / N 0 )
 La probabilità d’errore per bit vale:
 d
P( E )
K (C )
Pb 

 Q
 2N 0
log 2 C log 2 C

2
min




Numero medio di
simboli vicini per
simbolo trasmesso
Si definisce allora guadagno effettivo di codifica di un codice C la differenza (in [dB])
tra il valore Eb/N0 ottenuto con C e quello che si ottiene con un 2-PAM, per avere la
stessa probabilità d’errore Pb(E).
P Guccione
Regime a potenza limitata 3
Siccome per una 2-PAM accade che
2
d min
 4Eb ,
definiamo il guadagno nominale di codifica come:
2
d min
 (C ) 
4 Eb
In modo che valga 1 per un 2-PAM.
Questo non è propriamente il guadagno effettivo di codifica, dato che di mezzo c’è la
non linearità dovuta a Q() e il numero medio di simboli vicini per bit trasmesso:
K b  K (C ) / log 2 C
Se Kb=1 allora le due quantità sono ~ uguali (a meno di upper bounds),
Se Kb>1, si usa una regola approssimata (per prob. d’errore reali):
 eff    0.2  log2 K b
P Guccione
[dB]
Regime a banda limitata 1
Banda limitata
• SNR grande,
•
• La capacità cresce logaritmicamente con l’SNR.
Ad ogni aumento dell’SNR di 3dB (per SNR grandi), la capacità cresce di ~1bit/2D.
• Convengono codifiche multilivello.
Esempio: il canale telefonico.
 Canale AWGN con banda W3500Hz, SNR 37dB.
 <log2(1+103.7) 12.3bit/s/Hz ed R<43 kbit/s
 Se si alza SNR di 3dB,  cresce soltanto di 1 bit/s/Hz e il bit rate di 3500bit/s.
P Guccione
Regime a banda limitata 2
In un regime a banda limitata quindi l’efficienza spettrale nominale è sempre maggiore
di 2bit/2D, che corrisponde a quella ottenibile con una codifica di canale 2-PAM.
Le quantità sono normalizzate “per 2-dimensioni” e si usa l’SNRnorm come misura
normalizzata del rapporto segnale rumore.
Le codifiche di base sono la M-PAM:
(alfabeto dei simboli)
(efficienza nominale)
e l’M-QAM
(
):
(numero medio di simboli vicini per 2D)
Distanza minima tra i simboli:
Energia media per simbolo:

3 Es
La probabilità d’errore su simb. (M>4) è: Ps ( E )  2Q 
 2  1 N0
P Guccione


  2Q 3SNRnorm



Regime a banda limitata 3
Esempio: M-PAM e M-QAM.
Probabilità d’errore M-PAM:
Probabilità d’errore M-QAM (/2D):
Poiché:

Ps ( E )  4Q 3SNRnorm

SNRnorm = 0 (Shannon Limit)
Massimo guadagno di
codifica che si può ottenere a Pe=10-5
P Guccione
Regime a banda limitata 4
Si definisce guadagno effettivo di codifica γeff di un codice A la differenza (in [dB])
tra il valore SNRnorm ottenuto con A e quello che si ottiene con una M-PAM (o MQAM), per avere la stessa probabilità d’errore Ps(E):
2
( A) 
2 Pr( E ) 2 K min ( A)  d min
Ps ( E ) 

Q
 2N0 
N
N


Si definisce guadagno nominale di codifica di un codice A
2
(2   1)d min

6Es
in modo tale che valga 1 per la M-PAM e l’M-QAM.
Si può scrivere Ps(E) in funzione di γ:

Ps ( E )  K s ( A)Q 3  SNRnorm
(con

numero medio di simboli vicini /2D. N è la dim. del codice).
Se Ks non è troppo grande, vale ancora la relazione che lega γeff a γ:
 eff    0.2  log2 K s
P Guccione
[dB]
Teorema della capacità di canale 1
Questo teorema è una conseguenza della legge dei grandi numeri. Esso afferma che,
“se si trasmette ad un ritmo minore del limite di Shannon, è possibile, con un opportuno
codice, ridurre la probabilità d’errore ad un valore piccolo a piacere”:
  C  P  0
Il teorema tuttavia non dice come costruire i codici da utilizzare per ridurre la probabilità
d’errore.
Per dimostrare il teorema si utilizzano (solo in teoria) i codici casuali di Shannon:
 Sia N il numero di simboli per blocco e  [bit/2D] il rate di trasmissione. Un codice
a blocchi casuale di Shannon C di lunghezza N e rate  è un insieme di M=2N /2
sequenze reali (parole di codice) di lunghezza N.
 L’energia media per parola di codice è NSx, detta Sx=P/2W l’energia media
per dimensione/simbolo, e supponendo distribuzione equiprobabile su C.
(esempio: per una 16-QAM si ha Sx=5)
 Ogni simbolo è scelto casualmente (ed indipendentemente dagli altri simboli) come un
numero reale distribuito secondo una statistica gaussiana a media 0 e varianza Sx.
P Guccione
Teorema della capacità di canale 2
Il calcolo della probabilità d’errore è fatto supponendo:
 di scegliere un codice casuale C
 di scegliere una particolare parola di codice da trasmettere, c0
 che il canale aggiunga del rumore gaussiano n a media 0 e varianza 2=N0/2
 al ricevitore, dato y= c0+n, si decide per c0 se esiste un solo c tale che
y  c  N   2   ,
2
 L’errore capita quindi se:
(decodifica “tipica” o a
massima verosimiglianza)
 0
y  c0
2
 N   2   
y  ci
2
  2   ,
oppure
ci  c 0
Poiché y  c0  n , il primo dei due eventi implica che n
2
non è nell’intervallo
N ( 2   )  n  N ( 2   )
2
Tuttavia essendo N 
2
N
2
k
con N  {N k } gaussiane, iid, a media 0 e varianza N2,
questa probabilità va a zero, per N   , con velocità esponenziale, per la legge
k
dei grandi numeri (decresce esponenzialmente con N).
P Guccione
Teorema della capacità di canale 3
Il secondo dei due eventi capita se “si scambia” un simbolo per un altro, quindi se
2
la distanza
yx
è nell’intervallo
N  2   
Per un risultato fondamentale della large deviation theory (derivata anch’essa dalla
legge dei grandi numeri), questa probabilità va a zero con
2  NE
essendo E (a parte termini di ordine ε) l’entropia relativa tra X ed Y:
 p XY ( x, y) log2
p XY ( x, y)
dxdy
p X ( x) pY ( y)
Nel caso di canale gaussiano, questa quantità è anche l’informazione mutua che
transita su canale:
 y2
1
I ( X , Y )  log 2 2
2

Quindi la probabilità che una parola di codice ci sia scelta al posto di c0 va a zero con
P Guccione
Teorema della capacità di canale 4
Quindi la probabilità di scambiare ci con c0 è limitata superiormente:
P(ci / c0 )  2  N I ( X ,Y ) ( ) 
Utilizzando un limite superiore anche per la probabilità d’errore complessiva, la
probabilità di scambiare una delle M-1 parole di codice con quella effettivamente
trasmessa, è superiormente limitata da:
Pci / c0   2 N / 2  2  N I ( X ,Y ) ( ) 
(essendo M-1<2N /2) che va esponenzialmente a zero con N, ammesso che
ed ε sia piccolo.
Questo prova che una probabilità d’errore arbitrariamente piccola può essere
ottenuta usando un codice casuale di Shannon ed una decodifica a massima
verosimiglianza.
P Guccione
Riduzione della probabilità d’errore
La probabilità d’errore si può, in conclusione, ridurre in uno dei seguenti modi:
 aumentare il rapporto segnale rumore, dato che questa soluzione aumenta la
capacità di canale;
 ridurre il rate di trasmissione, dato che questa soluzione riduce il numero di forme
d’onda al secondo e quindi diminuisce la richiesta di banda e di conseguenza il
rumore in ingresso al sistema;
 aumentare la lunghezza del blocco del codice (N), aumentando la complessità del
codice e il ritardo nelle operazioni di codifica/decodifica;
 evitare di distruggere l’informazione soft contenuta nei simboli ricevuti;
l’informazione hard infatti dà luogo a prestazioni inferiori.
P Guccione
Codici: strategie
Le principali strategie d’uso dei codici prevedono:
 correzione degli errori: quando gli errori non superano in numero la capacità
correttiva del codice. Esiste tuttavia, per ogni codice, il rischio che una particolare
e –si spera- molto improbabile sequenza di errori su canale generi una sequenza
errata e non riconosciuta come tale dal codice. Esiste anche una probabilità non
nulla che il codice corregga in modo errato.
 rivelazione degli errori e richiesta di ritrasmissione: purché esista un canale di
ritorno affidabile e si sopporti il ritardo di ritrasmissione. Anche in questo caso
possono sfuggire sequenze errate.
 strategie miste: correzione parziale legata ad un numero di errori piccolo e
richiesta di ritrasmissione (o scartare la sequenza) nei restanti casi di rivelazione
d’errore.
P Guccione
Codici: tipologie principali
Le principali tipologie di codici più comuni sono:
 codici a blocco: k cifre di informazione sono trasformate in n cifre di messaggio.
Esempio: il codice di parità, in cui n=k+1 e la k+1-sima cifra è la parità delle
restanti k.
 codici convoluzionali: codici dotati di memoria, in cui il messaggio emesso dal
codice dipende dalla cifra corrente e da un certo numero di quelle passate.
 codici composti: codici concatenati, codici prodotto, turbo-codici.
…0 1 0 1 1 0 0 0 1 0 1 …
…1 0 1 1 0 0 1 0 1 0 0 …
codifica
rumore
…0 1 0 1 0 0 0 0 1 0 1 …
…1 0 1 1 0 0 1 0 1 0 0 …
decodifica
P Guccione
Decodifica 1
Vi sono differenti strategie di decodifica. Generalmente, più complessa è la
decodifica, più efficace essa risulta nel ridurre la probabilità d’errore.
Decodifica hard
Consiste nell’effettuare la scelta al ricevitore numerico bit per bit, indipendentemente
l’uno dall’altro. Quindi nel passare i bit all’interno del decodificatore del codice per
verificare se vi sono errori, si sceglie la parola di codice più vicina a quella
decodificata.
…0 1 0 1 1 0 0 0 1 0 1 …
…1 0 1 1 0 0 1 0 1 0 0 …
codifica
rumore
… y1 y2 …
…
…
…0 1 0 1 0 0 0 0 1 0 1 …
…1 0 1 1 0 0 1 0 1 0 0 …
decodifica
P Guccione
yn …
Decodifica 2
Decodifica soft a massima verosimiglianza (ML)
Consiste nell’utilizzare direttamente il livello del segnale ricevuto per determinare, tra
le sequenze lecite (le parole del codice permesse) quella che più verosimilmente è
stata trasmessa (decodifica a massima verosimiglianza).
Si cerca quindi la parola di codice c, tale che
max  y n cn
c
n
o anche
min
y c
c
Complessità cresce con le parole di codice (2N)
2
…0 1 0 1 1 0 0 0 1 0 1 …
…1 0 1 1 0 0 1 0 1 0 0 …
codifica
rumore
…1 0 1 1 0 0 1 0 1 0 0 …
P Guccione
decodifica
ML
… y1 y2 …
yn …
Decodifica 3
Decodifica soft massima probabilità a posteriori (MAP) o bit a bit
Consiste nel calcolare, bit per bit la massima probabilità a posteriori, che tiene conto
della probabilità d’emissione della cifra in sorgente: per ciascun bit di informazione si
calcola la probabilità che questi sia 0, e si decide per lo zero se tale probabilità è
<0.5, altrimenti si decide per l’1.
Differenza con la decodifica soft ML:
 La decodifica ML, scegliendo la parola più probabile, rende minima la probabilità
che il blocco di bit sia sbagliato
 La decodifica MAP scegliendo bit per bit rende minima la probabilità che la
sequenza di bit sia sbagliata.
Spesso le differenze sono di poco rilievo (<<1dB) e dipendono dal codice.
…0 1 0 1 1 0 0 0 1 0 1 …
…1 0 1 1 0 0 1 0 1 0 0 …
codifica
rumore
…1 0 1 1 0 0 1 0 1 0 0 …
P Guccione
decodifica
MAP
… y1 y2 …
yn …
Decodifica 4
Esempio
Codice a parità (3,2): 2 bit di informazione + 1 bit di parità.
Possibili parole: (000), (011), (101), (110)
Campioni ricevuti: (y1,y2,y3).
Le probabilità P(0/yn) siano: (0.4, 0.7, 0.7).
Decodifica hard
Decodifica soft ML
Decisione indipendente bit per bit:
0.4 < 0.5 ? sì
→1
0.7 < 0.5 ? no
→0
0.7 < 0.5 ? no
→0
Decisione sulla parola più probabile:
(000)
→ 0.4 0.7 0.7 = 0.196
(011)
→ 0.4 0.3 0.3 = 0.036
(101)
→ 0.6 0.7 0.3 = 0.126
(110)
→ 0.6 0.3 0.7 = 0.126
(000) codice più probabile
(100): non è parola di codice.
Decodifica soft MAP
Decisione a posteriori sul bit più probabile:
1° bit: 0. Possibili sequenze (000) U (011) P=0.196+0.036=0.232
1° bit: 1. Possibili sequenze (101) U (110) P=0.126+0.126=0.252
2° bit: 0. Possibili sequenze (000) U (101) P=0.196+0.126=0.322
2° bit: 1. Possibili sequenze (011) U (110) P=0.036+0.126=0.162
3° bit: 0. Possibili sequenze (000) U (110) P=0.196+0.126=0.322
3° bit: 1. Possibili sequenze (011) U (101) P=0.036+0.126=0.162
(100): non è parola di codice, sebbene questi sono i valori più probabili per i tre bit
P Guccione
Prestazioni dei sistemi di decodifica
Sono mostrate le prestazioni di alcuni sistemi di decodifica a cui si è fatto cenno in
precedenza (codici lineari e convoluzionali)
Hamming (31,26). Decodifica soft e hard
P Guccione
Convoluzionale R=1/2 e 256 stati.
Decodifica soft e hard
Codici casuali
I codici possono anche essere generati casualmente. I codici casuali che risultano
sono:
 più semplici da generare
 non lineari e quindi più complessi da decodificare
Si può dimostrare che le prestazioni tendono a diventare uguali per tutti i codici
casuali all’aumentare della dimensione del blocco, N. Inoltre le prestazioni
complessivamente aumentano con N.
Queste prestazioni sono sempre, tuttavia, inferiori a quelle di codici non causali
(lineari, algebrici, concatenati, convoluzionali, etc).
100 codici casuali con N=20, K=4.
P Guccione
Codici casuali con N=24, K=12.
Confronto con il migliore codice delle stesse dim.
Codifica di Lempel-Ziv 1
Esistono diverse versioni del codice di Lempel-Ziv, inventato nel 1977. Tra queste
ricordiamo l’LZ77, l’LZ78. Loro differenti versioni sono utilizzate commercialmente
sotto forma di nomi quali WinZip, PKZip, LHA, WinRAR, etc.
 È una codifica a lunghezza variabile e a blocchi, nel senso che è variabile sia il numero
di simboli che si codificano, sia il numero di bit che di volta in volta si assegnano
al gruppo di simboli da codificare.
 Non richiede conoscenza a priori della statistica di sorgente. Tuttavia riesce a rendere
minimo il numero medio di bit per simbolo. (codici universali).
L’algoritmo comprime sequenze di simboli x1 , x2 ,... prese da un alfabeto di M  X
simboli.
n
Denotiamo con x m la sottosequenza xm , xm1 ,...,xn  .
L’algoritmo mantiene in memoria un certo numero di simboli passati (e già codificati),
detto finestra, w. Questa finestra di osservazione è usualmente molto lunga, anche
210-217 simboli.
P Guccione
Codifica di Lempel-Ziv 2
L’algoritmo opera come segue.
Supponiamo che ad un certo momento siano stati codificati già tutti i simboli sino a x P .
Tra i simboli successivi, ancora da codificare, l’algoritmo cerca la stringa più lunga in
assoluto che abbia corrispondenza con una appartenente alla finestra di osservazione
passata. Quindi cerca se esiste, per la stringa x PP1n una corrispondenza con la stringa
x PP1nuu purché questa appartenga alla finestra, quindi purché u  w.
L’idea dell’algoritmo LZ77 è di codificare questa stringa semplicemente utilizzando
(codificandole) le informazioni di n ed u.
In fase di decodifica, se si mantiene la stessa dimensione della finestra, arrivati alla
decodifica di x P , mediante la conoscenza di n ed u si potrà risalire alla sequenza x PP1nuu
e quindi utilizzare i simboli già decodificati per decodificare anche la sequenza x PP1n .
simboli già codificati, x1,…,xP
Finestra di osservazione, w
P Guccione
simboli da codificare, xP+1,…
Stringa di match, lunga n
Codifica di Lempel-Ziv 3
Esempio.
Si consideri la sequenza:
Vi è un match di n=3 a partire da u=7 simboli prima del puntatore corrente.
Invece nel caso
Vi è un match di n=4 a partire da u=2 (in questo caso si permette anche una parziale
sovrapposizione tra la stringa passata e quella di matching).
P Guccione
Codifica di Lempel-Ziv 4
In breve i passi dell’algoritmo sono i seguenti.
 Si codificano i primi w simboli con un codice a lunghezza fissa e senza
compressione. Poiché wlog M  è una piccola frazione dei bit totali, questa
inefficienza iniziale è assorbita dalla efficienza complessiva.
 Si seleziona il puntatore su P  w
Pn
Pnu
 Si trova l’indice n  2 più grande, in modo che risulti xP1  xP1u per un qualche u
nell’intervallo. 1  u  w
 Se non si trova nessun match, si pone n  1 e si codifica x P1 senza compressione,
cioè utilizzando un codice a lunghezza fissa log 2 M  .
 Se c’è match, si codificano i valori di n ed u. n è codificato nella sua
rappresentazione binaria, e facendolo precedere da log 2 n zeri, cioè
In questo modo la parola di codice che comincia con 0 n1 corrisponderà ai 2n interi
compresi nell’intervallo 2 n  m  2 n1  1 .
 Se n  1 si codifica u con un codice a lunghezza fissa di dimensione log 2 w .
 Si setta il puntatore da P a P+n e si riprende dal terzo punto.
P Guccione
Codifica di Lempel-Ziv 5
Sequenze tipiche
Sia data una sorgente X che emette simboli, scelti da un alfabeto di dimensione N:
x1 , x2 ,...,xN  . Per ogni simbolo sia nota la probabilità di emissione, p( xi ) .
Data una sequenza di n simboli i.i.d., questa è detta ε-tipica se per ogni ε piccolo a
piacere risulta:
1
 log px ( n )   H ( X )  
n
(n)
cioè l’informazione media per simbolo contenuta nella sequenza x è praticamente
uguale all’informazione media che minimamente può essere emessa dalla sorgente
(entropia).
Il concetto di sequenza tipica di una sorgente senza memoria può anche essere
ricavato, in maniera più intuitiva, a partire dalla variabile aleatoria che rappresenta il
numero di occorrenze di un generico simbolo xi  X all'interno della sequenza x ( n ) di
n simboli emessi dalla sorgente. Poiché questi sono indipendenti, si ha una v.a.
binomiale di parametri n e pxi  e, conseguentemente, di media npxi  . Si considera
allora tipica una sequenza in cui il numero di occorrenze di ogni simbolo xi  X coincide,
o per lo meno è prossimo, al corrispondente numero medio di occorrenze npxi  .
All’aumentare di n il numero di sequenze tipiche tende ad essere sempre più grande.
P Guccione
Codifica di Lempel-Ziv 6
Il motivo per cui la codifica di Lempel-Ziv funziona è da ricercare nella dimostrazione
del teorema dell’equipartizione (AEP).
Pur non conoscendo la statistica della sorgente, se w è sufficientemente grande, allora
w conterrà la maggior parte delle stringhe tipiche emesse dalla sorgente, sino ad una
certa lunghezza n* che dipende da w e dalla statistica di sorgente.
A regime quindi un codificatore sarà in grado di codificare efficacemente al minimo n*
simboli utilizzando non più di log w bit. Il numero medio di bit per simbolo diventa
quindi L  (log w) / n* .
Assumendo ora che la sorgente sia di tipo Markoviano, L è molto vicina all’entropia
condizionata della sorgente H ( X / S ) . In queste condizioni si verifica che:
 le stringhe tipiche di lunghezza n hanno tutte all’incirca probabilità di presentarsi
pari a 2  nH ( X / S ) ;
 data una stringa x PP1n la lunghezza attesa di una stringa precedente uguale
all’attuale vale circa: 1 / PrxPP1n 
P Guccione
Codifica di Lempel-Ziv 7
Se allora scegliamo n tale che 2 nH ( X / S )  w vi sarà una grande possibilità di incontrare
sequenze tipiche di lunghezza n nella finestra di osservazione w.
nH ( X / S )
 w le sequenze tipiche di lunghezza n nella finestra di
[Se invece 2
osservazione w vi capiteranno molto raramente]
*
La conclusione è che il valore ideale da scegliere per n è: n* : 2 n H ( X / S )  w da cui si
ha poi:
n* 
log w
H (X / S)
Quando il codificatore codifica una stringa di lunghezza n*, avrà bisogno di
log w  n* H ( X / S ) bit per codificare la posizione u. Per codificare il valore di n
avremo bisogno di un numero di bit che cresce solo logaritmicamente con n e quindi
trascurabile rispetto a log w che cresce linearmente con n.
L’algoritmo richiede in conclusione L  H ( X / S ) bit per simbolo di sorgente, che
rappresenta la minima informazione trasmissibile per la sorgente, indipendentemente
dalla sua statistica di ingresso (nota o no).
P Guccione