Lo Faro 2005-06

Transcript

Lo Faro 2005-06
UNIVERSITA’ DEGLI STUDI DI ROMA ‘LA SAPIENZA’
FACOLTA’ DI INGEGNERIA
CORSO DI LAUREA
IN INGEGNERIA DELLE TELECOMUNICAZIONI
TESI DI LAUREA SPECIALISTICA
IMPIEGO OPPORTUNISTICO DELLA BANDA SATELLITARE
MEDIANTE TECNICA CDMA SU OFDM
RELATORE
Prof. ROBERTO CUSANI
CORRELATORI
Prof. ANTONIO SAITTO
Ing. DAMIANO DE LUCA
LAUREANDA
MANUELA LO FARO
matr. 794516
ANNO ACCADEMICO 2005-2006
INDICE
ACRONIMI..............................................................................................- v INTRODUZIONE ...................................................................................- 1 CAPITOLO 1.............................................................................................. 4
1.1
Il trasmettitore.............................................................................. 8
1.2
Il canale ..................................................................................... 13
1.3
Il ricevitore ................................................................................. 15
1.4
Modulazioni numeriche.............................................................. 17
1.4.1
Modulazioni numeriche elementari..................................... 17
1.4.1.1
PSK ............................................................................. 17
1.4.1.2
QAM ............................................................................ 19
1.4.1.3
FSK ............................................................................. 21
1.4.2
OFDM................................................................................. 22
1.4.3
DS-SS ................................................................................ 29
1.4.3.1
Sequenze di codice ..................................................... 33
i
1.4.3.1.1 Codici pseudo-casuali .............................................. 33
1.4.3.1.2 Codici ortogonali ...................................................... 33
1.5
Sommario .................................................................................. 35
CAPITOLO 2............................................................................................ 37
2.1
Architettura di un sistema satellitare.......................................... 38
2.2
Satelliti e orbite .......................................................................... 40
2.2.1
Satelliti GEO....................................................................... 41
2.2.2
Satelliti LEO........................................................................ 43
2.2.3
Satelliti MEO....................................................................... 44
2.3
Stazioni di Terra ........................................................................ 45
2.4
I link satellitari ............................................................................ 46
2.5
Tecniche di accesso multiplo..................................................... 48
2.5.1
FDMA ................................................................................. 49
2.5.2
TDMA ................................................................................. 49
2.5.3
CDMA................................................................................. 50
2.6
Frequenze utilizzate .................................................................. 51
2.7
Applicazioni satellitari ................................................................ 54
CAPITOLO 3............................................................................................ 57
3.1
Architettura di un sistema di tipo supereterodina....................... 57
3.2
Limitazioni.................................................................................. 59
3.3
La Software Radio ..................................................................... 61
3.4
Definizione di Software Radio.................................................... 63
3.5
Il ricetrasmettitore Software Radio............................................. 66
3.6
Ideal Software Radio ................................................................. 67
ii
3.7
Software Defined Radio............................................................. 70
3.7.1
Conversione a IF ................................................................ 71
3.7.2
Conversione diretta ............................................................ 73
3.8
Benefici...................................................................................... 74
CAPITOLO 4............................................................................................ 76
4.1
Vantaggi del sistema ................................................................. 77
4.1.1
Uso opportunistico della banda .......................................... 78
4.1.2
Dinamicità del sistema........................................................ 82
4.1.3
Accesso multiplo facilitato .................................................. 83
4.1.4
Gestione dinamica del sistema........................................... 84
4.2
Scopo del lavoro di tesi ............................................................. 85
CAPITOLO 5............................................................................................ 86
5.1
Strumento di lavoro ................................................................... 86
5.2
Sistema implementato ............................................................... 88
5.3
Corpo centrale ........................................................................... 91
5.3.1
SEZIONE 1: Dati di ingresso .............................................. 91
5.3.2
SEZIONE 2: Trasmettitore.................................................. 94
5.3.3
SEZIONE 3: Canale ........................................................... 94
5.3.4
SEZIONE 4: Ricevitore....................................................... 95
5.3.5
SEZIONE 5: Valutazione delle prestazioni ......................... 96
5.4
La funzione Trasmettitore ................................................... 97
5.4.1
SEZIONE 1: Dati di ingresso .............................................. 99
5.4.2
SEZIONE 2: Generazione dei dati.................................... 100
5.4.3
SEZIONE 3: Modulazione M-PSK .................................... 102
iii
5.4.4
SEZIONE 4: CDMA .......................................................... 105
5.4.5
SEZIONE 5: OFDM .......................................................... 108
5.5
La funzione Ricevitore........................................................ 113
5.5.1
SEZIONE 1: Dati di ingresso ............................................ 114
5.5.2
SEZIONE 2: OFDM .......................................................... 114
5.5.3
SEZIONE 3: CDMA .......................................................... 115
5.5.4
SEZIONE 4: DEMODULAZIONE M-PSK ......................... 116
CAPITOLO 6.......................................................................................... 118
6.1
Trasmissione CDMA su OFDM ............................................... 120
6.2
Trasmissione CDMA................................................................ 122
6.3
Trasmissione su un’unica banda libera ................................... 124
6.4
Conclusione............................................................................. 126
CONCLUSIONI ................................................................................. 126
APPENDICE ..................................................................................... 126
BIBLIOGRAFIA.................................................................................. 126
iv
Acronimi
ADC
Analog to Digital Converter
AM
Amplitude Modulation
ASIC
Application Specific Integrated Circuit
ASK
Amplitude Shift Keying
BB
Banda Base
BER
Bit Error Rate
BP
Banda Passante
BPF
Band Pass Filter
BPSK
Binary Phase Shift Keying
BSS
Broadcasting Satellite Service
CDMA
Code Division Multiple Access
DAC
Digital to Analog Converter
DS
Direct Sequence
DSP
Digital Signal Processing
v
DS-SS
Direct Sequence Spread Spectrum
DVB-C
Digital Video Broadcasting Cable
DVB-S
Digital Video Broadcasting Satellite
EHF
Extremely High Frequency
FCC
Federal Communications Commission
FDMA
Frequency Division Multiple Access
FM
Frequency Modulation
FPGA
Field Programmable Gate Array
FSK
Frequency Shift Keying
FSS
Fixed Satellite Service
GEO
Geostazionario
GMSK
Gaussian Minimum Shift Keying
IDFT
Inverse Discrete Fourier Transform
IF
Intermediate Frequency
ISR
Ideal Software Radio
ITU
International Telecommunication Union
LEO
Low-Earth-Orbit
LO
Local Oscillator
LPF
Low Pass Filter
MEO
Medium-Earth-Orbit
MSK
Minimum Shift Keying
MSS
Mobile Satellite Service
NCO
Numerically Controlled Oscillator
vi
OFDM
Orthogonal Frequency Division Multiplexing
PSK
Phase Shift Keying
QAM
Quadrature Amplitude Modulation
QPSK
Quadrature Phase Shift Keying
RF
Radio Frequency
SCR
Software Controlled Radio
SDR
Software Defined Radio
SHF
Super High Frequency
SNR
Signal to Noise Ratio
SR
Software Radio
ST
Stazione di Terra
TDMA
Time Division Multiple Access
UHF
Ultra High Frequency
USR
Ultimate Software Radio
VHF
Very High Frequency
vii
Introduzione
In un sistema di comunicazione satellitare, la banda di un trasponder è
una delle risorse più preziose. Attualmente, però, l’uso dello spettro a
disposizione di un trasponder non è del tutto efficiente, poichè in ogni
istante di tempo sono occupate solo alcune sottobande, per di più non
adiacenti. È, quindi, chiaro che, al momento, buona parte di questa
preziosa risorsa viene sprecata.
Nel tentativo di risolvere questo problema, si propone un sistema di
trasmissione, innovativo in ambiente satellitare, che è in grado di
instaurare una trasmissione servendosi non di una unica banda di
frequenze, ma delle porzioni di spettro inoccupate, anche non adiacenti tra
loro. Per poter realizzare ciò si è pensato di combinare due tecniche già
standardizzate e ampiamente diffuse nelle comunicazioni radio: il CDMA e
l’OFDM. La prima tecnica permette un accesso multiplo particolarmente
semplice; la seconda suddivide la banda complessiva in più sottoportanti,
dando la possibilità di accenderle e spegnerle a seconda delle
1
caratteristiche del canale. In questo modo, il sistema in esame godrà dei
vantaggi di entrambe le metodologie di trasmissione e, in più, come sarà
mostrato nel corso della tesi, renderà possibile un utilizzo opportunistico
della banda.
L’ambiente in cui il sistema dovrà lavorare è estremamente dinamico: un
presupposto alla realizzabilità di tale tipo di sistema, allora, è sicuramente
la possibilità di disporre di trasmettitori e ricevitori implementati secondo la
filosofia della Software Radio. In questo modo, si è in grado di mutare il
comportamento della catena di ricetrasmissione al variare dell’ambiente in
cui è calato il sistema, mediante la riconfigurazione via software di alcuni
parametri.
Questo lavoro di tesi è solo il primo passo del suddetto progetto. Partendo
da una conoscenza accademica delle due tecniche di trasmissione, dopo
un accurato approfondimento teorico delle potenzialità delle due
metodologie e della Software Radio, si è sviluppato, mediante il linguaggio
di programmazione MATLAB, un codice. Lo scopo di tale codice è quello
di simulare la catena di ricetrasmissione che implementi il CDMA su
OFDM, valutandone le prestazioni. Dopo la completa stesura del codice,
questo è stato fatto girare, ottenendo come risultato la valutazione delle
prestazioni del sistema. Sono stati fatti, infine, paragoni con altre
potenziali tecniche di trasmissione alternative, per dimostrare l’efficacia
del sistema sotto esame.
Il lavoro è organizzato come segue. Nei primi tre capitoli saranno forniti
concetti teorici di base per una più completa visione dell’ambito di studio,
2
mentre nella seconda metà del lavoro si entrerà nel vivo del progetto e del
codice sviluppato. In particolare:
Capitolo 1: si descrive, in maniera esauriente, ma non esaustivo,
una generica catena di ricetrasmissione, soffermando l’attenzione
sulle particolari modulazioni numeriche esistenti. Sono anche
presentate le tecniche OFDM e DS-SS, su cui si basa il CDMA.
Capitolo 2: si descrive in modo più accurato un sistema di
comunicazione satellitare, soffermandosi sulla descrizione dei
satelliti, deulle orbite, delle frequenze e delle applicazioni possibili.
Capitolo 3: viene descritta l’architettura Software Radio, mettendo
in luce le differenze con un’architettura tradizionale di tipo
supereterodina e i livelli di sviluppo identificati dal SDR Forum.
Capitolo 4: è introdotto il sistema in esame, ponendo l’attenzione su
tutti i vantaggi di cui gode.
Capitolo 5: viene illustrato in maniera molto dettagliata il codice
sviluppato, mostrando alcuni grafici, come prova del funzionamento
corretto del codice stesso.
Capitolo 6: ipotizzando un particolare scenario di applicazione e
facendo girare il codice introdotto nel Cap. 5, si visualizzano le
prestazioni del sistema introdotto, paragonandole a quelle di
sistemi di trasmissione alternativi.
La tesi è completata con un’Appendice, in cui si è riportato l’intero codice
sviluppato.
3
CAPITOLO 1
Architettura di un sistema di comunicazione
Una generica comunicazione coinvolge tre concetti [1]: il messaggio,
ovvero l’oggetto della comunicazione, trasportato da un segnale, la
sorgente e la destinazione del messaggio stesso, cioè i soggetti della
comunicazione. Lo scambio di messaggi tra sorgente e destinazione
avviene grazie al sistema di comunicazione, come mostrato in Fig. 1.1.
S
Segnale
emesso
SISTEMA DI COMUNICAZIONE
Segnale
ricevuto
Fig. 1.1 Schema di una generica comunicazione.
4
D
I segnali che transitano in un sistema di comunicazione possono essere di
tipo digitale o analogico. Come riportato in [2], una forma d’onda digitale è
definita come una funzione del tempo che può assumere solo un insieme
discreto di valori (in genere, sono considerate le forme d’onda binarie, per
cui sono ammessi solo i valori 0 e 1); l’ampiezza di un segnale analogico,
invece, varia in modo continuo nel tempo. Di conseguenza, a seconda
della natura dei dati che le sorgenti emettono (analogici o digitali), queste
si dividono in sorgenti analogiche e sorgenti digitali. Un esempio di
sorgente analogica è un microfono, la cui uscita è un segnale (definito su
un range continuo di valori), che rappresenta la variazione della pressione
dell’aria causata dal suono. La tastiera di un computer, invece, è un
esempio di sorgente digitale, in quanto può emettere solo un numero finito
di caratteri. La maggior parte delle informazioni che si è interessati a
trasmettere è prodotta da sorgenti analogiche, come, per esempio, quelle
che generano la voce, l’audio e le immagini.
Anche i sistemi di comunicazione sono suddivisi in due grandi categorie, a
seconda dei dati che transitano attraverso essi: sistemi analogici (come i
sistemi di trasmissione TV) e sistemi digitali (come i sistemi telefonici
digitali).
Indipendentemente dalla sua classificazione, un sistema di comunicazione
è costituito da tre elementi principali: il trasmettitore, il canale e il
ricevitore, come mostrato in Fig. 1.2 [3].
5
Lo scopo di un sistema analogico è quello di trasmettere sul canale di
comunicazione una forma d’onda continua nel tempo, attraverso variazioni
di tensione, corrente o intensità di luce.
TRASMETTITORE
Segnale
emesso
RICEVITORE
CANALE di COMUNICAZIONE
Segnale
ricevuto
Fig. 1.2 Generico sistema di comunicazione.
Tale forma d’onda deve essere perfettamente ricostruita dal ricevitore
affinché la destinazione riceva una copia esatta del segnale emesso: tale
tipo di trasmissione è, quindi, molto sensibile ad eventuali disturbi, come
rumore, interferenza e attenuazione. Un sistema digitale, invece, prevede
la propagazione dei simboli 0 e 1 attraverso impulsi di tensione, per
esempio, positiva per il simbolo 1 e negativa per il simbolo 0: il compito del
ricevitore, in questo caso, è semplicemente quello di valutare il segno
della tensione originale con un’alta probabilità. Essendo accettati solo due
valori di tensione, il sistema si comporta nel modo corretto anche in
presenza di notevoli disturbi, purché sia possibile determinare il segno
della tensione originale. Una comunicazione digitale, quindi, è molto più
vantaggiosa rispetto ad una analogica, perchè più immune ai disturbi, ma
anche in quanto può essere implementata in modo più economico grazie
all’elettronica digitale; in più può multiplare diversi tipi di segnali (audio,
6
video, voce, ecc.) e supporta maggiormente le funzionalità di sicurezza e
di correzione degli errori mediante la codifica di canale [4].
È questo il motivo per cui negli anni la tendenza è stata quella di
realizzare sempre più sistemi di comunicazione digitali, nonostante quelli
analogici siano ancora molto diffusi. D’ora in avanti, quindi, ci si riferirà
sempre a sistemi digitali.
Prima di descriverli più in dettaglio, è da notare che, oltre alle sorgenti
digitali, anche quelle analogiche possono interfacciarsi con questi: ciò è
possibile prevedendo l’introduzione di un “adattatore di dati”, che associ
alla forma d’onda analogica emessa dalla sorgente il suo equivalente
digitale.
Lo schema a blocchi di un generico sistema di comunicazione è mostrato
in Fig. 1.3 [2].
S
Segnale
emesso
a(t)
TRASMETTITORE
ELABORAZIONE
DEL
SEGNALE
MODULATORE
Rumore n(t)
~ (t)
Stima a
del segnale
emesso
D
RICEVITORE
ELABORAZIONE
DEL
SEGNALE
DEMODULATORE
Segnale
trasmesso
s(t)
MEZZO DI
COMUNICAZIONE
(canale)
Segnale
ricevuto
r(t)
Fig. 1.3 Schema a blocchi di un generico sistema di comunicazione.
7
1.1 Il trasmettitore
Come descritto in [5], lo scopo del trasmettitore è quello di convertire il
segnale a(t), emesso dalla sorgente S, in un formato adatto alla
propagazione attraverso il canale di comunicazione. Dalla Fig. 1.3 si nota
che le funzioni svolte dal trasmettitore sono quelle di elaborazione del
segnale e di modulazione.
Il blocco di elaborazione del segnale ha lo scopo di “trasformare” il
segnale in ingresso in modo da effettuare una trasmissione più efficiente e
affidabile. A sua volta tale blocco è costituito da due sottoblocchi:
codificatore di sorgente e codificatore di canale, come mostrato in Fig. 1.4.
Segnale
emesso
a(t)
ELABORAZIONE DEL SEGNALE
CODIFICA
DI
SORGENTE
CODIFICA
DI
CANALE
Sequenza
codificata
cn
Fig. 1.4 Schema a blocchi del blocco di elaborazione del segnale in trasmissione.
Il codificatore di sorgente è responsabile di un uso efficiente del canale di
comunicazione. Nel blocco di codifica di sorgente è incluso il sopraccitato
“adattatore di dati”, che altro non è che un convertitore analogico digitale
(ADC, Analog to Digital Converter). La codifica di sorgente si compone,
quindi, di due sottoblocchi principali: il campionatore e il quantizzatore. Il
campionatore genera in uscita una sequenza di campioni del segnale
8
analogico in ingresso, estratti con un opportuno passo di campionamento:
tale sequenza è, quindi, tempo-discreta, mentre i campioni possono
assumere valori continui tra - ∞ e + ∞ . Il quantizzatore converte i
campioni continui in una variabile discreta a Q valori, rappresentabile con
un numero prefissato di bit: ciò avviene suddividendo il range dei valori in
ingresso in un insieme di intervalli, le cui dimensioni possono essere sia
costanti (caso in cui si parla di quantizzazione uniforme), sia variabili (caso
in cui si parla di quantizzazione non uniforme). Tale mapping è effettuato
in modo tale da eliminare la ridondanza delle informazioni emesse e
genera in uscita una sequenza di bit. Lo stream di dati in uscita dal
codificatore di sorgente viene, quindi, processato dal codificatore di
canale, che introduce un’opportuna e controllata ridondanza delle
informazioni, tale da permettere al ricevitore di rivelare ed eventualmente
correggere possibili errori verificatisi durante la trasmissione.
L’uscita cn del blocco di elaborazione del segnale è un segnale numerico
in banda base (BB), ovvero avente uno spettro di ampiezza non nulla per
frequenze vicine all’origine ( f = 0 ) e trascurabile altrove.
Prima di attraversare il canale, il segnale deve essere shiftato in
frequenza,
dalla
BB
a
frequenze
maggiori,
più
adeguate
alle
caratteristiche trasmissive del canale: per esempio, se il canale è cablato
in fibra, le frequenze ammesse nella trasmissione sono quelle della luce.
Il segnale così ottenuto è detto in banda passante (BP), in quanto ha uno
spettro di ampiezza non nulla intorno ad una particolare frequenza f = ± fc ,
9
con fc >> 0, detta frequenza portante, e trascurabile altrove. Il blocco che
effettua tale traslazione è il modulatore.
In un sistema di comunicazione digitale il modulatore può essere
scomposto in due parti, come mostrato in Fig. 1.5 [1]. Il primo sottoblocco
è il modulatore numerico, che, a partire dalla sequenza di bit in ingresso,
ha lo scopo di produrre un segnale analogico in BB, che rappresenti tale
sequenza in modo opportuno e ne permetta una corretta ricostruzione in
fase di ricezione. La parte che effettua la vera e propria traslazione in
frequenza è il modulatore analogico.
Sequenza
codificata
cn
MODULATORE
MODULATORE
NUMERICO
m(t)
MODULATORE
ANALOGICO
Segnale
modulato
s(t)
Fig. 1.5 Schema a blocchi del modulatore in un sistema digitale.
Come mostrato in Fig. 1.6, lo stream di dati cn in uscita dal codificatore di
canale è posto in ingresso ad un codificatore di costellazione, che
raggruppa i bit in ingresso in blocchi di K. Ne rappresenta, poi, i valori α
producendo in uscita un simbolo complesso appartenente ad una
costellazione a L = 2K punti.
La sequenza mn=xn+j·yn in uscita dal codificatore di costellazione viene
posta in ingresso al blocco successivo, che realizza una conversione
10
digitale analogica (DAC): tale blocco è costituito da due linee parallele,
una per la parte reale, l’altra per la parte immaginaria della sequenza.
Sequenza
codificata
cn
MODULATORE NUMERICO
CODIFICATORE
DAC
DI
(Digital to Analog
COSTELLAZIONE mn
Converter)
x(t)
y(t)
Fig. 1.6 Schema a blocchi del modulatore numerico.
Ciascuna di esse è composta da un formatore di impulsi e da un filtro di
trasmissione di risposta impulsiva reale g(t), che limita la banda occupata
dal segnale. Inoltre si vorrebbe che g(t) sia un impulso di Nyquist, ovvero
tale da attraversare lo zero con un periodo pari alla durata dei simboli, in
modo da annullare l’interferenza tra essi. I due tipi di impulso g(t)
maggiormente utilizzati sono quello rettangolare e quello denominato a
coseno rialzato. Il segnale analogico in uscita dal DAC, detto segnale
modulante, avrà la forma
m(t) = ∑ mn g(t − nTS )
n
dove TS è la durata di un simbolo della sequenza m n .
11
(1.1)
È da notare che anche m(t) è un segnale complesso (m(t) = x(t) + j ⋅ y(t)),
in quanto ottenuto a partire da una sequenza complessa; inoltre, parte
reale e immaginaria sono ancora segnali in BB. Esistono diversi tipi di
modulazione numerica, come sarà spiegato nel Par. “Modulazioni
numeriche”.
Parte reale e parte immaginaria del segnale modulante sono, a questo
punto, passate al modulatore analogico, che provvederà a generare il
corrispondente segnale s(t) in BP.
La Fig. 1.7 mostra la struttura del modulatore analogico in fase e
quadratura (I/Q). Tale modulatore processa separatamente parte reale e
immaginaria del segnale modulante, moltiplicandole rispettivamente per
una portante in fase (coseno) e una portante in quadratura (seno),
generate da un oscillatore locale (LO), e dando luogo al segnale a
frequenza fc
s(t) = x(t)cos(2πfc t) - y(t)sen(2πf c t) .
x(t)
cos(2πfc t)
LO
sen(2πfc t)
∑
s(t)
90°
y(t)
Fig. 1.7 Struttura del modulatore analogico I/Q.
12
(1.2)
È da notare che, come verrà spiegato più in dettaglio in seguito, la
traslazione del segnale dalla BB alle frequenze adeguate alla trasmissione
sul canale può avvenire anche in due o più stadi, traslando prima ad una o
più frequenze intermedie e solo alla fine alla frequenza fc.
Il segnale è immesso nel canale dopo aver subito ulteriormente un
filtraggio, che elimina frequenze indesiderate introdotte dall’operazione di
moltiplicazione tra i segnali, e un’amplificazione, in modo tale da avere
una potenza sufficiente per poter raggiungere la destinazione desiderata.
1.2 Il canale
Il canale di comunicazione può essere definito come un sistema formato
da un mezzo fisico a cui sono associati dispositivi elettronici e/o ottici,
utilizzati
per
la
trasmissione
delle
informazioni
[3].
I
canali
di
comunicazione possono essere classificati in due categorie [2]: guidati,
come i doppini telefonici, le fibre ottiche, ecc., o irradianti, come l’aria, il
vuoto, ecc.
Il segnale trasmesso, in genere, viene alterato durante l’attraversamento
del canale di trasmissione: il ricevitore capterà, quindi, una versione
distorta del segnale trasmesso.
Quest’ultimo, infatti, subisce un’attenuazione della propria potenza,
direttamente proporzionale alla distanza tra trasmettitore e ricevitore, a
13
causa dell’assorbimento della potenza da parte del mezzo fisico. Nei
canali radio l’attenuazione aumenta notevolmente anche all’aumentare
della frequenza operativa, in quanto l’atmosfera esterna tende ad
assorbire, e non a riflettere, le frequenze più alte. Un’ulteriore causa
dell’attenuazione del segnale in ambiente radio è da ricercarsi nei
fenomeni di multipath: un trasmettitore radio, in genere, non si trova nello
spazio libero, ma circondato da ostacoli, come fabbricati, montagne,
colline, mezzi in movimento, che possono causare la riflessione e
diffrazione delle onde trasmesse. Il ricevitore capta, così, due o più segnali
identici, ma sfasati l’uno rispetto agli altri e comunque caratterizzati da
attenuazioni e ritardi differenti, avendo percorso cammini diversi: il
segnale risultante, quindi, può essere notevolmente attenuato rispetto a
quello trasmesso. Le comunicazioni radio sono anche soggette ad
attenuazioni dovute ad agenti atmosferici, come la pioggia, l’umidità, ecc.,
in quanto le goccioline d’acqua in sospensione nell’aria provocano la
riflessione di onde elettromagnetiche a particolari frequenze.
Per fronteggiare il problema dell’attenuazione, il canale potrebbe
contenere elementi di amplificazione, come i ripetitori telefonici o i
transponder satellitari, che rigenerano i segnali in transito.
Oltre ad essere attenuato, il segnale in transito nel canale può essere
anche distorto, sia a causa delle caratteristiche intrinseche del canale sia
a causa della presenza di segnali estranei che si sovrappongono ad esso.
Il disturbo classico è il rumore termico tipico di tutte le apparecchiature
elettroniche, causato dal movimento degli elettroni all’interno di un
14
conduttore. Altri disturbi possono essere segnali alla stessa frequenza di
quello utile, provenienti da altri sistemi di telecomunicazioni o da altri utenti
appartenenti allo stesso sistema: in questo caso si parla di segnali
interferenti. Un altro tipo di disturbo è quello ad impulso, ovvero un
disturbo di breve durata, ma di grande intensità, generato da fenomeni
elettrici naturali, come i fulmini durante un temporale.
In generale, per poter estrapolare dal segnale ricevuto quello utile, questo
deve essere ben superiore rispetto al livello dei vari disturbi: la qualità di
un sistema di trasmissione è rappresentabile mediante il rapporto segnalerumore (SNR, Signal to Noise Ratio), ovvero il rapporto tra la potenza
media del segnale utile e quella del rumore presente, entrambe misurate
nello stesso punto della catena di ricetrasmissione.
1.3 Il ricevitore
Il terzo elemento principale di un sistema di comunicazione è il ricevitore, il
quale ha lo scopo di ricostruire correttamente il segnale emesso dalla
sorgente a partire da quello propagatosi attraverso il canale e di
recapitarlo a destinazione [5]. Tale ricostruzione avviene mediante
operazioni inverse rispetto a quelle effettuate in trasmissione; anche il
ricevitore, allora, è composto da due blocchi: il blocco di demodulazione e
quello di elaborazione del segnale (Fig. 1.3).
15
Il blocco di demodulazione esegue due operazioni: filtra il segnale ricevuto
dal canale, in modo da limitare la banda a quella del segnale originale,
eliminando i disturbi fuori banda. Successivamente, trasla il segnale filtrato
alla BB, moltiplicando parte reale e immaginaria del segnale ricevuto r(t)
per le stesse portanti, in fase e in quadratura, utilizzate in trasmissione. Il
segnale subisce quindi una conversione analogico digitale, attraverso un
ADC e i simboli così ottenuti sono posti in ingresso al decodificatore di
costellazione che associa ad ogni simbolo ricevuto, il punto della
costellazione più probabile, producendo una stima ~
c n della sequenza
codificata cn. La sequenza in uscita dal demodulatore numerico non
sempre è identica alla corrispondente sequenza in trasmissione, in quanto
a causa dei disturbi introdotti dal canale, è possibile che venga commesso
qualche errore.
Il blocco di elaborazione del segnale in ricezione è a sua volta costituito da
due sottoblocchi: decodificatore di canale e decodificatore di sorgente.
Il decodificatore di canale rileva ed eventualmente corregge errori di
propagazione, sfruttando la ridondanza introdotta dal codificatore di
canale; il decodificatore di sorgente, invece, ricostruisce la versione del
segnale originale intelligibile dalla destinazione. Tale segnale ricostruito
~ (t) è una stima del segnale emesso a(t), in quanto potrebbe ancora
a
essere affetto da errori di trasmissione che il decodificatore di canale non
~ (t) viene, a questo punto,
è stato in grado di correggere. Il segnale a
fornito alla destinazione finale.
16
1.4 Modulazioni numeriche
Qui a seguire si analizzano, in un primo momento, le modulazioni
numeriche elementari e poi tecniche di modulazione più elaborate, come
quella OFDM (Orthogonal Frequency Division Multiplexing) e quella DSSS (Direct Sequence Spread Spectrum).
1.4.1 Modulazioni numeriche elementari
I vari tipi di modulazione sono suddivisi in due grandi categorie [6]: le
modulazioni a inviluppo costante e le modulazioni ad inviluppo non
costante. Le tre famiglie di schemi di modulazione di base sono l’ASK
(Amplitude Shift Keying), appartenente alla categoria di modulazioni ad
inviluppo non costante, la PSK (Phase Shift Keying) e la FSK (Frequency
Shift Keying), appartenenti al gruppo di modulazioni ad inviluppo costante.
Esistono, inoltre, schemi di modulazione più avanzati, ottenuti come
variazione e combinazione degli schemi di base, come il QAM
(Quadrature Amplitude Modulation), MSK (Minimum Shift Keying), ecc.
Ci sono tre criteri primari per la scelta di uno schema di modulazione:
efficienza di potenza, efficienza di banda e complessità del sistema. Nel
seguito si analizzeranno in dettaglio le modulazioni PSK, QAM e FSK.
1.4.1.1 PSK
La famiglia di modulazioni PSK è molto estesa ed è ampiamente utilizzata
nel mondo delle telecomunicazioni. In questo schema gli L punti della
17
costellazione sono equispaziati lungo un cerchio di raggio unitario e,
quindi, possono essere individuati solo tramite un valore di fase: è chiaro,
allora, il motivo per cui tale famiglia è considerata a inviluppo costante. Il
valore delle varie fasi è
ϕl =
π
(2 ⋅ l + 1) − π
L
con 0 ≤ l ≤ L − 1
(1.3)
Ciò che il codificatore produce in uscita è il valore complesso associato a
tale fase, ovvero il valore cos(ϕ l ) + j ⋅ sen(ϕ l ). Il segnale modulato, così,
avrà inviluppo costante, ma transizioni di fase discontinue tra un simbolo e
l’altro.
La modulazione PSK più semplice è la BPSK (Binary PSK), in cui il
numero dei livelli è L = 2 Ciascun simbolo, allora, trasporta K = 1 bit di
informazione e le possibili fasi in uscita sono 0° e 180°. Un tipo più
comune di modulazione PSK è la QPSK (Quadrature PSK), in cui il
numero dei livelli è L = 4 : ciascun simbolo, quindi, trasporta K = 2 bit di
informazioni e le possibili fasi in uscita sono ± 45° e ± 135°. Tale tipo di
modulazione è utilizzato nei sistemi CDMA, nei sistemi satellitari per il
trasporto di dati e voce e nel DVB-S (Digital Video Broadcasting Satellite).
18
BPSK
(1 bit per simbolo)
QPSK
(2 bit per simbolo)
Fig. 1.8 Costellazioni PSK.
1.4.1.2 QAM
La famiglia di modulazioni QAM è un tipo di modulazione a inviluppo non
costante. In questo schema gli L punti della costellazione sono posizionati
agli incroci di una griglia quadrata: di conseguenza, solo alcuni valori di L
sono ammessi, ovvero è necessario che L sia un quadrato perfetto
( L = 4, L = 16, L = 64, ecc.). In realtà è possibile avere anche modulazioni
del tipo 32-QAM, ma queste sono ottenute per eliminazione di punti da
costellazioni di cardinalità maggiore.
In una costellazione del tipo QAM, i punti sono quindi individuati attraverso
le loro parti reali e immaginarie: i gruppi di K bit estrapolati dal flusso di
dati in ingresso, sono suddivisi in due sottogruppi di K/2 bit. Il valore del
primo sottogruppo individuerà il valore della parte reale del simbolo in
uscita tra i 2K/2 possibili, uniformemente distribuiti tra i valori -V e V; il
19
valore del secondo sottogruppo individuerà, con lo stesso meccanismo,
ma in modo indipendente, la parte immaginaria del punto della
costellazione.
In Fig. 1.9 sono mostrate due diverse costellazioni QAM, 4-QAM e 16QAM. È da notare che la 4-QAM è analoga alla QPSK. I simboli della
costellazione 4-QAM trasportano 2 bit ciascuno, uno dei quali individua la
parte reale, l’altro la parte immaginaria. Analogamente, i simboli della 16QAM trasportano 4 bit ciascuno, due dei quali individuano i 4 possibili
valori della parte reale; gli altri due i 4 possibili valori della parte
immaginaria.
Tale tipo di modulazione è utilizzato nei modem dei canali telefonici, ma
anche nelle comunicazioni satellitari, nelle comunicazioni mobili e nel
DVB-C (Digital Video Broadcasting Cable).
4-QAM
(2 bit per simbolo)
16-QAM
(4 bit per simbolo)
Fig. 1.9 Costellazioni QAM.
20
1.4.1.3 FSK
Le modulazioni FSK possono essere interpretate come casi particolari di
modulazioni PSK: nella modulazione FSK, la frequenza della portante è
modificata, saltando da un valore all’altro all’interno di un set, in relazione
al segnale di ingresso. L’ampiezza della portante rimane invariata: da qui
l’appartenenza di tale tipo di modulazione alla classe della modulazioni ad
inviluppo costante. La struttura di un modulatore FSK è leggermente
diversa da quella vista per le modulazioni QAM e PSK: il modulatore
analogico I/Q è sostituito da un modulatore di frequenza. Come per le altre
modulazioni, è generata prima di tutto una sequenza ad L valori: ciascuno
di tali valori corrisponde ad una tra le L possibili frequenze della portante.
Per esempio, in una modulazione 2-FSK, il bit “1” è rappresentato dalla
frequenza f1 , mentre il bit “0” dalla frequenza f 2 , come mostra la Fig.
1.10. Si hanno diverse varianti della modulazione FSK, come MSK
(Minimum Shift Keying), GMSK (Gaussian MSK), ecc.
BIT STREAM
1
0
0
1
0
1
f1
f2
f2
f1
f2
f1
SEGNALE
MODULANTE
SEGNALE
MODULATO
FREQUENZE
UTILIZZATE
Fig. 1.10: Modulazione 2-FSK.
21
Tale tipo di modulazione è stato il primo ad essere utilizzato, mentre
successivamente sono stati sostituiti dalle modulazioni QAM e PSK: la
principale applicazione della FSK sono i sistemi cordless, come il DECT.
1.4.2 OFDM
La modulazione OFDM è un particolare tipo di modulazione numerica che
utilizza in modo ottimo la banda del canale. L’idea che sta alla base di tale
tipo di modulazione consiste nel sostituire un segnale a banda larga, di
banda B centrata intorno alla portante fc, con un numero N di segnali a
banda stretta trasmessi contemporaneamente, detti sottocanali. Gli N
sottosegnali hanno spettri centrati intorno ad N sottoportanti distanziate
l’una dall’altra di una quantità arbitraria ∆f: complessivamente, però,
occupano la stessa banda B del segnale originale e, quindi, vale la
relazione B=N·∆f.
Una delle principali particolarità dell’OFDM è il fatto che i diversi
sottocanali utilizzano forme d’onda ortogonali: ciò rende tale tecnica
adatta sia come modulazione sia come tecnica di accesso multiplo.
Lo schema di base è illustrato nella Fig. 1.11 [1]. La sequenza cn in
ingresso al modulatore OFDM, ad un rate di R bit/s, viene suddivisa in
blocchi di K bit, detti simboli OFDM. Ogni blocco viene, a questo punto,
suddiviso in N sottosimboli, ciascuno formato da Ki bit e, quindi, a 2Ki
determinazioni, con 0 < i < N − 1 . Il valore di Ki può variare da flusso a
flusso, ma deve essere tale che
22
N−1
K = ∑K i .
(1.4)
i =0
Gli N sottosimboli facenti parte di un simbolo OFDM sono, quindi, posti in
uscita in N flussi paralleli, ciascuno caratterizzato da un rate di R/N bit/s.
Ciascuno di tali sottosimboli viene rappresentato con la notazione Xi,µ,
dove l’indice “i” indica il flusso di appartenenza, mentre l’indice “µ” indica il
simbolo OFDM di appartenenza. Ciò significa che il µ-esimo simbolo
OFDM è formato dai sottosimboli X0,µ, X1,µ, …, XN-1,µ. Nel seguito si
considererà la trasmissione di un solo simbolo OFDM, quello per µ = 0 ,
per cui, per semplicità, non verrà più indicato l’indice “µ”.
Ciascun sottoblocco è, quindi, posto, a cadenza T, in ingresso ad un
generico codificatore di costellazione, il quale trasforma ogni sottosimbolo
Xi in un corrispondente simbolo mi appartenente ad una costellazione di
2Ki punti.
Gli N modulatori elementari realizzano, in un primo momento, una
conversione digitale analogica, utilizzando tutti uno stesso filtro di risposta
impulsiva gTX(t) di durata finita nel tempo. In generale, allora, il µ-esimo
simbolo OFDM è rappresentato da un segnale occupante un intervallo di
tempo Iµ di durata pari a T: si ipotizzi, per semplicità, che l’intervallo I0
includa l’origine dei tempi. A questo punto, il segnale corrispondente al
sottosimbolo Xi, è traslato ad una frequenza maggiore attraverso un
23
modulatore I/Q: in particolare, il sottosegnale i-esimo è traslato alla
frequenza fc + fi , dove fc è la portante del canale e fi = (i − N/2) ⋅ ∆f.
f c+ f 0
X 0,µ
X1,µ
S/P
N
MODULATORE
ELEMENTARE
CODIFICATORE m1,µ
DI
COSTELLAZIONE
MODULATORE
ELEMENTARE
….
K
… …
Sequenza
codificata
cn
CODIFICATORE m0,µ
DI
COSTELLAZIONE
XN-1,µ
∑
Segnale
modulato
s(t)
f c+ f 1
CODIFICATORE mN-1,µ
MODULATORE
DI
ELEMENTARE
COSTELLAZIONE
fc+ fN-1
Fig. 1.11 Schema di base del modulatore OFDM.
Il segnale modulato s0(t), corrispondente al simbolo OFDM di indice µ = 0 ,
è ottenuto, alla fine, come somma dei segnali in uscita dai modulatori
elementari e può essere rappresentato nella forma
N−1
s 0 (t) = g TX (t)∑ {x i cos[2π ⋅ (fc + fi ) ⋅ t ] − y i sen[2π ⋅ (fc + fi ) ⋅ t ]}, t ∈ I o . (1.5)
i =0
24
Sviluppando le funzioni di seno e coseno, risulta che l’inviluppo
complesso(*) di s0(t) rispetto alla frequenza portante assume la forma
N−1
s 0 (t) = g TX (t)∑ m i ⋅ e
j2π⋅fi ⋅t
i=0
N−1
= ∑ m i ⋅ ϕ i (t) ,
t ∈ Io
(1.6)
i= 0
Tale segnale risulta essere periodico di periodo TU=1/∆f.
Affinché, in fase di ricezione, sia possibile recuperare i simboli trasmessi,
è necessario definire una famiglia di funzioni ψ i (t) = gRX (t) ⋅ e
j2π⋅fi ⋅t
ortonormale alla famiglia delle funzioni di trasmissione ϕi (t) :
1
ϕ i (t) ⋅ ψ *j (t) ⋅dt = ∫ g TX (t) ⋅ gRX (t) ⋅e j2π⋅(i− j)⋅∆f ⋅t dt = 
I0
I0
0
∫
0 ≤ i = j ≤ N-1
altrove
.
(1.7)
In tal modo, a partire da s 0 (t), il valore di mi si ottiene semplicemente
correlando il segnale ricevuto con la funzione ψ i (t).
(*) Ricordiamo che l’inviluppo complesso s(t ) rispetto alla frequenza portante fc di un
{
segnale in banda traslata s(t) è legato a quest’ultimo dalla relazione s(t) = Re s(t)e
ed è una comoda rappresentazione del segnale in banda traslata stesso.
25
j2π ⋅ fc t
}
Normalmente, le risposte impulsive gTX(t) e gRX(t) sono scelte rettangolari:
gTX(t), come detto prima, di durata T=TG+TU, mentre gRX(t) di durata TU.
Affinché la relazione di ortonormalità (1.7) sia soddisfatta, deve risultare
che TU=1/∆f.
Dato che il segnale s 0 (t) è periodico di periodo TU, il suo andamento
nell’intervallo di durata TG risulta essere una ripetizione di parte
dell’andamento nell’intervallo di durata TU: per tale motivo TG è detto
intervallo di guardia e il segnale trasmesso in esso prefisso ciclico.
È evidente che, nel caso in cui il numero N di flussi paralleli risultasse
essere elevato, l’architettura di un modulatore OFDM, mostrata in Fig.
1.11, risulta particolarmente costosa, sia in termini di spazio occupato, sia
in termini economici: sarebbero, infatti, necessari N codificatori di
costellazione, N modulatori, N oscillatori, ecc. È proprio in tale ambito che
si nota la potenza della modulazione OFDM: può essere facilmente
implementata per via numerica.
Nel dominio delle frequenze l’inviluppo complesso (1.6) si presenta come
la sovrapposizione di N sottoportanti distanziate l’una dall’altra di una
quantità pari a ∆f. La trasformata di Fourier di s 0 (t) risulta, infatti, essere
N−1
S 0 (f) = F{s 0 (t)} = ∑ m i ⋅ G TX (f − fi ) ,
i=0
26
(1.8)
dove
G TX (f) = F{g TX (t)} =
sen(π ⋅ f ⋅ T)
π⋅f
(1.9)
La Fig. 1.12 mostra gli andamenti di GTX(f) e di S 0 (f) in funzione della
frequenza. È da notare che la banda di GTX(f) è infinita e, di conseguenza,
anche quella di S 0 (f) sarà illimitata. In pratica, però, tale banda è
trascurabile dopo un opportuno multiplo Ω della distanza ∆f: spegnendo,
allora, le prime e ultime Ω portanti, la banda occupata da un simbolo
OFDM risulta essere limitata tra − B/2 e B/2.
GTX(f)
S 0 (f)
….
….
f
f
fi
2/TU
(a)
fi+1
(b)
Fig. 1.12 Andamenti (a) di GTX(f) e (b) di S 0 (f) .
27
Data la scelta TU=1/∆f, che garantisce l’ortonormalità degli impulsi di
trasmissione e ricezione, e data un’occupazione di banda limitata tra
− B/2 e B/2, si può dimostrare [1] che i campioni dell’inviluppo complesso,
estratti con un periodo TC=1/∆f= TU/N, altro non sono che la IDFT della
sequenza complessa dei simboli mi da trasmettere. Il calcolo del segnale,
allora, è molto semplice da realizzare e consiste nella valutazione della
IDFT della sequenza dei simboli da trasmettere, in modo da generare gli
N-2Ω campioni in TU, e nella replica di NG campioni già calcolati, in modo
da generare il prefisso ciclico. Questi ultimi campioni in ricezione o
vengono scartati o sono utilizzati ai fini di equalizzazione.
La Fig. 1.13 mostra lo schema di un modulatore OFDM realizzato in forma
completamente numerica.
0
0
…
…
…
…
x(t)
DAC
N/2
…
y(t)
N-NG
…
…
CODIFICATORE mN-1-Ω,µ
DI
N-1-Ω
COSTELLAZIONE
…
XN-2Ω-1,µ
N/2
I
D
F
T
…
DI
COSTELLAZIONE
prefisso
ciclico
0
1
…
…
X(N-2Ω-1)/2,µ CODIFICATORE mN/2,µ
…
N-2Ω
….
K
…
S/P
…
cn
OUT
Ω
…
mΩ
IN
0
1
…
CODIFICATORE
DI
COSTELLAZIONE
….
X 0,µ
…
0
0
N-1
P/S
N-1
Fig. 1.13 Schema del modulatore numerico OFDM realizzato in digitale.
28
Sono molteplici i vantaggi per cui spesso si preferisce utilizzare una
modulazione OFDM, primo fra tutti quello appena esposto circa la
possibilità di implementarla in forma numerica. Inoltre, il fatto che vengono
utilizzate N sottoportanti, rende tale tecnica molto forte rispetto al rumore,
alle interferenze e alle distorsioni introdotte dal canale. Infatti, l’OFDM
supporta un’allocazione dinamica dei bit sulle varie sottoportanti, che
permette di utilizzare schemi di modulazioni elementari differenti a
seconda del livello del disturbo calcolato; addirittura alcune sottoportanti
potrebbero essere spente, laddove si registrino livelli di rumore troppo alti.
Un ulteriore vantaggio è il fatto che in tale modulazione vengono trasmessi
N segnali a banda stretta: un canale che nella banda B è selettivo in
frequenza potrebbe apparire, invece, non selettivo per i sottocanali,
occupanti bande molto minori: di conseguenza, per ogni sottobanda è
necessario un’equalizzazione molto semplice.
1.4.3 DS-SS
In un sistema di comunicazione tradizionale, si tende sempre a
trasmettere le informazioni utilizzando la minima banda necessaria. Se si
indica con RS il numero di simboli trasmessi al secondo, la banda B
utilizzata nella trasmissione è circa pari a 2RS. Nei sistemi SS (Spread
Spectrum), invece, si utilizza una banda molto maggiore rispetto al minimo
indispensabile. Si hanno diversi tipi di sistemi SS, ma quello che si
29
analizzerà in questo lavoro è il DS-SS (Direct Sequence Spread
Spectrum).
Ciò che differenzia un sistema DS-SS da un sistema tradizionale è il
modulatore numerico, che può essere realizzato come mostrato in Fig.
1.14 [7].
cn
CODIFICATORE
DI
COSTELLAZIONE mn
CODIFICATORE
A
RIPETIZIONE
vk
wk
DAC
(Digital to Analog
Converter)
x(t)
y(t)
dk
GENERATORE
CODICE DS
Fig. 1.14 Schema del modulatore numerico nei sistemi DS-SS.
Indichiamo con Rb (bit/sec) la velocità con cui il codificatore di canale
fornisce i bit al modulatore numerico: la durata di un bit allora sarà
Tb=1/Rb. Tali bit sono posti in ingresso ad un tradizionale codificatore di
costellazione, il cui funzionamento è del tutto analogo a quello visto in
precedenza. I simboli a valori complessi in uscita dal codificatore di
costellazione avranno una velocità RS=Rb/K e, quindi una durata pari a
TS=KTb.
Tali simboli saranno posti in ingresso al blocco di spreading: incontreranno
prima di tutto un codificatore a ripetizione, che ha lo scopo di replicare in
uscita M volte il valore di ingresso. In formule:
30
v k = m [n/M] .
(1.10)
La sequenza vk in uscita dal codificatore a ripetizione sarà formata da tratti
di M campioni (chip) identici, di durata complessiva pari alla durata di un
simbolo in ingresso: ciò significa che i campioni in uscita avranno una
durata TC, M volte minore della durata di un simbolo in ingresso e una
velocità di trasferimento RC, detta frequenza di chip, M volte maggiore
rispetto a RS. La sequenza in uscita dal codificatore a ripetizione viene
moltiplicata per una sequenza dk di 1 e -1, detta codice di espansione a
sequenza diretta (DS, Direct Sequence), prodotta alla frequenza di chip.
È da notare che con tale operazione di spreading la potenza del segnale
non è modificata, in quanto viene effettuata una moltiplicazione per una
sequenza di 1 e -1.
La sequenza prodotto sk viene, a questo punto, fornita in ingresso ad un
DAC, costituito da un filtro di trasmissione di risposta impulsiva g(t)
rettangolare di durata pari a TC: il segnale complesso in uscita sarà quindi
passato al modulatore analogico tradizionale (ovviamente sfruttando due
linee parallele).
In generale si può considerare che la maggior parte della potenza di un
segnale, caratterizzato da un rate R, sia contenuta in una banda B ≅ 2R.
La banda occupata dal segnale in ingresso al blocco di spreading sarà,
quindi, circa pari a 2RS, mentre la banda del segnale in uscita dal
modulatore stesso è circa pari a 2RC: per quanto detto in precedenza,
31
allora, si nota che una trasmissione DS-SS occupa una banda M volte
maggiore rispetto a quella necessaria.
A lato ricezione, il segnale ricevuto comprenderà non solo quello
trasmesso, ma anche segnali interferenti, espansi o meno, provenienti da
altre sorgenti, e rumore termico: per recuperare il segnale originale si
effettua un’operazione di despreading. Questa consiste nel correlare il
segnale ricevuto con il codice relativo al segnale di interesse, mediante
una moltiplicazione tra i due e un filtraggio del segnale ottenuto, in modo
da eliminare o ridurre i disturbi residui.
Grazie al despreading, la potenza del segnale utile, che in trasmissione è
stata espansa di un fattore M, viene nuovamente concentrata nella banda
base. L’operazione di despreading effettuata sui disturbi introdotti dal
canale (segnali interferenti e rumore), di fatto è per questi un’operazione di
spreading, in quanto in trasmissione non sono stati moltiplicati per quella
data sequenza. Di conseguenza, la loro potenza è spalmata su una banda
molto più grande rispetto a quella del segnale utile. I disturbi, quindi, dopo
l’operazione di filtraggio, subiscono una diminuzione di potenza: il rapporto
segnale rumore, allora, subirà un miglioramento pari al rapporto tra la
banda del segnale e quella espansa.
Il miglioramento del SNR è il vantaggio principale delle trasmissioni DSSS; in più esistono altri vantaggi, come una sicurezza maggiore rispetto
alle trasmissioni tradizionali, in quanto il segnale si può espandere in
maniera tale che il livello di potenza trasmesso è molto basso, tanto che il
32
segnale può essere nascosto nel rumore di fondo. Un ulteriore vantaggio
è la robustezza del sistema a certi tipo di disturbi, come quelli sinusoidali.
1.4.3.1 Sequenze di codice
Particolare attenzione è da rivolgere alle sequenze di codice. Queste
possono essere o codici pseudo casuali o codici ortogonali.
1.4.3.1.1 Codici pseudo-casuali
Un codice pseudo-casuale è una sequenza deterministica che cerca di
emulare una sequenza casuale. Tali codici possono essere prodotti in
diverse maniere: le sequenze più diffuse sono le m-sequence o sequenze
a massima-lunghezza. Tali sequenze sono prodotte attraverso uno shift
register controreazionato formato da M stadi: ad ogni colpo di clock il
valore degli stadi intermedi viene spostato allo stadio successivo, quello
dell’ultimo stadio è passato in uscita e il valore del primo stadio è ottenuto
mediante lo XOR dei valori di alcuni degli stadi interni. In questo modo si
possono produrre 2M bit, oltre i quali si ripete la configurazione di
partenza: la struttura è quindi periodica, ma se M è scelto sufficientemente
grande le m-sequences hanno caratteristiche molto simili alle sequenze
realmente casuali.
1.4.3.1.2 Codici ortogonali
In un sistema DS-SS possono essere utilizzati anche i codici ortogonali
come codici di espansione. I codici ortogonali sono sequenze periodiche,
33
di periodo pari a M, con la caratteristica che, date due sequenze dk e dh,
risulta che
k
h
dM
⊗ dM
=
1
1 M k
h
dM, j ⋅ dM,
∑
j = 
M j=1
0
per k = h
.
per k ≠ h
(1.11)
Le sequenze di codice ortogonali maggiormente utilizzate sono quelle
della famiglia Walsh-Hadamard, ottenute generando, a partire dalla
matrice A 1 = {1} , matrici di dimensioni ogni volta doppie, attraverso la
formula
A n −1
A 2n =  2
A 2n −1
A 2n −1 
.
− A 2n−1 
(1.12)
Le righe di tali matrici sono ortogonali tra loro: è da notare che esistono N
codici diversi, ortogonali tra loro, di lunghezza N. I codici ortogonali sono
utilizzati nei sistemi multiutente di tipo CDMA (Code Division Multiple
Access).Ogni utente trasmette le proprie informazioni nello stesso tempo e
nella stessa banda: le diverse trasmissioni sono discriminate in quanto
vengono utilizzati diversi codici, ortogonali l’uno con l’altro. In fase di
ricezione, infatti, nel momento in cui il segnale ricevuto è moltiplicato per il
34
codice ortogonale utilizzato in trasmissione, i segnali interferenti
provenienti dagli altri utenti, a cui sono associati codici diversi, si
annullano completamente grazie alla relazione (1.11). Ovviamente,
affinché avvenga ciò, è necessaria una precisa coordinazione tra i
trasmettitori. Nei sistemi CDMA sono utilizzati anche i codici pseudo
casuali, in aggiunta a quelli ortogonali: il codice pseudo-casuale serve a
garantire una sufficiente espansione spettrale.
1.5 Sommario
In questo capitolo, sono descritti i blocchi base di un generico sistema di
comunicazione: in Fig. 1.15, nella pagina seguente, si riporta lo schema
completo della catena di ricetrasmissione, comprensiva del canale di
trasmissione.
35
S
D
~ (t)
a
ELABORAZIONE DEL SEGNALE
DECODIFICA
DI
SORGENTE
CODIFICA
DI
CANALE
DECODIFICA
DI
CANALE
~
cn
mn
n
DAC
(Digital to Analog
Converter)
ADC
(Analog to Digital
Converter)
x(t)
~
y(t)
sen(2πfc t)
~
x(t)
2sen(2πfc t)
cos(2πfc t)
2cos(2πfc t)
90°
90°
LO
LO
∑
Rumore n(t)
s(t)
MEZZO DI
COMUNICAZIONE
(canale)
r(t)
Fig. 1.15Schema a blocchi completo di un sistema di ricetrasmissione.
36
DEMODULATORE ANALOGICO I/Q
MODULATORE ANALOGICO I/Q
DECODIFICA
DI
COSTELLAZIONE
~
m
CODIFICA
DI
COSTELLAZIONE
DEMODULATORE NUMERICO
MODULATORE NUMERICO
cn
y(t)
RICEVITORE
CODIFICA
DI
SORGENTE
ELABORAZIONE DEL SEGNALE
TRASMETTITORE
a(t)
CAPITOLO 2
Sistemi di comunicazione satellitare
Nel Cap. 1 si è analizzato un generico sistema di comunicazione; qui a
seguire, sarà descritto in maggior dettaglio un sistema di comunicazione
satellitare.
Una generica comunicazione radio è particolarmente sensibile al
problema della distanza tra sorgente e destinazione [8]. La frequenza del
segnale che trasporta l’informazione, infatti, è tale che la propagazione
della forma d’onda segua le leggi dell’ottica, rendendo possibili solo
comunicazioni “line-of-sight”. Di conseguenza, la curvatura della Terra e le
caratteristiche topografiche del territorio limitano la distanza a cui possono
trovarsi trasmettitore e ricevitore. Una possibile soluzione a tale limitazione
consiste nell’inserire ripetitori in vista sia con la sorgente sia con la
destinazione del messaggio.
Rispetto ad un generico sistema di comunicazione radio, un sistema
satellitare presenta una peculiarità: permette il collegamento simultaneo
37
tra più utenti posizionati in diverse aree della superficie terrestre, anche
molto distanti l’una dall’altra. Tale collegamento può essere instaurato sia
tra terminali fissi, sia tra terminali mobili sulla terra, sul mare e in aria.
Attualmente, i sistemi di comunicazione satellitari hanno numerose
applicazioni,
tra
cui
il
broadcasting
televisivo,
la
telefonia,
il
telerilevamento, ecc.
2.1 Architettura di un sistema satellitare
Un sistema satellitare è costituito da uno o più satelliti nello spazio che
collegano una moltitudine di stazioni dislocate sulla Terra, come mostrato
in Fig. 2.1 [9].
L’utente che voglia trasmettere delle informazioni genera il relativo
segnale e lo invia alla Stazione di Terra (ST) attraverso una rete terrestre.
Tale rete può essere una rete telefonica fissa, una rete radiomobile
oppure un link dedicato al collegamento tra l’utente e la ST. A questo
punto, la ST processa il segnale e lo converte ad una RF adeguata per
una trasmissione satellitare di uplink. Il satellite agisce come un ripetitore
nello spazio: una volta ricevuti i segnali modulati provenienti dalle diverse
ST sotto la propria copertura, li amplifica, converte le loro frequenze
portanti in quelle dedicate alle trasmissioni in downlink e ritrasmette tali
segnali verso le ST riceventi. La conversione eseguita nel satellite è
38
necessaria
per
proteggere
le
trasmissioni
di
uplink
e
downlink
dall’interferenza mutua.
STAZIONE
DI TERRA
RETE
STAZIONE
DI TERRA
TERRESTRE
STAZIONE
DI TERRA
RETE
UTENTE
TERRESTRE
RETE
TERRESTRE
UTENTE
UTENTE
UTENTE
Fig. 2.1 Architettura di un sistema satellitare.
La ST ricevente, quindi, processa il segnale, convertendolo ad una
frequenza adatta alla trasmissione nella rete terrestre e lo invia, poi,
all’utente finale. In alcuni casi particolari, la ST e l’utente non sono due
entità separate e collegate attraverso un link: basti pensare al caso della
telefonia mobile satellitare, in cui l’utente possiede un terminale satellitare,
che implementa tutte le funzionalità di una ST.
39
Per motivi di copertura, a volte risulta essere necessario impiegare due o
piu satelliti: si parla, così, di una costellazione di satelliti. Una costellazione
è un gruppo di satelliti simili l’un l’altro in grado di lavorare insieme,
ottenendo una copertura complessiva piuttosto ampia. Nel caso che, per
la trasmissione delle informazioni, si utilizzi una costellazione di satelliti il
segnale è inviato dalla ST al satellite visibile al momento, il quale lo
reinstrada verso un secondo satellite, attraverso un link intersatellitare; il
segnale, alla fine, sarà inviato in downlink verso la ST ricevente dal
satellite sotto cui si trova la ST stessa.
Dopo questa breve introduzione ai sistemi di comunicazione satellitari, nei
prossimi paragrafi si descriveranno più nel dettaglio sia i satelliti sia le ST.
2.2 Satelliti e orbite
Un satellite può essere definito come un repeater intelligente a
radiofrequenza [8]. La necessità di definirlo “intelligente” deriva dal fatto
che esso gode della capacità di amplificare, condizionare, trasformare,
rigenerare i segnali ricevuti e instradarli verso la corretta destinazione: è
chiaro, quindi, che un satellite non si comporta come una semplice
stazione di ritrasmissione tra due o più ST.
In base alle proprie orbite, si possono distinguere tre tipi fondamentali di
satelliti:
40
Satelliti geostazionari (GEO)
Satelliti in orbita bassa (LEO, Low-Earth-Orbit)
Satelliti in orbita media (MEO, Medium-Earth-Orbit)
In Fig. 2.2 sono mostrate le loro orbite caratteristiche [10].
Fig. 2.2 Orbite principali per le comunicazioni satellitari.
2.2.1 Satelliti GEO
Un satellite si dice GEO quando nel tempo rimane fisso (stazionario) in
una data posizione apparente rispetto alla Terra (traccia a terra
puntiforme). Affinché un’orbita possa essere considerata GEO, è
necessario che soddisfi tre condizioni [11]:
1. Il satellite deve essere geosincrono, ovvero deve avere un periodo
di rivoluzione pari a quello di rotazione terrestre, che è pari a 23 h,
56 min, 4 s (86164 s);
2. L’orbita deve essere ad eccentricità nulla (circolare);
41
3. L’orbita deve giacere sul piano equatoriale terrestre (inclinazione
nulla).
Si noti come la seconda condizione è una conseguenza diretta della
seconda legge di Keplero(*): solo un’orbita circolare ha difatti la
caratteristica di essere percorsa con velocità angolare costante.
La terza condizione nasce dal fatto che, se l’orbita di un satellite presenta
una qualunque inclinazione non nulla rispetto al piano equatoriale
terrestre, il satellite stesso non appare fermo rispetto alla Terra, ma si
muove con moto apparente nella direzione nord-sud.
Applicando la terza legge di Keplero(**), si può ricavare il raggio dell’orbita
GEO, che risulta essere rGEO = 42164 km. Essendo il raggio della Terra
all’equatore pari a rTERRA = 6378 km, l’altezza di un satellite GEO rispetto
alla superficie terrestre è pari a h GEO = rGEO - rTERRA = 35786 km. , valore
generalmente approssimato a 36000 km.
Nella pratica, il mantenimento di una precisa orbita GEO è possibile solo
grazie alla attuazione di opportune manovre di correzione sul satellite, e
questo a causa della forma non perfettamente sferica della Terra e delle
forze di disturbo presenti nello spazio, come, per esempio, i campi
gravitazionali del Sole e della Luna. La copertura di un satellite GEO è di
circa un terzo della superficie terrestre: di conseguenza, sono necessari
(*) La seconda legge di Keplero dice che, per uguali intervalli di tempo, un satellite
spazza uguali aree sul suo piano orbitale.
(**) La terza legge di Keplero dice che il quadrato del periodo di un’orbita è proporzionale
al cubo della distanza media tra i due corpi (satellite e Terra).
42
solo tre satelliti per una copertura completa del globo terrestre (principio di
Clarke).
Nonostante tale vantaggio, un sistema satellitare di tipo GEO soffre di
elevati ritardi di propagazione end-to-end (circa 600 ms); sono, inoltre,
necessarie antenne piuttosto grandi ed una notevole potenza in
trasmissione sia in uplink sia in downlink, a causa dell’elevata altitudine
dei satelliti e della conseguente degradazione del segnale dovuta alla
distanza.
2.2.2 Satelliti LEO
Le orbite LEO sono caratterizzate dall’avere un’altezza dalla superficie
terrestre compresa tra i 500 e i 900 km [12]. Il periodo di rivoluzione
intorno alla Terra è dell’ordine dei 90/150 minuti: i satelliti LEO non
appaiono, quindi, fissi nello spazio, come accade per i GEO. Di
conseguenza, per fornire un servizio continuo è richiesto che i satelliti LEO
siano organizzati in una costellazione: questa dovrà essere tale che in
ogni momento da un qualunque punto della Terra sia visibile almeno un
satellite. Per soddisfare ciò, è necessaria una flotta di satelliti molto
numerosa, variabile tra i 50 e i 200 satelliti (il numero aumenta al diminuire
del raggio dell’orbita). Un sistema satellitare di tipo LEO si “comporta” in
maniera analoga ad un sistema cellulare: data la velocità di rivoluzione
notevolmente alta, durante una sessione di comunicazione sono
necessarie diverse procedure di handover tra i vari satelliti che entrano ed
43
escono dal campo visuale delle ST coinvolte nella comunicazione. Di
conseguenza, il traffico di segnalazione e la complessità a bordo dei
satelliti sarà notevolmente incrementato.
Ovviamente un sistema di questo tipo ha anche dei vantaggi, tra cui il
ritardo di propagazione end-to-end notevolmente ridotto (20-25 ms), una
maggiore affidabilità in caso di guasto di un componente della
costellazione, antenne di dimensioni minori rispetto a quelle per la
comunicazione con satelliti GEO (anche se dotate di meccanismi per
“inseguire” i satelliti in movimento), ecc.
2.2.3 Satelliti MEO
I satelliti MEO viaggiano su orbite circolari o ellittiche, ad un’altezza dalla
superficie terrestre intermedia tra quella delle orbite LEO e GEO. In
particolare, le orbite MEO si trovano ad un’altezza compresa tra i 5000 e i
20000 km e il periodo di rivoluzione dei relativi satelliti intorno alla Terra
varia tra le 4 e le 12 ore: i satelliti MEO, quindi, appaiono in movimento nel
cielo. Per avere una copertura globale della Terra, è necessario impiegare
una costellazione di 10-15 satelliti.
I sistemi satellitari di tipo MEO offrono un compromesso tra vantaggi dei
sistemi di tipo GEO e LEO. Da una parte, infatti, prevedono l’utilizzo di
antenne e potenze di trasmissioni minori rispetto a quelle necessarie in un
sistema GEO, garantendo allo stesso tempo ritardi di propagazione endto-end molto più brevi (100-130 ms). Dall’altra, però, non necessitano di
44
procedure di segnalazione, monitoraggio e handover così complesse e
pesanti, come richiesto nei sistemi di tipo LEO.
2.3 Stazioni di Terra
Le ST sono una parte vitale del sistema di comunicazione satellitare, in
quanto permettono la comunicazione tra il terminale di utente, sia esso
fisso o mobile, in terra, in aria o sul mare, con i satelliti. Lo scopo di una
ST è quello di trasmettere le informazioni verso il satellite su una portante
a RF compresa nello spettro di uplink e di ricevere le informazioni
provenienti dal satellite trasportate da una portante appartenente allo
spettro di downlink. Mentre il collegamento tra ST e satellite è,
ovviamente, di tipo radio, i link tra la ST stessa e l’utente possono essere
di vario tipo: fibre ottiche, cavi coassiali o ancora radio. Il collegamento in
fibra è il favorito nelle comunicazioni digitali, in quanto permettono
collegamenti ad alti bit rate.
Lo schema a blocchi di una ST è quello classico di un ricetrasmettitore,
già analizzato nel Cap. 1.
A seconda della dimensione delle loro antenne, si possono distinguere tre
diversi tipi di ST:
Long Earth Stations: sono stazioni caratterizzate da antenne con
diametri variabili tra i 10 e i 60 metri, richiesti per fornire servizi ad
45
alta capacità, come il broadcasting televisivo, le trasmissioni di dati,
la telefonia, ecc.
Small Earth Stations: sono caratterizzate da antenne con diametri
variabili tra 1 e 10 metri, in genere installate sui tetti, sulle terrazze
o nei giardini di costruzioni private o commerciali. Queste ST sono
unidirezionali e forniscono servizi di ricezione televisiva o
connessioni telefoniche in zone remote.
Very Small Aperture Earth Stations (VSAT): sono ST bidirezionali
caratterizzate da antenne con diametri inferiori a 3 metri, in genere
compresi tra 30 e 90 cm. Queste particolari ST sono organizzate in
reti, in genere aventi una configurazione a stella, in cui ogni VSAT
comunica via satellite con una grande ST centrale, detta hub e
gestita da un service provider. Questo sistema di comunicazione
permette di ottenere un’interattività e di interconnettere varie reti
terrestri. Le applicazioni fondamentali di tale tipo di sistema sono
l’accesso ad Internet o ad Intranet aziendali remote.
2.4 I link satellitari
Così come in un generico sistema di comunicazione radio, un link
satellitare è composto da un uplink (ST-satellite) e da un downlink
(satellite-ST). Sia in uplink sia in downlink, la qualità del segnale ricevuto
46
dipende dalla potenza del segnale trasmesso e dai diversi disturbi che
esso incontra nel suo cammino tra la sorgente e la destinazione. Senza
entrare nel dettaglio con formule matematiche, in questo paragrafo si
analizzano in modo qualitativo i link satellitari e le degradazioni che essi
introducono nelle comunicazioni [9] [11].
Data la grande distanza che divide la ST da un qualsiasi satellite e dato
che la potenza del segnale irradiato diminuisce nello spazio libero con il
quadrato della distanza, è ovvio che sia il segnale in uplink ricevuto dal
satellite sia il segnale in downlink ricevuto dalla ST sono molto deboli. In
più i segnali sono indeboliti anche dalle connessioni tra le antenne e i
ricevitori e dal fatto che non sempre antenna ricevente e trasmittente sono
allineate lungo la direzione di massimo guadagno delle antenne. Inoltre,
sono da tenere in conto anche attenuazioni e assorbimenti dovuti
all’atmosfera. Con il termine “assorbimento” si indica il processo di
trasferimento di energia dal segnale alle molecole dei gas dell’atmosfera:
l’assorbimento è quasi trascurabile su tutto lo spettro escluse alcune
particolari frequenze, in cui si presentano dei picchi molto alti. Tali
frequenze sono quelle di assorbimento del vapore acqueo (22,3 GHz) e
dell’ossigeno (intorno i 60 GHz). Le attenuazioni, invece, sono perdite
legate agli agenti atmosferici, come la pioggia, le nubi, il ghiaccio, ecc. Le
goccioline di pioggia in sospensione e in caduta nell’aria provocano, infatti,
effetti di assorbimento, depolarizzazione e scattering (diffusione), diversi a
seconda della frequenza di interesse.
47
È ovvio, a questo punto, che i segnali ricevuti siano particolarmente
soggetti al rumore termico, sempre presente in un sistema di
comunicazione. Nell’ambito satellitare, con il termine “rumore termico” si
indica non solo il rumore delle apparecchiature, dovuto all’agitazione
termica degli elettroni, ma anche il cosiddetto sky noise, ovvero una
radiazione presente nell’universo, che sembra essere prodotta da materia
in qualunque forma posta ad una temperatura finita.
Un'altra degradazione presente in un sistema di comunicazione è
l’interferenza: nel caso satellitare, l’interferenza è causata in uplink da altre
ST, in downlink da altri satelliti che trasmettono sulle stesse frequenze.
Per evitare problemi di interferenza in uplink si utilizzano tecniche di
accesso multiplo, come sarà descritto nel Par. “Tecniche di accesso
multiplo”.
2.5 Tecniche di accesso multiplo
Un canale satellitare può essere occupato completamente dalla
comunicazione di una singola ST: tale modalità è detta accesso singolo e
prevede che nella zona di copertura del satellite sia presente una sola ST.
In realtà, però, in genere, in una stessa zona sono presenti più ST, che
dovranno condividere la capacità di un satellite: tale modalità è detta
48
accesso multiplo e necessita di una tecnica per la corretta separazione
delle comunicazioni.
In ambiente satellitare, vengono impiegate attualmente le tre tecniche di
accesso multiplo più diffuse, mostrate schematicamente in Fig. 2.3: FDMA
(Frequency Division Multiple Access), TDMA (Time Division Multiple
Access) e CDMA (Code Division Multiple Access).
2.5.1 FDMA
In questa tecnica di accesso multiplo, la banda complessiva del satellite
viene suddivisa in N sottobande diverse, dove N è il numero delle ST sotto
la propria copertura. A ciascuna di tali ST viene così assegnato una tra le
N frequenze, con l’accorgimento che ogni sottobanda sia assegnata ad
una sola ST. Tale assegnazione può essere sia dinamica sia statica.
In questo modo le diverse ST trasmettono contemporaneamente, ma su
portanti diverse.
2.5.2 TDMA
La tecnica TDMA prevede la suddivisione dell’asse dei tempi in intervalli di
tempo T, a loro volta suddivisi in N sottointervalli, detti slot, di durata T/N.
Ad ogni stazione è quindi assegnato uno slot diverso. Anche in questo
caso l’assegnazione può essere statica o dinamica.
49
In questo modo le diverse ST trasmettono sulle stesse portanti, ma
alternandosi nel tempo.
FDMA
TDMA
codice
ST1
STN
ST2
ST1
ST2
codice
frequenza
STN
frequenza
tempo
tempo
CDMA
codice
STN
frequenza
ST2
ST1
tempo
Fig. 2.3 Tecniche di accesso multiplo.
2.5.3 CDMA
La tecnica CDMA prevede la discriminazione delle comunicazioni
appartenenti alle varie ST attraverso l’utilizzo di particolari parole di
codice, costituite da simboli binari di durata N volte minore della durata dei
bit di informazione.
Affinché le varie comunicazioni possano essere separate esattamente, i
codici dovrebbero essere ortogonali e le comunicazioni perfettamente
50
sincrone. Nella realtà quest’ultima condizione non sempre è verificata,
dato che le trasmissioni delle diverse ST risultano essere tra loro sfasate
in modo casuale; per cui, anche se si utilizzassero codici ortogonali, lo
sfasamento distruggerebbe l’ortogonalità e il segnale in uscita dal
ricevitore
sarebbe
distorto
dall’interferenza
generata
dalle
altre
comunicazioni. In genere, allora, vengono scelti dei codici che permettano
di minimizzare tale interferenza: i codici maggiormente utilizzati sono quelli
pseudo-casuali, che rendono l’interferenza quasi pari al rumore termico.
In questo modo le diverse ST trasmettono contemporaneamente sulle
stesse portanti.
2.6 Frequenze utilizzate
Un generico sistema di comunicazione radio utilizza, per il trasferimento
delle informazioni, un range di frequenze tra quelli indicati nella Tab. 2.1, a
seconda del mezzo utilizzato per la trasmissione [9]. Le frequenze nella
banda UHF sono, in genere, impiegate nelle comunicazioni con terminali
piccoli o mobili, nel broadcasting televisivo o nell’ambito militare.
Le frequenze adottate nelle comunicazioni satellitari sono comprese nel
range tra la banda VHF e la banda EHF.
51
RANGE DI FREQUENZA
BANDA
3 Hz - 30 kHz
Very Low Frequency (VLF)
30 - 300 kHz
Low Frequency (LF)
300 kHz - 3 MHz
Medium Frequency (MF)
3 - 30 MHz
High Frequency (HF)
30 - 300 MHz
Very High Frequency (VHF)
300 MHz - 3 GHz
Ultra High Frequency (UHF)
3 - 30 GHz
Super High Frequency (SHF)
30 - 300 GHz
Extremely High Frequency (EHF)
3
10 - 10
7
GHz
Infrarosso, Luce visibile, Ultravioletto
Tab. 2.1 Bande adottate nelle comunicazioni.
Tale range, in questo ambito, è suddiviso a sua volta, come mostrato nella
Tab. 2.2, in più sottobande, ognuna associata ad un particolare servizio
satellitare. È da notare che, nonostante la definizione standard della
banda UHF sia il range tra 300 MHz e 3 GHz (vedi Tab. 2.1), nell’ambito
satellitare si ha l’”abitudine” di definire la banda UHF come il range delle
sole frequenze comprese tra i 300 MHz e 1 GHz.
R AN G E D I F R E Q U E N ZA
B AN D A
30 - 300 M H z
VHF
300 M H z - 1 G H z
UHF
1 - 2 GHz
L
2 - 4 GHz
S
4 - 8 GHz
C
8 - 12 G H z
X
12 - 18 G H z
Ku
18 - 27 G H z
K
27 - 40 G H z
Ka
40 - 60 G H z
Q
60 - 75 G H z
V
75 - 110 G H z
W
Tab. 2.2 Bande adottate nelle comunicazioni satellitari.
52
Il termine Ku è stato scelto per indicare le frequenze al di sotto della
banda K (u sta per under), mentre è stata scelta la denominazione Ka per
evidenziare la banda sopra la banda K (a sta per above).
Ognuna delle varie sottobande sopra definite è sfruttata per un servizio
satellitare diverso. In particolare, si possono definire cinque grandi
categorie di servizi forniti dai satelliti [10] [11]:
Fixed Satellite Service (FSS), ovvero servizi forniti tra due o più ST
fisse attraverso uno o più satelliti. Alcuni servizi FSS sono offerti
nella banda Ku, ma la porzione di spettro maggiormente utilizzata è
nella banda C, compresa tra i 4 e i 6 GHz.
Mobile Satellite Service (MSS), ovvero servizi forniti tra due o più
ST mobili sulla terra, in mare o in aria, attraverso uno o più satelliti.
La banda maggiormente utilizzata è la banda L, ma alcuni servizi
MSS sono forniti nella banda VHF.
Broadcasting Satellite Service (BSS), ovvero servizi in cui i segnali
trasmessi o ritrasmessi dai satelliti sono diretti ad una moltitudine di
ST, installate direttamente nelle case private. La trasmissione di tali
segnali avviene nelle bande Ku e Ka: in particolare, all’interno della
banda Ku, a tali servizi è dedicato il range di frequenze tra i 12 e i
14 GHz.
Navigational Satellite Service, ovvero i servizi di posizionamento
delle ST. Tale tipo di servizi è fornito nelle bande VHF, UHF, S ed
L.
53
Meteorological Satellite Service, ovvero servizi per il monitoraggio
delle condizioni meteorologiche e dell’ambiente. La trasmissione di
tali dati avviene per lo più nella banda VHF.
Le frequenze comprese nelle bande Q, V e W sono per lo più
utilizzate per le comunicazioni intersatellitari, mentre la banda X è
dedicata alle comunicazioni militari.
2.7 Applicazioni satellitari
Le applicazioni satellitari hanno subito nel tempo una rapida evoluzione,
grazie alla versatilità caratterizzante tale tipo di comunicazione [10]. Un
esempio di tale versatilità è la possibilità di espandere facilmente una rete
satellitare, dato che ogni ST è indipendente dalle altre e la qualità della
comunicazione non dipende dal territorio circostante la ST.
La prima applicazione satellitare diffusasi nel mondo è di tipo puntomultipunto: il broadcast di contenuti digitali. Un esempio di tale tipo di
applicazione è il trasferimento dei segnali televisivi al consumatore finale,
che rappresenta, attualmente, la maggior parte delle comunicazioni
satellitari commerciali. Esistono tre diverse modalità di trasferimento:
1. trasmissione punto-multipunto dallo studio televisivo verso le
stazioni locali di distribuzione, che avranno poi il compito di
diffondere tali contenuti nelle varie abitazioni della zona;
54
2. trasmissione punto-punto della ripresa di uno specifico evento dal
luogo in cui avviene allo studio televisivo;
3. trasmissione punto-multipunto dallo studio televisivo direttamente
all’abbonato (anche detto servizio Direct-To-Home).
Oltre ai contenuti televisivi verso gli abbonati, è possibile trasmettere via
satellite anche programmi audio: in questo caso, allora, si parla di Satellite
Digital Audio Radio Service. Ciò che viene trasmesso in questo caso è un
flusso di più programmi audio, multiplati tra loro, direttamente verso
autoradio, radio portatili o case, usando le frequenze nelle bande L ed S.
La trasmissione satellitare di tipo digitale ha diversi vantaggi, come la
possibilità di trasmettere audio a qualità CD, ma anche quella di poter
multipare servizi a banda stretta, come i talk show radiofonici o le
cronache di avvenimenti sportivi, con servizi a banda più larga.
È possibile inoltre la distribuzione via satellite di contenuti multimediali,
come pagine web, update dei software e film, verso server remoti collegati
a reti locali: molte organizzazioni utilizzano tali tipi di reti, dette Content
Delivery Networks, in modo da evitare i costi e le congestioni che si
possono incontrare in Internet.
Una seconda applicazione delle comunicazioni satellitari riguarda la
telefonia. Nonostante queste siano soggette a ritardi di propagazione non
trascurabili e particolarmente fastidiosi in una comunicazione telefonica, le
comunicazioni voce rappresentano una delle principali applicazioni
satellitari, soprattutto per quanto riguarda la telefonia mobile. Basti
pensare, infatti, all’enorme utilità della telefonia satellitare in zone ancora
55
non raggiunte dai servizi di telecomunicazione, disabitate o rurali, magari
in situazioni di emergenza o calamità naturali. In questi casi, i costi e i
tempi richiesti per l’estensione di una rete terrestre sono spesso proibitivi,
divenendo, così, un ostacolo allo sviluppo. Le reti satellitari, grazie anche
alla tecnologia VSAT, sono il modo più veloce ed economico per
raggiungere le aree in questione. La telefonia satellitare è inoltre
particolarmente utile nel momento in cui entra in gioco la mobilità, ovvero
per utenti in viaggio su navi negli oceani, fiumi o laghi, sugli aerei privati o
commerciali, su veicoli terrestri di vario genere o per individui con
dispositivi portatili o palmari. Come precisato prima, tale tipo di servizio è
dettoo Mobile Satellite Service ed è fornito per lo più sulle frequenze tra 1
e 3 GHz, in quanto tali valori permettono l’utilizzo di antenne semplici e
riescono ad aggirare o penetrare negli ostacoli. Ovviamente, coinvolgendo
tali sistemi ST mobili con antenne omnidirezionali, questi non possono
utilizzare satelliti stazionari, ma i migliori candidati per il supporto di tale
tipo di servizio sono i satelliti non-GEO.
Una delle applicazioni che sta prendendo piede attualmente è il Global
Positioning Satellite (GPS), che consente all’utente di conoscere la propria
posizione geografica. Tale sistema utilizza una costellazione di 24 satelliti:
ricevendo i segnali da almeno quattro di questi satelliti, la ST ricevente
può stabilire in modo molto accurato la propria posizione, in termini di
latitudine, longitudine e altitudine. Tali sistemi utilizzano una trasmissione
unidirezionale, dal satellite agli utenti: le ST, quindi, non richiedono una
catena di trasmissione, ma solo un ricevitore GPS.
56
CAPITOLO 3
La Software Radio
Nel Cap.1 è stato illustrato lo schema a blocchi di un generico sistema di
comunicazione digitale; in questo capitolo si metterà in luce l’architettura
di un ricetrasmettitore radio e i cambiamenti che questa ha subito nel
tempo in conseguenza all’evoluzione della tecnologia.
Un classico sistema radio digitale è basato su una struttura di tipo
supereterodina: a causa delle limitazioni di tale architettura, però, si tende
sempre più ad adottare la filosofia della Software Radio.
3.1 Architettura di un sistema di tipo supereterodina
L’architettura radio tradizionale hardware-based, detta anche struttura
supereterodina, è stata progettata negli anni ’30 ed è stata utilizzata in
57
molti contesti, come, per esempio, nei sistemi televisivi, nei sistemi radio
AM/FM, nei terminali radiomobili di prima generazione, ecc [13].
In tali sistemi, come mostrato in Fig. 3.1, dal punto di vista del ricevitore, il
segnale a radio frequenza (RF) entra nel sistema attraverso l’antenna, e
viaggia attraverso un filtro passa-banda (BPF, Band Pass Filter),
necessario per eliminare le frequenze indesiderate. Successivamente,
viene amplificato in modo da avere una potenza sufficiente da pilotare gli
stadi successivi; tale amplificazione, ovviamente, non dovrà essere troppo
elevata, altrimenti si avrebbe una rumorosità eccessiva. La conversione
del segnale dalle radio frequenze alla banda base (BB) avviene in due o
più stadi: il numero di questi dipende dalla frequenza a RF a cui il sistema
lavora e, almeno in linea teorica, più elevato è il numero degli stadi che si
aggiungono, più alta può essere la frequenza operativa. In Fig. 3.1, il
numero degli stadi è due, per cui dapprima il segnale viene convertito,
mediante un oscillatore locale (LO1), ad una frequenza intermedia (IF);
quindi, dopo essere stato ulteriormente filtrato, subisce una nuova
conversione per opera del secondo oscillatore locale (LO2), che lo porta in
BB. È da notare che in Fig. 3.1, e in tutte le successive, viene
rappresentato, per semplicità, un solo mixer che effettua la conversione di
frequenza; nella pratica, però, la struttura utilizzata è quella a I/Q, con due
mixer, descritta nel Cap. 1 . Il segnale così ottenuto viene convertito
dall’analogico al digitale attraverso l’ADC e, quindi, processato da un DSP
(Digital Signal Processing), che effettuerà la demodulazione numerica, la
decodifica di canale e quella di sorgente.
58
STADIO a RF
BPF
RF
combinator
STADIO in BB
STADIO a IF
LNA
BPF
LO1
BPF
ADC
LPF
LO2
LNA
BPF
DSP
LPF
DAC
Fig. 3.1 Architettura di un sistema di tipo supereterodina.
Nella catena di trasmissione, ovviamente, sono implementate le funzioni
inverse rispetto a quelle appena descritte.
È da notare che, in tale struttura, gli stadi a RF e IF sono totalmente
analogici,
realizzati
mediante
hardware
dedicato,
mentre
l’unico
componente digitale, ovvero il blocco DSP, è presente nello stadio in BB.
3.2 Limitazioni
Nonostante negli ultimi due decenni la tecnologia radio digitale hardwarebased abbia dominato il mondo delle telecomunicazioni, essa impone
numerose limitazioni al suo impiego [14][15][16].
Prima di tutto, i componenti analogici sono molto sensibili agli effetti del
tempo, tra cui la perdita della linearità, e alle variazioni di temperatura, con
conseguenti problemi di distorsione del segnale che li attraversa. Inoltre,
59
non sono pratici per le trasmissioni wide-band a causa di intrinseci
problemi di linearità degli stessi.
In secondo luogo, tali strutture sono caratterizzate da una flessibilità molto
limitata: non riescono, infatti, a supportare diverse frequenze e diversi
standard. Ogni componente hardware della catena di ricetrasmissione
prima descritta, infatti, implementa una particolare funzione radio ed è
progettato per lavorare a frequenze e con modulazioni e algoritmi di
codifica ben precisi. È impossibile, quindi, poter processare segnali a
frequenze diverse o modulati secondo schemi diversi, se non in maniera
molto inefficiente; ovvero, prima di poter operare con le nuove condizioni,
occorre progettare nuovi componenti hardware e rimpiazzare i vecchi. Per
tale motivo, i ricetrasmettitori di tipo supereterodina non riescono a seguire
l’evoluzione tecnologica che sta interessando in questi anni l’ambiente
delle telecomunicazioni. Gli standard in circolazione sono sempre più
numerosi e una catena di ricetrasmissione hardware-based ha la capacità
di supportare e processare solo uno di essi.
Una possibile soluzione per fronteggiare tale problema è quella adottata
nel progetto di terminali multi-mode. Per ogni standard che si vuole
supportare si introduce, in parallelo l’una con l’altra, una catena di
ricetrasmissione diversa e di volta in volta viene attivata quella necessaria.
Ovviamente, essendo ogni catena implementata in hardware, tale
soluzione non è adatta nel momento in cui si vogliono implementare tre,
quattro o più standard, per problemi di spazio occupato, di aumento di
costi e di consumo energetico.
60
Un’ulteriore limitazione all’impiego delle architetture di tipo supereterodina
è l’impossibilità di aggiornare i ricetrasmettitori. Come prima, per poter
aggiornare uno dei componenti, è necessario progettarlo ex-novo e
sostituirlo nella catena di ricetrasmissione: procedura, questa, che richiede
tempi lunghi e costi molto alti.
Da un punto di vista di terminali radiomobili, una limitazione delle
architetture tradizionali è la necessità di avere un roaming a livello
mondiale, ovvero la possibilità di poter utilizzare il proprio
terminale
radiomobile in tutto il mondo, indipendentemente dallo standard adottato
nella zona in cui ci si trova. Come detto prima, essendo gli standard
molteplici e necessitando l’architettura supereterodina di una diversa
catena di ricetrasmissione per ognuno di essi, per poter effettuare un
roaming globale, i terminali hardware-based dovrebbero essere di
dimensioni spropositate e consumerebbero una quantità eccessiva di
energia; in tal modo non soddisferebbero le specifiche fondamentali
richieste nella loro progettazione (compattezza e consumo energetico
ridotto).
3.3 La Software Radio
Le Software Radio (SR) stanno riscuotendo un enorme successo nel
mondo delle telecomunicazioni, in quanto sono in grado di risolvere i
61
problemi tipici di un’architettura hardware-based, descritti nel paragrafo
precedente [16]. Il loro punto di forza è il fatto che sono interamente
implementate in digitale; ciò significa che quegli stadi, che in un sistema
tradizionale hardware-based sono realizzati in analogico, in una Software
Radio sono il più possibile implementati via software, sfruttando hardware
general-purpose
e
riprogrammabile,
come
i
DSP,
FPGA
(Field
Programmable Gate Array), ecc.
L’utilizzo del software al posto dell’hardware supera tutte le limitazioni
viste in precedenza: prima di tutto, i moduli software sono meno sensibili
agli effetti del tempo e alle variazioni di temperatura. Inoltre, è possibile,
almeno in linea teorica, progettare in modo semplice ed economico
terminali multi-standard: si potrebbe commutare da una frequenza
portante all’altra, da una tecnica di modulazione all’altra o da una tecnica
di
codifica
all’altra,
semplicemente
cambiando
alcuni
parametri
dell’hardware riprogrammabile. È possibile anche effettuare aggiornamenti
del terminale veloci e poco dispendiosi, semplicemente facendo il
download di un software di aggiornamento e non, come per i sistemi
tradizionali, riprogettando e sostituendo alcuni componenti hardware: in tal
modo, il ciclo di vita dei terminali aumenta notevolmente. Tale download
può avvenire sia attraverso delle smart card sia direttamente dalla rete su
un canale dedicato. Il download con le smart card è sicuramente più
veloce, più sicuro e meno affetto da errori rispetto al download diretto dalla
rete, però richiede maggiori sforzi all’utente. Nel caso di download dalla
62
rete, infatti, l’aggiornamento con nuovi servizi o nuovi standard può
avvenire in modo totalmente trasparente all’utente.
Il costo da pagare per una tale flessibilità dei sistemi basati sulla Software
Radio è in termini di performance dei suoi componenti: l’hardware
specifico, utilizzato nei sistemi tradizionali di tipo supereterodina, essendo
ottimizzato per eseguire funzionalità ben precise e stabilite in fase di
progettazione, è sicuramente più veloce e preciso di un hardware generalpurpose. In più, la transizione dall’hardware al software ha come
conseguenza un incremento della potenza di calcolo necessaria e un
consumo di energia notevole. La potenza di calcolo, infatti, deve essere
tale da permettere l’esecuzione delle varie funzionalità e la transizione da
uno standard (o servizio) all’altro in tempo reale: per raggiungere potenze
di calcolo abbastanza elevate, si potrebbe pensare di utilizzare più DSP in
parallelo. Tutto ciò determina un aumento dell’energia dissipata, con una
conseguente diminuzione della vita delle batterie nel caso di terminali
mobili.
3.4 Definizione di Software Radio
In realtà, non esiste una definizione univoca e rigorosa del concetto di
Software Radio. Sono state date, infatti, numerose definizioni [17]: la FCC
(Federal Communications Commission) definisce la Software Radio come
63
la nuova generazione di ricetrasmettitori radio che possono essere
riprogrammati velocemente per trasmettere e ricevere ad ogni frequenza
all’interno di un ampio range di frequenze, usando un qualunque formato
di trasmissione e un qualunque standard.
L’ITU (International Telecommunication Union) ha definito la Software
Radio come una radio in cui i parametri operativi, tra cui il range di
frequenze, il tipo di modulazione, le limitazioni di potenza di output,
possono essere definite o alterate via software.
In [18] è utilizzata la seguente definizione: La Software Radio è una
tecnologia emergente, pensata per costruire sistemi radio flessibili,
multiservizi, multistandard, multibanda, riconfigurabili e riprogrammabili via
software.
Attualmente l’organizzazione di riferimento per lo sviluppo della Software
Radio è l’SDR Forum [19]: questa è un’organizzazione senza scopo di
lucro a cui sono legate molte aziende di tutto il mondo, che ha lo scopo di
accelerare lo sviluppo di sistemi basati sulla filosofia della Software Radio.
Questa è definita dall’SDR Forum come l’insieme di tecnologie hardware e
software che danno la possibilità di creare reti wireless e terminali di utenti
dalle architetture riconfigurabili.
Ovviamente il passaggio dall’architettura di tipo supereterodina ad una
architettura puramente software sta avvenendo gradualmente. L’SDR
Forum ha definito, infatti, cinque livelli di sviluppo, ciascuno caratterizzato
da un diverso livello di flessibilità:
64
Hardware Radio (Livello 0): i sistemi appartenenti a tale livello sono
quelli tradizionali, tutti realizzati in hardware e, di conseguenza, non
caratterizzati da alcuna flessibilità.
Software Controlled Radio, SCR (Livello 1): i sistemi appartenenti a
tale livello sono tutti realizzati in hardware ad eccezione della sola
parte di controllo, che è implementato via software. Tali sistemi
hanno, ovviamente, una flessibilità molto limitata.
Software Defined Radio, SDR (Livello 2): i sistemi appartenenti a
tale livello godono di una certa flessibilità; riescono, infatti, a
supportare diverse tecniche di modulazione, operazioni su bande
sia larghe sia strette, funzionalità di sicurezza, ecc., nonostante
siano ancora presente un’amplificazione e uno shift in frequenza
analogici.
Ideal Software Radio, ISR (Livello 3): in questo livello la flessibilità è
piuttosto elevata, in quanto le uniche parti analogiche sono gli
estremi delle catene di ricetrasmissione, l’antenna e gli eventuali
trasduttori per gli utenti finali; la riprogrammabilità è estesa all’intero
sistema.
Ultimate Software Radio, USR (Livello 4): questo livello difficilmente
sarà realizzabile, è considerato solo come un punto di riferimento
da raggiungere. I sistemi appartenenti a tale livello non avranno
alcuna limitazione circa le frequenze operative, tempi e capacità di
calcolo.
65
I sistemi di trasmissione tradizionali appartengono al Livello 0 e 1; i nuovi
sistemi che si stanno sviluppando attualmente basandosi sul concetto di
Software Radio possono essere classificati nel Livello 2: lo sviluppo di una
ISR è ancora abbastanza utopico a causa di problemi tecnici che saranno
spiegati in seguito.
3.5 Il ricetrasmettitore Software Radio
Come detto prima, la Software Radio è realizzata attraverso un unico
hardware digitale basato su processori che implementano in software tutte
le funzioni che nei sistemi tradizionali sono realizzate mediante
componenti analogici. In questo modo, è possibile supportare diversi
standard e diverse funzionalità semplicemente modificando il software.
Per ottenere tale flessibilità, la classica architettura di una catena di
ricetrasmissione deve essere opportunamente modificata; in particolare è
necessario apportare tre cambiamenti fondamentali [20]:
Spostare, sia in trasmissione sia in ricezione, il limite tra il mondo
digitale e quello analogico il più possibile vicino alle RF, in modo da
sfruttare più componenti software possibili: ciò è reso possibile
spostando i convertitori DAC e ADC verso l’antenna.
66
Utilizzare maggiormente il software, al posto dell’hardware, in modo
da supportare nuove funzionalità ed eliminare catene hardware
ridondanti
Sostituire l’hardware specializzato, diffuso nei sistemi tradizionali,
come gli ASICs (Application Specific Integrated Circuits), con
hardware general-purpose, come gli FPGA e DSP, in modo da
poter riprogrammare il sistema per garantire il supporto di più
standard.
Tali cambiamenti sono più o meno accentuati a seconda del livello di
flessibilità adottato.
3.6 Ideal Software Radio
L’architettura di un ISR è caratterizzata da uno stadio analogico molto
ridotto, come mostrato in Fig. 3.2 [13] [16] [18].
Gli unici componenti analogici di tale sistema sono l’antenna, i filtri passabanda e gli amplificatori. A lato ricevitore, la conversione da analogico a
digitale è effettuata immediatamente a RF, in modo che il segnale venga
processato esclusivamente attraverso moduli software: operazioni come la
separazione delle portanti e la conversione nella/dalla banda base, la
mo/demodulazione, la co/decodifica di canale e di sorgente sono
realizzate tutte in digitale. In particolare, la conversione in BB viene
67
effettuata attraverso un mixaggio I/Q, che sfrutti due NCO (Numerically
Controlled Oscillator), ovvero due generatori di forme d’onda digitali
sinusoidali molto precise.
STADIO
STADIO a RF
LNA
BPF
ADC
RF
combinator
DSP
BPF
LNA
DAC
Fig. 3.2 Architettura di un sistema ISR.
La banda del segnale in ingresso a lato ricezione è larga e copre più
sistemi trasmissivi: nell’ISR, l’ADC opera sull’intera banda e solo in seguito
viene selezionato, con un apposito modulo software, il canale di interesse
alla comunicazione.
Come suggerito dal nome stesso, l’architettura ISR è attualmente per lo
più ideale, a causa dei limiti tecnologici nei componenti presenti sul
mercato: essa è realizzabile solo se si lavora a frequenze piuttosto basse,
ma gli standard presenti attualmente nel mondo delle telecomunicazioni
occupano una porzione molto ampia di spettro centrata alle alte
frequenze, da qualche MHz a qualche decina di GHz.
Una delle principali limitazioni a tale architettura è l’impossibilità di
utilizzare, per sistemi che coprono un così ampio range di frequenze, un
68
singolo stadio a RF, ovvero una singola antenna, un singolo filtro a banda
larga ed un singolo amplificatore, in quanto attualmente tali componenti
riescono a gestire, senza introdurre distorsioni, bande al massimo pari al
10% della portante. L’unico modo per superare tale limitazione è la
realizzazione di banchi di stadi a RF a seconda delle bande che si ha la
necessità di coprire. Un’altra soluzione nel futuro potrebbe essere
l’impiego di tecnologie innovative, sempre in continuo sviluppo, come le
Smart Antenna o i sistemi micro-elettro-meccanici (MEMS).
Il problema principale che si è incontrato nel realizzare tali sistemi è legato
all’ADC. Le prestazioni di un ADC sono determinate dalla frequenza o
velocità di campionamento FS e dalla risoluzione, cioè dal numero di bit
necessario per la rappresentazione di un campione. Tali prestazioni
possono essere “misurate” attraverso un indice P, pari a
P = 2(n° bit) ⋅ FS .
(3.1)
Digitalizzare un segnale a RF significa che è necessario, per rispettare il
criterio di Nyquist(*), campionare il segnale ad una frequenza FS molto alta.
(*)
È da ricordare che il teorema del campionamento di Nyquist dice che, per campionare
un segnale senza introdurre perdita di informazione, la frequenza di campionamento FS
deve essere maggiore o uguale al doppio della componente in frequenza del segnale più
alta. Se il segnale occupa una banda 2B intorno all’origine delle frequenze, deve risultare
che FS ≥ 2B. Se il segnale occupa una banda 2B intorno ad una frequenza f C >> 0,
deve risultare che FS ≥ 2 ⋅ (f C + B).
69
In più, ovviamente, si tende ad adottare risoluzioni il più elevate possibile,
in quanto i segnali da campionare potrebbero avere dinamiche molto
elevate. A parità di indice prestazionale, però, il raddoppio della frequenza
di campionamento determina la riduzione di un bit nella risoluzione.
Attualmente le prestazioni di un ADC non permettono di poter campionare
con
frequenze
alte,
intorno
alle
decine
di
GHz,
garantendo
contemporaneamente risoluzioni adeguate, di 16 o più bit a campione.
Una possibile soluzione per ridurre i limiti prestazionali di un ADC è quella
di sfruttare il teorema del campionamento in banda passante, che
permette di campionare un segnale di banda 2B in BP non più alla
frequenza 2 ⋅ (fC + B), ma sottocampionando alla frequenza FS = 4B. Tale
teorema permette non solo di digitalizzare il segnale, ma anche di
convertirlo, in una sola azione, dalla RF alla BB.
3.7 Software Defined Radio
Date le limitazioni tecnologiche sopra esposte, non è possibile ancora
realizzare, nella maggior parte dei casi, un’architettura ISR. Sono, così,
definite
altre
architetture,
le
cosiddette Software
Defined Radio,
classificabili nel Livello 2. Dato che la causa principale delle limitazioni alla
realizzazione dell’ISR è una frequenza portante molto alta, nelle SDR, il
segnale non è campionato direttamente alle RF, ma subisce prima una
70
conversione ad una frequenza più bassa, operata analogicamente, in
modo che si possa lavorare con valori di frequenza compatibili con le
prestazioni dell’ADC.
I metodi che possono essere utilizzati per ridurre la frequenza operativa
sono due: la conversione a IF e la conversione diretta.
3.7.1 Conversione a IF
L’architettura a conversione a IF è mostrata in Fig. 3.3.
STADIO
STADIO a RF
STADIO
a IF
BPF
RF
BPF
LNA
ADC
LO
DSP
combinator
BPF
BPF
LNA
DAC
Fig. 3.3 Architettura di un sistema SDR a conversione a IF.
Da un punto di vista del ricevitore, il segnale a banda larga captato
dall’antenna, prima di essere campionato, viene shiftato ad una opportuna
frequenza intermedia: tale conversione è effettuata con componenti
analogici, come mixer e oscillatori locali. Una volta raggiunta tale
frequenza minore, il segnale è campionato e quindi processato dal DSP;
anche in questo caso si avranno diversi moduli software, ciascuno dei
71
quali implementerà una diversa funzionalità, come la conversione nella BB
(o dalla BB, in fase di trasmissione), la demodulazione (modulazione), la
decodifica (codecodifica), ecc.
La Fig. 3.3 mostra un’architettura a conversione a IF attraverso un'unica
conversione: in realtà gli stadi possono essere due o più, in modo da poter
rilassare, in ciascuno di essi, i parametri dei filtri e i fattori di
amplificazione; d’altra parte, però, aumentano i costi, i consumi e le
dimensioni del sistema.
Questo approccio tende a superare i limiti imposti dall’ADC, ma allo stesso
tempo ha un proprio grande inconveniente a lato ricezione: la frequenza
immagine. Questa può essere definita come un’ indesiderata frequenza in
ingresso ad un mixer che ha la capacità di produrre una stessa IF della
frequenza di input desiderata. Il nome di frequenza immagine nasce dal
fatto che tale banda indesiderata è simmetrica alla banda desiderata
rispetto alla frequenza dell’oscillatore locale.
Ciò comporta l’introduzione di un filtro passabanda, detto, appunto, antiimmagine, che innalzerebbe i costi realizzativi del sistema. Tale approccio
non è molto diffuso, in quanto un filtro anti-immagine presenta dei vincoli
particolarmente stingenti, che non lo rendono realizzabile nella pratica.
Una soluzione potrebbe essere quella di utilizzare un mixer in fase e in
quadratura che permetta di eliminare il segnale immagine.
72
3.7.2 Conversione diretta
Tale approccio prevede ancora una traslazione del segnale a frequenze
minori, ma non si passa attraverso una frequenza intermedia. La
conversione avviene dalle RF direttamente in BB, in modo che il segnale
sia perfettamente compatibile con le prestazioni dell’ADC. L’architettura di
una SDR a conversione diretta è mostrata in Fig. 3.4.
STADIO in BB
STADIO a RF
BPF
RF
LPF
LNA
ADC
LO
DSP
combinator
BPF
LPF
LNA
DAC
Fig. 3.4 Architettura di un sistema SDR a conversione diretta.
A differenza dell’approccio a conversione a IF, non si ha alcun problema di
frequenza immagine, ma la conversione diretta introduce problemi come il
self-mixing. Questo è causato dall’isolamento non proprio perfetto tra il
mixer e il segnale di input: ciò provoca una conversione della frequenza
dell’ oscillatore stesso, generando in output una componente in continua,
detta DC offset. Tale problema può essere risolto adottando una tecnica,
cosiddetta Near-Zero IF, che può essere pensata come un compromesso
tra le due analizzate finora. La conversione Near-Zero IF, infatti, prevede
73
una conversione analogica non dalla RF alla BB, ma ad una IF molto
bassa e una successiva conversione digitale dalla IF alla BB. Tale
approccio permette di evitare il presentarsi della DC offset, ma, allo stesso
tempo, non impone parametri stringenti nella realizzazione dei filtri antiimmagine.
Un altro problema che caratterizza il metodo a conversione diretta è il fatto
che è molto difficile effettuare una conversione perfetta in fase e in
quadratura, con conseguenti distorsioni nella costellazione di uscita.
3.8 Benefici
In ultima analisi si mettono in luce i benefici che la Software Radio porta ai
tre principali soggetti del mercato delle telecomunicazioni: i produttori, gli
operatori e gli utenti [18].
Dal punto di vista dei produttori, la Software Radio permette di
concentrare gli sforzi nella produzione di un un’unica piattaforma
hardware, utilizzabile da ogni apparato di ricetrasmissione. In tal modo, la
produzione di hardware non sarà più a carattere locale, ma a carattere
mondiale, con un conseguente abbattimento dei costi di produzione. Un
secondo
importante
vantaggio,
che
i
produttori
possono
trarre
dall’adozione della Software Radio, è il facile aggiornamento degli
apparati. I vari prodotti, infatti, possono essere aggiornati o corretti da
74
eventuali errori di produzione, venuti alla luce durante l’utilizzo,
semplicemente modificando il software di volta in volta nel modo più
opportuno, senza l’intervento di un tecnico specializzato.
Anche gli operatori di rete traggono numerosi vantaggi dalle Software
Radio. In primo luogo la Software Radio offre loro la possibilità di poter
creare
servizi
personalizzati
secondo
le
esigenze
degli
utenti,
differenziandoli da quelli offerti da altri operatori. Inoltre, è possibile
costruire stazioni base che supportano diversi standard: più operatori,
allora, possono condividere uno stesso sito con un conseguente
abbattimento dei costi.
Dal punto di vista dell’utente, i vantaggi principali consistono nella
possibilità di effettuare roaming tra diversi standard adottati nelle diverse
zone del mondo, in modo da poter utilizzare i servizi di interesse
indipendentemente dal luogo in cui si trova. In più gli utenti possono
configurare i propri terminali in base alle proprie esigenze.
Un altro vantaggio comune alle tre categorie di soggetti riguarda la
diminuzione del rischio di obsolescenza. L’aggiornamento via software dei
vari apparati di rete permette un riuso maggiore dell’hardware: il ciclo di
vita dei componenti hardware, così, sarà molto più lungo.
75
CAPITOLO 4
Introduzione al progetto
Questo lavoro di tesi è il primo passo dell’analisi di un sistema di
comunicazione satellitare che sfrutti in modo opportunistico la banda a
disposizione, mediante una tecnica CDMA su OFDM.
Si sta rivolgendo particolare attenzione a tale sistema, in quanto
potenzialmente potrebbe offrire numerosi vantaggi rispetto a sistemi di
trasmissione tradizionali alternativi. Si parla, per il momento, di vantaggi
potenziali e non indubbi e verificati, poiché il lavoro di simulazione che si
sta svolgendo è ancora ad uno stadio iniziale: attualmente, quindi, si
dispone solo di una parte dei risultati.
Una prima condizione che si impone nella realizzazione di tale sistema
riguarda la necessità di doverlo implementare in un ambiente già definito: i
satelliti sono già in orbita e le ST già presenti sul territorio. L’unica
operazione da effettuare di volta in volta, per poter effettivamente godere
dei sopraccitati vantaggi, dovrà essere semplicemente la configurazione
76
delle ST a seconda della comunicazione che si vuole instaurare, delle
comunicazioni già in atto, delle condizioni di propagazione, ecc. Da quanto
esposto nei capitoli precedenti, è chiaro che è indispensabile l’utilizzo
della Software Radio, dato che è attualmente l’unico modo per rendere un
ricetrasmettitore riconfigurabile durante il suo ciclo di vita.
In questo capitolo, si mettono in luce i vantaggi del sistema, rimandando ai
prossimi capitoli l’analisi del codice realizzato e dei risultati ottenuti dalla
simulazione.
4.1 Vantaggi del sistema
Da qualche tempo, la tecnica CDMA su OFDM sta riscuotendo molto
successo nell’ambito delle comunicazioni radio, grazie al fatto che
combina i principali vantaggi di entrambe le procedure.
Le comunicazioni di tale tipo, infatti, sono immuni agli effetti del multipath,
grazie alla suddivisione della banda disponibile in sottobande minori. Allo
stesso momento, grazie all’utilizzo di codici ortogonali o pseudorandom,
l’accesso multiplo è facilitato e la capacità del sistema in termini di numero
di utenti è piuttosto elevata e variabile dinamicamente.
Per di più, è possibile gestire il sistema in modo del tutto dinamico,
scegliendo di volta in volta i suoi parametri, quali la dimensione della
77
costellazione, la lunghezza del codice, il numero delle sottoportanti attive,
ecc.
Nel progettare tale sistema, inoltre, si è pensato che tale tecnica possa
essere particolarmente utile per realizzare un impiego della banda a
disposizione in modo opportunistico, andando a sfruttare quelle porzioni di
spettro che rimangono inutilizzate tra una banda occupata da un utente e
l’altra.
Qui a seguire saranno esaminati tali vantaggi con maggior dettaglio.
4.1.1 Uso opportunistico della banda
La banda di un trasponder satellitare, nella maggior parte dei casi, non è
completamente occupata dalle comunicazioni in atto: in generale, infatti,
sono impegnate solo alcune porzioni di spettro, per di più separate tra
loro. In un generico istante di tempo, quindi, la banda in esame, sia essa
lo spettro totale di un trasponder, sia una parte di questo, presenta una
configurazione di bande occupate e libere come quella mostrata in Fig.
4.1.
SPETTRO COMPLESSIVO DISPONIBILE
G1
B1
G2
G3
B2
B3
G4
Fig. 4.1 Esempio di una possibile occupazione della banda satellitare.
78
In tale esempio, si hanno tre comunicazioni in atto COM1, COM2 e COM3,
rispettivamente nelle sottobande B1, B2 e B3, lasciando liberi i gap G1, G2,
G3, e G4. È da notare che, con il trascorrere del tempo, tale configurazione
potrebbe variare, a seconda delle comunicazioni che si instaurano e si
abbattono.
Progettare un sistema che utilizzi in modo opportunistico la banda
disponibile significa fare in modo che esso riesca ad occupare le porzioni
di spettro che rimangono inutilizzate tra una comunicazione e l’altra. In
altre parole, facendo riferimento alla Fig. 4.1, il trasmettitore sarà in grado
di instaurare un collegamento con il ricevitore, servendosi dei gap G1, G2,
G3, e G4.
Ciò è possibile grazie all’adozione dell’OFDM: questo, infatti, offre la
possibilità di poter spegnere alcune delle proprie sottoportanti non
favorevoli alla trasmissione. In un sistema tradizionale, ci si avvale di tale
possibilità nel caso in cui il canale sia selettivo in frequenza, in modo da
non trasmettere in corrispondenza delle sottobande troppo degradate. In
questo ambito, invece, si sfrutta tale possibilità per evitare di trasmettere
nelle bande già occupate, creando interferenza sia per sé sia per l’altra
comunicazione. Ascoltando il canale, infatti, è possibile stabilire la
posizione e la dimensione delle bande inutilizzate e, di conseguenza,
accendere le sottoportanti in corrispondenza di tali gap, mantenendo
spente quelle che si sovrappongono alle bande al momento occupate.
Per meglio comprendere tale opportunità, supponendo di avere la
situazione ipotizzata nella figura precedente, in Fig. 4.2 è rappresentata la
79
configurazione di sottoportanti OFDM accese e spente del sistema in
analisi.
SPETTRO COMPLESSIVO DISPONIBILE
G1
1 2 3
G2
B1
4
5 6 7
G3
B2
B3
G4
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
PORTANTE ACCESA
PORTANTE SPENTA
Fig. 4.2 Esempio di una possibile configurazione di portanti accese e spente.
Come detto prima, tale configurazione potrebbe variare nel tempo, a
seconda delle comunicazioni che si instaurano e si abbattono.
Variando la posizione e il numero delle bande libere, è necessario che vari
di conseguenza anche la configurazione di sottoportanti OFDM accese e
spente: in questa circostanza, entra in gioco il ruolo della Software Radio
con sui si riesce dinamicamente ad accendere e spegnere tali
sottoportanti. Laddove, per esempio si liberasse la banda B2, il sistema
potrebbe accendere le sottoportanti che precedentemente si andavano a
sovrapporre a tale porzione di spettro, ovvero le sottoportanti numero 10,
11, 12 e 13, come mostrato in Fig. 4.3 (a). Nel caso che, invece, entrasse
un’altra comunicazione a cui è dedicata la banda precedentemente
inutilizzata e indicata con G3, il trasmettitore del sistema CDMA su OFDM
si accorgerà che tale porzione di spettro non può essere più utilizzata e
80
andrà a spegnere le sottoportanti corrispondenti, ovvero la numero 14, 15,
16 e 17, ottenendo una configurazione come quella di Fig. 4.3 (b).
(a)
B1
1 2 3
4
B3
5 6 7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
(b)
B1
1 2 3
4
B2
5 6 7
B4
B3
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
PORTANTE ACCESA
PORTANTE SPENTA
Fig. 4.3 Possibili cambiamenti nella configurazione delle portanti accese e spente.
In quest’ultimo caso, si avrà un periodo di tempo, seppur breve, in cui la
due comunicazioni coesisteranno nella stessa banda. È naturale pensare
che, in questo intervallo di tempo, le prestazioni di questi due sistemi
siano particolarmente degradate a causa della mutua interferenza. Se ciò
si verificasse effettivamente, il progetto in esame non potrebbe essere
implementato nella realtà, in quanto andrebbe a intaccare un sistema già
consolidato.
Tale problema, però, è stato risolto grazie all’introduzione del CDMA:
infatti, lo spettro di densità di potenza del segnale trasmesso con la
tecnica CDMA è “spalmato” su una banda L volte maggiore di quella
81
strettamente necessaria (dove L è la lunghezza del codice utilizzato).
Questo significa che, rimanendo la potenza complessiva inalterata, dato
che il codice altro non è che una sequenza di ±1, il livello del segnale
trasmesso può essere paragonato al rumore termico.
La seconda comunicazione, quindi, nel lasso di tempo in cui le due
trasmissioni convivono nella stessa banda, dovrà fronteggiare un disturbo
molto simile al rumore termico: le prestazioni, così, non sono
particolarmente degradate e i possibili errori di trasmissione possono
essere fronteggiati in modo semplice.
4.1.2 Dinamicità del sistema
Nel caso in cui durante la comunicazione parte della banda a disposizione
viene meno, come detto nel paragrafo precedente, è necessario
riconfigurare il sistema, eliminando parte delle sottoportanti OFDM. Si
potrebbe pensare che gli utenti utilizzanti il sistema in esame siano
costretti a diminuire il proprio bit rate, adeguandosi alla diminuzione della
banda. In realtà, ciò non avviene: un ulteriore punto di forza del sistema,
infatti, consiste nel dare la possibilità agli utenti di mantenere invariato il
proprio bit rate anche nel caso di diminuzione di banda. Ovviamente ciò è
possibile nel caso di utenti con bit rate bassi, molto minori del valore
massimo consentiti dall’OFDM, pari a 1/Tu, con Tu tempo utile del simbolo
OFDM.
82
Nel momento in cui vengono spente delle sottoportanti, ciò che viene
intaccato nel sistema è il numero degli utenti che possono usufruire del
servizio. Infatti, data la banda B totale di cui si dispone e un numero di
sottoportanti OFDM pari a N, la banda di ciascuna sottoportante sarà B/N.
Inoltre, se in una generica banda W viene adottata una tecnica di accesso
multiplo di tipo CDMA, ciascun utente dispone di una banda utile pari a
W/(L*NU), dove L è la lunghezza di codice e NU il numero di utenti
connessi. Fondendo le due tecniche, la banda a disposizione per ogni
utente sarà B/(N*L*NU). Allora se il numero delle sottoportanti N
diminuisce, è possibile mantenere invariata la banda associata ad un
utente, ovvero è possibile evitare che le singole comunicazioni risentano
di tale diminuzione, semplicemente variando dinamicamente o il guadagno
di codice L o il numero degli utenti NU che possono contemporaneamente
trasmettere.
4.1.3 Accesso multiplo facilitato
Nel progetto di tale sistema, si è stabilito di adoperare una tecnica di
accesso multiplo di tipo CDMA.
Essendo necessario l’impiego dell’OFDM per soddisfare la richiesta di uso
opportunistico della banda a disposizione, si potrebbe pensare che
sfruttare come tecnica di accesso multiplo l’OFDMA fosse la scelta più
semplice da un punto di vista realizzativo. In realtà, l’OFDMA presenta un
problema non indifferente: la sincronizzazione tra gli utenti. Affinché la
83
trasmissione delle informazioni tramite la tecnica OFDM vada a buon fine,
è necessario che le sottoportanti siano ortogonali. L’OFDMA assegna ad
ogni utente una o più sottoportanti: è indispensabile, allora, che i diversi
utenti siano ben sincronizzati in frequenza, altrimenti risulta impossibile
discriminare le diverse comunicazioni. Imporre tale vincolo, però, è troppo
restrittivo nella realtà, in quanto è difficile allineare utenti diversi. La scelta
della tecnica CDMA è dettata dalla sua facilità implementativa, dato che
essa non richiede una sincronizzazione così rigorosa degli utenti, ma tutto
gira intorno alle potenze di trasmissione: è più semplice, infatti, imporre
limiti sulle potenze di trasmissione.
4.1.4 Gestione dinamica del sistema
Nel progetto del sistema in esame, si è supposto di realizzare trasmettitore
e ricevitore secondo la filosofia della Software Radio. Come esposto nel
Cap. 3, la Software Radio permette di riconfigurare il sistema durante il
suo ciclo di vita. Per quanto esposto finora, l’uso della Software Radio è
indispensabile: dà la possibilità di poter cambiare la modulazione scelta, la
lunghezza dei codici utilizzati, il numero delle sottoportanti OFDM, ecc.,
permettendone l’utilizzo in numerose applicazioni, anche al di fuori
dell’ambiente satellitare.
84
4.2 Scopo del lavoro di tesi
In questo capitolo sono stati introdotti i diversi vantaggi che caratterizzano
questo nuovo sistema di trasmissione. Nel prossimo capitolo, sarà
mostrato il codice sviluppato per la simulazione della catena di
ricetrasmissione. È da notare che il presente lavoro di tesi è centrato
solamente su uno degli aspetti del sistema presentati nel paragrafo
precedente: l’occupazione spettrale opportunistica. Gli altri aspetti
potranno formare oggetto di futuri lavori.
85
CAPITOLO 5
Introduzione al codice
Questo lavoro di tesi può essere suddiviso in due fasi. La prima prevede la
scrittura di un codice che permetta di simulare il sistema analizzato nel
capitolo precedente. Il linguaggio di programmazione con cui è stato
sviluppato il codice è MATLAB (MATrix LABoratory).
Sulla base di tale codice, successivamente, si sono valutate le prestazioni
del sistema ed effettuati dei paragoni con altri sistemi di trasmissione
tradizionali, che potrebbero essere utilizzati in alternativa.
5.1 Strumento di lavoro
In questo lavoro di tesi, ci si è avvalsi del software MATLAB e dei suoi
toolbox.
86
MATLAB è un linguaggio di calcolo di alto livello con cui è possibile
risolvere una vasta gamma di problemi tecnici in diverse aree applicative,
quali la progettazione di sistemi di controllo o di sistemi finanziari, il
processing dei segnali, l’analisi dei dati, il calcolo numerico, le
comunicazioni, ecc [21]. Per poter lavorare in ambienti applicativi così
eterogenei, MATLAB si serve di numerosi toolbox, ovvero raccolte di
particolari funzioni specifiche di un’area, che estendono il “raggio d’azione”
del software stesso.
Una caratteristica di tale software è la possibilità che esso offre di
programmare in modo molto più veloce rispetto ai linguaggi di
programmazione tradizionali, come il C, C++ e il Fortran, poichè non
richiede tutte le laboriose operazioni di gestione di codice di basso livello,
fornendo, però, tutte le funzioni di programmazione tradizionali.
MATLAB è, inoltre, in grado di analizzare e acquisire dati, anche da
periferiche esterne, elaborarli, ricavarne dei risultati, che poi possono
essere visualizzati mediante dei plot, o grafici, sia in 2-D sia in 3-D. Tali
grafici possono essere personalizzati, modificando gli assi, i colori,
aggiungendo label e annotazioni.
In questo lavoro, oltre alle funzioni base di MATLAB, si sono utilizzati i
toolbox di comunicazione (Communications Toolbox) e di processing dei
segnali (Signal Processing Toolbox).
Il Communications Toolbox estende le funzionalità di MATLAB con
funzioni e grafici per progettare, analizzare e simulare lo strato fisico dei
sistemi di comunicazione, sia commerciali sia militari, sia wireless sia
87
wired. Tale libreria comprende funzioni di codifica di sorgente, codifica di
canale, modulazione, modelli di canali ed equalizzazione; inoltre sono
compresi anche grafici per visualizzare le costellazioni e i diagrammi a
occhio.
Il Signal Processing Toolbox è, invece, una raccolta di algoritmi per
elaborare segnali sia analogici, sia digitali: le funzioni principali permettono
la progettazione di filtri, il calcolo delle principali trasformate, l’analisi
spettrale e statistica dei dati, ecc. Tale toolbox può essere utile nella
simulazione di sistemi di comunicazione, così come nelle applicazioni di
elaborazione delle immagine e dell’audio e nella gestione delle
strumentazioni mediche.
5.2 Sistema implementato
Come già ampiamente esposto, il sistema che si sta progettando sfrutta
una tecnica CDMA su OFDM. Lo schema a blocchi di quanto simulato è
mostrato in Fig. 5.1.
Il bitstream che deve essere trasmesso sarà dapprima elaborato secondo
la tecnica CDMA e successivamente trasmesso con una modulazione
OFDM.
88
IFFT
OUT
…
IN
GC
N/2
0
…
wk
tx
…
…
…
IFFT_len-N/2
IFFT_lenN/2+1
IFFT_lenGI+1
IFFT_len-1
IFFT_len IFFT_len
…
vk
N/2+1
…
CR
0
…
CC
mn
…
dk
cn
1
2
…
…
1
2
z
S/P
CC: codificatore di costellazione
CR: codificatore a ripetizione
GC: generatore di codice
DC: decodificatore di costellazione
DR: decodificatore a ripetizione
s
P/S
m
CANALE
AWGN
s_rx
FFT
OUT
…
IN
GC
…
…
1
2
N/2
dk
N/2+1
…
…
DR
wk_rx
…
rx
vk_rx
0
IFFT_len-N/2
IFFT_lenN/2+1
IFFT_lenGI+1
IFFT_len-1
IFFT_len IFFT_len
…
…
…
DC
mn_rx
0
…
cn_rx
1
2
z_rx
P/S
m_rx
Fig. 5.1 Schema a blocchi del sistema in esame.
89
S/P
Come già detto nel capitolo precedente, il presente lavoro di tesi è
incentrato sull’analisi della possibilità che il sistema offre di utilizzare la
banda in modo opportunistico. Per le simulazioni è stato ipotizzato uno
scenario realistico di applicazione.
Si assuma che si sia interessati non a tutto lo spettro di un trasponder
satellitare, ma solo ad una porzione di 8 MHz. Tale spettro, però, non è
completamente disponibile per la trasmissione dei dati, ma sono in atto
altre comunicazioni, che in totale occupano 3 MHz, come mostrato in Fig.
5.2.
8 MHz
1 MHz
2 MHz
Banda occupata
Banda libera
Fig. 5.2 Occupazione dello spettro in esame.
Inoltre, è stato scelto un codice pseudorandom di lunghezza 8 e una
costellazione Q-PSK per il CDMA. Per quanto riguarda, invece, i parametri
dell’OFDM, le portanti sono in totale 2048, distanziate l’una dall’altra di
circa 4 kHz. Per eliminare i lobi laterali esterni alla banda di interesse,
sono state spente parte delle sottoportanti laterali: sono utilizzate, quindi,
solo 1706 sottoportanti. Infine, si è scelto di introdurre un intervallo di
guardia pari ad un quarto della durata utile del simbolo OFDM.
90
Il canale satellitare è rappresentato con un modello AWGN, in quanto tutti
i disturbi che si presentano nella realtà possono essere paragonati al
rumore termico.
Qui a seguire, sarà mostrato e opportunamente spiegato il codice
sviluppato, formato da un corpo centrale richiamante due funzioni
principali, che implementano il trasmettitore e il ricevitore, rimandando
l’attenzione ai risultati ottenuti nel prossimo capitolo.
5.3 Corpo centrale
Il corpo centrale, a cui è stato dato il nome di Ricetrasmettitore, è
suddiviso in cinque sezioni: DATI DI INGRESSO, TRASMETTITORE,
CANALE, RICEVITORE, VALUTAZIONE DELLE PRESTAZIONI.
5.3.1 SEZIONE 1: Dati di ingresso
Come si evince dal nome, in questa sezione sono settati i parametri del
sistema, noti sia al ricevitore che al trasmettitore. Le righe di codice che
compongono la sezione dei dati di ingresso sono le seguenti:
91
%% DATI DI INGRESSO
Ndata=6654;
M=4;
B_OFDM=8*10^6;
IFFT_len=2048;
N=1706;
% Lunghezza del bitstream che viene
generato
% Dimensione della costellazione PSK
utilizzata
% Banda occupata dal segnale OFDM
% Numero totale delle sottoportanti OFDM
% Numero delle sottoportanti OFDM
utilizzate
portanti=ones(N,1);
portanti(342:597,1)=0;
% Portanti tutte accese
% Portanti in corrispondenza della
prima banda
portanti(1366:end,1)=0; % Portanti in corrispondenza della
seconda banda
GI=IFFT_len/4;
% Numero di chip presenti
nell'intervallo di guardia
EBN0=-10:0.5:10;
% creazione del vettore
Eb/No
% creazione del vettore
memorizzati i valori
variare del rapporto
BER=[];
for y=1:length(EBN0)
di valori di
in cui saranno
di BER al
Eb/No
% ciclo for per la valutazione dei
valori del BER al variare del
rapporto Eb/No
EbNo=EBN0(y);
num_iter=y
È da notare che tutti i parametri qui mostrati sono stati settati in relazione
allo scenario descritto nel paragrafo precedente: tuttavia, è stato previsto
che, al variare dello scenario, anche i parametri possono essere
modificati, rendendo il codice adattabile a qualunque situazione. Viene
prima di tutto decisa la lunghezza del bitstream generato, rappresentata
dalla variabile Ndata, quindi è necessario indicare la dimensione M della
costellazione PSK che si vuole impiegare. In questo lavoro è stato deciso
di trasmettere 6654 bit, impiegando, come detto prima, una costellazione
di tipo Q-PSK.
92
È stato poi impostato il valore della banda del segnale OFDM
(B_OFDM=8*10^6), il numero delle sottoportanti totale (IFFT_len=2048)
e quello delle sottoportanti effettivamente utilizzate (N=1706). Un
parametro fondamentale da settare è il pattern delle portanti utilizzate,
ovvero la configurazione di portanti accese e spente, scelta dopo aver
ascoltato il canale e dopo aver determinato quali bande sono al momento
occupate. Avendo ipotizzato un’occupazione spettrale come quella
mostrata in Fig. 5.2, viene creato dapprima un vettore di 1706 elementi
tutti pari a uno (portanti=ones(N,1)) e poi vengono spente le portanti
tra la 342ma e la 597ma (portanti(342:597,1)=0) e quelle tra la
1366ma e la 1706ma (portanti(1366:end,1)=0), ponendo a zero gli
elementi del vettore portanti nelle posizioni corrispondenti.
Dovendo valutare le prestazioni del sistema al variare del rapporto tra
l’energia di bit Eb e la densità spettrale di potenza N0, si è pensato di
creare un vettore di valori di Eb / N0, chiamato EBN0, i cui elementi sono
valori compresi tra –10 e 10 dB (EBN0=-10:0.5:10). È stato, quindi,
inizializzato vuoto un secondo vettore, chiamato BER, (BER=[]), in cui
ciascun elemento rappresenterà il Bit Error Rate determinato utilizzando il
valore di Eb / N0 presente nella medesima posizione all’interno del vettore
EBN0.
Per fare ciò, ci si avvale di un ciclo for, per cui ad ogni iterazione la
variabile EbNo viene settata come il valore corrente del vettore EBN0
(EbNo=EBN0(y)). Per comodità è stampato, sul Command Window di
MATLAB, il numero dell’iterazione (num_iter=y).
93
5.3.2 SEZIONE 2: Trasmettitore
La sezione del trasmettitore è costituita da un solo comando:
%% TRASMETTITORE
[cn,dk,tx]=Trasmettitore(Ndata,M,B_OFDM,IFFT_len,N,portanti,GI);
È invocata una delle due funzioni principali, la funzione Trasmettitore,
che prende in ingresso i parametri definiti nella sezione precedente e dà
come output il bitstream generato cn che sarà necessario nella fase di
valutazione delle prestazioni, il codice CDMA generato dk, che è richiesto
in fase di ricezione, e il segnale numerico tx in uscita dal modulatore
OFDM, che dovrà essere trasmesso. Nel Par. “la funzione trasmettitore”
verrà data una descrizione dettagliata di tale funzione.
5.3.3 SEZIONE 3: Canale
Come detto prima, in questo ambito si considera un canale che introduca
%% CANALE
SNR=EbNo+10*log10(log2(M));
rx=awgn(tx,SNR,'measured');
% Valutazione dell'SNR del segnale
% Effetti del canale
semplicemente rumore bianco. La funzione MATLAB che modellizza tale
tipo di canale è awgn, che prende in ingresso non solo il segnale che deve
essere trasmesso, ma anche il rapporto segnale rumore. Il valore della
variabile SNR tiene conto sia del rapporto Eb / N0, sia di un contributo
94
introdotto dalla modulazione. Il segnale in output alla funzione awgn è,
quindi, la versione sporcata dal rumore termico del segnale tx.
5.3.4 SEZIONE 4: Ricevitore
Così come la sezione Trasmettitore, anche quella Ricevitore invoca una
sola funzione, chiamata Ricevitore, la seconda delle due principali di
cui si compone l’intero codice.
%% RICEVITORE
[cn_rx]=Ricevitore(M,B_OFDM,IFFT_len,N,portanti,GI,dk,rx);
Anche in questo caso, sono richiesti in ingresso tutti i parametri definiti
nella prima sezione, a parte la lunghezza dello stream che si vuole
trasmettere, in quanto un ricevitore reale non conosce a priori la
lunghezza del bitstream trasmesso. Inoltre, vengono posti in ingresso il
codice CDMA utilizzato in trasmissione, in modo da poter estrapolare i dati
correttamente e, ovviamente, il segnale rx in uscita dal canale. L’output
cn_rx non è altro che il bitstream recuperato in fase di ricezione dopo la
demodulazione Q-PSK. Anche in questo caso, si rimanda al Par. “La
funzione ricevitore” per una descrizione dettagliata della funzione.
95
5.3.5 SEZIONE 5: Valutazione delle prestazioni
L’ultima sezione, la Valutazione delle Prestazioni, è in un certo senso il
cuore della simulazione, in quanto calcola i risultati finali.
%% VALUTAZIONE DELLE PRESTAZIONI
[num_errori, ber]=biterr(cn,cn_rx);
BER(y)=ber;
end
figure(100);
semilogy(EBN0,BER);
title('BER vs.Eb/No');
xlabel('Eb/No'); ylabel('BER');
Questa sezione si divide in due parti: una prima, che viene fatta girare ad
ogni iterazione del ciclo for sul vettore EBN0, definito nella prima sezione,
e una seconda, che sarà fatta girare solo una volta alla fine del ciclo.
Per ogni valore del rapporto Eb / N0 viene sfruttata una funzione del
Communications Toolbox di MATLAB, che, prendendo in ingresso il
bitstream generato in trasmissione e quello ricevuto, è in grado di
calcolare il numero degli errori commessi e il Bit Error Rate
(num_errori, ber]=biterr(cn,cn_rx)). Ad ogni iterazione, così, il
valore del BER calcolato, viene memorizzato nella posizione corrente del
vettore inizializzato tra i dati di ingresso (BER(y)=ber).
Valutati i BER per ciascuno dei valori di Eb / N0, si esce dal ciclo for e
viene graficata la curva delle prestazioni, ovvero il BER al variare del
rapporto Eb / N0. Il grafico è semilogaritmico (semilogy(EBN0,BER)) ed
è stato corredato di titolo (title('BER vs.Eb/No')) e di etichette con il
nome degli assi (xlabel('Eb/No'); ylabel('BER')).
96
5.4 La funzione Trasmettitore
function
[cn,dk,tx]=Trasmettitore(Ndata,M,B_OFDM,IFFT_len,N,portanti,GI)
Come suggerito dal nome, la funzione Trasmettitore racchiude tutti
gli step che un trasmettitore reale esegue prima di inviare i dati nel canale.
Tale funzione prende in ingresso la lunghezza del bitstream da generare,
la dimensione della costellazione PSK, la banda disponibile, il numero
delle portanti totali e quello delle portanti effettivamente utilizzate, il pattern
delle portanti accese e spente e la dimensione dell’intervallo di guardia.
Per una migliore comprensibilità del codice, anche questa funzione è
suddivisa in sezioni: DATI DI INGRESSO, GENERAZIONE DEI DATI,
MODULAZIONE M-PSK, CDMA e OFDM.
Per ciascuno degli stream tra un blocco funzionale e l’altro nella catena di
trasmissione, ma anche in quella di ricezione, è associato un vettore dei
tempi e uno delle frequenze. Di conseguenza, la sequenza in esame può
essere
rappresentata
sia
nel
tempo
sia
nella
frequenza.
Indipendentemente dallo stream, le funzioni utilizzate per la creazione dei
vettori e per le rappresentazioni della sequenza sono sempre le
medesime.
Ad ogni sequenza è associato un passo di campionamento, indicato con
dt_NomeSequenza: il vettore dei tempi, a cui è associato il nome
t_NomeSequenza, avrà come elementi tutti quegli istanti di tempo tra 0 e
97
un certo valore fissato, distanziati l’uno dall’altro di dt_NomeSequenza
secondi.
Lo spettro e il vettore delle frequenze, invece, sono creati invocando la
funzione SpettroBilatero, che prende in ingresso la sequenza x di
cui si vuole valutare lo spettro, il vettore dei tempi e il passo di
campionamento corrispondenti.
function [freq,amp]=SpettroBilatero(x,t,dt)
x_fft=fftshift(fft(x));
df=1/(length(x)*dt);
if rem(length(x),2)==0
f=(-length(x)/2+[0:length(x)-1])*df;
else
f=(-(length(x)-1)/2+[0:length(x)-1])*df;
end
freq=f;
amp=abs(x_fft)/length(x_fft);
Viene calcolato lo spettro della sequenza utilizzando le funzioni fft e
fftshift (x_fft=fftshift(fft(x))) e determinato il passo di
campionamento in frequenza df (df=1/(length(x)*dt)). Si hanno,
poi, due diverse possibilità per la definizione del vettore delle frequenze a
seconda se la lunghezza della sequenza è pari o dispari.
In uscita, quindi, saranno passati il vettore delle frequenze (freq=f) e il
valore assoluto dello spettro calcolato, normalizzato rispetto alla
lunghezza della sequenza (amp=abs(x_fft)/length(x_fft)).
Per visualizzare la sequenza nel tempo, si fa uso della funzione stem, per
la rappresentazione delle sequenze discrete: sulle ascisse del grafico sarà
posto il vettore t_NomeSequenza, mentre sulle ordinate sarà visualizzata
la sequenza. Se la sequenza da plottare è complessa, sono necessari due
98
grafici, uno per la parte reale, l’altro per la parte immaginaria. Per la
visualizzazione dello spettro nel tempo, si utilizzerà la funzione plot: sulle
ascisse saranno, in questo caso, visualizzate le frequenze. Ogni grafico è
completato con un titolo e nomi degli assi.
5.4.1 SEZIONE 1: Dati di ingresso
Nella prima sezione, vengono calcolati i parametri iniziali, a partire dai dati
%% DATI DI INGRESSO
dk=2*randint(8,1)-1;
% Codice CDMA random
accese=0;
% Ciclo for per il calcolo del numero
for i=1:N
di portanti accese
if portanti(i)==1
accese=accese+1;
end
end
% Pattern completo delle sottoportanti
PortComplete=zeros(IFFT_len,1);
% Le sottoportanti laterali sono spente
PortComplete(1:N/2)=portanti(1:N/2);
PortComplete(IFFT_len-N/2+1:IFFT_len)=portanti((N/2+1):N);
Tu=IFFT_len/B_OFDM;
% Durata dell'intervallo utile del
simbolo OFDM
dt_wk=Tu/IFFT_len;
% Durata del chip nello stream dopo
l'espansione
dt_mn=dt_wk*length(dk); % Durata del simbolo modulato
dt_cn=dt_mn/log2(M);
% Durata del bit da trasmettere
Tin=dt_cn*Ndata;
% Durata dell'intervallo di tempo in
cui sono emessi i bit
m=zeros(IFFT_len,1);
% Stream di chip in ingresso alla IFFT
s=zeros(IFFT_len+GI,1); % Stream di chip in uscita dalla IFFT
tx=[];
% Stream da trasmettere
di ingresso. Viene definito prima di tutto il codice CDMA pseudorandom
composto da ±1 (dk=2*randint(8,1)-1), quindi si calcola il numero di
99
portanti accese, mediante un ciclo for sul vettore portanti, e si
memorizza tale valore nella variabile accese. Quindi si determina il
pattern completo delle portanti, comprendendo anche le 342 portanti
laterali
spente.
Dapprima,
PortComplete,
con
si
inizializza
un
tutti
vettore,
denominato
elementi
nulli
(PortComplete=zeros(IFFT_len,1)), quindi si copia la prima metà
degli elementi del vettore portanti sui primi N/2 elementi del vettore
PortComplete (PortComplete(1:N/2)=portanti(1:N/2)) e la
seconda
metà
sugli
ultimi
N/2
elementi
di
PortComplete
(PortComplete(IFFT_len-N/2+1:IFFT_len)=portanti((N/2+1):N)).
Viene calcolato il tempo utile del simbolo OFDM (Tu=IFFT_len/B_OFDM)
e definiti i tempi di campionamento associati a ciascun stream di dati,
partendo dal tempo di campionamento dei chip dopo l’espansione e
arrivando a quello del bitstream generato. È valutato anche il valore
dell’intervallo
di
tempo
in
cui
è
emesso
lo
stream
di
dati
(Tin=dt_cn*Ndata). Infine sono inizializzati alcuni stream di dati,
necessari in punti successivi del codice.
5.4.2 SEZIONE 2: Generazione dei dati
In questa sezione viene creato un vettore cn rappresentante uno stream
di bit casuali, di lunghezza pari a Ndata, facendo uso della funzione
randint del Communications Toolbox (cn=randint(Ndata,1)).
100
%% GENERAZIONE DEI DATI
cn=randint(Ndata,1);
% Bitstream random
t_cn=[0:dt_cn:Tin-dt_cn];
% Vettore dei tempi associati al
bitstream
% Rappresentazione del bitstream nel tempo
figure(10)
subplot(311)
stem(t_cn,cn)
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Ampiezza')
title('Sequenza di bit da trasmettere - cn')
% Creazione dello spettro e del vettore delle frequenze
associato al bitstream
[f_cn,cn_fft]=SpettroBilatero(cn,t_cn,dt_cn);
% Rappresentazione dello spettro del bitstream
figure(20)
subplot(311)
plot(f_cn,cn_fft)
axis([f_cn(1,1) f_cn(length(f_cn)) min(cn_fft) max(cn_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro dei bit da trasmettere - cn')
Si può, a questo punto, visualizzare la sequenza nel tempo e nella
frequenza. Un esempio di una parte della sequenza generata è quella
mostrata in Fig. 5.3, mentre in Fig. 5.4 è mostrato lo spettro cn_fft.
Fig. 5.3 Parte del bitstream generato.
101
Fig. 5.4 Spettro del bitstream generato.
5.4.3 SEZIONE 3: Modulazione M-PSK
%% MODULAZIONE M-PSK
% Modulazione M-PSK del bitstream
bn=reshape(cn,log2(M),length(cn)/log2(M));
bn=bi2de(bn.','left-msb');
mn=pskmod(bn,M);
mn=round(mn);
t_mn=[0:dt_mn:Tin-dt_mn];
% Vettore dei tempi associati allo
stream
% Rappresentazione dello stream di simboli modulati nel tempo
figure(10)
subplot(323)
stem(t_mn,real(mn))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Re(mn)')
title('Sequenza di simboli modulati - mn')
subplot(324)
stem(t_mn,imag(mn))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Im(mn)')
% Creazione dello spettro e del vettore delle frequenze
associato allo stream di simboli modulati
Pmn=mn.*conj(mn)/length(mn);
[f_mn,mn_fft]=SpettroBilatero(Pmn,t_mn,dt_mn);
% Rappresentazione dello spettro dei simboli modulati
figure(20)
subplot(312)
plot(f_mn,mn_fft)
axis([f_mn(1,1) f_mn(length(f_mn)) min(mn_fft) max(mn_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro dei simboli modulati')
102
La sezione di modulazione simula il blocco CC di Fig. 5.1: il bitstream
generato nella sezione precedente viene modulato secondo uno schema
M-PSK, dove il valore di M è ricevuto in ingresso dalla funzione.
La funzione in MATLAB che permette di effettuare una modulazione PSK
è pskmod che riceve in ingresso oltre al vettore da modulare, anche la
dimensione della costellazione da utilizzare ed eventuali fattori di
sfasatura della costellazione stessa, che, però, qui non sono tenuti in
conto. Pskmod, però, richiede che la sequenza in ingresso non sia una
successione di bit, ovvero di valori 0 e 1, ma che sia una successione di
valori decimali compresi tra 0 e M-1. Ecco la necessità di trasformare il
bitstream cn: viene innanzitutto riorganizzato in una matrice con log2(M)
righe (bn=reshape(cn,log2(M),length(cn)/log2(M))) e, poi, il
valore binario di ciascuna colonna è convertito nel corrispondente valore
decimale (bn=bi2de(bn.','left-msb')).
Anche in questo caso è prevista la possibilità di rappresentare la
sequenza nel tempo e il suo spettro di densità di potenza: la sequenza di
simboli modulati, corrispondenti alla parte di bitstream mostrata in Fig. 5.3,
è mostrata in Fig. 5.5. In Fig. 5.6 è, invece, visualizzato lo spettro di tale
sequenza.
È da notare che tale spettro occupa una banda pari alla metà di quella
della sequenza iniziale, avendo scelto una modulazione di tipo Q-PSK, per
cui ogni simbolo trasporta due bit di informazione.
103
Fig. 5.5 Parte dello stream dei simboli modulati.
Fig. 5.6 Spettro dello stream dei simboli modulati.
104
5.4.4 SEZIONE 4: CDMA
%% CDMA
vk=[];
for i=1:length(mn)
h=1;
for h=1:length(dk)
vk=[vk; mn(i)];
end
end
% Ripetizione dei simboli dello
stream
dk_esp=[];
for i=1:length(mn)
dk_esp=[dk_esp; dk];
end
wk=vk.*dk_esp;
t_wk=[0:dt_wk:Tin-dt_wk];
%%ripetizione del codice
% Moltiplicazione dello stream per il
codice
% Vettore dei tempi associati allo
stream di chip
% Rappresentazione dello stream di chip nel tempo
figure(10)
subplot(325)
stem(t_wk,real(wk))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Re(wk)')
title('Sequenza dei chip dopo espansione - wk')
subplot(326)
stem(t_wk,imag(wk))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Im(wk)')
drawnow
% Creazione dello spettro e
associato allo stream di chip
Pwk=wk.*conj(wk)/length(wk);
del
vettore
delle
frequenze
[f_wk,wk_fft]=SpettroBilatero(Pwk,t_wk,dt_wk);
% Rappresentazione dello spettro dei chip
figure(20)
subplot(313)
plot(f_wk,wk_fft)
axis([f_wk(1) f_wk(length(f_wk)) min(wk_fft) max(wk_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro dei chip dopo espansione')
drawnow
105
Questa parte di codice simula la parte del trasmettitore che esegue
l’espansione dello stream di simboli modulati.
Tale sezione, quindi, ricrea la parte di Fig. 5.1 riportata in Fig. 5.7.
GC
dk
mn
CR
vk
wk
Fig. 5.7 Schema a blocchi della parte CDMA sistema in esame.
Il blocco CR è riprodotto mediante due cicli for annidati: il primo sulla
lunghezza dello stream, il secondo sulla lunghezza del codice, ipotizzata
pari a 8. Ogni elemento di mn viene ripetuto 8 volte: lo stream in uscita vk,
quindi, avrà una lunghezza 8 volte maggiore di quella dello stream in
ingresso.
Anche il codice viene espanso, attraverso un nuovo ciclo for, ottenendo il
nuovo vettore dk_esp, in modo da ricavarne un vettore con la stessa
lunghezza di vk. Per ottenere la sequenza di simboli espansi wk, si
effettua una pura moltiplicazione dei due vettori vk e dk_esp
(wk=vk.*dk_esp).
A titolo di esempio della rappresentazione di tale sequenza, sono riportati
nelle Fig. 5.8 e 5.9, rispettivamente la parte di sequenza espansa
corrispondente a quella di Fig. 5.3 e lo spettro della sequenza espansa,
che occupa una banda pari a 8 volte quella della sequenza mn.
106
Fig. 5.8 Parte della sequenza espansa.
Fig. 5.9 Spettro della sequenza espansa.
107
5.4.5 SEZIONE 5: OFDM
La sezione OFDM simula la restante parte del trasmettitore mostrato in
Fig. 5.1.
num_simb=length(wk)/accese;
for j=1:num_simb
% Ciclo sui simboli OFDM
...
end
L’intera sezione è dominata da un ciclo for. Si calcola dapprima il numero
di
simboli
OFDM
compresi
nello
stream
da
trasmettere
(num_simb=length(wk)/accese): il ciclo for consisterà, poi, di un
numero di iterazioni pari a num_simb.
if j==1
a=1;
end
for i=1:length(PortComplete) % Creazione stream in IN alla
if PortComplete(i)==1
IFFT che tiene conto delle
m(i,1)=wk(a,1);
portanti accese e spente
a=a+1;
end
end
% Shift della prima metà dello stream con la seconda
m_shift(1:N/2,1)=m(IFFT_len-N/2+1:IFFT_len,1);
m_shift(IFFT_len-N/2+1:IFFT_len,1)=m(1:N/2,1);
Ad ogni iterazione sono prelevati dallo stream espanso un numero di chip
pari al numero delle portanti accese: viene creato un vettore m di
lunghezza pari al numero delle portanti totali, in cui gli elementi nella
posizioni delle portanti spente sono posti a zero, mentre in quelli in
corrispondenza delle portanti accese sono memorizzati i chip da
trasmettere.
108
La prima e seconda metà di tale vettore vengono poi shiftate
(m_shift(1:N/2,1)=m(IFFT_len-N/2+1:IFFT_len,1);
m_shift(IFFT_len-N/2+1:IFFT_len,1)=m(1:N/2,1)),
in
modo
che le successive funzioni forniscano dei risultati validi.
A questo punto viene effettuata la IFFT del simbolo, mediante la funzione
ifft di MATLAB, calcolati i relativi vettori di tempo e frequenza e
rappresentati, come descritto in precedenza.
z=IFFT_len*ifft(m_shift);
dt_z=Tu/IFFT_len;
t_z=[0:dt_z:Tu-dt_z];
% IFFT del simbolo OFDM
% Durata del chip nel simbolo OFDM
% Vettore dei tempi associati al
simbolo OFDM
% Rappresentazione del simbolo OFDM nel tempo
figure(15)
subplot(211)
stem(t_z,abs(z))
xlabel('Tempo (sec.)'),ylabel('Ampiezza')
title('Simbolo OFDM senza intervallo di guardia')
% Creazione dello spettro e del vettore delle frequenze
associato al simbolo OFDM
[f_z,z_fft]=SpettroBilatero(z,t_z,dt_z);
% Rappresentazione dello spettro del simbolo OFDM
figure(25)
subplot(211)
plot(f_z,z_fft)
axis([f_z(1) f_z(length(f_z)) min(z_fft) max(z_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro del simbolo OFDM senza intervallo di guardia')
Le Fig. 5.10 e 5.11 mostrano rispettivamente il valore assoluto di uno dei
tanti simboli OFDM componenti lo stream nel tempo e il relativo spettro di
densità di potenza.
È da notare che lo spettro è non nullo solo in quelle zone libere dello
spettro disponibile, mentre si annulla in corrispondenza delle bande
occupate.
109
A questo punto, viene inserito l’intervallo di guardia, ripetendo in testa al
simbolo i GI chip finali (s(1:GI)=z(IFFT_len-GI+1:IFFT_len);
s(GI+1:end)=z(:,1)).
Fig. 5.10 Uno dei simboli OFDM.
Fig. 5.11 Spettro della simbolo OFDM.
In questo caso, per calcolare lo spettro di densità di potenza si è scelto di
utilizzare il comando pwelch di MATLAB e si è creata una nuova funzione
110
SpettroBilateroWelch, che è analoga a SpettroBilatero, con
l’unica differenza che non viene calcolata la fft della sequenza di ingresso.
Il valore assoluto del simbolo precedentemente mostrato provvisto
dell’intervallo di guardia nel tempo ha un andamento come in Fig. 5.12,
mentre lo spettro è quello in Fig. 5.13.
s(1:GI)=z(IFFT_len-GI+1:IFFT_len);
s(GI+1:end)=z(:,1);
%Introduzione del GI
T=Tu+(GI/IFFT_len)*Tu; % Durata del simbolo OFDM con GI
dt_s=T/(IFFT_len+GI);
% Durata del chip nel simbolo OFDM con
GI
t_s=[0:dt_s:T-dt_s];
% Vettore dei tempi associati al simbolo
OFDM con GI
% Rappresentazione del simbolo OFDM con GI nel tempo
figure(15)
subplot(212)
stem(t_s,abs(s))
xlabel('Tempo (sec.)'),ylabel('Ampiezza')
title('Simbolo OFDM con intervallo di guardia')
drawnow
% Creazione dello spettro di densità di potenza e del vettore
delle frequenze associato al simbolo OFDM con GI
Ps=pwelch(s,[],[],length(s));
[f_s,s_fft]=SpettroBilateroWelch(Ps,t_s,dt_s);
% Rappresentazione dello spettro del simbolo OFDM con GI
figure(25)
subplot(212)
plot(f_s,s_fft)
axis([f_s(1) f_s(length(f_s)) min(s_fft) max(s_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro del simbolo OFDM con intervallo di guardia')
drawnow
tx=[tx;s];
% Stream da trasmettere
111
Fig. 5.12 Simbolo OFDM con intervallo di guardia.
Fig. 5.13 Spettro del simbolo OFDM con intervallo di guardia.
A questo punto viene creato un nuovo vettore, serializzando i simboli così
ottenuti (tx=[tx;s]). Sono, inoltre, calcolati, fuori dal ciclo for, i tempi, le
frequenze e lo spettro relativo. Lo stream tx è l’output della funzione
Trasmettitore.
112
5.5 La funzione Ricevitore
function
[cn_rx]=Ricevitore(M,B_OFDM,IFFT_len,N,portanti,GI,dk,rx)
La funzione Ricevitore simula un ricevitore reale e le funzioni da esso
svolte per recuperare i bit generati dal segnale ricevuto.
Prende in ingresso la dimensione della costellazione PSK, la banda
disponibile, il numero delle portanti totali e quello delle portanti
effettivamente utilizzate, il pattern delle portanti accese e spente, la
dimensione dell’intervallo di guardia, il codice utilizzato in trasmissione e il
segnale ricevuto.
Anche in questo caso, per ogni stream vengono calcolati vettore dei tempi,
vettore delle frequenze e spettro, con la procedura introdotta per il
trasmettitore, che non sarà qui di seguito ripetuta: gli andamenti dei vari
stream, sia nel tempo sia nella frequenza sono del tutto analoghi a quelli
già rappresentati in trasmissione, a parte una componente di rumore
termico, e non saranno, quindi, mostrati nel seguito.
Per una maggiore comprensibilità del codice si è scelto di indicare i diversi
stream che vengono via via definiti, con lo stesso nome dei corrispondenti
in trasmissione, seguito dal suffisso rx, ovvero NomeSequenza_rx.
La suddivisione in sezioni di tale funzione è analoga a quella del
trasmettitore; si distinguono quattro sezioni: DATI DI INGRESSO, OFDM,
CDMA e DEMODULAZIONE M-PSK.
Ciascuna di queste sezioni svolge le operazioni inverse a quelle realizzate
in trasmissione, analizzate nel paragrafo precedente.
113
5.5.1 SEZIONE 1: Dati di ingresso
Tale sezione è del tutto analoga a quella del trasmettitore, ad eccezione
del fatto che non viene prodotto nessun codice CDMA, in quanto questo è
ricevuto in ingresso. Inoltre, non è definito il parametro Tin, poichè non si
conosce il valore di Ndata.
5.5.2 SEZIONE 2: OFDM
num_simb=length(rx)/(IFFT_len+GI);
for j=1:num_simb
% Ciclo sui simboli OFDM
...
end
Così come in trasmissione, la sezione OFDM in ricezione comprende un
ciclo for sul numero di simboli OFDM che possono essere estrapolati dallo
stream in ricezione (num_simb=length(rx)/(IFFT_len+GI)).
Ad ogni iterazione viene estratto un simbolo OFDM, s_rx, dallo stream
for i=1:IFFT_len+GI
% Estrazione del simbolo OFDM con GI
s_rx(i,1)=rx(i+(j-1)*(IFFT_len+GI),1);
end
rx, mediante un ciclo for.
Successivamente, è eliminato l’intervallo di guardia, ottenendo il simbolo
z_rx in ingresso alla FFT.
Quindi, è effettuata la FFT del simbolo, mediante la funzione fft di
MATLAB: dopo uno shift del vettore in uscita da tale operazione, analogo
114
a quello eseguito in trasmissione, si ottiene il simbolo OFDM m_rx. A
questo punto, seguendo il pattern di portanti accese e spente, i simboli
ottenuti nelle diverse iterazioni vengono serializzati andando a formare lo
stream wk_rx, corrispondente allo stream espanso wk in trasmissione.
z_rx(:,1)=s_rx(GI+1:end);
...
m_rx_shift=fft(z_rx/IFFT_len);
% FFT del simbolo OFDM
% Shift della prima metà dello stream con la seconda
m_rx(1:N/2,1)=m_rx_shift(IFFT_len-N/2+1:IFFT_len,1);
m_rx(IFFT_len-N/2+1:IFFT_len,1)=m_rx_shift(1:N/2,1);
if j==1
a=1;
end
for i=1:length(PortComplete)
if PortComplete(i)==1
wk_rx(a,1)=m_rx(i,1);
a=a+1;
end
end
Tin=dt_wk*length(wk_rx);
% Durata dello stream wk_rx
Per poter rappresentare correttamente questa sequenza e quelle
successive, è necessario definire la durata Tin dello stream stesso, che
risulterà essere pari all’intervallo Tin già calcolato in trasmissione
(Tin=dt_wk*length(wk_rx)).
5.5.3 SEZIONE 3: CDMA
La sezione CDMA permette di eliminare l’espansione introdotta in
trasmissione.
115
dk_esp=[];
for i=1:(length(wk_rx)/length(dk))
dk_esp=[dk_esp; dk];
end
% Ripetizione del codice
vk_rx=wk_rx.*dk_esp;
p=1;
for i=1:length(dk):length(vk_rx)
sum=0;
for k=0:length(dk)-1
sum=sum+vk_rx(i+k,1);
end
mn_rx(p,1)=vk_rx(i,1);
% Recupero dello stream non
p=p+1;
espanso
end
Grazie ad un ciclo for, il codice CDMA ricevuto in ingresso viene espanso,
così come è stato fatto nel trasmettitore, in modo che i vettori wk_rx e
dk_esp abbiano la stessa lunghezza. Il secondo ciclo for di questa
sezione non è altro che la simulazione del Decodificatore a Ripetizione,
mostrato in Fig. 5.1: lo stream non espanso è, infatti, ottenuto sommando
a
otto
a
otto
gli
elementi
(…sum=sum+vk_rx(i+k,1);…)
e
nella
dividendo
sequenza
tale
vk_rx
risultato per
la
lunghezza del codice (mn_rx(p,1)=vk_rx(i,1);).
5.5.4 SEZIONE 4: DEMODULAZIONE M-PSK
Lo
stream
recuperato
nella
sezione
opportunamente demodulato.
116
precedente
dovrà
essere
%% DEMODULAZIONE M-PSK
% Modulazione M-PSK del bitstream
bn_rx=pskdemod(mn_rx,M);
cn_rx=de2bi(bn_rx.','left-msb');
cn_rx=reshape(cn_rx',prod(size(cn_rx)),1);
Viene utilizzata, per fare ciò, la funzione pskdemod di MATLAB: essa
riceve in ingresso lo stream da demodulare e la dimensione della
costellazione da utilizzare e dà in output una nuova stringa di numeri
decimali, rappresentante i valori demodulati. In questo lavoro, però, si è
interessati al recupero non di una stringa di decimali, ma di una stringa di
bit, ovvero di una successione di valori pari a 0 o a 1. Viene, quindi,
effettuata
la
conversione
da
decimale
a
binario
(cn_rx=de2bi(bn_rx.','left-msb')) e una serializzazione dei
valori ottenuti (cn_rx=reshape(cn_rx',prod(size(cn_rx)),1)). Lo
stream di dati così ottenuto è la stima di quanto generato in trasmissione;
ovviamente si parla di stima e non di perfetta copia, a causa del rumore
introdotto dal canale.
La sequenza cn_rx sarà l’uscita della funzione Ricevitore e sarà poi
utilizzata, nel corpo centrale del codice, per valutare le prestazioni del
sistema.
117
CAPITOLO 6
Risultati della simulazione
In questo capitolo si analizzano i risultati ricavati dalla simulazione del
sistema. Come detto nei capitoli precedenti, in questo lavoro di tesi
l’attenzione è focalizzata solamente sull’analisi dell’uso opportunistico
della banda a disposizione. Per tale scopo, nella simulazione non sono
tenuti in conto un elevato numero di utenti, ma solo un trasmettitore e un
ricevitore: tale scelta è dettata dal fatto che la presenza di più utenti non
incide su quanto si vuole analizzare e di conseguenza si è preferito non
complicare inutilmente il lavoro. Quindi, in questo ambito, si parla più di
DS-SS che di CDMA.
Si valuteranno dapprima le prestazioni del sistema e, successivamente,
verranno eseguiti dei paragoni con sistemi di trasmissione alternativi.
Per comodità, nella Tab. 6.1 vengono riportati i valori dei parametri di
sistema utilizzati nella simulazione e già introdotti nel capitolo precedente.
118
BANDA TOTALE
BANDA COMPLESSIVAMENTE
OCCUPATA
LUNGHEZZA CODICE
PSEUDORANDOM
COSTELLAZIONE UTILIZZATA
NUMERO PORTANTI IN TOTALE
NUMERO PORTANTI DISPONIBILI
DURATA INTERVALLO DI GUARDIA
LUNGHEZZA BITSTREAM
RANGE DI Eb / N0
8 MHz
3 MHz (1 MHz + 2 MHz)
8
Q-PSK
2048
1706
TU / 4
6654 bit
[-10;10] dB
Tab. 6.1 Parametri di sistema utilizzati nella simulazione.
Si ricorda che la banda occupata da altre comunicazioni è in totale di 3
MHz, ma divisa in due sottobande, rispettivamente di 1 e 2 MHz, nelle
posizioni come mostrato in Fig. 5.2.
Nel momento in cui si vuole instaurare una comunicazione in uno scenario
del genere, la prerogativa è quella di poter trasmettere utilizzando la
banda a disposizione nel modo più efficiente possibile. È necessario, però,
non andare a disturbare eccessivamente le comunicazioni già in atto,
evitando il più possibile ogni tipo di interferenza.
Davanti a tale scenario, sono possibili tre diverse modalità di trasmissione,
due “tradizionali” e quella innovativa, introdotta con questo lavoro:
Trasmissione CDMA su OFDM, su tutta la banda libera;
Trasmissione CDMA, su tutta la banda a disposizione;
Trasmissione su un’unica banda e, in particolare, sulla sottobanda
libera di dimensione maggiore.
119
Qui a seguire, si valuteranno le prestazioni dei tre diversi sistemi e si
confronteranno, mettendo in luce che la prima opzione, ovvero il sistema
innovativo che si sta studiando, effettua una trasmissione più efficiente.
6.1 Trasmissione CDMA su OFDM
La soluzione al problema di una trasmissione efficiente fornita dal sistema
introdotto in questo lavoro, consiste, come già detto, nell’utilizzare una
trasmissione OFDM su tutto lo spettro disponibile, ovvero su tutti gli 8
MHz. L’interferenza con le altre comunicazioni viene evitata grazie al fatto
che le sottoportanti OFDM posizionate nelle sottobande occupate
vengono spente: le informazioni, quindi, saranno convogliate solo nei gap
di frequenza tra una banda e l’altra. Intuitivamente ci si può accorgere che
tale sistema sfrutta nel modo più efficiente possibile i “ritagli” di banda
libera. Inoltre, con tale metodo di trasmissione, dato che vengono
completamente tagliate fuori le bande già occupate, non si ha alcun tipo di
interferenza, ovvero le altre comunicazioni non risentono della nuova
trasmissione instaurata.
Facendo partire la simulazione, si ottiene una curva di prestazioni come
quella mostrata in Fig. 6.1
120
Fig. 6.1 Curva delle prestazioni per una trasmissione di tipo CDMA su OFDM.
Nonostante la simulazione sia stata eseguita su valori di Eb / N0 compresi
tra -10 e 10 dB, la visualizzazione dei risultati è riportata solo tra -10 e 2
dB. Ciò è dovuto al fatto che non è stato possibile settare la lunghezza
dello stream dei dati con un valore molto elevato, altrimenti le simulazioni
sarebbero diventate troppo pesanti e lunghe. Di conseguenza, su uno
stream di lunghezza limitata anche il numero di errori è limitato e quindi,
oltre un certo valore di Eb / N0, il MATLAB approssima il BER a 0 e non
sarà in grado di graficare correttamente la curva.
121
6.2 Trasmissione CDMA
La prima alternativa al sistema qui introdotto è una trasmissione CDMA
semplice e tradizionale, che va ad occupare tutto lo spettro disponibile.
Ciò significa che i dati vengono codificati secondo la costellazione scelta,
espansi con il codice pseudorandom generato e trasmessi sul canale: lo
spettro espanso dovrà essere tale da occupare una banda pari a quella
disponibile. Per paragonare i due sistemi, ovviamente, sono state eseguite
le stesse scelte di simulazione: si vogliono trasmettere 6654 bit, la
costellazione utilizzata è la Q-PSK e la lunghezza del codice è pari a 8.
Per simulare tale tipo di sistema non si è creato un secondo codice, ma si
è adattato quello che simula il CDMA su OFDM, mettendo in commento la
parte dell’OFDM e cambiando opportunamente il nome di alcune variabili.
Già prima di ottenere i risultati della simulazione, ci si può rendere conto
che il sistema non gode degli stessi pregi di quello che implementa il
CDMA su OFDM. In questo caso, infatti, viene sfruttata tutta la banda a
disposizione, anche le parti già occupate da altre comunicazioni. La teoria
del CDMA insegna che, grazie all’espansione della banda del segnale, il
livello di densità di potenza è molto minore rispetto a quello che si avrebbe
in una comunicazione non CDMA. Quindi, l’interferenza che la nuova
comunicazione crea con le trasmissioni già instaurate è bassa.
Analogamente, in fase di ricezione, grazie ad un’ulteriore moltiplicazione
per il codice CDMA, necessaria per recuperare il segnale trasmesso,
l’interferenza creata dalle comunicazioni già in atto è piuttosto bassa.
122
In linea di massima, allora, il sistema potrebbe essere implementato: per
entrambe le comunicazioni l’interferenza è bassa. Ma ciò non è
abbastanza in confronto a quanto offerto dal sistema introdotto in questo
lavoro: quest’ultimo, infatti, non introduce alcuna interferenza, dato che
taglia le bande non libere. A priori, allora, già è possibile affermare che
questa seconda opzione di trasmissione non è migliore della prima.
Per avere conferma di questa intuizione, si è fatta partire la simulazione: la
curva di prestazione ottenuta è mostrata in Fig. 6.2.
Fig. 6.2 Curva delle prestazioni per una trasmissione di tipo CDMA.
123
Anche in questo caso, per semplicità nel confronto delle due curve, si è
limitata la visualizzazione della curva di prestazioni tra -10 e 2 dB.
Analizzando, i due grafici di Fig. 6.1 e 6.2, si nota che le performance del
sistema CDMA su OFDM sono nettamente maggiori: basti confrontare i
valori del BER in corrispondenza di uno stesso valore di Eb / N0. Per
esempio, per Eb / N0=0 dB, nel caso di CDMA su OFDM il BER è di circa
10-4, mentre nel caso di CDMA assume un valore maggiori di 10-2.
6.3 Trasmissione su un’unica banda libera
Una seconda alternativa che si può adottare in una situazione come quella
ipotizzata è quella di effettuare una trasmissione “classica”. In questo
caso, però non si potrà utilizzare l’intero spettro, come nel caso mostrato
nel paragrafo precedente, ma è necessario scegliere uno dei gap di
frequenza liberi e trasmettere solo su quelle determinate frequenze.
Ovviamente, se è possibile, si andrà a scegliere il gap più ampio: nel caso
in esame si supponga di trasmettere nei 3 MHz liberi tra le due bande.
Anche in questo caso già prima della simulazione e analisi dei risultati, è
possibile concludere che questo tipo di trasmissione è sicuramente meno
performante del sistema che implementa CDMA su OFDM.
Indipendentemente dalla particolare modulazione utilizzata, si ha una
banda minore a disposizione, ovvero l’utente può trasmettere le proprie
124
informazioni con bit rate minori. È palese che la trasmissione CDMA su
OFDM utilizza in modo più oculato la banda, sfruttando ogni porzione di
spettro lasciato libero. Nel far partire la simulazione, si è deciso, per poter
riutilizzare il codice mostrato nel capitolo precedente, di effettuare una
trasmissione di tipo OFDM su quella porzione di spettro lasciata libera
nello scenario ipotizzato in partenza. Per quanto riguarda i parametri di
simulazione, per semplicità sono state utilizzate solo tre sottoportanti, la
modulazione continua ad essere una Q-PSK e i bit trasmessi sono sempre
6654.
La
curva
delle
prestazioni,
risultato
della
simulazione,
rappresentata, sempre tra i valori -10 e 2 dB, in Fig. 6.3.
Fig. 6.3 Curva delle prestazioni per una trasmissione di tipo CDMA.
125
è
Anche in questo caso, paragonando questa soluzione di trasmissione con
il sistema CDMA su OFDM, si nota che le performance mostrate in Fig.
6.3 sono nettamente inferiori rispetto a quelle mostrate in Fig. 6.1.
6.4 Conclusione
Dato lo scenario ipotizzato nel Cap. 5, si sono trovate diverse soluzioni di
trasmissione, il sistema su cui gira il presenta lavoro di tesi e altri due
alternativi sistemi. Intuitivamente, si è arrivati alla conclusione che il
sistema proposto fa un uso più efficiente ed è più performante delle altre
due proposte. Tali argomentazioni sono state, poi, supportate dai risultati
ottenuti dalle simulazioni.
126
Conclusioni
Nel presente lavoro di tesi si è cercata una soluzione ad una problematica
tipica delle comunicazioni satellitari: l’utilizzo non efficiente della spettro
dedicato ad un transponder.
È stata proposta una tecnica di trasmissione innovativa nell’ambito
satellitare, che potrebbe risolvere la suddetta inefficienza spettrale. Tale
modalità trasmissiva è ottenuta come combinazione di due tecniche
standardizzate e ampiamente utilizzate nelle comunicazioni radio, il CDMA
e l’OFDM.
La soluzione suggerita, oltre a dare la possibilità di utilizzare la banda
satellitare in modo opportunistico, offre diversi vantaggi, quali la gestione
dinamica del sistema, l’accesso multiplo facilitato, una flessibilità del
sistema, ecc.
Il lavoro svolto finora rappresenta solo il primo passo di uno lungo studio
del sistema qui presentato: è stato sviluppato il codice MATLAB in grado
di simulare adeguatamente una catena di ricetrasmissione che implementi
127
la tecnica CDMA su OFDM. La fase successiva all’implementazione del
codice è stata un’analisi approfondita dei vantaggi offerti dal sistema in
esame. Nel presente lavoro di tesi, si è rivolta l’attenzione solamente al
principale tra i vantaggi sopraccitati: l’uso opportunistico della banda.
Ipotizzando un possibile scenario di applicazione, si sono analizzate, così,
le prestazioni del sistema, confrontandole con le prestazioni relative a due
alternativi sistemi di trasmissione. Si è concluso che le performance
migliori sono quelle offerte dalla tecnica in esame.
È da sottolineare, però, che l’analisi del sistema proposto non si esaurisce
con questo lavoro: in futuro, infatti, è già in programma la necessità di
effettuare nuovi e accurati studi riguardo agli ulteriori vantaggi segnalati in
precedenza, ma non ancora esaminati, in modo da poter verificare la
completa efficienza della soluzione suggerita. Inoltre, si applicherà quanto
simulato ad un transponder reale, si cercherà di supportare comunicazioni
caratterizzate da diversi bit rate e si individueranno le applicazioni chiave,
prima tra tutte la comunicazione tra sensori.
In ogni modo, basandosi sui risultati finora ottenuti, sebbene essi siano
ancora parziali e quindi non ancora del tutto validati, si può ben sperare
che la soluzione proposta in questo lavoro sia effettivamente accettabile.
128
Appendice
Codice MATLAB
Qui a seguire si riporta il codice MATLAB sviluppato durante questo lavoro
di tesi.
Corpo centrale
close all
clear all
clc
%% DATI DI INGRESSO
Ndata=6654;
% Lunghezza del bitstream che viene
generato
M=4;
% Dimensione della costellazione PSK
utilizzata
129
B_OFDM=8*10^6;
% Banda occupata dal segnale OFDM
IFFT_len=2048;
% Numero totale delle sottoportanti OFDM
N=1706;
% Numero delle sottoportanti OFDM
utilizzate
portanti=ones(N,1);
% Portanti tutte accese
portanti(342:597,1)=0;
% Portanti in corrispondenza della
prima banda
portanti(1366:end,1)=0; % Portanti in corrispondenza della
seconda banda
GI=IFFT_len/4;
% Numero di chip presenti
nell'intervallo di guardia
EBN0=-20:1:10;
% creazione del vettore di valori di
Eb/No
BER=[];
% creazione del vettore in cui saranno
memorizzati i valori di BER al
variare del rapporto Eb/No
for y=1:length(EBN0)
% ciclo for per la valutazione dei
valori del BER al variare del
rapporto Eb/No
EbNo=EBN0(y);
num_iter=y
%% TRASMETTITORE
[cn,dk,tx]=Trasmettitore(Ndata,M,B_OFDM,IFFT_len,N,portanti,GI);
%% CANALE
SNR=EbNo+10*log10(log2(M));
% Valutazione dell'SNR del segnale
rx=awgn(tx,SNR,'measured');
% Effetti del canale
%% RICEVITORE
130
[cn_rx]=Ricevitore(M,B_OFDM,IFFT_len,N,portanti,GI,dk,rx);
%% VALUTAZIONE DELLE PRESTAZIONI
[num_errori, ber]=biterr(cn,cn_rx);
BER(y)=ber;
end
figure(100);
semilogy(EBN0,BER);
title('BER vs.Eb/No');
xlabel('Eb/No'); ylabel('BER');
Funzione SpettroBilatero
function [freq,amp]=SpettroBilatero(x,t,dt)
x_fft=fftshift(fft(x));
df=1/(length(x)*dt);
if rem(length(x),2)==0
f=(-length(x)/2+[0:length(x)-1])*df;
else
f=(-(length(x)-1)/2+[0:length(x)-1])*df;
end
freq=f;
amp=abs(x_fft)/length(x_fft);
131
Funzione SpettroBilateroWelch
function [freq,amp]=SpettroBilatero(x,t,dt)
x_fft=fftshift(x);
df=1/(length(x)*dt);
if rem(length(x),2)==0
f=(-length(x)/2+[0:length(x)-1])*df;
else
f=(-(length(x)-1)/2+[0:length(x)-1])*df;
end
freq=f;
amp=abs(x_fft)/length(x_fft);
Funzione Trasmettitore
function [cn,dk,tx]=Trasmettitore(Ndata,M,B_OFDM,IFFT_len,N,
portanti,GI)
%% DATI DI INGRESSO
dk=2*randint(8,1)-1;
% Codice CDMA random
accese=0;
% Ciclo for per il calcolo del numero
for i=1:N
di portanti accese
if portanti(i)==1
accese=accese+1;
end
end
132
% Pattern completo delle sottoportanti
PortComplete=zeros(IFFT_len,1);
% Le sottoportanti laterali sono spente
PortComplete(1:N/2)=portanti(1:N/2);
PortComplete(IFFT_len-N/2+1:IFFT_len)=portanti((N/2+1):N);
Tu=IFFT_len/B_OFDM;
% Durata dell'intervallo utile del
simbolo OFDM
dt_wk=Tu/IFFT_len;
% Durata del chip nello stream dopo
l'espansione
dt_mn=dt_wk*length(dk); % Durata del simbolo modulato
dt_cn=dt_mn/log2(M);
% Durata del bit
da trasmettere
Tin=dt_cn*Ndata;
% Durata dell'intervallo di tempo in
cui sono emessi i bit
m=zeros(IFFT_len,1);
% Stream di chip in ingresso alla IFFT
s=zeros(IFFT_len+GI,1); % Stream di chip in uscita dalla IFFT
tx=[];
% Stream da trasmettere
%% GENERAZIONE DEI DATI
cn=randint(Ndata,1);
% Bitstream random
t_cn=[0:dt_cn:Tin-dt_cn];
% Vettore dei tempi associati al
bitstream
% Rappresentazione del bitstream nel tempo
figure(10)
subplot(311)
stem(t_cn,cn)
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Ampiezza')
title('Sequenza di bit da trasmettere - cn')
% Creazione dello spettro e del vettore delle frequenze
associato al bitstream
133
[f_cn,cn_fft]=SpettroBilatero(cn,t_cn,dt_cn);
% Rappresentazione dello spettro del bitstream
figure(20)
subplot(311)
plot(f_cn,cn_fft)
axis([f_cn(1,1) f_cn(length(f_cn)) min(cn_fft) max(cn_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro dei bit da trasmettere - cn')
%% MODULAZIONE M-PSK
% Modulazione M-PSK del bitstream
bn=reshape(cn,log2(M),length(cn)/log2(M));
bn=bi2de(bn.','left-msb');
mn=pskmod(bn,M);
mn=round(mn);
t_mn=[0:dt_mn:Tin-dt_mn];
% Vettore dei tempi associati allo
stream
% Rappresentazione dello stream di simboli modulati nel tempo
figure(10)
subplot(323)
stem(t_mn,real(mn))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Re(mn)')
title('Sequenza di simboli modulati - mn')
subplot(324)
stem(t_mn,imag(mn))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Im(mn)')
% Creazione dello spettro e del vettore delle frequenze
associato allo stream di simboli modulati
Pmn=mn.*conj(mn)/length(mn);
[f_mn,mn_fft]=SpettroBilatero(Pmn,t_mn,dt_mn);
134
% Rappresentazione dello spettro dei simboli modulati
figure(20)
subplot(312)
plot(f_mn,mn_fft)
axis([f_mn(1,1) f_mn(length(f_mn)) min(mn_fft) max(mn_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro dei simboli modulati')
%% CDMA
vk=[];
for i=1:length(mn)
h=1;
% Ripetizione dei simboli dello
stream
for h=1:length(dk)
vk=[vk; mn(i)];
end
end
dk_esp=[];
for i=1:length(mn)
% Ripetizione del codice
dk_esp=[dk_esp; dk];
end
wk=vk.*dk_esp;
% Moltiplicazione dello stream per il
codice
t_wk=[0:dt_wk:Tin-dt_wk];
% Vettore dei tempi associati allo
stream di chip
% Rappresentazione dello stream di chip nel tempo
figure(10)
subplot(325)
stem(t_wk,real(wk))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Re(wk)')
title('Sequenza dei chip dopo espansione - wk')
135
subplot(326)
stem(t_wk,imag(wk))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Im(wk)')
drawnow
% Creazione dello spettro e del vettore delle frequenze associato
allo stream di chip
Pwk=wk.*conj(wk)/length(wk);
[f_wk,wk_fft]=SpettroBilatero(Pwk,t_wk,dt_wk);
% Rappresentazione dello spettro dei chip
figure(20)
subplot(313)
plot(f_wk,wk_fft)
axis([f_wk(1) f_wk(length(f_wk)) min(wk_fft) max(wk_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro dei chip dopo espansione')
drawnow
%% OFDM
num_simb=length(wk)/accese;
for j=1:num_simb
% Ciclo sui simboli OFDM
if j==1
a=1;
end
for i=1:length(PortComplete)
% Creazione stream in IN alla IFFT
if PortComplete(i)==1
che tiene conto delle portanti
m(i,1)=wk(a,1);
accese e spente
a=a+1;
end
end
% Shift della prima metà dello stream con la seconda
136
m_shift(1:N/2,1)=m(IFFT_len-N/2+1:IFFT_len,1);
m_shift(IFFT_len-N/2+1:IFFT_len,1)=m(1:N/2,1);
z=IFFT_len*ifft(m_shift);
% IFFT del simbolo OFDM
dt_z=Tu/IFFT_len;
% Durata del chip nel simbolo OFDM
t_z=[0:dt_z:Tu-dt_z];
% Vettore dei tempi associati al simbolo
OFDM
% Rappresentazione del simbolo OFDM nel tempo
figure(15)
subplot(211)
stem(t_z,abs(z))
xlabel('Tempo (sec.)'),ylabel('Ampiezza')
title('Simbolo OFDM senza intervallo di guardia')
% Creazione dello spettro e del vettore delle frequenze associato
al simbolo OFDM
[f_z,z_fft]=SpettroBilatero(z,t_z,dt_z);
% Rappresentazione dello spettro del simbolo OFDM
figure(25)
subplot(211)
plot(f_z,z_fft)
axis([f_z(1) f_z(length(f_z)) min(z_fft) max(z_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro del simbolo OFDM senza intervallo di guardia')
s(1:GI)=z(IFFT_len-GI+1:IFFT_len); %Introduzione del GI
s(GI+1:end)=z(:,1);
T=Tu+(GI/IFFT_len)*Tu; % Durata del simbolo OFDM con GI
dt_s=T/(IFFT_len+GI);
% Durata del chip nel simbolo OFDM con GI
t_s=[0:dt_s:T-dt_s];
% Vettore dei tempi associati al simbolo
OFDM con GI
% Rappresentazione del simbolo OFDM con GI nel tempo
figure(15)
137
subplot(212)
stem(t_s,abs(s))
xlabel('Tempo (sec.)'),ylabel('Ampiezza')
title('Simbolo OFDM con intervallo di guardia')
drawnow
% Creazione dello spettro di densità di potenza e del vettore
delle frequenze associato al simbolo OFDM con GI
Ps=pwelch(s,[],[],length(s));
[f_s,s_fft]=SpettroBilateroWelch(Ps,t_s,dt_s);
% Rappresentazione dello spettro del simbolo OFDM con GI
figure(25)
subplot(212)
plot(f_s,s_fft)
axis([f_s(1) f_s(length(f_s)) min(s_fft) max(s_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro del simbolo OFDM con intervallo di guardia')
drawnow
tx=[tx;s];
% Stream da trasmettere
end
dt_tx=dt_s;
% Durata del chip nello stream da trasmettere
% Vettore dei tempi associati allo stream da trasmettere
t_tx=[0:dt_tx:dt_tx*length(t_s)*num_simb-dt_tx];
% Creazione dello spettro e del vettore delle frequenze associato
allo stream da trasmettere
[f_tx,tx_fft]=SpettroBilatero(tx,t_tx,dt_tx);
138
Funzione Ricevitore
function [cn_rx]=Ricevitore(M,B_OFDM,IFFT_len,N,portanti,GI,dk,rx)
%% DATI DI INGRESSO
accese=0;
for i=1:N
% Ciclo for per il calcolo del numero
di portanti accese
if portanti(i)==1
accese=accese+1;
end
end
% Pattern completo delle sottoportanti
PortComplete=zeros(IFFT_len,1);
% Le sottoportanti laterali sono spente
PortComplete(1:N/2)=portanti(1:N/2);
PortComplete(IFFT_len-N/2+1:IFFT_len)=portanti((N/2+1):N);
Tu=IFFT_len/B_OFDM;
% Durata dell'intervallo utile del
simbolo OFDM
dt_wk=Tu/IFFT_len;
% Durata del chip nello stream dopo
l'espansione
dt_mn=dt_wk*length(dk); % Durata del simbolo modulato
dt_cn=dt_mn/log2(M);
% Durata del bit
da trasmettere
m=zeros(IFFT_len,1);
% Stream di chip in ingresso alla IFFT
s=zeros(IFFT_len+GI,1); % Stream di chip in uscita dalla IFFT
wk_rx=[];
% Stream di chip in uscita dall'OFDM
%% OFDM
num_simb=length(rx)/(IFFT_len+GI);
for j=1:num_simb
% Ciclo sui simboli OFDM
139
for i=1:IFFT_len+GI
% Estrazione del simbolo OFDM con GI
s_rx(i,1)=rx(i+(j-1)*(IFFT_len+GI),1);
end
T=Tu+(GI/IFFT_len)*Tu;
%
Durata
del
simbolo
OFDM
con
l'intervallo di guardia
dt_s=T/(IFFT_len+GI);
% Durata del chip nel simbolo OFDM con
l'intervallo di guardia
t_s=[0:dt_s:T-dt_s];
% Vettore dei tempi associati al simbolo
OFDM con l'intervallo di guardia
% Rappresentazione del simbolo OFDM con l'intervallo di guardia
nel tempo
figure(50)
subplot(211)
stem(t_s,abs(s_rx))
xlabel('Tempo (sec.)'),ylabel('Ampiezza')
title('Simbolo OFDM con intervallo di guardia in RX')
% Creazione dello spettro di densità di potenza e del vettore
delle frequenze associato al simbolo OFDM con l'intervallo
di guardia
Ps_rx=pwelch(s_rx,[],[],length(s_rx));
[f_s,s_rx_fft]=SpettroBilateroWelch(Ps_rx,t_s,dt_s);
%
Rappresentazione
dello
spettro
del
simbolo
OFDM
con
l'intervallo di guardia
figure(55)
subplot(211)
stem(f_s,s_rx_fft)
axis([f_s(1) f_s(length(f_s)) min(s_rx_fft) max(s_rx_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro
di
densità
di
potenza
del
simbolo
OFDM
intervallo di guardia in RX')
z_rx(:,1)=s_rx(GI+1:end);
dt_z=Tu/IFFT_len;
% Durata del chip nel simbolo OFDM
140
con
t_z=[0:dt_z:Tu-dt_z];
% Vettore dei
tempi associati al simbolo OFDM
% Rappresentazione del simbolo OFDM nel tempo
figure(50)
subplot(212)
stem(t_z,abs(z_rx))
xlabel('Tempo (sec.)'),ylabel('Ampiezza')
title('Simbolo OFDM senza intervallo di guardia in RX')
drawnow
%
Creazione
dello
spettro
e
del
vettore
delle
frequenze
associato al simbolo OFDM
[f_z,z_rx_fft]=SpettroBilatero(z_rx,t_z,dt_z);
% Rappresentazione dello spettro del simbolo OFDM
figure(55)
subplot(212)
plot(f_z,z_rx_fft)
axis([f_z(1) f_z(length(f_z)) min(z_rx_fft) max(z_rx_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro del simbolo OFDM senza intervallo di guardia in
RX')
drawnow
m_rx_shift=fft(z_rx/IFFT_len);
% FFT del simbolo OFDM
% Shift della prima metà dello stream con la seconda
m_rx(1:N/2,1)=m_rx_shift(IFFT_len-N/2+1:IFFT_len,1);
m_rx(IFFT_len-N/2+1:IFFT_len,1)=m_rx_shift(1:N/2,1);
if j==1
a=1;
end
for i=1:length(PortComplete)
if PortComplete(i)==1
wk_rx(a,1)=m_rx(i,1);
a=a+1;
141
end
end
end
Tin=dt_wk*length(wk_rx);
t_wk=[0:dt_wk:Tin-dt_wk];
% Durata dello stream wk_rx
% Vettore dei tempi associati allo
stream di chip
% Rappresentazione dello stream di chip nel tempo
figure(60)
subplot(321)
stem(t_wk,real(wk_rx))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Re(wk\_rx)')
title('Sequenza dei chip in uscita dall''OFDM in RX - wk\_rx')
subplot(322)
stem(t_wk,imag(wk_rx))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Im(wk\_rx)')
drawnow
% Creazione dello spettro e del vettore delle frequenze associato
allo stream di chip
Pwk=wk_rx.*conj(wk_rx)/length(wk_rx);
[f_wk,wk_rx_fft]=SpettroBilatero(Pwk,t_wk,dt_wk);
% Rappresentazione dello spettro dei chip
figure(65)
subplot(311)
plot(f_wk,wk_rx_fft)
axis([f_wk(1) f_wk(length(f_wk)) min(wk_rx_fft) max(wk_rx_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro dei chip in uscita dall''OFDM in RX')
drawnow
%% CDMA
142
dk_esp=[];
for i=1:(length(wk_rx)/length(dk))
% Ripetizione del codice
dk_esp=[dk_esp; dk];
end
vk_rx=wk_rx.*dk_esp;
p=1;
for i=1:length(dk):length(vk_rx)
sum=0;
for k=0:length(dk)-1
sum=sum+vk_rx(i+k,1);
end
mn_rx(p,1)=vk_rx(i,1);
% Recupero dello stream non
p=p+1;
espanso
end
t_mn=[0:dt_mn:Tin-dt_mn];
% Vettore dei tempi associati allo
stream
% Rappresentazione dello stream di simboli modulati nel tempo
figure(60)
subplot(323)
stem(t_mn,real(mn_rx))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Re(mn\_rx)')
title('Sequenza di simboli da demodulare - mn\_rx')
subplot(324)
stem(t_mn,imag(mn_rx))
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Im(mn\_rx)')
% Creazione dello spettro e del vettore delle frequenze associato
allo stream di simboli modulati
Pmn=mn_rx.*conj(mn_rx)/length(mn_rx);
[f_mn,mn_rx_fft]=SpettroBilatero(Pmn,t_mn,dt_mn);
143
% Rappresentazione dello spettro dei simboli modulati
figure(65)
subplot(312)
plot(f_mn,mn_rx_fft)
axis([f_mn(1,1) f_mn(length(f_mn)) min(mn_rx_fft) max(mn_rx_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro dei simboli da demodulare')
%% DEMODULAZIONE M-PSK
% Modulazione M-PSK del bitstream
bn_rx=pskdemod(mn_rx,M);
cn_rx=de2bi(bn_rx.','left-msb');
cn_rx=reshape(cn_rx',prod(size(cn_rx)),1);
t_cn=[0:dt_cn:Tin-dt_cn];
%
Vettore
dei
tempi
associati
al
bitstream
% Rappresentazione del bitstream nel tempo
figure(60)
subplot(313)
stem(t_cn,cn_rx)
axis([0 Tin -1 1])
xlabel('Tempo (sec.)'),ylabel('Ampiezza')
title('Sequenza di bit ricevuti - cn\_rx')
% Creazione dello spettro e del vettore delle frequenze associato
al bitstream
[f_cn,cn_rx_fft]=SpettroBilatero(cn_rx,t_cn,dt_cn);
% Rappresentazione dello spettro del bitstream
figure(65)
subplot(313)
plot(f_cn,cn_rx_fft)
axis([f_cn(1,1) f_cn(length(f_cn)) min(cn_rx_fft) max(cn_rx_fft)])
xlabel('Frequenze (Hz)'),ylabel('Ampiezza')
title('Spettro dei bit ricevuti - cn\_rx')
144
Bibliografia
[1]
M. G. Di Benedetto e P. Mandarini: “Comunicazioni Elettriche”, Ed.
Ingegneria 2000, 1999.
[2]
L. W. Couch II: “Digital and Analog Communication System”, Prentice
Hall, 1997.
[3]
A. L. Garcia e I. Widjaja: “Communication Networks Fundamentals
Concepts and Key Architecture”, McGraw Hill, 2001.
[4]
K.V. Prasad: “Prinicples of Digital Communication Systems and
Computer Networks”, Charles River Media, 2004.
[5]
S. Haykin: “Communication Systems”, John Wiley & Sons, 2001 .
145
[6]
F. Xiong: “Digital Modulation Techniques”, Artech House, 2000.
[7]
L. Piazzo: “Trasmissioni a Spettro Espanso”, dispense del corso di
Trasmissione Numeriche I.
[8]
M. O. Kolawole: “Satellite Communication Engineering”, Marcel
Dekker, 2002.
[9]
Tri T. Ha: “Digital Satellite Communications”, McGraw Hill, 1990.
[10] B. R. Elbert: “The Satellite Communication Applications Handbook”,
Artech House, 2004.
[11] D. Roddy: “Satellite Communications”, McGraw Hill, 2001.
[12] http://searchmobilecomputing.techtarget.com/sDefinition/0,,sid40_gci
212939,00.html
[13] P. Burns: “Software Defined Radio for 3G”, Artech House, 2003.
[14] A. S. Harrington, C. Hong e A. L. Piazza: “Software Defined Radio,
The Revolution of Wireless Communication”, Team
146
[15] M. F. Merino Artalejo: “Market Impact of Software Radio: Benefits
and Barriers”, disponibile su http://itc.mit.edu/itel/students/papers/
merino_thesis.pdf
[16] CEFRIEL – AMWTS Unit: “Scouting delle tecnologie adattabili”,
disponibile
su
http://www.mais-project.it/documenti_pubblico/
IIsemester/r4.1.1.pdf
[17] ftp://www.fcc.gov/pub/Bureaus/Engineering_Technology/News_Rele
ases/2000/nret0004.txt
[18] E. Baracchini: “The Software Radio Concept”; IEEE Communications
Magazine, vol. 38, pp.138-143, settembre 2000.
[19] www.sdrforum.org
[20] W. Lehr, F. Merino e S. E. Gilet: “Software Radio: Implications for
Wireless Services, Industry Structure and Public Policy”, disponibile
su
http://people.csail.mit.edu/wlehr/Lehr-Papers_files/LehrGillett
Merino%20Software%20Radio%20Comp%20Strategy.pdf
[21] www.mathworks.it
147