Un modulatore SSB digitale a 9 MHz

Nico Palermo
IV3NWV
e-mail: iv3nwv@microtelecom.it

 

1. RIASSUNTO
Quest’articolo presenta un modulatore SSB digitale con uscita  a 9 MHz. Il cuore del modulatore,  sviluppato attorno a una realizzazione numerica del modulatore di Weaver, risiede interamente in una logica programmabile Xilinx XC2S30. La qualità del segnale SSB generato, frutto dell’elevata precisione di calcolo impiegata, è superiore a quella dei tradizionali modulatori SSB analogici. La soppressione della portante e della banda laterale indesiderata misurata all’uscita è elevatissima (~ 80 dBpep) e i prodotti spuri sono  migliori di -75dBpep nell’intervallo di frequenze compreso tra 0 e 18 MHz.  Il modulatore è inoltre equipaggiato di un generatore interno a due toni, utile per la misura dell’intermodulazione nella catena di amplificazione di potenza RF, di un ingresso per il tasto CW e di un’uscita secondaria che fornisce un segnale sinusoidale a 8.995 MHz o a 9.0015 MHz e che può essere usata come oscillatore di battimento per la demodulazione di segnali SSB o CW.

2. INTRODUZIONE
Nell’approccio numerico tradizionale la sintesi di segnali modulati ad alta frequenza è basata sull’impiego di un microprocessore DSP che genera un segnale modulato di frequenza portante bassa (o nulla) e di un convertitore di frequenza in salita che porta il segnale modulato alla frequenza desiderata. Basandomi su questa architettura, nel 1991 realizzai il mio primo trasmettitore numerico “all-mode” che utilizzava un microprocessore Motorola DSP56001 e un sintetizzatore numerico Analog Device AD7008 [1]. Negli ultimi anni l’avvento dei circuiti logici riconfigurabili ha reso possibile l’integrazione di dispositivi sempre più complessi in un singolo circuito integrato, rendendo di fatto possibile e ed economica la realizzazione di quelli che oggi vengono chiamati “system on chip” o semplicemente SOC. Seguendo quest’ultimo approccio, ho sviluppato un modulatore SSB digitale molto compatto che risiede in una piccola logica riconfigurabile (30,000 porte logiche) Xilinx Spartan II XC2S30. Il cuore del modulatore include tutte funzioni necessarie a trasformare il segnale audio analogico proveniente da un microfono in un segnale SSB a 9 MHz numerico, successivamente convertito in analogico da un convertitore D/A Analog Devices AD9754. La logica sviluppata integra un convertitore A/D sigma delta da 10 bit per la conversione del segnale audio di ingresso in forma numerica e una versione digitale del modulatore Weaver con uscita a 14 bit. L’area occupata dal “core” del modulatore SSB è stata contenuta in 400 celle e 3 blocchi RAM (cioè circa il 90% delle celle e il 50% della RAM disponibili in un FPGA XC2S30) facendo uso di calcolo aritmetico seriale e di algoritmi di conversione di frequenza e di  filtraggio efficienti.

3. SINTESI NUMERICA DI UN SEGNALE SSB
3.1. Il modulatore di Weaver
Nel modulatore di Weaver [2] il segnale audio modulante viene traslato attorno all’origine delle frequenze per mezzo di un miscelatore in quadratura e di un oscillatore a bassa frequenza, filtrato da un filtro passa-basso che elimina la banda laterale indesiderata e infine convertito alla frequenza portante desiderata per mezzo di un secondo miscelatore in quadratura e di un oscillatore ad alta frequenza, come indicato in fig.1.


Fig.1 – Il modulatore di Weaver

