14.8
Modulazione OFDM↓↓
La
sigla sta per
Orthogonal Frequency Division
Multiplex, ossia
multiplazione a divisione di frequenza
ortogonale. Si tratta della tecnica di modulazione numerica
adottata per le trasmissioni
adsl,
dvb-t, e
WiFi,
ed ha la particolarità di utilizzare in modo
ottimo la banda del
canale, e di ricondurre l’operazione di equalizzazione ad un prodotto
tra vettori.
14.8.1
Rappresentazione nel tempo ed in frequenza
La modulazione
ofdm
suddivide una sequenza binaria su
N
diversi flussi, trasmessi a divisione di frequenza mediante forme d’onda
ortogonali. Concettualmente possiamo pensare l’
ofdm
come una evoluzione della modulazione
fsk, in cui le diverse frequenze sono
spaziate tra loro di
Δ Hz come descritto
dall’espressione
con
n = 0, 1, ..., N − 1 e
sono utilizzate contemporaneamente, mentre su ognuna di esse si realizza
una modulazione numerica anche a più livelli (es.
qpsk
o
qam) con impulso
nrz
rettangolare di durata
T.
Indicando quindi con
akn
= aknc + jakns
le coordinate nel piano dell’inviluppo complesso di un generico punto
della costellazione realizzata per la portante
fn
all’istante
t = kT, il
segnale
ofdm può essere scritto come
in cui la prima sommatoria (su
k)
identifica gli istanti di simbolo, e la seconda (su
n)
le diverse portanti. Tale segnale presenta
un inviluppo complesso rispetto a
f0
pari a
L’espressione (
16.40↑)
non vincola la durata
T di un
simbolo ad un valore particolare; deve però risultare
T
≥ T0 = (1)/(Δ),
in quanto il ricevitore opera sul segnale
xR(t)
ottenuto per moltiplicazione con una finestra temporale di estensione
T0 = (1)/(Δ),
allo scopo di rendere ortogonali tra loro le
frequenze
fn = f0
+ Δ⋅⎛⎝n
− (N)/(2)⎞⎠, e
mettere in grado il ricevitore di calcolare i valori
akn
per tutti gli
n presenti
all’istante
t = kT,
mediante un ricevitore concettualmente simile a quello a correlazione
presentato a pag.
1↑.
L’intervallo
T0 è detto
periodo principale del simbolo
ofdm,
mentre la differenza
Tg
= T − T0 è indicata come
tempo di
guardia↓,
od anche
preambolo, ed il segnale ricevuto durante
Tg
non è usato in ricezione. Il motivo di tale “spreco” risiede nel fatto che, in presenza di un
canale che introduce distorsione lineare, la parte iniziale di ogni
simbolo risulta corrotta (vedi figura) da una interferenza
intersimbolica
↓ (
isi) dovuta al risultato della convoluzione
tra la coda del simbolo precedente e l’
h(t)
del canale. Consideriamo ora
un solo simbolo (fissiamo
k
= 0 e consideriamo l’origine dei tempi ritardata di
Tg)
ricevuto nell’intervallo
T0 = (1)/(Δ) ≤ T, con inviluppo
complesso
e calcoliamone la trasformata per determinare l’occupazione di banda:
Otteniamo allora la costruzione grafica mostrata alla figura a lato,
dove si evidenzia come ogni funzione
sinc
risulti moltiplicata per uno dei coefficienti
an,
che potrebbero quindi essere ri-ottenuti in ricezione campionando (in
modo complesso)
X(f) su frequenze spaziate di
Δ.
Per quanto riguarda la densità di potenza
↓
PxR(f)
dell’inviluppo complesso
xR(t)
ricevuto e finestrato, consideriamo l’espressione (vedi §
6.3.1↑)
in cui
|XT0(f)|2 è la densità di energia
di un simbolo
ofdm (eq.
(16.43↑)): la figura a lato
ne mostra l’andamento (in scala lineare ed in dB) per un simbolo a 32
portanti, di cui 16 (esterne)
spente (vedi appresso), mentre per
le 16 centrali si è posto
an
= 1. Notiamo come si ottenga una densità spettrale di potenza
quasi
rettangolare pur utilizzando simboli a durata finita.
Mostriamo ora come mettere in relazione la
potenza ricevuta complessiva
PxR
di
xR(t) e del suo inviluppo complesso
PxR
con la dinamica dei valori
an
utilizzati per modulare le singole portanti: nel seguito ci riferiamo a
costellazioni
l-qam, indicando con
Mn ed
Ln
= 2Mn rispettivamente il
numero di bit e di punti di costellazione per la portante n-esima, ad
ognuna delle quali la
(16.40↑)
attribuisce una potenza
Pn.
Per calcolare la
(16.45↑)
mediante la
(16.44↑)
utilizzando l’espressione di
XT0(f)
fornita dalla
(16.43↑),
osserviamo che le funzioni
sinc(fT0)
che vi compaiono
sono ortogonali↓
se spaziate per un multiplo di
Δ = (1)/(T0),
ovvero (vedi §
4.1.3↑)
sussiste la condizione
∫∞ − ∞sinc((f − nΔ)T0) sinc((f
− mΔ)T0)df
= ⎧⎨⎩
0
se n
≠ m
(1)/(T0)
se n
= m
Pertanto, introducendo una insignificante
traslazione di
f pari a
(N)/(2)Δ, si ha
PxR
=
(1)/(T)⌠⌡E{|XT0(f)|2}df
=
= (1)/(T)⌠⌡T20N − 1⎲⎳n = 0N − 1⎲⎳m = 0E{ana*m}sinc((f
− Δn)T0) sinc((f
− Δm)T0)df =
=
(T20)/(T)N
− 1⎲⎳n = 0E{a2n}⌠⌡sinc2((f
− Δn)T0)df = (T20)/(T)N
− 1⎲⎳n = 0E{a2n}(1)/(T0)
= (T0)/(T)N
− 1⎲⎳n = 0σ2an
in quanto i termini incrociati prodotti
dalla doppia sommatoria si annullano.
Scegliendo il lato della costellazione
qam
in modo opportuno, si può
ottenere
σ2an = E{a2n}
= 2 Pn, in
cui
Pn
è la potenza per la n-esima portante
qam;
considerando infine (vedi eq.
(11.9↑)
a pag.
1↑)
che
PxR
= P
+ xR
+ P
− xR
= (2)/(4) PxR
= (1)/(2) PxR
possiamo scrivere
PxR
= (1)/(2)(T0)/(T)N − 1⎲⎳n = 02 Pn = (T0)/(T)N
− 1⎲⎳n = 0
Pn
in cui è evidenziata la perdita di potenza legata alla presenza del
preambolo.
14.8.2
Architettura di modulazione
Una caratteristica fondamentale della
modulazione
ofdm↓
è quella di essere realizzata senza
oscillatori e integratori,
ma attraverso l’uso della elaborazione numerica. Con riferimento alla
figura
14.38↓,
il flusso binario a frequenza
fb
viene
parallelizzato per formare simboli ad
L
= 2M livelli a frequenza
fs
= (fb)/(M) = (fb)/(log2L).
Questi
M bit/simbolo sono
suddivisi in
Ñ gruppi di
Mn
(
n = 0, 1, ..., Ñ − 1) bit
ciascuno, con
M = ∑Ñ
− 1n = 0Mn,
e ad ogni gruppo di
Mn
bit corrisponde un punto di costellazione
an,
scelto tra
Ln = 2Mn
punti possibili.
La sequenza
{an} viene poi
arricchita con
N − Ñ valori nulli (metà
all’inizio e metà
alla fine) ottenendo una nuova sequenza
{an} di
N
valori, in modo che la sommatoria in (
16.43↑)
dia luogo ad un inviluppo complesso praticamente limitato in banda (vedi
figura) tra (circa)
±(N)/(2)⋅Δ Hz, che può essere
pertanto rappresentato dai suoi campioni
xT0(hTc)
presi a frequenza
fc = N⋅Δ
(campioni)/(secondo). Il blocco indicato come
FFT
− 1↓ svolge
esattamente il calcolo di campioni temporali di
xT0,
calcolando
Il risultato della FFT
− 1 è
quindi una sequenza di valori complessi
{xh}, che a meno di un segno alterno
rappresentano i campioni dell’inviluppo complesso
xT0(t)
espresso dalla (
16.42↑)
relativamente ad un simbolo. Dopodiché, il preambolo da trasmettere
durante il tempo di guardia
Tg
è ottenuto
aggiungendo in testa a
{xh}
un gruppo di campioni prelevati dalla coda.
Infine, le parti reale ed immaginaria di {xh}
sono inviate ad una coppia di convertitori D/A operanti a fc
= (N
+ Ng)/(T)
= (N)/(T0) = NΔ in modo da
ottenere le c.a. di b.f., utilizzate per produrre il segnale xOFDM(t)
mediante una coppia di modulatori in fase e quadratura.
14.8.3
Efficienza dell’OFDM↓
Come vedremo al §
14.8.9↓,
questa è una tra le tecniche di modulazione che meglio approssima i
risultati della teoria dell’informazione, tanto più quanto maggiore è la
sua efficienza. Quest’ultima si ottiene considerando che solo
Ñ
portanti su
N trasportano
informazione, e che solo
fc⋅T0
campioni su
fc⋅T
sono unici; combinando queste quantità si ottiene
ρ = (Ñ)/(N)(T0)/(T) = (Ñ)/(N)(T
− Tg)/(T)
= (Ñ)/(N)⎛⎝1 − (Tg)/(T)⎞⎠
che misura la frazione di segnale utile rispetto all’occupazione di
banda ed al numero di campioni/simbolo presenti in
xOFDM(t).
La ridondanza
↓ introdotta (le
portanti vuote ed il preambolo) ha gli stessi scopi di quella introdotta
dal roll-off
γ di un impulso a
coseno rialzato, in quanto evita che si verifichino fenomeni di
interferenza tra simboli, e realizza un segnale limitato in banda.
Osserviamo che l’efficienza migliora all’aumentare di
T
e di
N, dato che
Tg
ed
N − Ñ sono fissi.
Esercizio Un flusso binario a velocità fb
= 1 Mbps è trasmesso mediante modulazione OFDM con portante
1 GHz, caratterizzata da: Ñ = 464
portanti attive su N = 512
totali, Mn = 2
bit a portante, con modulazione qpsk,
e Tg = 28 μsec di tempo di guardia.
Calcolare: 1) il numero di bit/simbolo M ed il corrispondente
periodo di simbolo T e 2) la spaziatura tra portanti Δ
= 1⁄T0
e la corrispondente occupazione di banda.
- M
= Mn⋅Ñ = 2⋅464 = 928
bit/simbolo, e
T = 1⁄fb⋅M
= 10 − 6⋅928 = 928 μsec;
- T0
= T − Tg = 928 − 28 = 0.9
msec, dunque Δ = 1⁄T0≃1.11
KHz, e
B = N⋅Δ = 512⋅1.11⋅103≃568
KHz.
14.8.4
Architettura di demodulazione
Per ottenere gli elementi della sequenza
{an}
e quindi il gruppo di
M bit che
hanno originato il simbolo, si adotta l’architettura mostrata in figura
14.40↑
che svolge una azione del tutto inversa a quella del modulatore.
Innanzitutto il ricevitore deve acquisire il sincronismo di frequenza
(vedi §
14.8.11↓),
in modo che il segnale ricevuto possa essere demodulato in fase e
quadratura, e le
c.a. di
b.f.
campionate a frequenza
fc
= (N
+ Ng)/(T).
Dopo l’inversione di segno ad indici alterni, e dopo avere acquisito il
sincronismo di simbolo,
fc⋅T
campioni complessi sono bufferizzati, quindi gli
Ng
campioni del preambolo rimossi, e sugli
N
valori del periodo principale viene calcolata una
fft
(vedi nota
14.8.2↑)
, ottenendo i valori
Solo gli
Ñ valori centrali sono
avviati verso altrettanti decisori, che determinano il punto di
costellazione più vicino all’
an
ricevuto per ogni portante, associandovi il relativo codice di
Mn
bit, ed il risultato finale è quindi serializzato per produrre gli
M bit che hanno dato origine al
simbolo.
Al §
14.12.2↓
viene svolta una laboriosa analisi per arrivare a valutare l’espressione
della
Pbite in caso di tempo di
guardia
Tg = 0
ed in presenza di rumore additivo gaussiano limitato alla stessa banda
del segnale; il risultato è confrontato con quello ottenibile per una
trasmissione
qam che occupi la
medesima banda dell’
ofdm, trasporti lo
stesso flusso
fb,
utilizzi ovviamente una sola portante con un adeguato numero di livelli,
e adotti un impulso a coseno rialzato che determini la stessa
(in)efficienza spettrale legata nell’
odfm
alla presenza delle
Ñ portanti
spente. Il risultato è che le prestazioni
sono identiche.
E allora dov’è la convenienza ? E’ il tema delle
prossime sottosezioni.
14.8.6
Sensibilità alla temporizzazione
Con l’
ofdm non
siamo nelle condizioni di demodulazione coerente come per l’
fsk (§
14.5.1↑),
e le portanti del simbolo
ofdm
ricevuto mantengono ortogonalità (§
14.12.1↓)
purché finestrate su di un periodo
T0
= (1)/(Δ). Pertanto, nel caso in cui
il ricevitore non acquisisca una perfetta sincronizzazione di simbolo,
se l’
isi introdotta dal canale ha una
durata minore di
Tg,
la
fft di demodulazione può operare su
di un gruppo di campioni presi a partire dalla coda del preambolo,
riducendo così la sensibilità rispetto agli errori di sincronizzazione.
Consideriamo il caso in cui la trasmissione
attraversi un canale la cui
h(t) è descritta da un inviluppo
complesso
H(f) in cui il modulo non è costante e/o
la fase non è lineare: in tal caso
XT0(f)
di (
16.43↑)
si altera a causa del filtraggio, ed i suoi campioni
an
restituiti dalla (
16.47↑)
si modificano in
ãn
= an⋅Hn
in cui
Hn = Hnejφn
= H⎛⎝f
− Δ⎛⎝n
− (N)/(2)⎞⎠⎞⎠
sono i campioni (complessi) di
H(f).
Come anticipato, l’equalizzazione è quindi ridotta ad eseguire un
semplice prodotto tra la sequenza dei valori ricevuti
ãn
e quella di equalizzazione
(e − jφn)/(Hn) che inverte l’effetto del
canale, ovviamente purché si conosca
H(f),
od una sua stima.
14.8.8
Codifica differenziale ↓
Nel caso in cui la distorsione lineare
introdotta dal canale non sia
eccessiva, si può evitare del
tutto lo stadio di equalizzazione, e ricorrere ad una
codifica
differenziale (§
14.4↑),
che risulta particolarmente semplice qualora le sottoportanti siano
modulate
psk o
qpsk.
In tal caso infatti il processo di demodulazione per ogni sottoportante
non risente di variazioni di guadagno, ovvero variazioni di
Hn
= |Hn|, e dunque devono essere compensate
le sole variazioni di fase
φn
tra una portante e l’altra, ognuna delle quali determina la
corrispondente rotazione (vedi §
1↑)
del piano dell’inviluppo complesso su cui sono riferiti gli
an,
rispetto alla disposizione degli assi per la portante
n
− 1.
Acquisendo dunque un primo riferimento di fase da
una
portante pilota (§
14.8.11↓)
sempre accesa senza trasportare informazione, si può prendere quello per
demodulare la portante successiva, acquisire da questa un nuovo
riferimento di fase, e iterare il procedimento per tutte le portanti.
Questo risultato si ottiene applicando la teoria del §
14.4↑ alla
sequenza simbolica di valori complessi
an
da trasmettere, sostituendo nelle
(16.30↑)
e
(16.31↑)
l’
or esclusivo con una operazione di
prodotto, ed aggiungendo una operazione di coniugato, come mostrato in
fig.
14.41↓,
in cui
R rappresenta un ritardo
unitario.
Dal lato della trasmissione, le portanti sono
dunque modulate a partire dalla sequenza
dn = an⋅dn
− 1
con
n = 0, 1, ⋯, Ñ − 1,
avendo posto
a0 = 1.
In assenza di rumore e di distorsione lineare la sequenza
dn
è ricevuta inalterata, ed è così disponibile in uscita dal demodulatore
odfm; da essa si ottiene quindi
che presenta dunque la stessa fase di
an.
In presenza di distorsione lineare, al posto di
dn
si riceve
d̃n = dn⋅Hn
in cui
Hn = Hnejφn
sono i campioni della risposta in frequenza del canale, e dunque la
(16.48↑)
fornisce
ân = d̃n⋅d̃*n
− 1 = an⋅dn
− 1⋅Hn⋅d*n − 1⋅H*n
− 1 = an⋅|dn
− 1|2⋅ΔHn⋅ejΔφn
in cui
ΔHn = |HnH*n
− 1| (ma il
modulo non ci interessa), e
Δφn
= φn − φn − 1
è la differenza tra i valori della risposta di fase del canale valutata
per due portanti contigue, e rappresenta l’entità di cui è ruotato il
piano dell’inviluppo per i simboli trasportati dalle due portanti.
Pertanto, se questa è di lieve entità (essendo le portanti vicine),
produce un errore trascurabile.
Accenniamo brevemente ad una ulteriore possibilità
di applicare il principio differenziale, oltre che portante per
portante, anche ad interi simboli ofdm
consecutivi: in questo caso il vettore di simboli akn
da trasmettere all’istante k viene
combinato con i valori del vettore trasmesso al simbolo precedente k − 1, ovvero dkn
= akn⋅dk − 1n.
In questo modo possono essere contrastati i fenomeni tempo-varianti che
modificano il canale, per una stessa portante n,
simbolo dopo simbolo.
Come stiamo per mostrare, questa proprietà è
intimamente legata alla possibilità dell’ofdm
di assegnare valori di potenza differenti alle diverse portanti.
La trasmissione numerica con una
fb
elevata, eseguita utilizzando un tecnica ad
una sola portante,
deve necessariamente occupare una banda molto ampia, rendendo
scarsamente applicabile la semplificazione di pag.
1↑; in tal caso
H(f) presenta distorsione di ampiezza, la
cui equalizzazione (§
15.4↓)
causa una
colorazione del rumore in ingresso al demodulatore, ed
un peggioramento delle prestazioni. Un problema analogo nasce nel caso
in cui il rumore non sia bianco, ad esempio perché derivante da un
segnale interferente.
In entrambi i casi, per tenere conto
dell’andamento incostante di
PN(f),
la valutazione della
capacità di canale↓
C = Wlog2⎛⎝1
+ ( Pr)/(WN0)⎞⎠
valida in presenza di un rumore bianco
PN(f) = (N0)/(2) e con una potenza ricevuta
Pr
in una banda (positiva)
W, si
modifica come segue. Se consideriamo il canale scomposto in
infinite
sottobande entro le quali le densità di potenza di segnale e di
rumore possono ritenersi costanti, l’espressione della capacità diviene:
in cui
If
rappresenta l’insieme delle frequenze in cui è presente il segnale,
ovvero
If = {f:Pr(f) > 0},
e
Pr(f)
viene fatto variare in tutti i modi possibili, con i vincoli
∫f ∈ IfPr(f)df = Pr,
e
Pr(f) ≥ 0.
La (
16.49↑)
asserisce quindi che, nel caso in cui
PN(f)
in ingresso al canale non sia bianco, la massima capacità trasmissiva
C (e dunque velocità
fb)
può essere raggiunta
sagomando in modo opportuno
la densità di potenza
Pr(f)
del segnale ricevuto.
Per determinare l’andamento ottimo
di
Pr(f)
si ricorre al
calcolo delle variazioni basato sui
moltiplicatori
di Lagrange,
che in questa sede non approfondiamo, ottenendo la soluzione
detta anche
del riempimento d’acqua perché asserisce che
(vedi figura) il segnale debba essere presente in misura maggiore nelle
regioni di frequenza dove il rumore è minore. La costante
λ
è scelta in modo tale da ottenere
∫Pr(f)df
= Pr.
In un sistema di modulazione numerica a singola
portante,
Pr(f)
non può essere modificato a piacere, in quanto il suo andamento è
vincolato dal particolare formatore di impulsi
G(f)
scelto per ottenere una ricezione priva di
isi.
Nel caso dell’
ofdm invece, la potenza
assegnata a ciascuna portante può essere variata liberamente, e se la
Pr(f)
che realizza le condizioni (
16.50↑)
viene resa nota al modulatore, è possibile avvicinarsi alla velocità
massima permessa dalla
(16.49↑).
In particolare, si ottiene che la massima
velocità
fb è
conseguibile attribuendo a tutte le portanti la medesima probabilità di
errore, e quindi in definitiva determinando dei valori
⎛⎝(Eb)/(N0)⎞⎠n
per ogni portante
n = 0, 1, ..., Ñ
− 1 tali da rendere le
Pe
⁄ n = Pe. Questo
risultato può essere ottenuto scegliendo le potenze
Pn in accordo
alla
(16.50↑),
e quindi trasmettere (o
caricare) più bit
Mn
sulle portanti
n per le quali
Pn
è maggiore.
Abbiamo appena mostrato come, conoscendo la
PN(f)
e la
H(f) del canale, sia possibile
equalizzare
Px(f) = (Pr(f))/(|H(f)|2) e al contempo soddisfare (
16.50↑) e
rendere massima la
fb.
Nel caso di collegamenti tempo-varianti però, la
H(f)
non è nota, ed anche se lo fosse non esiste garanzia che rimanga
costante. In tal caso allora non ha senso determinare una distribuzione
ottima della potenza e dei bit sulle portanti, mentre invece occorre
aggiungere della ridondanza
↓ al segnale
trasmesso mediante un codice di canale, allo scopo di correggere i bit
errati.
Osserviamo ora che, nel caso di una modulazione a
portante singola, in presenza di una H(f)
tempo-variante, il processo di equalizzazione è particolarmente
complesso in quanto deve inseguire le variazioni di H(f).
Se l’equalizzazione non è perfetta, insorge isi
e la trasmissione può divenire rapidamente così piena di errori da
renderne impossibile la correzione anche adottando codici di canale.
Nel caso dell’
ofdm,
al contrario, l’andamento di
H(f) determina un peggioramento di
prestazioni solamente per quelle portanti per le quali
H(f)
si è ridotto.
Pertanto, l’applicazione di un codice di canale (§
11.3↑) al blocco di
M bit che costituisce un simbolo,
seguito da una operazione di scrambling (§
8.4.2.3↑),
consente al lato ricevente di recuperare l’informazione trasmessa anche
nel caso in cui per alcune portanti si determini un elevato tasso di
errore.
La trasmissione ofdm
in cui è presente una codifica di canale prende il nome di trasmissione
cofdm (Coded ofdm).
Fin qui abbiamo assunto che il ricevitore
ofdm mostrato in fig.
14.40↑
operi in condizioni di sincronismo sia per quanto riguarda la portante
di demodulazione, sia per gli intervalli di simbolo. A questo scopo
alcune delle sottoportanti - dette
pilota - non sono usate per
trasmettere dati, ma sono mantenute costantemente attive, con potenza di
poco superiore alle altre, allo scopo di facilitare la sincronizzazione
in frequenza. In figura è rappresentato il caso per il
dvb-t,
in cui ogni riga rappresenta le portanti di un simbolo, e quelle pilota
si trovano in posizione fissa; sono inoltre mostrate delle
portanti
disperse (
scattered) le cui
posizioni evolvono ciclicamente di simbolo in simbolo, e consentono di
acquisire un sincronismo sia di simbolo che di trama, oltre che
eventualmente a permettere una stima della
H(f)
del canale attraversato.