• Non ci sono risultati.

CAPITOLO 3

N/A
N/A
Protected

Academic year: 2021

Condividi "CAPITOLO 3"

Copied!
26
0
0

Testo completo

(1)

CAPITOLO 3

IMPLEMENTAZIONE DI UN SISTEMA

SOFTWARE DEFINED RADIO

Al giorno d’oggi non esiste una vera e propria definizione univoca e globale di Software Defined Radio. Il termine Software Defined Radio è di solito usato in riferimento ad un ricetrasmettitore radio i cui parametri chiave sono definiti via software. Agendo semplicemente su programmi software, senza modificare la piattaforma hardware, è possibile riconfigurare il sistema in modo che possa riuscire ad operare in qualsiasi contesto trasmissivo e supportare diverse funzionalità. In questo capitolo inizialmente vedremo come implementare un sistema SDR e in seguito parleremo del GNU Software Radio, ossia una collezione di software che combinati con un hardware minimo ci consente di implementare un sistema radio basato su piattaforma PC. Infine analizzeremo la scheda USRP, acronimo di Universal Software Radio Peripheral, una piattaforma hardware utilizzata per implementare ricetrasmettitori radio di tipo SDR. Questa scheda riceve il segnale a radiofrequenza, lo converte ad una frequenza intermedia più bassa ed infine fornisce al PC, attraverso la porta USB, i campioni digitalizzati del segnale ricevuto per essere elaborati.

(2)

3.1 Implementazione di un sistema software radio

Il Software Defined Radio (SDR), come abbiamo visto nel Capitolo 2, è un sistema radio interamente implementato in digitale [19].

Questo significa che si cerca di sostituire per quanto possibile gli stadi analogici a favore di hardware riprogrammabile (DSP, FPGA, processori generici).

Il punto chiave della Software Defined Radio è la flessibilità, garantita dalla riprogrammabilità software di questi dispositivi digitali. Un vantaggio chiaramente intuibile è che questo aiuterà ad estendere le funzionalità del sistema ad un’ampia gamma di trasmissioni radio. Infatti i moduli software che implementano i diversi standard potranno essere caricati in tempo reale sul dispositivo a seconda dell’esigenza, con tecniche Over-The-Air (OTA) o con moduli di memoria, smartcard. Inoltre si potranno aggiungere nei terminali nuovi servizi ed eventuali aggiornamenti (ad esempio per la correzione dei difetti) che potranno essere realizzati in maniera automatica ed autonoma.

L’architettura tipica di un sistema SDR (mostrata in figura 1.1) è composta da un front-end a radiofrequenza seguito:

• sul lato ricevitore, da un convertitore analogico-digitale (ADC) con alte prestazioni per digitalizzare il segnale ricevuto

• sul lato trasmettitore, da un convertitore digitale-analogico (DAC) con alte prestazioni che fornisce alla parte hardware un segnale analogico ottenuto sulla base dei suoi campioni

infine la parte dedicata all’elaborazione del segnale è implementata via software su un “host PC”.

(3)

In molti casi si cerca di realizzare via software la parte che riguarda la modulazione, la demodulazione e il signal processing in modo da aumentare la flessibilità del sistema.

In figura 1.2 è illustrato uno schema a blocchi in cui si evidenziano le parti fondamentali di un ricevitore implementato con tecnologia SDR.

La “SDR hardware platform” è composta da due moduli, uno è responsabile dell’acquisizione del segnale analogico e della sua digitalizzazione (“ADC module”) e l’altro (“USB module”) realizza il collegamento con l’host PC attraverso un cavo USB (Universal Serial Bus).

Entrambi i moduli sono dotati di una FPGA che fornisce una risorsa logica per i dispositivi di I/O e controlla il flusso dati. Il firmware di quest’ultima può essere scaricato e aggiornato all’avvio del sistema tramite la porta USB.

Figura 1.2 Schema a blocchi del sistema

Il sistema è progettato per essere costruito in maniera componibile come mostra la figura 1.3. Questo fornisce un design modulare che ci permette di apportare cambiamenti o estensioni del sistema in modo semplice.

(4)

Figura 1.3 Design modulare del sistema

3.2 GNU Software Radio

GNU Software Radio è una collezione di software che combinati con un hardware minimo consente l’implementazione di un sistema radio basato su piattaforma PC [25].

Le forme d’onda trasmesse e ricevute vengono definite ed analizzate tramite strumenti software, anche l’elaborazione del segnale è fatta tramite procedure e funzioni software.

Tutto ciò consente di realizzare sistemi complessi ed allo stesso tempo totalmente configurabili per essere adattati al contesto operativo attuale.

