04 ottobre 2008

L'Università della Software Defined Radio

[Ho ricevuto una puntuale precisazione dall'amico Gianfranco che mi obbliga a riformulare meglio una parte di concetti che ho espresso in questo post. Le obiezioni di Gianfranco sono di natura terminologica e non solo, e visto che in questo dominio la terminologia è fondamentale per capirsi, ho preparato un nuovo post che vi invito a leggere a integrazione di quanto trovate qui di seguito. Ho anche aggiunto una fotografia - scattata da Alberto Di Bene - di Nico Palermo che svela i segreti delle sue ormai leggendarie implementazioni.]
Quando i veterani del convegno sull'ham radio digitale organizzato sull' altipiano di Renon mi parlavano dei livelli quasi leggendari della discussione e dell'analisi sui fondamenti tecnici e teorici della radiofrequenza, della modulazione e del trattamento del segnale, ho sempre pensato alla sindrome del pescatore. Quella forma di esagerazione tipica di chi è veramente appassionato di qualcosa.
Adesso so che non hanno esagerato per niente, sono qui da 24 ore e sto imparando un mucchio di cose che non sapevo pur continuando a capire solo una piccola parte di argomenti che pure avevo affrontato su un livello relativamente erudito nella mia incompiuta carriera universitaria. Diciamo che il mio modesto background scientifico mi consente di apprezzare la solidità e lo "scope", l'ampiezza della lezione che ieri sera Nico Palermo, il creatore del ricevitore SDR Perseus, ha generosamente tenuto sulla logica programmabile.
L'oggetto della sua introduzione, assolutamente degna di figurare nel programma di un corso al Politecnico, è l'impiego dei componenti Field Programmable Gate Array nel trattamento numerico del segnale. La logica programmabile consente di implementare un algoritmo di trattamento in una modalità che non è puramente software e nemmeno eseguita da un processore programmabile. Siamo nei territori dall'incerta definizione del cosiddetto "firmware", anche se non è proprio esattamente così. Un FPGA è una matrice di migliaia di celle logiche tutte uguali che come un magico Lego algoritmico, possono essere concatenate e combinate tra loro, (un po' come i neuroni del cervello, ma qui ogni connessione corrisponde a un'operazione eseguita su un certo numero di operandi in ingresso. L'aspetto straordinario è proprio la ripetitività di queste celle, che sono tutte rigorosamente uguali. È il numero delle celle reclutate e il modo, la cronologia del reclutamento e della loro organizzazione attraverso connessioni e strutture a determinare il risultato dei calcoli. E come si fa a organizzare queste miracolose celle? Qui entra in gioco il software e in particolare una particolare classe di linguaggi non "procedurali" ma "dichiarativi". I linguaggi ovviamente non bastano, bisogna essere molto bravi nella implementazione degli algoritmi, per una questione di ottimizzazione: la matrice è fatta di un numero finito di celle e meno celle si impegnano più cose si possono fare, più segnali si possono trattare.
Alla fine la matrice di celle viene plasmata in una sorta di processore dedicato a uno specifico compito. Nel caso di Perseus si tratta degli algoritmi di down conversion del segnale RF campionato direttamente. Nel Perseus sono gli algoritmi di DSP a essere implementati in FPGA. La lezione di Nico è stata a dir poco avvincente, a dispetto dell'assoluto rigore scientifico e dei continui excursus teorici che mi hanno riportato sui banchi della Statale (spesso con lo stesso senso di smarrimento di allora). Grande cosa, la Software Defined Radio.
Il convegno oggi è stato altrettanto stimolante. Domattina ci sarà anche il mio piccolo contributo sulla radiodiffusione digitale. Gran pei posti, grande organizzazione (brava Silvia) e grandissima qualità dei relatori e degli argomenti. Renon è diventata davvero l'università italiana dell'SDR.

Nessun commento: