Qual è la risoluzione di frequenza massima per lo spettrogramma di implementazione STFT di Matlab ()?


10

La spectrogram()funzione di Matlab calcola la STFT di un segnale. Descrive il suo NFFTargomento come segue:

S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)specifica il numero di punti di frequenza utilizzati per calcolare le trasformate di Fourier discrete. Se NFFTnon specificato, NFFTviene utilizzato il valore predefinito .

Sono corretto in quanto NFFTè un compromesso solo tra la risoluzione della frequenza e il numero di calcoli? Per il mio lavoro offline, non è necessario salvare i cicli. Esiste un limite massimo per NFFT, imposto, ad esempio, da dispersione spettrale, o qualsiasi altro problema che dovrei conoscere o posso impostare tale argomento il più alto possibile?

Risposte:


5

La lunghezza della FFT è un compromesso tra frequenza e risoluzione temporale. Gli spettrigrammi sono spesso generati calcolando FFT sovrapposte sul segnale di interesse. Se si allunga la FFT, la larghezza di banda effettiva di ciascun contenitore di uscita diminuisce, quindi la risoluzione lungo l'asse della frequenza migliora. L'unico fattore limitante della risoluzione in frequenza che è possibile ottenere è il tempo di osservazione totale che si ha dal segnale.

Allo stesso tempo, tuttavia, diminuisce la capacità di risolvere una funzionalità localizzata nel tempo. Un modo intuitivo di pensarci è quello di visualizzare la FFT come una complessa conversione verso il basso seguita da un'operazione di integrazione e scaricamento:

X[k]=n=0N1(x[n]ej2πnkN)

x[n]2πnkNNx[n]N

Hai anche ragione sul fatto che aumentare la lunghezza della FFT richiede più calcoli, il che potrebbe essere rilevante per le applicazioni in tempo reale.

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.