Il funzionamento del modulatore può essere spiegato ricorrendo al disegno di fig. 2 che evidenzia graficamente le elaborazioni compiute dalle parti che costituiscono il modulatore sullo spettro del segnale d’ingresso. Con la prima miscelazione in quadratura a bassa frequenza, lo spettro del segnale audio in ingresso al modulatore viene traslato in modo che una delle sue bande laterali costituenti sia centrata simmetricamente attorno all’origine dell’asse delle frequenze. Nelle applicazioni radiofoniche si conviene che lo spettro del segnale audio si estende nella banda compresa tra 300 e 2700 Hz e la frequenza dell’oscillatore in quadratura a bassa frequenza viene è pari a 1500 Hz.
In fig. 2 il segno dei segnali in quadratura generati dall’oscillatore a bassa frequenza è stato scelto in modo da traslare verso l’origine la banda laterale superiore del segnale audio, ma è sufficiente invertire di segno uno dei due segnali in quadratura per ottenere la traslazione verso l’origine dell’altra banda laterale. Il filtraggio di tipo passa-basso delle due componenti generate dal primo miscelatore in quadratura consente di eliminare la banda laterale indesiderata. Infine, con la seconda miscelazione, lo spettro del segnale a banda laterale unica viene traslato alla frequenza desiderata.
Anche in questo caso invertendo il segno di uno dei due segnali generati dal secondo oscillatore in quadratura si ottiene il ribaltamento dello spettro attorno ad f2, ovvero la generazione dell’altra banda laterale.


Fig. 2 - Generazione di un segnale SSB col metodo di Weaver

3.2. Realizzazione numerica del modulatore di Weaver
Il modulatore di Weaver è composto da una sezione audio che elabora segnali a bassa frequenza, costituita dal primo convertitore di frequenza con oscillatore in quadratura a 1500 Hz e dai due filtri passa basso, e da una sezione ad alta frequenza, formata dal secondo convertitore di frequenza con oscillatore in quadratura di frequenza pari a quella finale.
Una realizzazione numerica efficiente deve tener conto delle diverse esigenze di calcolo delle due sezioni bf. e a.f.  che costituiscono il modulatore. Tale efficienza viene raggiunta elaborando i segnali in gioco alla minima frequenza di campionamento possibile e compatibile con il criterio di Nyquist, che asserisce che un segnale analogico può essere ricostruito esattamente a partire dai suoi campioni temporali a patto che la frequenza di campionamento sia pari ad almeno due volte la banda del segnale elaborato. Poiché il segnale d’ingresso ha una banda di circa 3 KHz, nella sezione a bassa frequenza è possibile utilizzare una frequenza di campionamento dell’ordine della decina di chilohertz. Il segnale d’uscita elaborato dalla sezione ad alta frequenza (che può essere sintonizzabile su un vasto intervallo di frequenze) ha una banda molto più ampia e dev’essere campionato a una frequenza sensibilmente più elevata. Tra le due sezioni del modulatore viene quindi interposto un circuito interpolatore la cui funzione è quella di aumentare il tasso di campionamento del segnale elaborato nella sezione b.f. al valore richiesto nella sezione a.f., come indicato nello schema a blocchi del modulatore numerico SSB di fig. 3.


Fig. 3 – Schema a blocchi di un modulatore (di Weaver) SSB digitale.

4. IMPLEMENTAZIONE SU FPGA
La qualità di un segnale SSB sintetizzato numericamente col metodo di Weaver è quantificabile dagli stessi parametri che identificano le prestazioni di un modulatore analogico: il rapporto S/N del segnale audio d’ingresso, la soppressione della banda laterale e della portante, e la purezza spettrale. Il rapporto S/N del segnale audio è legato alla precisione del convertitore A/D, alla frequenza di campionamento del segnale di ingresso e alla qualità del primo convertitore di frequenza. L’entità della soppressione della portante e della banda laterale indesiderata dipendono dall’offset del convertitore A/D e dalla risposta in frequenza dei filtri passa basso. L’ampiezza dei prodotti spuri, infine, dipende dalla qualità degli interpolatori, del secondo convertitore di frequenza  e del convertitore D/A e dalla frequenza di campionamento di uscita. Per motivi che risulteranno chiari in seguito ho scelto di utilizzare una frequenza di campionamento di 12 KHz in tutta la sezione b.f. e una frequenza di campionamento di 36 MHz, pari alla frequenza del clock fornito al modulatore, per la sezione a.f..

4.1. Architettura di un FPGA Xilinx Spartan II
Nei dispositivi Xilinx della famiglia Spartan II ogni cella (CLB, o Cell Logic Block) è composta da due “slice”. Come evidenzia la Fig. 4, ogni slice contiene due Flip-Flop, due tabelle di look-up a quattro ingressi per mezzo delle quali è possibile sintetizzare una funzione combinatoriali a quattro ingressi e logica “carry chain” dedicata alla implementazione di funzioni aritmetiche.

Fig. 4 – Una “Slice” della famiglia FPGA Spartan II

