Prove di misura di rumore di fase di oscillatori a
quarzo
RoV, 17/9/2009
Obiettivo è la
misura del rumore di fase SSB di un oscillatore per il quale si dispone di due
campioni identici e abbastanza stabili in frequenza da non richiedere un PLL per
tenerli agganciati durante la misura classica con mixer (metodo “phase
detector”). La misura è comunque fatta con un mixer, ma tollerando un
battimento IF a bassa frequenza. La IF è acqiusita con una scheda audio di
buona qualità.
Cominciamo con un
po’ di foto... gli oscillatori sono componenti surplus.
oscillatore 1 (Driscoll a 124MHz + buffer e
filtro)
oscillatore 1 schermato alla meno peggio e
attenuatore variabile
oscillatore 2, mixer TFM-2 e si intravvede attenuatore
10dB da oscillatore 1
carico, filtri passa-basso e passa-alto da IF del
mixer
il modulo audio USB
Passiamo ora allo
schema di misura:
schema semplificato
Con 12.5V di alimentazione
un oscillatore produce +7.3dBm e l’ho usato per pilotare il LO del mixer,
l’altro qualcosa di meno. Ho misurato -4.5dBm sulla porta RF del mixer con
l’attenuatore variabile impostato a 0dB e -14.5dBm con l’att. var. a 10dB.
Ho monitorato l’uscita (anzi, il nodo prima del C passa-alto da 470nF) con l’oscilloscopio, per poter aggiustare la differenza di frequenza degli oscillatori (agendo sul compensatore vicino al quarzo di uno dei due) prima di acquisire col modulo audio. Questa è stata un’operazione molto delicata, perché la frequenza degli oscillatori era un po’ troppo alta rispetto alle differenze di pochi Hz che cercavo di ottenere... però per fortuna la stabilità era buona. Indubbiamente con oscillatori da 10-30 MHz sarebbe stato tutto più facile.
vista all’oscilloscopio prima del passa-alto
Ho preso una
serie di misure, ciascuna costituita da 1,000,000 di campioni a 192kHz/24bit e
fatto l’analisi spettrale col metodo di Welch in Matlab. I parametri sono
delicati, serve una finestra con lobi laterali estremamente bassi, altrimenti
“l’ombra” della portante oscura il rumore da misurare: ho usato una Chebyshev
di lunghezza 32768 e con 200dB di attenuazione dei lobi.
La prossima figura mostra i risultati dell’analisi spettrale.
analisi spettrale
Misura grigia: oscillatore 1 spento
Misura blu: attenuatore variabile a 10dB,
oscillatori leggermente spostati in modo da vedere il battimento in banda
passante e misurarlo (circa 250Hz). Modulo audio con guadagno al limite del
clipping.
Misura verde: come la blu, però oscillatori portati
più vicini possibile (battimento a qualche Hz).
Misura rossa: attenuatore variabile portato a 0dB,
guadagno del modulo audio invariato. Il modulo non clippa, perchè il battimento
è basso in frequenza e attenuato dal filtro.
Come si può
notare, fino a circa 2kHz la misura rossa sta circa 10dB sopra alla verde,
indicando che stiamo veramente misurando il rumore dell’oscillatore. La misura
rossa è significativa fino a circa 5kHz. Oltre i 5kHz c’è solo il rumore di fondo
del modulo audio (più o meno piatto). Naturalmente si potrebbe migliorare la
misura portando il battimento più vicino a 0 Hz e aumentando il guadagno audio;
nel mio caso non è facile, perché gli oscillatori sono alti di frequenza e per
spostarsi di Hz basta avvicinare il cacciavite...
I livelli di
rumore sono scalati correttamente in dB/Hz dal software, dove il riferimento è
l’ampiezza numerica del segnale acquisito e l’analisi spettrale è unilaterale
(somma i contributi di frequenze positive e negative). Ad esempio per una
sequenza random di varianza 1 il livello tornato è circa -50dB, che derivano da
-10*log10(96000), dove 96kHz è metà della frequenza di campionamento.
L’ampiezza del segnale invece non coincide con quella indicata. In questo caso basta prendere la varianza del segnale relativo alla misura blu, che appare come una sinusoide bella pulita:
segnale ref
σ(ref) = 0.0033 ovvero -24.85dB.
Questo valore è
da usare come riferimento usando la curva spettrale verde. Volendo usare quella
rossa che è valida fino a frequenze più alte, occorre assumere che il
riferimento sia 10dB più alto, o -14.85dB.
Ci sono poi altri
due termini correttivi
dobbiamo
togliere 3dB al rumore per il fatto di aver usato due oscillatori che danno
uguale contributo; | |
dobbiamo togliere 6dB al rumore per passare alla
misura di rumore di fase SSB che è quella standard. Su questo 6 sono un po’
incerto, io avrei messo 3 pensando che il rumore su una banda laterale ha metà
potenza. Secondo “Foundations of Oscillator Circuits Design” del Gonzalez (a
pag. 90, in riferimento al metodo “phase detector” con PLL) le ampiezze relative
alle due bande laterali si sommano linearmente all’uscita del mixer e producono
l’aumento di 6dB. In ogni caso il risultato cambia relativamente poco. |
Complessivamente occorre sommare 14.85dB e togliere 9dB alla curva rossa. Risulta:
SSB phase noise
Qui il grafico è
in scala di frequenze logaritmica estesa fino a 10kHz, dove già prevale il
rumore del modulo audio. La gobba sulle bassissime frequenze deriva invece
dall’imperfetto filtraggio della portante.
Naturalmente così
facendo non ho misurato solo il rumore di fase, ma anche quello di ampiezza,
che però di solito è più basso del primo. Inoltre nel rumore di ampiezza
compare solo il contributo dell’oscillatore che entra sull’ingresso RF, perché
lato LO il mixer è abbastanza immune da piccole variazioni di ampiezza. Questo
problema sparirebbe nel caso della misura classica col PLL che sfasa i due
oscillatori di 90°, che però è più complessa da realizzare.
Avrò fatto i conti giusti? Mah!
Se ti interessano altre informazioni, puoi contattarmi all'indirizzo: