Come selezionare la risoluzione della frequenza e le dimensioni della finestra in FFT?


9

Sto eseguendo l'analisi dello spettro di un segnale che varia nel tempo con frequenza che cambia da 200Hz a 10kHz. Sto usando la FFT per analizzare la componente di frequenza nel segnale. Le mie domande sono:

  1. Come decidere sulla risoluzione della frequenza e sulla larghezza della finestra per il segnale?
  2. Quale tipo di funzione finestra è adatta per il segnale che varia nel tempo?
  3. Quale dovrebbe essere la dimensione ottimale per FFT?

La frequenza di campionamento del segnale è 44,1 kHz.


2
Qual è il modello di cambiamento di frequenza? Il segnale salta bruscamente tra frequenze diverse o il cambio di frequenza è continuo? Se il segnale salta, per quale periodo di tempo puoi assumere che il segnale rimarrà alla stessa frequenza? Se il cambio di frequenza è continuo, che modello ha questo cambiamento (lineare, gaussiano, altro)?
Vasiliy,

Non spera che continui a variare il segnale in modo simile al segnale Chirp. l'ampiezza per ciascuna frequenza può cambiare casualmente.
nitin,

4
Dici che stai prendendo la FFT per analizzare la componente di frequenza. Questo è un passaggio intermedio e per rispondere in modo accurato alla tua domanda, dobbiamo sapere cosa stai cercando di ottenere. Cosa intendi fare con queste informazioni? Perché è necessario conoscere la componente di frequenza? Con quale frequenza devi aggiornare queste informazioni? Senza dirci queste cose, sei l'unico che può sapere quale deve essere la risoluzione. In effetti, se hai solo bisogno di conoscere la risposta a una o due frequenze, FFT potrebbe non essere nemmeno il modo migliore per andare.
Scott Seidman,

@ScottSeidman, mi leggi nella mente.
Vasiliy,

1
@ trav1s, insegniamo tutti in modo diverso. Se un mio studente venisse da me con questa domanda posta in questo modo, proverei a dargli lo stesso messaggio da portare a casa che stavo ricevendo con il mio commento dettagliato sopra- "Un ingegnere dovrebbe capire perché sta facendo qualcosa prima di imbarcarsi ". Ci sono migliaia di risorse in cui è possibile trovare le equazioni che descrivono la risoluzione in frequenza in funzione di N, e sembrava che l'interrogatore le avesse disponibili, ma quel messaggio non è allegato a loro! Spero che il pungolo abbia fatto capire al richiedente che stava già tenendo la risposta.
Scott Seidman,

Risposte:


4

Dato che stai lavorando con una frequenza di campionamento fissa, la tua lunghezza FFT (che richiederà che la tua finestra sia alla stessa larghezza) aumenterà la risoluzione della frequenza. Il vantaggio di avere una risoluzione di frequenza più fine è duplice: quello evidente è che si ottiene una risoluzione di frequenza più fine, in modo da poter distinguere due segnali con frequenza molto vicina. Il secondo è che, con una risoluzione di frequenza più elevata, il rumore da fondo FFT sarà più basso. Il rumore nel tuo sistema ha una potenza fissa, non correlata al numero di punti della tua FFT e tale potenza viene distribuita uniformemente (se parliamo di rumore bianco) a tutti i tuoi componenti di frequenza. Pertanto, avere più componenti di frequenza significa che il contributo di rumore individuale dei tuoi bin di frequenza verrà ridotto, mentre il rumore integrato totale rimane lo stesso, che si traduce in un livello di rumore più basso. Ciò ti consentirà di distinguere un intervallo dinamico più elevato.

Tuttavia, ci sono degli svantaggi nell'uso di una FFT più lunga. Il primo è che avrai bisogno di più potenza di elaborazione. La FFT è un algoritmo O (NlogN), dove N è il numero di punti. Anche se potrebbe non essere così drammatico come l'ingenuo DFT, l'aumento di N inizierà a spurgare il tuo processore, specialmente se stai lavorando nei confini di un sistema incorporato. In secondo luogo, quando si aumenta N, si ottiene la risoluzione della frequenza mentre si perde la risoluzione del tempo. Con una N più grande, devi prendere più campioni per arrivare al risultato del tuo dominio di frequenza, il che significa che devi prelevare campioni per un tempo più lungo. Sarai in grado di rilevare una gamma dinamica più elevata e una risoluzione di frequenza più fine, ma se stai cercando speroni, avrai un'idea meno chiara su QUANDO lo sperone si è verificato esattamente.

Il tipo di finestra che dovresti usare è un altro argomento, che non sono così informato per darti una risposta a QUALE è meglio. Tuttavia, finestre diverse hanno caratteristiche di output diverse, di cui la maggior parte (se non tutte) sono reversibili dopo l'elaborazione del risultato FFT. Alcune finestre potrebbero far sanguinare i tuoi componenti di frequenza sui bin laterali (se non sbaglio, la finestra di Hanning fa apparire i tuoi componenti su tre bin). Altri potrebbero darti una migliore precisione di frequenza introducendo un errore di guadagno nei tuoi componenti. Questo dipende completamente dalla natura del risultato che stai cercando di ottenere, quindi farei qualche ricerca (o alcune simulazioni) per arrivare a qual è il migliore per la tua specifica applicazione.


Si noti che mentre può essere intuitivo eseguire valutazioni FFT su blocchi sequenziali, è anche possibile eseguirle su blocchi sovrapposti di dati di input, ovvero avviare una FFT a 1024 punti ogni 256 campioni, fornendo una risoluzione temporale leggermente migliore, anche se ovviamente a il costo di un calcolo ancora maggiore.
Chris Stratton,

0

Quindi, per prima cosa, la frequenza di campionamento deve essere almeno il doppio della frequenza massima del segnale che è (44,1 kHz> 2x10 kHz). Successivamente, se la lunghezza della finestra nel dominio del tempo è T, la risoluzione della frequenza con FFT è esattamente 1 / T. La risoluzione nel dominio della frequenza mediante FFT non ha nulla a che fare con la frequenza di campionamento nel dominio del tempo. Ma come sottolineato nella risposta precedente, la finestra del dominio del tempo non può essere troppo grande perché in tal modo si perderebbero informazioni sui segnali spuri che compaiono solo momentaneamente. Quindi deve esserci un compromesso tra la risoluzione della frequenza e il rilevamento di segnali spuri. Infine, FFT non è l'unico algoritmo per prendere un segnale dal dominio del tempo al dominio della frequenza. Se stai cercando l'alta risoluzione nel dominio della frequenza con un numero limitato di campioni nel dominio del tempo, puoi utilizzare tecniche di stima spettrale ad alta risoluzione come MUSIC ed ESPIRIT. Questi sono anche usati per la stima della direzione di arrivo (DOA) che è abbastanza simile al problema della stima spettrale.


um no ... rileggi nyquist. Se si desidera ricostruire in modo affidabile una frequenza, sono necessari 5-10x. Allo stesso modo una finestra più ampia consente la ricostruzione della frequenza più bassa di interesse per le subarmoniche. Un segnale spurio non sarà comunque visto in modo affidabile in una FFT poiché un impulso di dirac può avere un contenuto ad alta frequenza Il suo compito è "casuale" solo una componente affidabile / periodica verrà mostrata con ampiezza significativa
JonRB,

la gamma di frequenza del segnale di interesse va da 200Hz a 10kHz ... quindi la frequenza di campionamento è almeno 4,41 volte la frequenza del segnale ... se osserviamo l'estremità inferiore dello spettro la frequenza di campionamento è 220,5 volte ... potremmo aver bisogno di sapere come viene distribuita statisticamente la frequenza ... comunque penso che la frequenza di campionamento non sia un problema qui!
Yasir Ahmed il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.