Il dispositivo XC2S30 che ho utilizzato per sviluppare il modulatore contiene una matrice di 12 x 18 CLB (Fig. 5), per un totale di 432 “slices” e 864 Flip-Flop, ed è inoltre dotato di sei blocchi RAM sincrona dual-ported da 4096 bit. Tre di questi blocchi sono stati utilizzati per la memorizzazione dei campioni e dei coefficienti dei filtri FIR passa passo.


Fig. 5 – La matrice di 12 x 18 CLB di un dispositivo Spartan II XC2S30

4.2. Campionamento del segnale audio
Nell’implementazione del modulatore SSB che ho sviluppato il segnale audio viene campionato a 12 KHz con un convertitore A/D sigma delta a 10 bit, realizzato per mezzo di una sezione di un amplificatore operazionale e di un filtro decimatore, con un rapporto S/N audio superiore ai 50 dB.

4.3. Conversione a bassa frequenza
Il convertitore a bassa frequenza con l’oscillatore in quadratura a 1500 Hz è stato realizzato per mezzo di un calcolatore CORDIC [3]. Il calcolatore CORDIC (Coordinate Rotation DIgital Calculator), ideato da J. Volder nel 1956 per il controllo in tempo reale di sistemi avionici [4][5], risolve il problema della rotazione di coordinate con sole operazioni di addizione/sottrazione e di scorrimento. Poiché una conversione di frequenza non è nient’altro 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 :

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

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.
La traslazione di 1500 Hz verso l’origine dello spettro del segnale audio d’ingresso campionato alla frequenza di 12 KHz equivale a una rotazione sequenziale e periodica del segnale audio di un angolo pari a 1500/12000 · 360º = 45º.
Nella versione che ho realizzato, il convertitore di frequenza ruota il segnale audio di un angolo fisso phi = -22.5º per mezzo di un convertitore CORDIC seriale a 16 bit e sfrutta la simmetria della sequenza delle rotazioni per produrre il segnale d’uscita desiderato  (fig. 6).


Fig. 6 – Convertitore CORDIC a bassa frequenza (f/Fs = 1/8)

Nel calcolatore CORDIC la precisione della rotazione secondo un angolo costante dipende dal numero di stadi utilizzati. Poiché:

     atan(2-1) - atan(2-4) - atan(2-7) - atan(2-10) + atan(2-12) = 24.499138º,

sono sufficienti cinque stadi per ottenere una rotazione del segnale d’ingresso di 22.5º con una precisione del millesimo di grado, una accuratezza del risultato vicina ai 16 bit (ottenuta in soli 80 cicli di clock) e una purezza spettrale del segnale convertito di qualità CD audio. Vale la pena notare che il convertitore implementato impiega una piccola frazione delle risorse logiche disponibili in una XC2S30 e che un classico convertitore di frequenza formato da due moltiplicatori 16x16 e da un oscillatore numerico a sintesi diretta a 16 bit avrebbe, da solo, richiesto l’utilizzo di un gate array  significativamente più grande.

4.4 Filtraggio passa basso. Reiezione della banda laterale indesiderata.
Nei modulatori di Weaver, l’entità della soppressione della banda laterale indesiderata è legata direttamente all’attenuazione fuori banda dei due filtri passa basso. Per ottenere valori di reiezione di 50-60 dB in una banda che si estende per circa un quarto della frequenza di campionamento mantenendo sufficientemente piatta la risposta in banda è necessario usare filtri numerici traversi FIR con circa 50 prese. Dal momento che la frequenza di campionamento nella sezione b.f. è una piccola frazione della frequenza di clock è possibile utilizzare un elevato numero di colpi di clock (36/0.012 = 3000) per calcolare la risposta di ogni filtro e ridurre notevolmente l’area occupata ricorrendo a realizzazioni hardware che sfruttano al massimo l’aritmetica seriale. Nei microprocessori per l’elaborazione numerica dei segnali sono disponibili unità di calcolo MAC (Multiply and Accumulate) che eseguono in un solo ciclo di clock e consentono di calcolare la risposta di un filtro FIR in un numero di cicli di clock pari al numero di prese, ma tutta questa potenza di calcolo è sovrabbondante per i nostri scopi. Ogni filtro passa basso richiede una potenza di calcolo pari a circa 50 prese x 12000 campioni/s = 600.000 MAC/s e a una frequenza di clock pari a 36 MHz sono disponibili 36/0.6 = 60 cicli di clock per ogni operazione. L’utilizzo di veloci moltiplicatori paralleli non è affatto indispensabile. Nei filtri sviluppati sono stati utilizzati moltiplicatori seriali 16 x 16 che occupano un’area molto ridotta, eseguono ogni operazione in 16 cicli di clock.
Alla frequenze di clock e di campionamento indicate, il limite superiore alla lunghezza dei filtri passa basso realizzati con questa tecnica è di 186 prese, quasi quattro volte superiore alle reali esigenze. Ho sfruttato questa capacità di calcolo per realizzare filtri di Remez a 127 prese, con fianchi molto più ripidi di quelli realmente richiesti, un ripple totale nella banda [-1200 Hz , 1200 Hz] di 0.2 dB, un’attenuazione fuori banda [1500 Hz , 6000 Hz] di 80 dB (al limite delle implementazioni a 16 bit) e con un eccezionale fattore di forma di 1 : 1.25. La risposta in frequenza dei filtri sviluppati è indicata in fig. 7.


