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