¿Cuál es la resolución de frecuencia máxima para el espectrograma de implementación STFT de Matlab ()?

10

La spectrogram()función de Matlab calcula el STFT de una señal. Describe su NFFTargumento de la siguiente manera:

S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)especifica el número de puntos de frecuencia utilizados para calcular las transformadas discretas de Fourier. Si NFFTno se especifica, NFFTse usa el predeterminado .

¿Estoy en lo cierto en que NFFTes una compensación solo entre la resolución de frecuencia y el número de cálculos? Para mi trabajo fuera de línea, no hay necesidad de guardar ciclos. ¿Existe algún límite máximo NFFT, impuesto, por ejemplo, por una fuga espectral, o por cualquier otro problema que deba conocer, o puedo establecer ese argumento lo más alto posible?

Andreas
fuente

Respuestas:

5

La longitud de la FFT es una compensación entre la resolución de frecuencia y tiempo. Los espectrogramas a menudo se generan calculando FFT superpuestos en la señal de interés. Si alarga la FFT, el ancho de banda efectivo de cada bin de salida se reduce, por lo que la resolución a lo largo del eje de frecuencia mejora. El único factor limitante para la resolución de frecuencia que puede obtener es el tiempo total de observación que tiene de la señal.

Al mismo tiempo, sin embargo, su capacidad para resolver una característica que se localiza en el tiempo disminuye. Una forma intuitiva de pensar en esto es ver la FFT como una conversión descendente compleja seguida de una operación de integración y volcado:

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

x[n]2πnkNNx[n]N

También tiene razón en que aumentar la longitud de FFT requiere más cálculos, lo que podría ser relevante para aplicaciones en tiempo real.

Jason R
fuente