Fig. 7 – Risposta in frequenza dei filtri FIR per la reiezione della banda laterale indesiderata

4.5. Interpolazione a 36 MHz
Lo spettro di un segnale campionato è periodico e di periodo pari alla frequenza di campionamento. Il segnale a banda laterale soppressa generato dalla sezione b.f. del modulatore di Weaver è campionato a 12 KHz e pertanto il suo spettro, oltre alla componente  centrata nell’origine delle frequenze, è formato da una serie periodica di immagini spaziate di 12 KHz. Lo scopo dell’interpolatore è quello di generare un segnale di uscita a frequenza di campionamento più elevata (36 MHz) attenuando l’ampiezza delle immagini poste a frequenze multiple della frequenza di campionamento di ingresso (12 KHz) a un valore accettabile. Questa azione viene ottenuta ricampionando il segnale di ingresso alla frequenza di campionamento di uscita e sottoponendo il segnale risultante a un filtraggio di tipo passa basso, come mostrato nell’esempio di fig. 8.


Fig. 8 – Interpolazione di segnali campionati

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 [6]. I filtri CIC sono filtri FIR di tipo passa basso costituiti dalla cascata di filtri integratori e di filtri Comb (filtri a pettine). La fig. 9 mostra la struttura di un decimatore e di un interpolatore realizzati con la tecnica di filtraggio CIC.


Fig. 9 – Schema a blocchi di un decimatore e di un interpolatore di ordine N

La risposta in frequenza di un filtro di interpolazione CIC di ordine N con tasso di interpolazione R è:

        

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.
L’interpolatore del modulatore SSB che ho realizzato interpola il segnale b.f. di un fattore R = 3000 e attenua le immagini del segnale di ingresso di più di 70 dB. Per semplicità realizzativa esso è costituito da una cascata di tre interpolatori. Il primo stadio è costituito da un interpolatore x15 del 4º ordine (R=15, N=4) che eleva la frequenza di campionamento a 12 x 15 = 180 KHz e, grazie alla frequenza di campionamento d’uscita ancora relativamente bassa, è stato realizzato in forma seriale. Il secondo stadio è costituito da un interpolatore x25 del 4º ordine (R=25, N=2) che eleva la frequenza di campionamento a 4.5 MHz ed è stato realizzato in forma parallela. Il terzo e ultimo stadio è un interpolatore x8 del 1º ordine che eleva la frequenza di campionamento al valore finale di 36 MHz (R=8, N=1).

4.6. Conversione a 9 MHz.
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. Per ottenere una purezza spettrale adeguata per gli scopi di trasmissione in un up-converter numerico con architettura CORDIC sono richiesti almeno 16 stadi in cascata, con bus a 16 bit per ognuno dei tre segnali x,y,phi. Una realizzazione con stadi in pipeline utilizzerebbe 48 addizionatori/sottrattori con uscite registrate a 16 bit, per un totale di 768  Flip-Flop, cioè quasi l’intero dispositivo XC2S30.
Tuttavia, se la frequenza di uscita viene scelta opportunamente, un convertitore in salita a frequenza fissa può essere realizzato con una frazione di risorse logiche molto inferiore. Questo è il motivo per cui è stata scelta una frequenza di campionamento di 36 MHz. In un convertitore con frequenza di uscita pari a Fs/4, infatti, il segnale di ingresso deve essere ruotato sequenzialmente di angoli multipli di 90º. Questa operazione si traduce nel cambiare tra loro le componenti del segnale di ingresso, prese col segno opportuno secondo una sequenza periodica e prefissata di quattro cicli, come mostrato in fig. 10.


