...

Codici correttori d`errore

by user

on
Category: Documents
17

views

Report

Comments

Transcript

Codici correttori d`errore
Capitolo 7
Strato FisicoCodici correttori d’errore e
capacità di canale
Baccarelli,
Cordeschi, Patriarca, Polli
1
Codici correttori d’errore
Obiettivi:
correggere o rivelare errori nella trasmissione di
segnali numerici (sequenze di simboli, usualmente
binari)
Correzione di errore → Eliminare l’errore dal
segnale ricevuto
Rivelazione di errore → Segnalare l’errore nel
segnale ricevuto
‰richiedere la ritrasmissione
‰scartare parte del segnale
Baccarelli,
Cordeschi, Patriarca, Polli
2
Esempio di correzione di errore
tratto da esperienza comune
Messaggio da trasmettere
....arriverò il 26/4/2002...
Errore di trasmissione; messaggio ricevuto:
....arriverò il 28/4/2002...
Errore non visibile, né recuperabile, in ricezione.
Messaggio codificato :
....arriverò il ventisei aprile prossimo venturo...
Due errori di trasmissione; messaggio ricevuto :
....arriverò il vantisei aprole prossimo venturo...
Errori correggibili da parte del ricevente.
Costo dell’operazione di codifica: un messaggio
con più caratteri alfanumerici,
cioè con una maggiore ridondanza
Baccarelli,
Cordeschi, Patriarca, Polli
3
Ridondanza
Ridondanza di un messaggio discreto (sequenza di simboli):
ρ
=
ΝΤ − Ν I
ΝΤ
=
ΝR
≤1
ΝΤ
dove si è indicato con
NI il numero di simboli strettamente necessario
per trasmettere l’informazione contenuta nel messaggio,
NT il numero totale dei simboli contenuti nel messaggio
stesso
(quindi NR = NT - NI numero di simboli ridondanti).
Il valore della ridondanza è compreso nell’intervallo
messaggio costituito
dal minimo numero
di simboli possibile
0 ≤ ρ ≤ 1
Baccarelli,
Cordeschi, Patriarca, Polli
messaggio
con contenuto
informativo nullo
(solo ridondanza)
4
Canale Discreto
xn
sequenza di
simboli di
ingresso
canale
discreto
yn
sequenza di
simboli di
uscita
per ogni simbolo introdotto all’ingresso
viene prodotto
un simbolo in uscita dal canale
I simboli sono usualmente costituititi da bit,
singoli o raggruppati in parole binarie.
Baccarelli,
Cordeschi, Patriarca, Polli
5
Esempi di canali discreti (1/2)
Sistema di trasmissione per segnali di dati (segnali numerici):
Sorgente
di dati
Destinatario
dei dati
sequenza di
simboli di ingresso
Modulatore
numerico
sequenza di
simboli di uscita
Mezzo
trasmissivo
Demodulatore
numerico
canale discreto
Baccarelli,
Cordeschi, Patriarca, Polli
6
Esempi di canali discreti (2/2)
Sistema di trasmissione per segnali fonici:
altoparlante
microfono
codificatore
PCM
segnali
analogici
sequenza di simboli
di ingresso (bit)
Modulatore
numerico
decodificatore
PCM
sequenza di simboli
di uscita (bit)
Mezzo
trasmissivo
Baccarelli,
Cordeschi, Patriarca, Polli
demodulatore
numerico
7
Canali discreti binari, ideali o
rumorosi
....001011011....
canale
binario
ideale
....001011011....
la sequenza di simboli di uscita è identica a quella di ingresso
....001011011....
canale
binario
rumoroso
....011010010...
.
la sequenza di simboli di uscita contiene errori casuali
Baccarelli,
Cordeschi, Patriarca, Polli
8
Canale discreto binario (1/2)
CANALE BINARIO RUMOROSO
X
0
1
1-p
p
p’
1-p’
0
Y
1
p = probabilità che uno “0” introdotto all’ingresso dia luogo a un “1” in
uscita
= P(Y = 1| X = 0)
p’ = probabilità che un “1” introdotto all’ingresso dia luogo a uno “0” in
uscita
= P(Y = 0 | X = 1)
Baccarelli,
Cordeschi, Patriarca, Polli
9
Canale discreto binario (2/2)
CANALE BINARIO IDEALE
0
X
p = p’ = 0
1
;
1
1
0
1
Y
1 - p = 1 - p’ = 1
Baccarelli,
Cordeschi, Patriarca, Polli
10
Canale Binario Simmetrico
Canale binario con p = p’
X
0
1
1-p
p
p
1-p
0
1
il parametro p è la “probabilità di errore” del canale
che è uguale a
p=P(Y=0|X=1)=P(Y=1|X=0)
Baccarelli,
Cordeschi, Patriarca, Polli
11
Canale discreto generico
a0 , ... , aα-1
alfabeto
di ingresso
a ordine
dell’alfabeto
di ingresso
a0
a1
ai
b0 b ,... , b
0
β-1
b1
.
alfabeto
.
.
.
.
.
P(bk |ai )
.
.
.
bβ-3
bβ-2
bβ-1
aα-2
X
aα-1
P(Y=bk |X=ai)
.
.
.
bk
di uscita
Probabilità
di transizione
del canale
Y
Probabilità di ricevere il simbolo
bk, condizionata all’aver trasmesso
il simbolo ai,
Baccarelli,
Cordeschi, Patriarca, Polli
12
Comportamento del canale
discreto
‰ In funzione del tempo
‰ In funzione della
sequenza di simboli
trasmessa
Le probabilità di transizione
possono variare in funzione
del tempo
Le probabilità di transizione
possono dipendere dai simboli
trasmessi prima del simbolo
attuale (od anche dopo)
Baccarelli,
Cordeschi, Patriarca, Polli
13
Canale binario simmetrico
stazionario e senza memoria
E’ un canale binario simmetrico in cui le probabilità di transizione:
‰sono costanti nel tempo (“stazionarietà”)
‰non dipendono dai simboli trasmessi prima o dopo il
simbolo in esame (il canale “non ha memoria”)
Per questo tipo di canale la probabilità di errore, p , è un
parametro costante che caratterizza completamente il canale
stesso.
Il canale binario simmetrico, stazionario, senza memoria costituisce il
caso di riferimento per lo studio dei codici correttori d’errore binari.
Baccarelli,
Cordeschi, Patriarca, Polli
14
Probabilità di errore p nel BSC
p
0
1 La probabilità p
0.5
intervallo di valori teoricamente possibili
intervallo di valori presi
in considerazione nella
teoria dei codici
è compresa per
definizione
nell’intervallo
0≤p≤1
Un BSC con probabilità di errore
p > 0,5 è equivalente a un BSC con
probabilità d’errore q = 1-p < 0,5
seguito da un invertitore (0→1 ; 1 →0)
Esempio:
Canale radio-mobile (GSM) p≅10-1, p≅10-2,
Downlink satellitare (DVB-S) p≅10-2,
Cavo Coassiale (DVB-C) p≅10-4,
intervallo di valori di
interesse applicativo, con
p sufficientemente
Baccarelli,
piccolo
Cordeschi, Patriarca, Polli
15
Schema di trasmissione con impiego
di codifica per correzione d’errore
probabilità
di errore di
canale = p
Sorgente
binaria
codificatore
sequenza
trasmessa
Canale
binario
simmetrico
probabilità di errore dopo
decodificazione = Pe
decodificatore
sequenza
codificata
destin.
Sequenza decodificata
eventualmente affetta
da errore
La codifica è utile se ha l’effetto di ridurre la probabilità di errore,
ossia se
Pe < p
Baccarelli,
Cordeschi, Patriarca, Polli
16
Esempio di codice correttore
d’errore
Data una sequenza binaria di sorgente, codificare ogni simbolo con una
parola di 3 simboli, secondo la corrispondenza biunivoca
simbolo di
sorgente
0
1
parola
di codice
0 0 0
1 1 1
Esempio:
sequenza di sorgente. . . . 0
1
1
0
1
. . .
sequenza codificata. . . . . 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1…
In base a quale criterio di decodifica il codice corregge gli errori?
Baccarelli,
Cordeschi, Patriarca, Polli
17
Criterio di decisione a Massima
Verosimiglianza (ML) per trasmissioni in
canali binari discreti e rumorosi (1/2)
x
Sequenza
binaria
trasmessa
Canale
binario
r
Sequenza
binaria
ricevuta
Decisore
MLD
x^
Sequenza
decisa
‰ Supponiamo
che la sequenza x=[x0…xn-1] possa assumere uno
degli L possibili valori {c0, c1,…, cL-1} ciascuno dei quali è una
stringa binaria lunga n bit
‰ Indichiamo con r=[r0…rn-1] la stringa binaria ricevuta (ossia
“misurata”) all’uscita del canale binario.
‰ Indichiamo con {P(r|x=ci, i=0,…,(L-1)} le risultanti L
probabilità di transizione del canale binario.
Baccarelli,
Cordeschi, Patriarca, Polli
18
Criterio di decisione a Massima
Verosimiglianza (ML) per trasmissioni in
canali binari discreti e rumorosi (2/2)
Criterio di decisione ML
‰ Ricevuto r, il decisore scegli come decisione quella
tra gli L possibili valori {c0, c1,…, cL-1} alla quale
corrisponde la probabilità di transizione più grande,
ossia in formule
x̂ = arg max {P ( r | x = ci )}
0≤ i ≤ L −1
Baccarelli,
Cordeschi, Patriarca, Polli
19
Esempio di decodifica a massima
verosimiglianza
Canale Binario Simmetrico stazionario
senza memoria, p<0.5
Errori sui bit indipendenti
Messaggi trasmessi lunghi 3 bits
Probabilità che sia commesso
1 errore P1=p (1-p)2
2 errori P2=p2(1-p)
3 errori P3=p3
P3 < P2 <P1
canale
viene da
111 o da 000 ?
101
P(101|111) > P(101|000)
(un solo errore è più
probabile di due)
Baccarelli,
Cordeschi, Patriarca, Polli
111 !
Cioè la sorgente
ha emesso un201
Codici a blocco (n,k)
I simboli binari emessi dalla sorgente sono codificati a
gruppi di k (“parole”)
Il codificatore, ad ogni parola di sorgente di k simboli in
ingresso, associa biunivocamente una parola di codice
formata da n simboli in uscita, con n > k
In generale, un codice a blocco risulta definito da 2k parole di codice di n
simboli, scelte tra le 2n sequenze possibili di n simboli. Ad esempio
Codice a blocco (3,1):
2 parole di sorgente possibili (21 = 2) → 0, 1
2 parole di codice (scelte tra 23 = 8 possibili)→ 000, 111
Codice a blocchi (5,2):
4 parole di sorgente possibili (22 = 4) → 00, 01, 10, 11
4 parole di codice (scelte tra 25 = 32 possibili)→ 00000, 01111, 10110, 11001
Baccarelli,
Cordeschi, Patriarca, Polli
21
Schema generale per la co-decodifica
di un codice a blocco (n,k)
sorgente
parola di sorgente
emessa
formata da k simboli
(2k parole possibili)
destinatario
^
a
a
codificatore
decodificatore
parola di sorgente
decisa,
formata da k simboli
(2k parole possibili),
non necessariamente
uguale ad a, a causa di
errori di decodifica.
canale
parola di codice
c
BSC
r
formata da n simboli
(2k parole scelte tra 2n
possibili)
sequenza ricevuta
formata da n simboli
(2n sequenze possibili, a causa
degli errori di canale)
Baccarelli,
Cordeschi, Patriarca, Polli
22
Distanza di Hamming fra
sequenze binarie
Date due sequenze binarie x ed y formate da m simboli, si
definisce Distanza di Hamming d(x,y) il numero di simboli, in
posizioni omologhe, in cui le due sequenze differiscono.
Si osservi che risulta 0≤d≤n.
Esempio per n = 7:
sequenza x →
sequenza y →
n
0101111
1100011
distanza: d = 3
Baccarelli,
Cordeschi, Patriarca, Polli
23
Distanza minima di Hamming di un
codice a blocchi
Si definisce come distanza minima dmin di Hamming di un codice a
blocco (n,k) il minimo valore della distanza di Hamming tra due parole
qualsiasi appartenenti al codice
Il codice (3,1), ed il codice (5,2) prima definiti hanno ambedue distanza dmin =
3.
000
111
d=3
d=3
d=3
00000
01111
10110
11001
Baccarelli,
Cordeschi, Patriarca, Polli
d=4
d=3
d=4
d=3
24
Relazione tra distanza di un codice e
probabilità di errore dopo
decodificazione (1/2)
canale
0
dal
codificatore
c = [c0 , c1 ,..., cn-1]
1-p
0
al decodificatore
p
1
p
1
r = [r0 , r1 ,..., rn-1]
1-p
‰Sia t (0 ≤ t ≤ n) la distanza di Hamming tra c e r, ossia:
d(r,c) = t
‰Quindi, su n simboli trasmessi abbiamo:
t trasmissioni con errore
n-t trasmissioni senza errore
‰Supponiamo gli errori statisticamente indipendenti (canale senza
memoria), allora la probabilità di transizione di canale è calcolabile
t
come segue
n −1
⎛
⎞
P ( r | c ) = ∏ P ( ri | ci ) = p t (1 − p )
i =0
n −t
p
n
p
1
=⎜
−
)
⎟ (
⎝1− p ⎠
Baccarelli,
Cordeschi, Patriarca, Polli
25
Relazione tra distanza di un codice e
probabilità di errore dopo
decodificazione (2/2)
Criterio di decisione a Massima Verosimiglianza:
data la sequenza r ricevuta, decidere in favore della parola di
codice c per la quale è massima la P(r|c) data dalla
t
⎛ p ⎞
n
P (r | c) = ⎜
⎟ (1 − p )
⎝ 1− p ⎠
Per p≤0.5 il massimo di P(r|c) al variare di c si ha in corrispondenza del
minimo di t.
Criterio della Minima Distanza di Hamming:
data la sequenza ricevuta r, decidere in favore di quella del
codice c* che ha la minima distanza di Hamming da r.
Baccarelli,
Cordeschi, Patriarca, Polli
26
Esempio di decodifica a minima
distanza di Hamming
Codice (5,2) con dmin = 3 :
Parole del codice:
00000 01111
10110
11001
Parola trasmessa: 10110
Errori nel canale Sequenza ricevuta
Parola decisa
0
10110
10110
1
10111
10110
1
10100
10110
1
10010
10110
1
11110
10110
1
00110
10110
2
00111
00111
…
…
…
Baccarelli,
Cordeschi, Patriarca, Polli
3
3
3
3
3
3
2
min d(r,c) = 0
min d(r,c) = 1
min d(r,c) = 1
27
Capacità di correzione di errori
del codice
Sia c(T) la parola di codice trasmessa e sia r la sequenza ricevuta,
con d(r, c(T) ) = t
Dato che r è stata ottenuta da c(T) modificandola in t posizioni,
occorre modificare r in almeno altre dmin - t posizioni per
ottenere un’altra parola di codice, distante almeno dmin da c(T) .
Per t < dmin /2 valgono le relazioni
d(r, c ) ≥ dmin - t > t per ogni c ≠ c(T)
Nelle condizioni dette la decodifica a minima distanza è sempre
corretta. Quindi deduciamo che
un codice a blocco (n,k) con distanza di Hamming dmin
garantisce la correzione di tutte le configurazioni di
errore contenenti un numero di errori
Baccarelli,
t ≤ ⎣(d
min–1)/2⎦
Cordeschi, Patriarca, Polli
28
Capacità di rivelazione d’errore di
un codice a blocco
Un codice a blocco (n,k) può essere anche usato per rivelare errori
di canale nella sequenza ricevuta r.
‰ La presenza di errori viene rivelata tutte le volte che la sequenza
ricevuta r non coincide con alcuna delle parole di codice {c0,c1,…,cL-1}.
‰ Errori di canale che trasformino una parola di codice in un’altra non
possono essere rivelati. Quest’ultima evenienza può evidentemente
verificarsi soltanto se t≥ dmin .
‰ Quindi
un codice a blocco (n,k) con distanza dmin garantisce
la rivelazione di tutte le configurazioni di errore
contenenti un numero di errori t ≤ dmin-1
Correzione d’errore
t ≤ ⎣(dmin–1)/2⎦
Rivelazione d’errore
t ≤ dmin-1
Baccarelli,
Cordeschi, Patriarca, Polli
29
Probabilità d’errore residua dopo
decodificazione (1/2)
Trasmissione senza codifica:
a
sorgente
canale BSC
prob.err. = p
â
destinazione
^
Pe =P(a≠a)=
p
La probabilità di simbolo errato Pe al destinatario è uguale alla
probabilità d’errore del canale, p.
Trasmissione con codifica a correzione d’errore:
sorgente
a
codificatore
c
ĉ
canale BSC
prob.err. p
decodificatore
destinazione
^
Pe = P(c≠c)=
<p
la probabilità Pe di errore “residuo” dopo decodificazione (dovuta
agli errori che non vengono corretti dal decodificatore) è minore
Baccarelli,
della probabilità d’errore del
canale,
p.
Cordeschi, Patriarca, Polli
30
Probabilità d’errore residua (2/2)
Codice (n,k) a distanza dmin
Ha la capacità di correggere tutte le configurazioni d’errore con un
numero massimo di errori t = ⎣(dmin-1)/2⎦
Relazione di calcolo per la Pe =P(c≠c) probabilità di errore sulla
parola di codice:
Pe =
n
∑
i = t +1
⎛n⎞ i
⎛ n ⎞ t +1
n −i
⎜ ⎟ p (1-p ) ≅ ⎜
⎟ p , p << 1/ 2
⎝i⎠
⎝ t + 1⎠
Baccarelli,
Cordeschi, Patriarca, Polli
31
Complessità della co-decodifica
Codificatore:
Accesso a tabella che definisce la corrispondenza biunivoca tra
parole di sorgente e parole di codice. Tale tabella contiene 2k coppie
di elementi.
complessità esponenziale con k
Decodificatore:
Confronto della sequenza ricevuta con le 2k possibili parole di
codice trasmesse.
complessità esponenziale con k
Esistono codici a contenuto algebrico, nei quali le operazioni di codecodifica sono realizzate mediante operazioni algebriche e non mediante
accesso a tabella (teoria algebrica dei codici)
riduzione della complessità (lineare in k)
Baccarelli,
Cordeschi, Patriarca, Polli
32
Ridondanza e “transmission rate”
Si definisce “transmission rate” (tasso di trasmissione) R di un
codice il rapporto tra numero di simboli entranti ed uscenti dal
codificatore
k
R = = 1− ρ
n
dove ρ
n−k
ρ=
n
rappresenta la ridondanza del codice. Poiché n>k, avremo che R<1.
Baccarelli,
Cordeschi, Patriarca, Polli
33
Scelta dei valori di k e di n
Si consideri costante il transmission rate k/n.
All’aumentare di k e di n:
‰ È possibile trovare codici aventi dmin (e quindi
capacità di rivelazione e di correzione d’errore) più
elevata
‰ Aumenta la complessità di co-decodifica
‰ All’aumentare solo di n, diminuisce il
transmission rate R.
Baccarelli,
Cordeschi, Patriarca, Polli
34
La Capacità di Canale – Generalità
(1/4)
S
b( kTb )
CODER
MOD.
s(t )
CANALE
D
bˆ( kTb )
DECODER
DEMOD.
r (t )
‰ Con riferimento allo schema precedente, supponiamo che la sorgente
emette una sequenza di bit {…, b((k-1)Tb), b(kTb),…} a periodo di segnalazione
binaria: Tb=1/fb (sec).
‰ Supponiamo che la sequenza binaria {b(kTb), k=0,±1, ±2…} sia codificata,
modulata, trasmessa nel canale, demodulata e , infine, decodificata nella
^
sequenza { b(kTb), k=0,±1, ±2…}.
‰ Indichiamo con
^
PE P(b(kT
b) ≠ b(kTb) )
Baccarelli,
la risultante probabilità di errore
di decodifica.
Cordeschi,
Patriarca, Polli
35
La Capacità di Canale – Definizione
(2/4)
Per definizione, la capacità C (bit/sec) del canale
trasmissivo è il massimo valore che può assumere fb al
variare in tutti i modi possibili delle coppie MoDemodulatore e Co-Decodificatore sotto il vincolo che
la PE risultante sia nulla.
‰ In formule,
C max{ fb= 1/Tb} (bit/sec),
‰ Sotto il vincolo che
^
PE = P(b ≠ b)=0,
‰
dove il massimo è da intendersi rispetto a tutte le
possibili scelte delle coppie Mo-Demodulatore e CoDecodificatore.
‰
Baccarelli,
Cordeschi, Patriarca, Polli
36
La Capacità di Canale – Proprietà
(3/4)
‰ Dal punto di vista analitico, la capacità C di un
canale è un numero reale e non negativo, che si
misura in (bit/sec).
‰ Dal punto di vista ingegneristico, C
rappresentante la massima velocità con cui una
sorgente binaria connessa al canale può
trasferire simboli d’informazione binari sotto
^
il vincolo che la sequenza {b(kTb), k=0,±1, ±2…}
ottenuta dopo decodificazione coincida con la
sequenza trasmessa {b(kTb), k=0,±1, ±2…} .
Baccarelli,
Cordeschi, Patriarca, Polli
37
La Capacità di Canale – Proprietà
(4/4)
suo specifico valore di
capacità C, che dipende dal tipo e dall’entità
‰ Ogni canale ha un
dei disturbi introdotti dal canale stesso.
‰ I canali
elevate.
migliori sono quelli con capacità più
Baccarelli,
Cordeschi, Patriarca, Polli
38
La capacità del canale “Additive
White Gaussian Noise” (AWGN) (1/3)
‰ Come esempio di calcolo di capacità, consideriamo il seguente
modello di canale, detto canale AWGN a banda limitata.
n(t )
H( f )
s(t )
‰
i.
ii.
r (t )
+
−W
W
f
Essenzialmente il canale,
Somma al segnale modulato s(t) un segnale n(t) di rumore gaussiano
bianco, a media nulla, e con spettro bilatero di densità di potenza
Pnn(f)=N0/2 (Watt/Hz);
Fa transitare il segnale somma risultante s(t)+n(t) attraverso un
filtro passa-basso di larghezza di banda W(Hz).
Baccarelli,
Cordeschi, Patriarca, Polli
39
La capacità del canale Additive White
Gaussian Noise (AWGN) (2/3)
‰ Indichiamo con
T /2
1
2
(t )dt (Watt )
Ps = lim
s
∫
T →+∞ T
− T /2
la potenza del segnale modulato che entra nel canale.
‰ Si può dimostrare che la capacità C (bit/sec) del suddetto canale
è pari a
⎛
Ps ⎞
C = W log 2 ⎜ 1 +
(bit/sec)
⎟
N0W ⎠
⎝
‰ La formula precedente è nota come “formula
Shannon-Hartley”.
Baccarelli,
Cordeschi, Patriarca, Polli
della capacità di
40
La capacità del canale Additive White
Gaussian Noise (AWGN) (3/3)
E’ interessante osservare che :
‰
i.
Per ogni fissato valore della banda W, abbiamo
che:
lim C = 0 , e :
Ps / N 0 → 0
ii.
lim C = +∞
Ps / N 0 → ∞
Per ogni fissato valore del rapporto Ps/N0,
abbiamo che:
Ps
lim C = 0, e: lim C =
(log 2 e ) (bit/sec)
W →0
W →∞
N0
Baccarelli,
Cordeschi, Patriarca, Polli
41
Fly UP