Il software GNU radio dispone di una interfaccia grafica che consente di implementare sistemi di tipo SDR, attraverso la costruzione di un grafo i cui blocchi rappresentano le varie fasi di signal-processing e le frecce che li uniscono evidenziano il flusso dei dati.

I blocchi di signal-processing sono entità funzionali che operano su flussi di dati di lunghezza infinita e hanno un numero di porte d’ingresso e d’uscita finito. Questi si distinguono in:

• “primitive”, sono blocchi che eseguono una data funzione e possono operare a rate fisso o variabile rispetto all’ingresso, vengono implementati in C++ per avere massima velocità

• “hierarchical”, sono blocchi formati da sotto-blocchi di tipo “primitive” o “hierarchical”

(5)

La costruzione e la gestione del grafo viene fatta utilizzando il linguaggio Python di tipo object-oriented.

Python è un linguaggio di script pseudocompilato. Questo significa che, similmente al Perl ed al Tcl/Tk, ogni programma sorgente deve essere pseudocompilato da un interprete. L'interprete è un normale programma che va installato sulla propria macchina, e si occuperà di interpretare il codice sorgente e di eseguirlo. Quindi, diversamente dal C++, non abbiamo un fase di compilazione-linking che TtrasformaT il sorgente in eseguibile, ma avremo a disposizione solo il sorgente che viene eseguito dall'interprete.

Il principale vantaggio di questo sistema è la portabilità: lo stesso programma potrà girare su una piattaforma Linux, Mac o Windows purché vi sia installato l'interprete.

Python è un linguaggio orientato agli oggetti (object-oriented). Supporta le classi, l'ereditarietà e si caratterizza per il binding dinamico. Ragionando in termini di C++ potremo dire che tutte le funzioni sono virtuali. La memoria viene gestita automaticamente e non esistono specifici costruttori o distruttori, ma diversi costrutti per la gestione delle eccezioni. Python ha qualche similarità con Perl, ma i suoi progettisti hanno scelto la via di una sintassi più essenziale e uniforme con l'obiettivo di aumentare la leggibilità del codice. Come il Perl spesso è classificato linguaggio di scripting ma, pur essendo utile per scrivere script di sistema, la grande quantità di librerie disponibili e la facilità con cui questo linguaggio permette di scrivere software modulare, favoriscono lo sviluppo di applicazioni molto complesse.

Altre caratteristiche del software GNU Radio sono:

• sia i parametri dei blocchi di signal-processing che la topologia del grafo possono essere cambiati a piacere durante il funzionamento (riconfigurabilità al volo)

• il sistema supporta blocchi che lavorano con flussi di dati sincroni e blocchi a rate variabile

• ogni blocco di signal-processing ha la possibilità di indicare quando ha finito l’elaborazione. Questa informazione viene propagata attraverso il grafo di flusso che implementa il sistema in modo da permettere allo scheduler di segnalarne il completamento.

• la Graphical User Interface (GUI) è costruita con un toolkit basato su Python. Il toolkit WxPython viene usato per rendere il codice portabile. Sono previste funzioni

(6)

per la visualizzazione nel dominio del tempo ed in frequenza (oscilloscopio multi-canale, oscilloscopio digitale, FFT).

• Sono disponibili più di 100 sinks, sources e primitive già pronte tra i quali Input da/verso file, TCP, A/D e D/A ad alta velocità, schede audio, tutti i tipi di filtri, NCO, VCO, modulatori, demodulatori, forward error correction, etc.

Come le altre architetture SDR GNU Radio è formata da un insieme di hardware/software cooperante,vedi figura 2.1. La piattaforma hardware di riferimento è:

• USRP (Universal Software Radio Platform) • alternativamente si usa la scheda audio del PC

Viene fornito uno strato HAL di driver di gestione della scheda, il sistema operativo è Linux e i blocchi base vengo implementati in C++. Il sistema viene realizzato con un linguaggio RDL implementato in Python.

Figura 2.1 Architettura GNU Radio

L’Hardware Abstraction Layer (HAL) o strato di astrazione dall'hardware, è un insieme di funzioni di I/O il più possibile generiche e semplici, il cui compito è quello di tenere conto di

(7)

tutte le differenze fra dispositivi fisici diversi al posto del programma che lo userà, nascondendogli la vera identità e natura di essi: per esempio il programma, invece di aprire personalmente un file chiederà all'HAL di farlo per lui e l'HAL, appena esaudita la richiesta, gli passerà un riferimento al file per la lettura (o lo leggerà per lui).

Dotando un programma di un HAL se ne migliora la portabilità su altri tipi di computer/sistemi operativi e la funzionalità con dispositivi diversi, perché eventuali modifiche e adattamenti vanno fatti solamente nell'HAL senza toccare il codice del programma stesso. Inoltre è relativamente facile aggiungere, all'occorrenza, una sezione all'HAL per gestire un dispositivo che non era stato inizialmente previsto.