Fig. 10 – Un convertitore di frequenza a Fs/4

Il converitore a Fs/4 può essere utilizzato anche in discesa semplicemente invertendo la rotazione in senso orario. Sul dispositivo XC2S30 un converitore up-down a Fs/4 da 16 bit occupa un’area di 9 slices e solo 18 Flip-Flop, senza introdurre alcun prodotto spurio e con una frequenza massima di clock di quasi 200 MHz.

5. DESCRIZIONE CIRCUITALE
Lo schema elettrico del modulatore SSB è disegnato nell’allegato 1. La tensione di alimentazione del modulatore fornita al piedino 10 del connettore JP3 è di +5Vdc. Il segnale audio proveniente dal piedino 1 del connettore JP3 viene filtrato e amplificato dall’amplificatore operazionale IC2A. Il livello del segnale di ingresso necessario a pilotare il modulatore è di 100 mVpp. La coppia di diodi D4 serve a limitare il guadagno dell’amplificatore e a evitare la saturazione degli stadi successivi in caso di sovrapilotaggio. La sezione B dell’amplificatore operazionale OPA2340 (IC2B) funziona come integratore/comparatore del convertitore A/D sigma-delta del segnale audio di ingresso. Gli ingressi PTT\, BFO\, SSB/CW\, USB/LSB\ e TWOTONE\ controllano il modo di funzionamento del modulatore SSB, abilitando rispettivamente la trasmissione (PTT), la generazione del segnale di battimento per la demodulazione (BFO), la selezione del modo operativo (SSB/CW), la selezione della banda laterale (USB/LSB) e l’abilitazione del generatore a due toni interno (TWOTONE\). Tutti i segnali di interfaccia presenti su JP3 sono attivi bassi e devono essere pilotati da sorgenti open-collector o da interruttori collegati a massa. All’ingresso KEY\ viene collegato il tasto Morse.
Il cuore del modulatore è rappresentato dal circuito integrato IC3, un FPGA Xilinx XC2S30, all’interno del quale il segnale audio viene elaborato numericamente al fine di produrre il segnale SSB a 9 MHz desiderato. Il convertitore D/A AD9754 (IC4) converte in forma analogica il segnale numerico sintetizzato da IC3 con l’ausilio dei filtri di ricostruzione passa-banda centrati a 9 MHz  e formati da L2-L6 e da C32-C38. In alternativa al DAC a 14 bit AD9754 è possibile utilizzare un convertitore a 10 bit più economico, l’AD9760, che è pin-to-pin compatibile all’AD9754. Il modulatore ha due uscite TXOUT e BFOOUT presenti sul connettore JP4. Il livello delle uscite è di circa –10 dBm p.e.p. (circa 100 mVpp su 50 Ohm) adeguato a pilotare il mixer della sezione trasmittente e il demodulatore a prodotto degli apparati autocostruiti.
Il circuito integrato IC1 è una EEPROM seriale da 512 Kbit che contiene i dati di configurazione del gate array programmabile XC2S30 e che vengono scaricati su quest’ultimo all’accensione del modulatore. La riprogrammazione della EEPROM e l’aggiornamento del core del modulatore è accessibile “in system” tramite il connettore JP1. Il connettore JP2 rende accessibili i segnali della porta JTAG del circuito integrato IC2, tramite la quale è possibile riprogrammare al volo il core per mezzo del toolkit di sviluppo Xilinx.
L’oscillatore QG1 a 36 MHz fornisce la base dei tempi al modulatore.
Il regolatore di tensione IC5 e il transistor Q1 forniscono le tensioni stabilizzate a 3.3V e a 2.5V necessarie al funzionamento del modulatore. La corrente richiesta al piedino di alimentazione (Pin 10 di JP3) è di circa 150 mA. E’ necessario che l’alimentatore del modulatore sia fornito di un condensatore elettrolitico di grande capacità ( almeno 2200 uF) o che alternativamente sia in grado di erogare una corrente di spunto di almeno 500 mA. Tale corrente è infatti richiesta dal circuito integrato XC2S30 al momento dell’accensione per una corretta inizializzazione del dispositivo. La rete formata da C18-R20 serve a ritardare l’abilitazione delle tensioni di alimentazione del modulatore di qualche decina di millisecondi dall’accensione del dispositivo, cosicché la corrente di spunto possa essere fornita dal condensatore elettrolitico esterno, nel caso la corrente di picco erogata dall’alimentatore esterno sia inferiore a 500 mA.

