He intentado buscar en Google y wikipedia, pero no he recibido ninguna respuesta más allá de "es porque la frecuencia de la señal de entrada se encuentra entre dos contenedores".
Entiendo que esta es la razón, pero lo que no puedo entender es por qué la fuga parece extenderse a varios contenedores adyacentes en lugar de a uno solo.
Para ilustrar de lo que estoy hablando, aquí hay algunos datos simulados (código al final de la publicación):
Arriba está el espectro FFT (trazado en una escala logarítmica) de una onda sinusoidal de frecuencia 10. La frecuencia de muestreo es uno y el número de muestras es 100. El gráfico se ha desplazado FFT. Claramente, solo hay un pico en el contenedor 10, y el resto está en el orden del error numérico, o alrededor.
Este es el espectro de frecuencia a una frecuencia generada de 10.1. Claramente, hay una "fuga" en más contenedores que solo el contenedor adyacente.
Este es el gráfico para una frecuencia de 10.5.
Pregunta: ¿Por qué existe esta fuga y por qué se extiende a todos los otros contenedores, en lugar del contenedor adyacente inmediato?
Código, para cualquier persona interesada (código Python)
import numpy as np
import matplotlib.pyplot as plt
xFreq = 10.5
xSize = 100.0
xPeriod = xSize/xFreq
x = np.linspace(1,xSize,xSize)
data = np.sin(2*np.pi*x/xPeriod)
fft = np.fft.fft(data)
fft = np.fft.fftshift(fft)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(abs(fft), "o")
ax.set_yscale('log')
plt.show()
Cambié el xFreq
valor de 10.0
a 10.5
, etc.
fuente
Respuestas:
Una FFT tiene una longitud finita y, por lo tanto, constituye una ventana rectangular predeterminada en un flujo de datos. Una ventana en el dominio del tiempo da como resultado una convolución en el dominio de la frecuencia con la transformación de la ventana. Tenga en cuenta que la transformación de una ventana rectangular es una función Sinc (sin (x) / x), que tiene un ancho infinito. No son solo 2 contenedores de ancho. Por lo tanto, las ondas de la función Sinc aparecerán como "fugas" lejos de cualquier pico espectral que no sea perfectamente periódico en la longitud de la FFT.
La siguiente imagen muestra parte de la respuesta de frecuencia de la función sinc. Cuando el tono se centra en uno de los contenedores, todos los otros puntos se alinean con los nulos en la respuesta de frecuencia. Si no está centrado en un contenedor, entonces es como cambiar toda la respuesta de frecuencia, lo que hace que los otros contenedores caigan en porciones no nulas de la respuesta de frecuencia.
Otra forma de verlo es que un FFT es solo un banco de filtros, donde cada piso de la banda de detención del filtro tiene muchas ondulaciones, y ciertamente no tiene una atenuación infinita a más de 1 bin de la frecuencia central. Algunas ventanas (von Hann, etc.) que no sean rectangulares tienen bandas de detención más bajas, lo cual es una razón para su uso popular.
fuente
hotpaw2
La respuesta es buena, pero me gustaría explicar un poco eluser5133
comentario:y al mismo tiempo responde la pregunta también. Tenga en cuenta que soy un experto experto en este campo --- no dude en comentar, corregir o confirmar.
Pero la transformación de Fourier de un producto es la convolución de las transformadas de Fourier:
fuente