3.3 Universal Software Radio Peripheral

L’Universal Software Radio Peripheral (USRP) dà la possibilità agli utenti di progettare e implementare sistemi software radio potenti e flessibili in modo veloce e a basso costo [26]. Semplicemente collegandola ad un PC e installando su quest’ultimo GNU Radio (un software completo di tipo open source per la gestione di sistemi SDR) la USRP sarà pronta a trasmettere e ricevere una quantità virtualmente illimitata di segnali.

La potenza combinata con la flessibilità del hardware, il software di tipo open source e la grande comunità di utenti esperti (che fornisce molte applicazioni pratiche per quanto riguarda hardware e software) la rendono una delle piattaforme ideali per sviluppare sistemi di tipo Software Defined Radio.

La famiglia di prodotti USRP è composta da una motherboard, su cui è montata una FPGA che consente di elaborare velocemente i segnali, e da alcune daughterboard intercambiabili che coprono diversi range frequenziali.

Proprio attraverso le varie daughterboards, con un sistema USRP si riesce a coprire un range frequenziale ampio che va dalla continua (DC) a 2.9 GHz e quindi permette di gestire una grande varietà di applicazioni, dalla AM fino ai sistemi WI-FI e oltre.

La motherboard USRP, mostrata in figura 3.1 è dotata di:

• 4 convertitori analogico-digitale (ADC) aventi velocità di campionamento pari a 64 Msps e 12 bit di risoluzione

• 4 convertitori digitale-analogico (DAC) aventi velocità di campionamento pari a 128 Msps e 14 bit di risoluzione

(8)

• 4 convertitori digitali di tipo “downconverter” con rate di decimazione programmabile • 2 convertitori digitali di tipo “upconverter” con rate di interpolazione programmabile • interfaccia USB 2.0 ad alta velocità (480 Mbit/sec)

Figura 3.1 Motherboard USRP

Inoltre, di seguito, sono riassunte le caratteristiche principali della scheda USRP:

• piattaforma flessibile e a basso costo

• capacità di elaborare segnali aventi banda maggiore o uguale di 16 MHz

• l’architettura modulare del sistema permette l’uso di una ampia varietà di daughterboards a RF

(9)

• supporta sistemi complessi per il controllo ausiliario di I/O di tipo analogico o digitale come RSSI o AGC

• consente di implementare sistemi multi-canale (MIMO)

Le daughterboards montate sulla motherboard USRP forniscono al sistema dei front-end flessibili e interamente integrati.

Sulla motherboard sono riconoscibili quattro slot utilizzabili per ospitare fino a due daughterboards di tipo RX e fino a due di tipo TX. Queste ultime impiegano rispettivamente un ricevitore a radio frequenza o un tuner e un trasmettitore a radio frequenza.

Gli slot riservati alle due daughterboards di tipo TX sono identificati dalla sigla TXA e TXB mentre i rimanenti slot sono riservati alle daughterboards di tipo RX e sono identificati dalla sigla RXA e RXB. La figura 3.2 mostra una motherboard con due daughterboards di tipo Basic TX e due di tipo Basic RX.

(10)

Ogni slot riservato ad una daughterboard di tipo RX ha accesso a due dei quattro ADC, similmente ogni slot riservato ad una daughterboard di tipo TX ha accesso a due dei quattro DAC. Questo permette, nei casi in cui si usa un campionamento reale (non di tipo IQ), di avere due sezioni distinte e indipendenti a radiofrequenza per il trasmettitore e il ricevitore, in questo caso però occorreranno due antenne.

Contrariamente se viene usato un campionamento di tipo complesso IQ ogni scheda supporta una sola sezione a radio frequenza, per un totale di due se consideriamo l’intero sistema. Proprio per questo motivo su alcune daughterboards è possibile notare due connettori di tipo SMA da utilizzare per il segnale entrante o per quello uscente.

Le daughterboards attualmente disponibili sono elencate in dettaglio nei paragrafi 3.4 e 3.5. I prodotti USRP sono progettati e costruiti dalla Ettus research, una compagnia specializzata in sistemi software basati su DSP, FPGA e ASIC.

3.3.1 USRP Hardware e Software

OSSIE (Open Source SCA Implementation Embedded) è una realizzazione di tipo open-source della SCA (Software Communication Architecture) [27]. L’architettura SCA descrive in che modo operano e come sono legati tra loro i componenti software e hardware che formano un JTRS. Indica inoltre quali sono le specifiche minime di cui necessita una piattaforma hardware per essere compatibile con il modello, in modo che il software creato secondo le regole SCA sia funzionante. La struttura software della SCA definisce l’ambiente operativo e ne specifica i servizi e le interfacce.

Il progetto OSSIE (HTUhttp://ossie.mprg.orgUTH) usa una USRP come interfaccia fra l’hardware a radio frequenza e quello in banda base. La USRP è utilizzata per diversi scopi come: digitalizzazione del segnale in ingresso, sintonizzazione digitale sulla banda a IF e riduzione della velocità di campionamento prima che i campioni digitalizzati del segnale vengano inviati al PC attraverso l’interfaccia USB.

La maggior parte dell’elaborazione svolta da una USRP, sul segnale trasmesso o su quello ricevuto, ha luogo nella FPGA della serie Altera Ciclone. Inoltre sono presenti sulla motherboard due AD9862 Mixed-signal Front End (MxFE) della Analog Device, che contengono i convertitori ADC e DAC. Grazie a quest’ultimo componente vengono implementate in digitale alcune fasi del signal processing e il controllo del guadagno. In

(11)

figura 3.3.1 è illustrato lo schema a blocchi dell’AD9862. Infine come interfaccia fra la FPGA e la porta USB 2.0 è utilizzato un microcontroller USB, il Cypress FX2.

Come già anticipato in precedenza sulla motherboard USRP, nella parte riservata alla ricezione, ci sono quattro convertitori da analogico a digitale (ADC) ad alta velocità di campionamento (64 Msps) con una risoluzione di 12 bit. In linea di principio attraverso questi componenti è possibile digitalizzare un segnale avente banda ampia al massimo 32 MHz, anche se il convertitore ADC può campionare segnali aventi banda fino a 150 MHz.

Prima dell’ADC c’è un PGA (Programmable Gain Array) la cui funzione è quella di amplificare il segnale in ingresso al convertitore, nel caso in cui questo sia di debole intensità, in modo da sfruttare l’intero range d’ingresso, 2 Volt picco-picco.

Sono possibili, se desiderato, varie velocità di campionamento che sono tutte dei sottomultipli di 128 Msps, come 64 Msps, 42.66 Msps, 32 Msps, 25.6 Msps e 21.33 Msps. Una volta che il segnale è stato digitalizzato si invia nella FPGA dove sono implementati i DDC.

Figura 3.1.1 Analog Devices Mixed-Signal Front-End (MxFE) Processor for Broadband Communications AD9862

(12)

Sulla parte riservata al trasmettitore si trovano invece quattro convertitori da digitale a analogico (DAC) ad alta velocità di campionamento (128 Msps) con una risoluzione di 14 bit. In base a quanto stabilisce il teorema di Nyquist, la banda massima del segnale in uscita è pari a 64 MHz, tuttavia per non incorrere in problemi di implementazione dei filtri utilizzeremo bande non superiori a 50 MHz. Ne consegue che il range utile per la banda del segnale in uscita andrà dalla continua ai 50 MHz. L’ampiezza picco-picco del segnale in uscita al DAC sarà pari ad 1 Volt considerando un carico di 50 ohm. Quest’ultimo è seguito da un PGA con guadagno massimo pari a 20 dB. Notiamo che, nella parte del sistema relativa alla trasmissione, sono usati dei Digital Up Converter (DUC). Questi a differenza dei DDC non sono implementati nella FPGA ma si trovano nel AD9862 insieme ad un mixer e ad un NCO per settare la frequenza del segnale trasmesso.

In questo modo abbiamo quattro canali di uscita e quattro di ingresso utilizzando un campionamento reale. D’altra parte però se utilizziamo un campionamento complesso (IQ) avremmo una banda più ampia e una maggiore flessibilità.

La scheda USRP, se dotata di due antenne, può trasmettere e ricevere simultaneamente in tempo reale [26]. I due Digital Down Converter (DDC) implementati sulla USRP mixano, filtrano e decimano il segnale entrante nella FPGA (con rate superiore a 64 Msps), mentre i due Digital Up Converter (DUC) compiono una operazione di interpolazione sul segnale in banda base prima di traslarlo alla frequenza di trasmissione selezionata. I DDC e i DUC combinati con l’elevata frequenza di campionamento semplificano fortemente i requisiti richiesti per un filtraggio analogico.

L’intero progetto della scheda USRP e delle daughterboards inclusi gli schematic, firmware, driver e perfino il progetto della FPGA sono di tipo open source (non è richiesto l’acquisto di nessun software ne licenza). Combinando le varie daughterboards con la scheda USRP e utilizzando il software GNU Radio si ottiene un sistema di tipo software radio completo riuscendo a portare l’host-based signal processing su comode piattaforme.

GNU Radio è una piattaforma software di tipo open source utilizzata per implementare sistemi di tipo SDR. La sua grande comunità di utenti, sparsa nel mondo, ha contribuito a creare un codice base completo e fornisce sempre nuove applicazioni sia software che hardware. Il software GNU Radio fornisce un ambiente di sviluppo adeguato per implementare un sistema radio permettendoci di gestire tutte le interfacce hardware.

Questo ha molte librerie utili per realizzare un sistema radio via software come: vari tipi di modulazione (GMSK, PSK, OFDM, etc.), codici a correzione di errore (Reed-Solomon,

(13)

Viterbi, Turbo codici) e blocchi per l’elaborazione del segnale (filtri ottimizzati, FFT, equalizzatori e time recovery).

Spesso la motherboard e le daughterboards USRP utilizzano il software GNU Radio anche se queste schede sono abbastanza flessibili da potersi adattare ad altri software. Infatti alcuni utenti realizzano i loro sistemi SDR utilizzando altri ambienti come Labview e Matlab/Simulink.

3.3.2 La FPGA

Probabilmente capire cosa avviene nella FPGA è la parte più importante per chi utilizza il software GNU Radio [28]. Come possiamo notare dallo schema di figura 3.2.1 tutti i DAC e gli ADC sono connessi alla FPGA che gioca un ruolo chiave nel sistema.

Figura 3.2.1 Scheda USRP

La FPGA comunica con l’host PC attraverso un microcontroller USB, il Cypress FX2. Sia la FPGA che il microcontroller USB sono programmabili attraverso il bus USB 2.0.

Utilizzando un buon microcontroller la USRP può sostenere un traffico dati pari a 32 MB/sec attraverso il cavo USB. Quest’ultimo è di tipo half duplex, ossia a seconda del tipo di applicazioni i 32 MB/sec possono essere ripartiti tra ricevitore e trasmettitore.

In ricezione si ha la possibilità di selezionare la parte o le parti di spettro digitalizzato che ci interessano, portandole in banda base ed effettuando un’eventuale operazione di decimazione.

(14)

Questo è esattamente quello che avviene in un front-end a radio frequenza, solo che in questo caso abbiamo a che fare con i campioni digitalizzati del segnale. Il blocco responsabile di questa operazione è chiamato Digital Down Converter (DDC).

Attraverso la FPGA è possibile realizzare i DDC utilizzando filtri di tipo Cascated Integrator-Comb (CIC). I CIC sono filtri ad alte prestazioni che fanno uso soltanto di sommatori e celle di ritardo. La FPGA è in grado di implementare quattro DDC, di conseguenza è possibile avere 1,2 o 4 canali separati in ricezione tutti con il solito rate. La parte del sistema destinata alla ricezione è composta da quattro ADC e altrettanti DDC, ogni DDC è dotato di due ingressi I e Q su cui vengono instradati i dati provenienti dai quattro ADC.

Nella parte del sistema relativa alla trasmissione sono usati dei Digital Up Converter (DUC), questi a differenza dei DDC non sono implementati nella FPGA ma si trovano nell’AD9862 Codec chip. I soli blocchi per l’elaborazione del segnale trasmesso realizzati nella FPGA sono gli interpolatori.

In figura 3.2.2 è illustrato lo schema a blocchi della parte riservata alla ricezione in una scheda USRP, il MUX può essere considerato come un router o un circuit switcher. Proprio grazie al MUX si realizza la connessione tra gli ADC è i DDC.

Figura 3.2.2 Schema a blocchi della parte ricevente in una scheda USRP

Il controllo del mux avviene attraverso il method usrp.set_mux usando il linguaggio Python. Vediamo adesso in maniera più approfondita la funzione del Digital Down Converter.

(15)

Principalmente il suo compito è quello di convertire in banda base il segnale ricevuto a radio frequenza inoltre viene usato anche per decimare il segnale in modo che il data rate sia compatibile con quello del bus USB 2.0. La figura 3.2.3 illustra lo schema a blocchi del DDC: il segnale complesso in ingresso (a frequenza intermedia) viene moltiplicato con un esponenziale a frequenza costante (all’incirca pari alle frequenza intermedia), di conseguenza il segnale risultante è ancora complesso ma centrato intorno all’origine. In seguito verrà effettuata sul segnale una operazione di decimazione di un fattore N. Il decimatore può essere concepito come un filtro passa basso seguito da un sotto campionatore.

Figura 3.2.3 Schema a blocchi del DDC

Il calcolatore CORDIC (Coordinate Rotation DIgital Calculator), ideato da J. Volder nel 1956 per il controllo in tempo reale di sistemi avionici, risolve il problema della rotazione di coordinate con sole operazioni di addizione/sottrazione e di scorrimento. Poiché una conversione di frequenza altro non è che una rotazione di un vettore, l’algoritmo CORDIC è uno strumento molto efficiente per la realizzazione in hardware di convertitori di frequenza. Il principio di funzionamento del calcolatore si basa sul fatto che una rotazione arbitraria di un vettore può essere ottenuta iterativamente componendo rotazioni elementari e semplici da calcolare.

Le formule generali di trasformazione delle coordinate di un vettore (x,y) ruotato di un angolo phi :

(16)

- x’ = x · cos(phi) – y · sin(phi) = cos(phi) ( x – y · tan(phi) ) - y’ = y · cos(phi) + x · sin(phi) = cos(phi) ( y + x · tan(phi) )

possono infatti essere semplificate nel caso la rotazione sia limitata ad angoli per cui tan(phi)=±2– i. In questo caso le formule di rotazione, trascurando il termine moltiplicativo cos(phi), che è costante e indipendente dal verso di rotazione, diventano:

- x’ = [ x – (±2– i) · y] - y’ = [ y + (±2– i) · x]

e comportano sole operazioni di addizione/sottrazione e scorrimento. La rotazione di un vettore per un angolo arbitrario è ottenuta decomponendo l’angolo desiderato in una somma di angoli il cui valore soddisfa la regola tan(phi)=±2– i e applicando iterativamente le formule semplificate.

Un convertitore di frequenza in salita sintonizzabile e ad elevata frequenza di campionamento, richiede in generale risorse di calcolo notevoli. L’algoritmo CORDIC semplifica notevolmente il processo di conversione di frequenza, ma nella generazione di segnali ad alta frequenza deve essere necessariamente implementato in forma parallela. Ogni stadio del calcolatore CORDIC richiede due circuiti addizionatori/sottrattori per il calcolo delle nuove coordinate (x’,y’) e un addizionatore/sottrattore per il calcolo dell’angolo residuo.

Una classe di filtri passa basso che si presta a una efficiente realizzazione hardware dei filtri di interpolazione (o di decimazione, nel caso che il tasso di campionamento debba essere diminuito) è quella dei filtri CIC (Cascaded Integrator Comb) dovuta a E.B. Hogenauer. I filtri CIC sono filtri FIR di tipo passa basso costituiti dalla cascata di filtri integratori e di filtri Comb (filtri a pettine). La figura 3.2.4 mostra la struttura di un decimatore e di un interpolatore realizzati con la tecnica di filtraggio CIC.

La risposta in frequenza di un filtro di interpolazione CIC di ordine N con tasso di interpolazione R è: W(f)= N so so f f f f R R ⎤ ⎢ ⎣ ⎡ ⋅ ⋅ ⋅ ⋅ ) / sin( ) / sin( 1 π π

(17)

La risposta caratteristica del filtro ha zeri di trasmissione di ordine N a frequenze multiple della frequenza di campionamento di ingresso Fsi = Fso/R e centrati sulle frequenza delle immagini del segnale di ingresso che risultano notevolmente attenuate all’uscita.

Figura 3.2.4 struttura di un decimatore e di un interpolatore realizzati con la tecnica di filtraggio CIC

Per quanto riguarda la banda sappiamo che il rate massimo supportato dal cavo USB 2.0 è di 32 MB/sec. Tutti i campioni inviati alla porta USB sono in formato I-Q di tipo signed integers cioè 16 bit I e 16 bit Q, di conseguenza attraverso il cavo USB abbiamo un flusso di 8 Mbps di tipo complesso. Tutto questo porta ad una occupazione spettrale massima pari a 8 MHz. Certamente è possibile restringerla cambiando il fattore di decimazione.

Per impostare la frequenza del DDC viene usato il method usrp.set_rx_freq() mentre per settare il fattore di decimazione si usa il method usrp.set_decim_rate impiegando il linguaggio Python.

Per quanto riguarda la parte del sistema dedicata alla trasmissione, il discorso è pressappoco lo stesso solo che avviene in senso inverso. Abbiamo bisogno di fornire alla scheda USRP i campioni del segnale complesso I-Q. Il Digital Up Converter (DUC) eseguirà una operazione di interpolazione (la cui funzione è quella di aumentare il tasso di campionamento del segnale elaborato nella sezione a bassa frequenza al valore richiesto nella sezione ad alta frequenza), dopodichè il segnale verrà convertito a frequenza intermedia e infine inviato direttamente al DAC.

(18)

3.3.3 Applicazioni

La famiglia di prodotti USRP è molto usata e trova applicazione in svariati sistemi di comunicazione [26]. Spesso, grazie alle sue caratteristiche, viene utilizzata per implementare prototipi in maniera rapida nell’ambito di sistemi civili e militari ma trova impiego anche nel campo della ricerca.

In ambito commerciale la USRP entra in gioco quando l’applicazione che vogliamo realizzare non presenta un volume produttivo tale da giustificare la spesa considerevole da sostenere per un progetto personalizzato dell’hardware. La flessibilità di questa scheda permette una riduzione notevole del costo effettivo del sistema e ne abilita lo sviluppo utilizzando la tecnologia SDR.

Ad esempio, Path Intelligence Ldt., usa la gamma di prodotti USRP per rilevare il numero delle persone presenti nei loro centri commerciali riuscendo anche a visualizzare la concentrazione di quest’ultimi nei vari reparti. Si riesce a far questo ricevendo il canale di controllo dei telefoni cellulari dei vari utenti.

I prodotti USRP iniziano ad essere utilizzati anche in ambito militare e dai servizi di intelligence. La motherboard e le daughterboards USRP consentono di sviluppare sofisticati sistemi wireless a basso costo.

Alcune delle applicazioni più comuni di queste schede in ambito militare sono:

• SIGINT/COMINT

• reti in campo di battaglia e reti di emergenza

• ponti radio per comunicazioni di pubblica sicurezza • generazione di segnali di emergenza a bassa potenza • radar passivi

Inoltre numerosi ricercatori nel campo delle reti wireless usano la USRP per studiare argomenti come:

• sistemi MIMO • reti ad-hoc

(19)

• PHY-layer design

• occupazione dello spettro • cognitive radio

L’apertura e la facilità di utilizzo dei prodotti della famiglia USRP rendono possibile la realizzazione di prototipi per implementare nuovi sistemi di comunicazione. Il basso costo permette inoltre di sviluppare un significante numero di nodi studiando il comportamento della rete su larga scala.

Molte università, a livello mondiale, hanno nei loro laboratori sistemi implementati attraverso schede USRP. Il basso costo, l’estrema flessibilità e la natura open source di questi prodotti, compreso il software di gestione GNU Radio, li rendono ideali per l’utilizzo in ambito scolastico, in particolare per:

• software radio • segnali e sistemi

• elaborazione dei segnali digitali • sistemi di comunicazione • progetto di FPGA

3.4 Tx e Rx Daughterboards per USRP

Le daughterboards che seguono trasformano la motherboard in un trasmettitore o in un ricevitore. Semplicemente collegando l’antenna si riesce ad operare sulle bande dei sistemi di comunicazione più comuni [26].

U

Basic TX e Basic RX:

Queste daughterboards sono rispettivamente un trasmettitore e un ricevitore sul range frequenziale compreso tra 1 MHz a 250 MHz.

Il Basic TX e il Basic RX, mostrati in figura 4.1, sono progettati per essere collegati ad un front-end esterno a radio frequenza, quindi possono essere viste come delle interfacce a frequenza intermedia.

Gli ingressi del convertitore analogico-digitale (ADC) per quanto riguarda il Rx e le uscite del convertitore digitale-analogico per quanto riguarda il Tx, sono connesse direttamente ai

(20)

connettori di tipo SMA (con impedenza pari a 50 Ω) senza bisogno di impiegare mixer, filtri e amplificatori.

Figura 4.1 Daughterboards di tipo Basic RX (a sinistra) e Basic TX (a destra)

U

LFTX e LFRX:

Queste daughterboards sono rispettivamente un trasmettitore e un ricevitore sul range frequenziale compreso tra la continua (DC) e 30 MHz.

Le LFTX e LFRX, mostrate in figura 4.2, sono molto simili alle due daughterboards precedenti, nello specifico ci sono solo due differenze. Infatti (la LFTX e la LFRX) usano un amplificatore differenziale al posto di un trasformatore e la loro risposta in frequenza si estende fino alla continua. Inoltre queste schede sono dotate di un filtro antialiasing di tipo passa basso con banda pari a 30 MHz.

(21)

U

TVRX:

Questa daughterboard è un ricevitore sintonizzabile sul range frequenziale compreso tra 50 MHz e 860 MHz.

La TVRX, mostrata in figura 4.3, è un ricevitore completo sulla banda VHF e UHF che impiega come front-end un tuner per TV. Semplicemente connettendo l’antenna si possono ricevere 6 MHz di banda ovunque fra 50 MHz e 860 MHz. Questa scheda è completamente sintonizzabile e le funzioni del AGC possono essere controllate via software. La figura di rumore tipica è 8 dB, inoltre questa è la sola daughterboard a non essere di tipo MIMO.

Figura 4.3 Daughterboards di tipo TVRX

U

DBSRX:

La DBSRX è un ricevitore completamente sintonizzabile sul range frequenziale compreso tra 800 MHz e 2.4 GHz, la figura di rumore tipica è pari a 3-5 dB.

La caratteristica principale di questa daughterboard, mostrata in figura 4.4, è la presenza di un filtro di canale completamente controllabile via software la cui banda può variare tra 1 MHz e 60 MHz.

La banda coperta da questa scheda è molto ampia ed include molti sistemi di comunicazione importanti come il GPS, il sistema Galileo, la banda ISM (902-928 MHz), il sistema cellulare e il PCS, le bande radio-astronomiche “Hidrogen e Hydroxyl”, il sistema DECT e molto altro. La DBSRX è di tipo MIMO ed è in grado di alimentare un’antenna attiva attraverso il cavo coassiale.

(22)

Da notare che questa scheda non garantisce la copertura della banda ISM tra 2.4 GHZ e 2.48 GHZ.

Figura 4.3 Daughterboards di tipo DBSRX

3.5 Transceiver Daughterboards per USRP

Le daughterboards di tipo RFX trasformano la motherboard in un transceiver completo a radio frequenza [26]. Collegando semplicemente un’antenna ad hoc, si riesce ad operare sulle bande dei sistemi di comunicazione più comuni. Questo tipo di schede ha molte caratteristiche che facilitano la loro integrazione in sistemi molto complessi, come ad esempio il controllo digitale delle linee e l’opzione per splittare le porte del trasmettitore e del ricevitore. In figura 5.1 è mostrata a titolo esemplificativo la daughterboard RFX 2400.

Le caratteristiche principali di questa serie di daughterboards sono:

• banda trasmessa e ricevuta maggiore di 20 MHz • MIMO

• la totalità delle funzioni sono controllabili via software o tramite FPGA

• la presenza di un oscillatore locale (LO) per il trasmettitore e il ricevitore abilita operazioni di split frequenziale

• PLL look time inferiore a 200 μsec • è stata costruita con switch di tipo T/R

(23)

• Tx e Rx usano il solito connettore o una porta ausiliaria

• I/O digitale a 16 linee per il controllo di componenti esterni come un’antenna switches

• acquisizione del segnale RSSI (eccetto la RFX 400)

• AGC range pari a 70 dB (eccetto per la RFX 400 il cui valore è di 45 dB) • potenza trasmessa regolabile

• full-duplex (con alcune limitazioni)

Figura 5.1 Daughterboard RFX 2400

Di seguito riportiamo le daughterboards appartenenti alla linea RFX.

U

RFX 400:

- range frequenziale: 400-500 MHz - potenza trasmessa: 100 mW (20 dBm)

La RFX 400 copre un range frequenziale che la rende adatta per comunicazioni mobili terrestri, pubblica sicurezza, TV in banda UHF, trasmissioni a bassa potenza senza l’uso di licenza, reti di sensori wireless e comunicazioni radio di tipo amatoriale.

(24)

Inoltre possono essere apportate delle piccole modifiche sulla scheda in modo da spostare il range frequenziale tra 200 MHz e 800 MHz.

Figura 5.2 Daughterboard RFX 400

U

RFX 900:

- range frequenziale: 750-1050 MHz - potenza trasmessa: 200mW (23 dBm)

La RFX 900, simile a quella mostrata in figura 5.1, ha un filtro con banda pari a 26 MHz tra 902 MHz e 928 MHz (banda ISN) che ha la funzione di eliminare i segnali interferenti fuori banda. Il filtro può essere facilmente bypassato, in questo modo si riesce ad operare su tutto il range frequenziale abilitando l’utilizzo della scheda per trasmissione e ricezione radio (oltre che nella già citata banda ISM), sistemi cellulari e paging.

U

RFX 1200:

- range frequenziale: 1150-1450 MHz - potenza trasmessa: 200mW (23 dBm)

Con questa scheda, simile a quella mostrata in figura 5.1, siamo in grado di coprire le bande frequenziali riservate ai sistemi satellitari e alle trasmissioni amatoriali.

U

RFX 1800:

- range frequenziale: 1.5-2.1 GHz - potenza trasmessa: 100mW (20 dBm)

(25)

Con questa scheda, simile a quella mostrata in figura 5.1, siamo in grado di coprire le bande frequenziali riservate ai sistemi DECT, US-DECT e PCS (incluse le trasmissioni senza bisogno di licenza).

U

RFX 2400:

- range frequenziale: 2.3-2.9 GHz - potenza trasmessa: 50mW (17 dBm)

La RFX 2400, mostrata in figura 5.1, ha un filtro centrato attorno alla banda ISM (2400-2483 MHz) che ha la funzione di eliminare i segnali interferenti fuori banda. Il filtro può essere facilmente bypassato, in questo modo si riesce naturalmente a coprire tutto il range frequenziale.

(26)

Figura

Figura 1.1 Tipica architettura di un sistema Software Defined Radio
Figura 1.2 Schema a blocchi del sistema
Figura 1.3 Design modulare del sistema
Figura 2.1 Architettura GNU Radio
+7

Riferimenti

Documenti correlati