6. RISULTATI SPERIMENTALI
La fotografia di fig. 11 mostra il primo esemplare realizzato. Le fig. 12 e 13 mostrano rispettivamente la reiezione della banda laterale indesiderata con il modulatore in modalità USB e i prodotti spuri nella banda compresa tra 1 e 17 MHz. Le misure sono state effettuate con un analizzatore di spettro Hewlett-Packard HP8563E. Come si nota nella fig. 12 la soppressione della banda laterale con un segnale audio di 1 KHz è superiore ad 80 dB. Il rumore di quantizzazione introdotto dal convertitore audio A/D è ben visibile, ma comunque confinato nella banda del filtro di reiezione e di ampiezza trascurabile. In fig. 13 viene evidenziato il più alto prodotto spurio generato dal modulatore, di ampiezza inferiore a –75 dBc. Nelle prove effettuate è stata verificata la purezza spettrale di un modulatore in cui, al posto del convertitore AD9754, è stato montato il più economico convertitore a 10 bit AD9760, senza notare significative variazioni nella misura dell’SFDR. La versione con il convertitore a 10 bit ha evidenziato un fondo di rumore superiore, e tuttavia ancora trascurabile, in una banda di circa 2 MHz centrata a 9 MHz.

Fig.11 – Foto del modulatore SSB digitale

 

Fig.12,13  – Misura della reiezione della banda laterale indesiderata e dell’SFDR

7. CONCLUSIONI
Utilizzando un economico circuito logico programmabile e sfruttando algoritmi ottimizzati per l’implementazione hardware di funzioni aritmetiche complesse è stato possibile realizzare un modulatore SSB digitale compatto con uscita IF a 9 MHz. Il modulatore può essere impiegato come exciter in trasmettitori SSB/CW autocostruiti e come BFO della sezione ricevente. Il core del modulatore, interamente sviluppato in linguaggio VHDL, occupa un area limitata e si adatta comodamente in un’FPGA Xilinx Spartan II XC2S30, occupando 400 slices e 3 RamBlocks da 4096 bit (fig. 14).

Fig. 14 – Il core del modulatore SSB sul dispositivo XC2S30

Le prestazioni ottenute sono eccellenti e superiori a quelle di un convenzionale modulatore analogico. Gli sviluppi nell’immediato futuro prevedono la realizzazione SOC di un trasmettitore SSB/CW per onde corte cui, tempo libero permettendo, seguirà un intero ricetrasmettitore.
Un ringraziamento va a Cesare Buzzi, IV3MUR che, condividendo con me la passione per la sperimentazione, ha inciso i circuiti stampati e assemblato i primi prototipi del modulatore.

8. RIFERIMENTI

[1] F. Nardone, “Il Personal computer come una radio”, Quotidiano “Il Messaggero Veneto”, 22 Maggio 1992.
[2] Donald K. Weaver, “A Third Method of Generation and Detection of Single-Sideband Signals”, IRE Proceedings, 1956, pp. 1703-1705.
[3] Ray Andraka, “A survey of CORDIC algorithms for FPGA based computers”, ACM, Monterey, 1998 (disponibile anche su Internet http://www.andraka.com/files/crdcsrvy.pdf )
[4] J. Volder, “Binary computation algorithms for coordinate rotation and function generation”, Convair Report IAR-1 148 Aeroelectrics Group, June 1956.
[5] J. Volder, “The CORDIC Computing Technique”, IRE Trans. on Computers, v. EC-8, Sept. 1959, pp. 330-334
[6]  E.B. Hogenhauer, “An economical class of digital filters for decimation and interpolation”, IEEE Trans. on Acustics, Speech and Signal Processing, ASSP-29(2), 1981, pp. 155-162.


Ultimo aggiornamento: 15 Settembre 2002. Questa pagina e' stata visitata volte.