¿Por qué una ventana más estrecha en una transformada de Fourier o STFT da una resolución de baja frecuencia?

7

En teoría, FT (Transformada de Fourier) y STFT (Transformada de Fourier de tiempo corto) se dice que "Una ventana amplia ofrece una mejor resolución de frecuencia pero una resolución de tiempo deficiente. Una ventana más estrecha ofrece una buena resolución de tiempo pero una resolución de frecuencia deficiente"

¿Alguien puede explicar por qué una ventana más estrecha da una resolución de baja frecuencia?

Nrupatunga
fuente

Respuestas:

4

Las otras respuestas son buenas, pero pensé que trataría de dar una respuesta más intuitiva / visual ya que soy un tipo intuitivo / visual.

La siguiente imagen es la trama de dos tonos que son casi la misma frecuencia. Un tono se traza en rojo y el otro en azul.

Ventana corta

Generé la imagen en Matlab con el siguiente código:

tone1 = sin(2*pi*.05 * (0:99));
tone2 = sin(2*pi*.0501 * (0:99));
plot(tone1)
hold on
plot(tone2, 'r')

Como puede ver tanto en la imagen como en el código, los dos tonos tienen una frecuencia muy cercana. Están comenzando a separarse un poco hacia el final de esta breve ventana, pero siguen siendo muy similares, hasta el punto en que un DFT no podría distinguirlos.

Si creo los mismos tonos con las mismas frecuencias, solo hago que la ventana sea más larga (5000 muestras esta vez en lugar de 100) obtenemos una imagen muy diferente. Obviamente habrá más ciclos en cada tono ...

Ventana larga

... pero esa no es la parte interesante. Vemos la parte interesante cuando hacemos zoom al final de la ventana.

Zoom de ventana larga

Vemos que los dos tonos están desfasados ​​180 grados al final de la ventana, lo que los hace muy fáciles de distinguir. Entonces, ¿cómo supe elegir 5000 muestras? La diferencia en los dos tonos es.0002πrunareyounanortessunametropagslmi, entonces 5000 muestras .0002πrunareyounanortessunametropagslmi=π radianes

Como se mencionó en otra respuesta, la resolución del DFT es la frecuencia de la muestra dividida por el número de muestras (es decir, la longitud de la ventana). Implícitamente hice la frecuencia de muestra 1, así que si dividimos 1 por 5000 (el número de muestras), obtenemos que la resolución es .0002 Hz. Nuestros tonos en realidad difieren en .0001 Hz, lo que significa que el tono2 tendrá energía tanto en el contenedor del tono1 como en el contenedor al lado (y un poco en todos los demás también, pero esa es una historia diferente).

Jim Clay
fuente
3

Al calcular la resolución de frecuencia, o el ancho del depósito, de un DFT, la fórmula es la siguiente:

frequency_resolution = sample_rate/fft_size

Supongamos que tiene una señal de audio de frecuencia de muestreo de 8000 Hz, pero desea una resolución de frecuencia realmente alta. Solo tiene 8000 muestras por un segundo, pero desea tomar una FFT de 32K para obtener una resolución de frecuencia realmente alta. Cuando toma una FFT de 32K de una secuencia de 8000 muestras, necesita rellenar la secuencia con una tonelada de ceros para llenar la FFT. Al hacer esto, no hay un valor agregado, por lo que si bien obtiene una alta resolución en el dominio de la frecuencia, no hay suficiente soporte de muestra, por lo que solo se trata de datos interpolados. El gráfico de dominio de frecuencia es suave e interpolado.

Ahora digamos que tiene muchos datos, pero muchos datos toman tiempo para llenar el registro FFT. Digamos que su frecuencia de muestreo es 8000, pero desea una resolución realmente alta y la va a esperar. Esperas 4 segundos para llenar esa 32K FFT. Ahora, cuando tomas esa FFT, no hay relleno adicional de ceros para llenarla. Entonces, cuando miras el gráfico, esos contenedores no están interpolados, sino que están respaldados por una gran cantidad de datos porque lo esperaste.

Esa es la diferencia. Cuando tiene una FFT larga con poco soporte de muestra, obtiene datos interpolados. Así que esa es la compensación de frecuencia de tiempo del que hablas. Si desea una resolución alta, necesita datos que la respalden.

porten
fuente