SDR (software defined radio)
09 Sep

SDR (software defined radio)


Fig. 1: Schema a blocchi di una generica SDR (Software Defined Radio)
Fig. 1: Schema a blocchi di una generica SDR (Software Defined Radio)

In questo articolo vediamo cosa si intende con il termine “SDR” (Software Defined Radio). Con questo acronimo ci si riferisce ad una tecnologia in via di sviluppo che permette di costruire apparati radio non più strettamente realizzati come puro hardware, ma basati, ovvero "definiti" in software, in particolare per gestire le funzioni di modulazione e demodulazione dei segnali e, se possibile, di configurazione dell'hardware. Col metodo SDR si ha un apparato riprogrammabile ogni qualvolta si voglia gestire uno standard diverso. Come vediamo in Figura 1, un tipico sistema SDR si compone di una serie di blocchi funzionali:

Front-end Analogico (RF/IF):
Il front-end analogico è l’unica parte della radio costituita da puro hardware. Il segnale analogico a radiofrequenza catturato dall’antenna viene riportato in banda base o banda passante, a seconda che siamo rispettivamente in ricezione o trasmissione, attraverso l’uso di un mixer analogico. La principale specifica richiesta per la parte hardware è la flessibilità, che si traduce con la possibilità di poter cambiare la frequenza portante della radio passando da decine di MHz fino a qualche GHz. L’hardware scelto è in grado infatti di cambiare la frequenza portante del segnale nel range che va dai 70 MHz ai 6 GHz. Al fine di rendere il tutto possibile il mixer dovrà essere a banda larga e l’oscillatore locale dovrà essere del tipo controllato in tensione (VCO, Voltage Controlled Oscillator). Tra l’antenna ed il mixer si può inserire un filtro passa-banda che però, al fine di mantenere la massima flessibilità, dovrà avere banda e frequenza centrale programmabili.

Conversioni analogico/digitale e viceversa (ADC - DAC):
La conversione analogico-digitale o digitale-analogico è un blocco di tipo misto, lavora sia su segnali digitali che segnali analogici, che fa da interfaccia tra la parte puramente hardware e la parte definita via software e quindi va a collegare il mondo analogico con il mondo digitale.
Per comprendere al meglio il funzionamento di questo blocco e delle parti che lo compongono, si deve distinguere tra catena in trasmissione e catena in ricezione di un segnale in banda base.
Analizziamo dapprima la catena di ricezione di un segnale. Digitalizzare un segnale significa dividerlo in un certo numero di campioni temporalmente equi spaziati ed associare ad ogni campione un valore numerico. Queste operazioni prendono il nome di “campionamento” e “quantizzazione” e vengono svolte all’interno di un dispositivo chiamato ADC. Si dovrà dunque scegliere un opportuno intervallo temporale, chiamato periodo di campionamento, ed un opportuno numero di bit del quantizzatore che ci darà poi la minima differenza di ampiezza individuabile tra un campione e l’altro.  Ad esempio, se abbiamo a disposizione 8 bit la minima differenza di tensione sarà pari a  con FS tensione massima che può essere messa in ingresso al quantizzatore.
La scelta del periodo di campionamento va fatta rispettando il Teorema del campionamento il quale, impone una frequenza di campionamento minima pari a due volte la banda del segnale.  massima frequenza contenuta nel segnale da campionare. Il non rispetto del vincolo andrà a generare una distorsione, per effetto aliasing, dello spettro del segnale campionato. Tutte le componenti al di fuori dell’intervallo di Nyquist  si ripresenteranno all’interno dell’intervallo alle frequenze
In ingresso alla catena di ricezione si avrà come primo step il passaggio del segnale analogico in banda base attraverso un filtro passa basso, comunemente detto filtro anti-aliasing, con frequenza di taglio  che ne limita la banda. Il segnale filtrato viene dunque digitalizzato dal convertitore Analogico/Digitale (ADC) e passato al sistema di processamento in banda base. Il filtro anti-aliasing è un filtro analogico e come tale ha un costo realizzativo che aumenta all’aumentare dell’ordine del filtro e quindi all’aumentare delle sue capacità filtranti. Per venire incontro alla necessità di un hardware performante che sia il più economico possibile, a valle dell’ADC si utilizza un sistema di conversione della rate chiamato decimatore. Questo ci permette di utilizzare una fs grande che si traduce in termini di spettro del segnale campionato con una maggiore distanza tra le repliche rispetto alla minima fs permessa. Maggiore è la distanza tra le repliche e minore potrà essere l’ordine del filtro anti-aliasing. Il decimatore serve dunque ad abbassare la frequenza con cui vengono presentati i campioni al processore evitando così di aumentare il costo computazionale. Un generico decimatore è formato da un filtro FIR passa basso operante alla rate più alta fs con frequenza di taglio pari alla metà della rate più bassa In uscita dal filtro c’è un circuito che ricampiona il segnale alla frequenza di campionamento fs .
La catena in trasmissione, a differenza di quella in ricezione, prende in ingresso un segnale in banda base digitale. I campioni del segnale digitale entrano, con frequenza fs in un sistema di conversione della rate il quale effettua un’operazione di sovra-campionamento ed interpolazione. L’operazione di sovra-campionamento va ad inserire L campioni con ampiezza zero tra un campione a bassa rate ed un altro. Il filtro FIR interpolatore, che è un passa basso operante ad alta rate fs con frequenza di taglio  va ad assegnare un valore numerico ai campioni aggiunti tra un campione a bassa rate ed il successivo.
Fine ultimo nell’uso di tale tecnica è anche qui la possibilità di utilizzare un filtro anti-immagine in uscita dal DAC (Convertitore digitale analogico) il più semplice ed economico possibile. Un filtro anti-immagine è un filtro passa basso che smussa la risposta a gradino del DAC. 

BBP (Processamento in banda base):
Ultimo blocco, ma non per importanza, del sistema SDR è il BBP nel quale il segnale digitale in banda base viene generato oppure elaborato. Generalmente, vista la mole di dati che il dispositivo si trova a gestire e visti i requisiti di flessibilità e riprogrammabilità che esso deve rispettare, il blocco viene realizzato tramite tecnologia FPGA che permette la realizzazione di co-processori in grado di eseguire operazioni in parallelo.
Grandi quantità di dati possono essere processate molto velocemente e quindi ci si può permettere una frequenza di clock più bassa rispetto ad un sistema basato su microprocessore che esegue operazioni in modo sequenziale. Si ha dunque pieno controllo sul consumo di potenza che generalmente è un requisito fondamentale nell’ambito spaziale ma ancora più importante all’interno di un CubeSat. In questo lavoro di tesi si è scelto di utilizzare un System On Chip della Xilinx, lo ZynQ 7000, che in un unico die di silicio contiene sia una parte FPGA che un processore dual core ARM Cortex A9. Come vedremo in seguito la parte FPGA è stata utilizzata per la realizzazione del modem FSK usato dal sistema di telemetria del CubeSat.