Analisi dei segnali nel dominio della frequenza mediante FFT Alfredo Paolillo apaolillo@unisa.it Corso di Misure Elettroniche (0612400009 classe 00) Rev. 1.5.3 – novembre 2014
Scomposizione in serie di Fourier Un segnale periodico v(t) può essere scomposto in una somma di sinusoidi a diversa ampiezza, frequenza e fase, dette componenti armoniche. v(t) t t
Rappresentazione nel dominio della frequenza v f0 f1 f2 v f0 f1 f2 f Si rappresenta il valore (massimo o efficace) di ampiezza di una componente armonica rispetto alla frequenza, ottenendo lo spettro di ampiezza del segnale. La frequenza più elevata alla quale si trova una componente significativa del segnale individua la banda del segnale.
Campionamento, quantizzazione e codifica Con il campionamento, vengono misurati i valori di tensione assunti dal segnale x(t) ad intervalli di tempo Tc. Tali valori subiscono una conversione analogico/digitale tramite un convertitore A/D e vengono memorizzati come una sequenza di valori numerici x(n)=x(kTc): Parametro fondamentale della conversione è il numero di bit, direttamente legato alla risoluzione nella misura di ampiezza: x(t) t fc= 1/Tc è la frequenza di campionamento Periodo di campionamento Tc = 1/fc … …
La trasformata discreta di Fourier (DFT) La trasformata di Fourier discreta (spesso abbreviata in DFT, Discrete Fourier Transform) stabilisce una relazione biunivoca tra due N-ple di numeri (in generale complessi). Data una successione: x(n) con n = 0, 1, ..., N-1 si definisce sua trasformata di Fourier discreta la successione di X(k) con k = 0, 1, ..., N-1 data da: La trasformata di Fourier discreta è direttamente implementabile su un calcolatore, in quanto richiede un numero finito di operazioni, al contrario della trasformata di Fourier che richiede il calcolo di integrali.
Definizioni DFT di una sequenza {x(n)} di N punti: dove Se si pone Il modulo e la fase di X(k) sono dati da: Poco efficiente!
Gli algoritmi di FFT Il termine fast Fourier transform (FFT) indica una famiglia di algoritmi per il calcolo della trasformata discreta di Fourier (DFT) in gradi di ridurre il numero di calcoli da applicare ad una sequenza di N punti da ~2N2 a ~2N*log2(N). DFT N2 FFT N log2N Si basano sulla suddivisione di una trasformata di lunghezza N in due trasformate di lunghezza N/2. Gli algoritmi di FFT detti “a radice di 2” richiedono che il numero di punti N sia pari ad una potenza di 2 (ad es. 128, 256, 512, …).
Trasformata di Fourier e DFT La trasformata di Fourier di un segnale sottoposto a campionamento è costituita da repliche dello spettro originale, distanziate di fc. La DFT può essere vista come un campionamento della trasformata di Fourier nel dominio della frequenza, con un passo di campionamento pari a fc/N, dove fc è la frequenza di campionamento utilizzata nel dominio del tempo. Campionamento fc fc/2 f DFT: passo fc/N intervallo 0 – fc oppure 0 – fc /2
Principio di funzionamento di un analizzatore di spettro numerico HARDWARE SOFTWARE Att Ampl A/D x(t) fc Memoria (Sequenza di N valori reali) FFT (Sequenza di N valori complessi) Display “Record” Gli analizzatori di spettro numerici sono spesso chiamati FFT analyzer. Questo tipo di schema si può anche implementare come: Funzione matematica applicabile ai waveform point acquisiti da un oscilloscopio numerico; Funzione matematica codificata in un linguaggio di programmazione, applicabile a valori numerici accumulati in un array in memoria, campionati mediante un hardware interno o esterno ad un PC (FFT analyzer virtuale).
Caso di valori in ingresso reali In generale, N valori complessi nel D.T. → N valori complessi nel D.F. Caso particolare: se si acquisiscono N valori reali nel D.T., la sequenza degli N valori complessi nel D.F. gode di proprietà di simmetria (il modulo è pari e la fase è dispari). Sono sufficienti N/2 valori complessi per rappresentare la DFT risultante. Solitamente si rappresentano gli N/2 valori nel D.F. in modulo e fase. t x(t) N punti (reali)
Rappresentazione dei risultati Data una sequenza di N campioni acquisiti nel D.T con frequenza di campionam. fc: Calcolo DFT (proprietà di simmetria) Sulle ascisse è rappresentata la Frequenza: scala in Hz/div N/2 valori complessi N/2 valori modulo N/2 valori fase Risoluzione: Δf = fc/N (Separazione in Hz tra i punti della DFT) N/2 punti Banda analizzata 0 Hz fc/2 Hz f Δf |X(f)| Attenzione! Il grafico è frutto di interpolazione!
Ampiezze dei valori della DFT (1) La definizione di trasformata può variare: Se si sta usando una funzione software in questo caso è necessario dividere le X(k) ottenute per N. Per ogni componente sinusoidale il modulo risulta ulteriormente diviso per 2: Gli analizzatori di spettro numerici operano una normalizzazione delle ampiezze in modo da visualizzare il valore efficace delle componenti spettrali. A=1
Rappresentazione delle ampiezze L’ampiezza di una componente spettrale può essere misurata con l’aiuto dei cursori. @: -0.3 dB Sulle ordinate sono rappresentate le ampiezze delle componenti spettrali del segnale. Possibilità: Vrms (o “scala lineare”): valore efficace delle componenti spettrali; dBVrms: si rappresenta la quantità In questo caso, il valore di 0 dB corrisponde a 1 Vrms. N/2 punti Banda analizzata: da 0 Hz a fc/2 Hz
Il teorema di Shannon Si estraggono, con una cadenza fC detta frequenza di campionamento, valori del segnale analogico equidistanti nel tempo, rappresentativi del segnale stesso. Il Teorema di Shannon richiede che la frequenza di campionamento sia almeno pari al doppio della banda del segnale (Regola di Nyquist). Non si confonda la banda di un segnale con la sua frequenza!
Il fenomeno dell’aliasing Segnale e campioni In questo caso la regola di Nyquist non è rispettata, dato che richiederebbe l’estrazione di almeno due campioni per ogni periodo del segnale. Segnale ricostruito La frequenza del segnale appare più piccola (frequenza alias)
Aliasing - dominio della frequenza (1) |X(f)| f1 f2 f3 -f1 -f2 -f3 B = f3 < fc/2 rispetta Nyquist f fc/2 |Xc(f)| Replica 1 Replica 2 Replica 0 f1 f2 f3 -f1 -f2 -f3 f fc/2 fc 2fc 3 fc/2 Periodo dello spettro: fc Periodo dello spettro: fc Da |Xc(f)| tra -fc/2 e fc/2 è possibile ricavare |Xc(f)|
Aliasing - dominio della frequenza (2) |X(f)| f1 f2 f3 -f1 -f2 -f3 B = f3 > fc/2 NON rispetta Nyquist f fc/2 Problema !!! |Xc(f)| Replica 1 Replica 2 Replica 0 f1 f2 f3 -f1 -f2 -f3 f fc/2 fc 2fc 3 fc/2 Periodo dello spettro: fc Periodo dello spettro: fc
Aliasing - dominio della frequenza (3) fc/2 fc f1 f2 f3 |X(f)| Non rispetta la regola di Nyquist! Dal risultato non è più possibile determinare se le componenti spettrali visibili sono localizzate alla frequenza corretta o a quella alias!!! Una componente spettrale a frequenza maggiore di fc/2 appare ad una frequenza alias. f fc/2 fc f1 f2 f3 |X(f)| Avviene un “ribaltamento” intorno alla frequenza fc/2, detta folding frequency
Il filtro antialiasing Le componenti spettrali del segnale a fi > fc/2 appaiono sempre a frequenze alias, quindi sbagliate. Componenti a frequenza alias alterano la presentazione dello spettro del segnale anche tra 0 e fc/2, e possono sovrapporsi e interferire con componenti spettrali localizzate alla loro frequenza effettiva. Provvedimento: si inserisce a monte del blocco A/D un opportuno filtro anti-aliasing, costituito da un passabasso con taglio a fc/2, in modo da cancellare le componenti che sarebbero in ogni caso ricostruite in modo non corretto. Att Ampl A/D x(t) fc LPF fc/2 (Antialiasing) f fc/2 fc f1 f2 f3 |X(f)|
La segmentazione temporale: D.T. Sequenza campionata L’analisi del segnale è effettuata raccogliendo, con frequenza fc, N campioni all’interno di una finestra temporale di durata finita. La DFT di tale sequenza è la DFT della versione periodicizzata di tale sequenza. Studiando il fenomeno nel dominio del tempo, si deve considerare l’insorgere di discontinuità agli estremi della finestra analizzata. Il segnale “finestrato” si può vedere come il risultato del prodotto del segnale in ingresso e di una finestra rettangolare w(t). w(t)
Effetto della finestra temporale sulla DFT Per la trasformata di Fourier vale la seguente proprietà: Una analoga proprietà vale per la DFT. La trasformata di Fourier di una finestra rettangolare è una funzione sinc, di tipo sin(x)/x. La trasformata di ogni componente spettrale è un impulso. La convoluzione di una certa funzione per un impulso è uguale alla funzione stessa traslata sulla ascissa alla quale si trova l’impulso. Prodotto nel D.T. Convoluzione nel D.F. w(t) x(t) t f W(f)
La segmentazione temporale: D.F. In corrispondenza di ogni componente spettrale del segnale a frequenza fs non si ritrova un impulso, ma una struttura a lobi, data dalla trasformata di Fourier della w(t), centrata su fs. Prodotto nel D.T. Convoluzione nel D.F. Il fenomeno è noto come spectral leakage fs fs Reale Ideale
L’interferenza armonica Componenti spettrali “interferenti” Le misure dei parametri di una componente spettrale ad una certa frequenza sono alterate sistematicamente dalla esistenza, alla stessa frequenza, dei lobi secondari di altre componenti spettrali. Caso estremo: una componente “debole” può essere cancellata da un lobo secondario di una componente “forte” (tono nascosto).
Il campionamento asincrono SL bin, k fs kmax Caso fortunato! Se la fs non cade esattamente su un multiplo intero della risoluzione fc/N, i campioni della DFT non rappresentano esattamente lo spettro. Si hanno errori di misura detti di scallop loss (SL). Il caso peggiore si ha quando la fs cade a metà tra due multipli di fc/N.
La condizione di campionamento sincrono Caso fortunato! fs Con k intero Nel dominio del tempo: si ha campionamento sincrono quando la durate della finestra temporale analizzata (pari a N/fc) è un multiplo intero del periodo del segnale. t Osservazione: normalmente non si può stabilire se una certa componente spettrale è analizzata in condizioni di campionamento sincrono.
Lo scallop loss: esempio Errore nella misura di ampiezza Sinusoidi generate con ampiezze uguali, ma con frequenze leggermente diverse.
Si attenuano le discontiniutà nel D.T. Le funzioni finestra Idea: moltiplicare effettivamente la sequenza di N punti nel D.T. per una funzione finestra che abbia un andamento che degrada a zero agli estremi Si attenuano le discontiniutà nel D.T. Sequenza Rettangol. t Finestrato
Scelta della funzione finestra Le finestre non rettangolari presentano nel D.F. un lobo principale più largo, e lobi secondari più bassi. si riducono gli effetti dello scallop loss sulle misure di ampiezza peggioramento della capacità di risolvere componenti spettrali vicine La scelta della finestra dipende dalle caratteristiche del segnale e dalla grandezza da misurare.
Parametri di una finestra ΔL αSL ρ Larghezza del lobo principale ΔL: si esprime in termini di multipli di Δf. Livello massimo dei lobi secondari αSL, in dB. Roll-off (“decadimento”) dei lobi secondari ρ, in dB per decade.
Misura di ampiezza – finestra rettangolare Esempio Misura di ampiezza – finestra rettangolare A [dB] Segnale sinusoidale con fs = 91.3 Hz e amp = 1.41 V; Frequenza di campionamento fc = 1 kHz; Numero di punti N = 128 Risoluzione Δf = 1kHz / 128 = 7.81 Hz Finestra rettangolare Scallop loss 3.12 dB f [Hz]
Misura di ampiezza – finestra di Hanning Esempio Misura di ampiezza – finestra di Hanning A [dB] Segnale sinusoidale con fs = 91.3 Hz e amp = 1.41 V; Frequenza di campionamento fc = 1 kHz; Numero di punti N = 128 Risoluzione Δf = 1kHz / 128 = 7.81 Hz Finestra di Hanning Scallop loss 1.10 dB f [Hz]
Misura di ampiezza – finestra Blackman Esempio Misura di ampiezza – finestra Blackman A [dB] Segnale sinusoidale con fs = 91.3 Hz e amp = 1.41 V; Frequenza di campionamento fc = 1 kHz; Numero di punti N = 128 Risoluzione Δf = 1kHz / 128 = 7.81 Hz Finestra di Blackman Scallop loss 0.85 dB f [Hz]
Misura di ampiezza – finestra “flat top” Esempio Misura di ampiezza – finestra “flat top” A [dB] Segnale sinusoidale con fs = 91.3 Hz e amp = 1.41 V; Frequenza di campionamento fc = 1 kHz; Numero di punti N = 128 Risoluzione Δf = 1kHz / 128 = 7.81 Hz Finestra “flat top” Scallop loss 0.006 dB f [Hz]
La risoluzione in frequenza La risoluzione intesa come capacità di risolvere componenti spettrali vicine (cioè di visualizzarle come separate) non è uguale alla “risoluzione della FFT” Δf = fc/N, ma peggiora di un fattore pari alla larghezza del lobo centrale della finestra scelta:
La risoluzione di componenti vicine Si riescono a distinguere (“risolvere”) componenti spettrali vicine, solo se i loro lobi principali non si sovrappongono. Usando la finestra rettangolare (lobo centrale largo 2Δf), le tre componenti dell’esempio si vedono separate. Usando la finestra di Hanning (lobo centrale largo 4Δf), le tre componenti non si distinguono, ma appaiono come un’unica componente.
Indicazioni per l’uso delle finestre Tipo di segnale / tipo di misura Cosa serve Componenti interferenti lontane e “forti” roll-off elevato. Componenti interferenti vicine e “forti” basso livello lobi secondari Misura di ampiezza di un singolo tono lobo principale largo Risoluzione di componenti molto vicine lobo principale stretto
Ampiezze dei valori della DFT (2) La funzione finestra attenua la potenza del segnale. Invece che dividere per N le X(k), in generale si opera una normalizzazione per la somma degli elementi della funzione finestra w(n). Finestra rettangolare la somma è N. Att Ampl A/D x(t) fc LPF fc/2 X w(n) Time domain record (N) FFT Display Frequency domain record (N/2) Finestra Coherent gain Rettangolare 1 Hanning 0.5 Hamming 0.54 Blackman-Harris 0.42
Risoluzione in ampiezza: la quantizzazione x(n) xq(n) e(n) Δ +Δ/2 -Δ/2 La quantizzazione introduce un errore: e(n) = xq(n) – x(n) L’errore di quantizzazione è una variabile casuale con densità di probabilità uniforme tra -Δ/2 e +Δ/2, con Δ = (FS+-FS-) / 2nbit La trasformata di Fourier è un operatore lineare Lo spettro di xq(n) è uguale alla somma degli spettri del segnale x(n) e del rumore di quantizzazione e(n) Come è fatto lo spettro di e(n) ? + x(n) e(n) xq(n)
La risoluzione in ampiezza: il floor Nella DFT appaiono componenti non nulle a frequenze alle quali il segnale in ingresso non ha componenti. Più evidenti con scala verticale in dBVrms. Sono dovute allo spettro in frequenza del rumore di quantizzazione, che ha andamento uniforme in frequenza (floor). ~SNRdB Il livello del floor costituisce un limite alla capacità di individuare e misurare componenti armoniche di ampiezza ridotta. E’ legato al numero di bit del convertitore A/D utilizzato. Il suo livello può essere stimato come SNRdB ≈ 6 nbit + costante (dipende dalle ipotesi)
Il livello del floor: dettagli Per un segnale sinusoidale con ampiezza pari al fondo scala, il livello medio del floor in dB è dato, più precisamente, da: ~LFdB N è il numero di punti su cui si calcola la FFT nbit è il numero di bit dell’ADC ENBW is the equivalent noise bandwidth of the window function
Analisi di segnali passabanda Nel caso di segnali di tipo passabanda (Bw = fmax – fmin), avere 0 Hz come estremo sinistro della banda analizzata costituisce un limite. Una soluzione consiste nel traslare verso sinistra lo spettro del segnale, in modo che la fmin si riporti sullo 0. |X(f)| fmin fmax f Bw
LPF fc/2 (Antialiasing) Lo zoom in frequenza Traslazione nel D.F: Fasore a frequenza ν0, la cui trasformata è un impulso a ν0. |X(f)| fmin fmax f Bw x(t) Att Ampl A/D fc LPF fc/2 (Antialiasing) X fmin fmax f Bw Shift
Filtraggio dopo la traslazione Dopo la traslazione in frequenza, con una operazione di decimazione si abbassa la frequenza in campionamento in modo che fceq ≥ 2Bw. E’ necessario inserire un filtro passabasso (questa volta numerico) con frequenza di taglio pari a Bw prima di decimare, allo scopo di cancellare eventuali componenti che si trovavano tra f=fmax ed fcmax/2. fcmax/2 fmax Prima f fcmax/2 Bw Dopo f Aliasing fceq/2
Mettendo tutto insieme… Schema senza traslazione in frequenza: Att Ampl A/D x(t) fc LPF fc/2 X w(n) Time domain record (N) FFT Display Frequency domain record (N/2) Schema con frequency zoom: Att Ampl A/D x(t) fc LPF fc/2 w(n) Time domain record (N) FFT Display Frequency domain record (N/2) X LPF (Bw) Dec (D)
La funzione FFT in un oscilloscopio In molti oscilloscopi numerici è possibile applicare la funzione matematica FFT ai waveform point memorizzati nel record. Att Ampl A/D x(t) fcMAX LPF fc/2 X w(n) Waveform point Record (N) FFT Display Frequency domain record (N/2) Decimazione e Modalità di acquisizione fc E’ solitamente assente il filtro antialiasing: si deve procedere con attenzione alla scelta della fc e, se necessario, predisporre un filtro LPF analogico prima dell’ingresso. La DFT è calcolata a valle delle modalità di acquisizione: La fc da considerare per l’analisi in frequenza è quella ottenuta a valle della decimazione. Il numero di bit “visto” dalla FFT è quello ottenuto a valle delle modalità di acquisizione: la modalità Hi-Res può permettere di ottenere un abbassamento del livello del floor.
Predisposizione dell’oscilloscopio alle misurazioni nel dominio della frequenza Prima di attivare la funzione matematica FFT: Regolare la base dei tempi in modo da ottenere la frequenza di campionamento necessaria (criterio: regola di Nyquist). Regolare la scala verticale in modo che l’oscillogramma si estenda verticalmente per il maggior numero possibile di divisioni. Usare la scala fine se necessario. Osservazione: regolazioni della BdT e della scala verticale fatte dopo aver selezionato la funzione FFT hanno effetti esclusivamente grafici (non cambia la fc né il guadagno del preamplificatore/attenuatore).
La funzione FFT dell’oscilloscopio La funzione FFT si attiva selezionando il menu delle funzioni MATH La FFT viene applicata sui waveform point acquisiti su questo canale. Seleziona il modulo o la fase, e la scala verticale (lineare in Vrms o in dBVrms) Seleziona la finestra (rettagolare, Hanning, Hamming, Blackman-Harris)
FFT con l’oscilloscopio: i parametri La frequenza di campionamento si modifica tramite la base dei tempi, dopo aver selezionato l’oscillogramma sorgente (tasti Ch1 o Ch2): fc = numero di punti a divisione / base dei tempi Il numero di punti a divisione può cambiare in base al modello di oscilloscopio ed anche in base alla modalità. Esempio: l’oscilloscopio TDS 3000: Voce relativa al numero di punti “Fast” “Normal” Record length 500 punti 10000 punti Max frequenza di camp. 1.25 GS/s 1 GS/s Punti / divisione 50 1000 Num. divisioni orizzontali visualizzate 10 Punti restituiti dalla FFT 250 5000