Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
COMUNICAZIONI WIRELESS CAMPOBELLO GIUSEPPE
La formula suddetta permette di determinare la probabilità di sbagliare a
decodificare una codeword da parte di un codice di rilevazione (o di correzione)
di errore, semplicemente sostituendo (o ) a
.
La probabilità è la probabilità di errore sulle codeword.
La probabilità di errore sui bit dopo la decodifica può essere calcolata
( ),
come −
(
≈ ∑ ( ) − )
=+
è la probabilità di sbagliare a codificare la codeword mentre la probabilità
d’errore sui bit va calcolata con la prima formula in figura che può essere
approssimata con +
≈
Esistono dei casi particolari in cui le formule diventano ancora più semplici
1
Approssimazioni utili: se e allora
<< <<
2
• 2 2
(
= 1 → ≈ ( ) = − 1)
2
(−1)(−2)
3
• 3 3
= 2 → ≈ ( ) =
3
2
La codifica di canale migliora sempre la BER?
La risposta è NO, non sempre la codifica di canale migliora la BER
Indichiamo con l’energia per bit in assenza di codifica e con
=
l’energia per bit in presenza di codifica
Per non alterare l’energia totale in trasmissione deve essere
ovvero unsigned)
∗ = ∗ = ( =
Trasmettendo con segnalazione bipolare su un canale AWGN avremmo come
BER
• senza codifica
(√ )
• con codifica:
(√ ) (√ )
=
Sapendo che il valore di nella seconda BER è più piccolo
= ∗
rispetto a prima e ciò comporta un aumento nella probabilità d’errore
introdotta dal canale. L’energia dopo la codifica deve diminuire e
possiamo vedere che lo fa seguendo il valore di .Trasmettendo quindi a
parità d’energia la probabilità d’errore dopo la codifica è aumentata e ciò
è in opposizione al principio che la codifica di canale migliora le
prestazioni 108
COMUNICAZIONI WIRELESS CAMPOBELLO GIUSEPPE
Essendo sembrerebbe che a parità di la codifica di canale peggiora la
< 1
BER.
Notazione da ricordare:
• : probabilità di errore sui bit in assenza di codifica
• : probabilità di errore sui bit con codifica ma prima della decodifica
Si trova all’uscita del canale
• : probabilità di errore a seguito della decodifica calcolata sulle
codeword
Si trova all’uscita del decodificatore ed è la probabilità d’errore sulle
codeword
• : probabilità di errore sui bit dopo la decodifica
Si trova all’uscita del decodificatore ed è la probabilità d’errore sui bit
Nell’esempio precedente:
2
•
(√ )
=
0
(probabilità di errore sui bit in assenza di codifica)
2
•
(√ )
=
0
(probabilità di errore sui bit in caso di codifica ma prima della decodifica)
è maggiore di
• (probabilità di errore sui bit dopo la decodifica)
può essere inferiore a e anche di
A parità di energia, la BER prima del decodificatore peggiora ma può migliorare
sensibilmente dopo la decodifica (non è sempre così…).
All’aumentare del rapporto segnale rumore diminuisce la probabilità d’errore
però esiste un valore basso del rapporto segnale-rumore per il quale la può
essere superiore alla .
109
COMUNICAZIONI WIRELESS CAMPOBELLO GIUSEPPE
Per valori bassi del rapporto segnale-rumore la può essere superiore alla
.
La codifica di canale può essere utilizzata per
1. Ridurre la BER a parità di (es. A C)
→
/
0
2. Ridurre (e quindi ) a parità di BER (es.
/ → )
0
è detto guadagno del codice.
| |
= −
0 0
Ad esempio, nel passaggio da D ad E si ha un guadagno di 5dB.
La probabilità d’errore può essere utilizzata per ridurre la potenza in
trasmissione.
CODIFICATORI E DECODIFICATORI DI BLOCCO
Come si implementa un codificatore di blocco?
• Un codice di blocco lineare può essere definito per tramite di una
matrice di generazione, di dimensioni
, ×
• permette di calcolare le codeword corrispondenti ai blocchi di
informazione come =∗
(Nota: qui e in seguito si assumono vettori riga).
,
• La matrice definisce una possibile realizzazione dell’encoder basata su
sole porte XOR.
• è un vettore che rappresenta i bit di informazione
→
• è un vettore che rappresenta i bit delle codeword
→
All’aumentare di e aumenta il costo dell’encoder.
Un codice è sistematico se dei bit di codice coincidono con i bit di
informazione. 110
COMUNICAZIONI WIRELESS CAMPOBELLO GIUSEPPE
• Esempio: = , = 01
• In un codice sistematico [ |]
=
parte della matrice coincide con la matrice identica
• è nota come matrice di parità ed ha dimensioni (
× − )
• I codici sistematici semplificano la decodifica (se la codeword ricevuta è
corretta, per riottenere l’informazione basta scartare i bit di ridondanza)
Perché è importante questa realizzazione? Per vedere come realizzare i
decodificatori, essi si basano sulla matrice di controllo di parità.
Dalla matrice (o P) è possibile determinare la matrice di controllo di parità
=
[ | ]
−
La matrice ha dimensioni
( − ) ×
Proprietà: => per tutte le codeword
∗ ∗ = 0 ∗ = 0
Infatti, [ |]
∗ ∗ [ ] = ⊕ = 0
−
Il vettore è detto sindrome
= ·
• Proprietà: la sindrome è nulla se la parola ricevuta è una codeword
Infatti,
= = ∗ → = ∗ = ∗ ∗ = 0
• In presenza di errore e
= ( ⊕ )
(
= ∗ = ⊕ ) ∗ = ∗ ⊕ ∗ = ∗ ≠ 0
• Calcolando la sindrome è possibile rilevare se la codeword è stata corrotta
e in alcuni casi determinare il pattern di errore.
• Su tale proprietà si basano i codici di rilevazione/correzione di errore
Se è una codeword il risultato della formula è zero (vettore!)
∙
Questo prodotto è un vettore che prende il nome di sindrome.
Implementazione di un decoder FEC:
• Si calcola la sindrome (con un circuito a porte XOR)
= ∗
• Da si ottiene il pattern di errore (con reti combinatoriali o LUT)
• Si corregge la codeword, (con porte XOR)
̂ = ⊕
̂
• Nei codici sistematici da si ottiene prendendo i primi bit
̂
111
COMUNICAZIONI WIRELESS CAMPOBELLO GIUSEPPE
Se la sindrome è uguale a zero non ho problemi ma se è diversa da zero la
sfrutto in parte per capire gli errori e se riesco a capire il pattern di errore (i bit
cambiati) mi basta sfruttarla per tornare al mio codice di partenza.
• Nei codici di blocco FEC si fanno corrispondere valori distinti della
sindrome ai pattern di errore che si vuole correggere (iniziando dagli
errori da un bit fino agli errori
da bit).
• La sindrome ha dimensione quindi i possibili valori distinti della
−
sindrome sono −
2
• sono quindi i pattern di errore che (al più) è possibile
−
2
distinguere/correggere
• (non tutti gli errori possono essere corretti)
−
2 < 2
Il problema è che la sindrome ha dimensione pari alla ridondanza e
( − )
quindi non posso correggere tutti gli errori.
Hamming Bound: condizione necessaria affinché un codice di blocco corregga
tutti i pattern di errore con un numero di bit errati minore o uguale a è che
t c
−
≥ ∑ ( )
=
Si hanno infatti da un bit, errori da due bit, etc…
( )errori ( )
1 2
Esiste un teorema per ciò che prende il nome di Hamming Bound che ci
permette di fissare conoscendo e
.
Per realizzare codici di blocco ad alte prestazioni occorre massimizzare la
distanza minima, la quale dipende dal numero di bit di ridondanza ( − )
D’altra parte, si vuole che la code-rate sia prossima a 1.
=
Codici di blocco buoni sono codici che hanno il valore della code-rate prossimo
a 1 ovvero i valori di e grandi ma ciò comporta una matrice di generazione
molto grande.
Soddisfare entrambi questi requisiti comporta valori elevati di e di
,
conseguenza encoder e decoder complessi (dovuti alla matrice di generazione
molto grande).
La teoria dei codici di blocco risale agli anni ’50 quando ancora non esistevano le
porte TTL (TI,1