signal processing - que - ¿Para qué sirve la ventana de Hamming?
ventana hanning pdf (4)
Estoy trabajando con un código que hace una transformada de Fourier (para calcular el cepstrum de una muestra de audio). Antes de calcular la transformada de Fourier, aplica una ventana de Hamming a la muestra:
for(int i = 0; i < SEGMENTATION_LENGTH;i++){
timeDomain[i] = (float) (( 0.53836 - ( 0.46164 * Math.cos( TWOPI * (double)i / (double)( SEGMENTATION_LENGTH - 1 ) ) ) ) * frameBuffer[i]);
}
¿Por qué está haciendo esto? No puedo encontrar ninguna razón para hacer esto en el código, o en línea.
Con lo que sé sobre la investigación de sonido y rápida, parece que Hamming Window está aquí para minimizar el lóbulo lateral de la señal (radiación no deseada). Mejorando así la calidad o armónicos del sonido. También entiendo que este tipo de función de ventana encaja bien con DTFT.
Encontrará una buena explicación técnica en una página de investigación de stanford o wikipedia y también en un artículo de Harris si está listo para las matemáticas: D.
Cuando haces una transformada de Fourier finita, implícitamente la estás aplicando a una señal que se repite infinitamente. Entonces, por ejemplo, si el inicio y el final de su muestra finita no coinciden, entonces se verá como una discontinuidad en la señal, y se mostrará como un sinfín de alta frecuencia en la transformada de Fourier, lo cual no hace. Realmente quiero. Y si su muestra es una sinusoide hermosa, pero un número entero de períodos no se ajusta exactamente a la muestra finita, su FT mostrará energía apreciable en todo tipo de lugares que no se encuentren cerca de la frecuencia real. No quieres nada de eso.
Al enrollar los datos, se asegura de que los extremos coincidan manteniendo todo razonablemente suave; esto reduce en gran medida el tipo de "fuga espectral" descrita en el párrafo anterior.
El FT de un segmento de longitud finita de sinusoide convierte la transformada de Fourier de la ventana contra el pico de frecuencia del sinusoide, ya que una propiedad de la FFT es que la multiplicación de vectores en un dominio es la convolución en el otro. El FT de una ventana rectangular (que es lo que implica cualquier longitud finita no modificada de muestras en una FFT) es la función Sinc de apariencia desordenada que salpica cualquier señal que no sea exactamente periódica en la ventana en todo el espectro de frecuencias.
El FT de una ventana con forma de Hamming concentra esta "salpicadura" mucho más cerca del pico de frecuencia después de la convolución (que una función Sinc), lo que resulta en un pico de frecuencia más gordo pero suave, pero mucho menos salpicado a través de las frecuencias lejos del pico de frecuencia. Esto da como resultado no solo un espectro de aspecto más limpio, sino también una menor interferencia de frecuencias lejanas en cualquier señal de interés.
Esta interpretación (a diferencia de la interpretación de "repetición infinita") deja más claro por qué las ventanas de formas diferentes a las de Hamming pueden darle mejores resultados con menos "fugas". En particular, una ventana de Hamming reducirá el tamaño del primer lóbulo lateral Sinc de "fuga" justo al lado del pico de frecuencia a cambio de realmente más "fuga" (o salpicadura de convolución) lejos de la frecuencia de interés. Otras ventanas pueden ser más apropiadas si desea una compensación diferente. El artículo de Harris ( pdf aquí ) vinculado en otra respuesta anterior da varios ejemplos de estas diferentes ventanas.
Esta es una pregunta antigua, pero pensé que la respuesta podría mejorarse.
Imagina que la señal que quieres transformar a Fourier es una onda sinusoidal pura. En el dominio de la frecuencia, es de esperar que tenga un pico pronunciado solo en la frecuencia del seno. Sin embargo, si tomas la transformada de Fourier, tu buena punta afilada se reemplazará por algo como esto:
¿Porqué es eso? Las ondas sinusoidales reales se extienden hasta el infinito en ambas direcciones. Las computadoras no pueden realizar cálculos con un número infinito de puntos de datos, por lo que todas las señales se "cortan" en cada extremo. Esto causa la ondulación a ambos lados del pico que ves. La ventana de Hamming reduce esta ondulación, brindándole una idea más precisa del espectro de frecuencias de la señal original.
Más teoría, para los interesados: cuando corta su señal en cualquiera de los extremos, está multiplicando implícitamente su señal por una ventana cuadrada. La transformada de Fourier de una ventana cuadrada es la imagen de arriba, conocida como una función sinc. Cuando haces una transformación de Fourier en una computadora, te guste o no, siempre estás eligiendo una ventana. La ventana cuadrada es el valor predeterminado implícito, pero no es una opción muy buena. Hay una variedad de ventanas que las personas han creado, dependiendo de ciertas características que desee optimizar. La ventana de hamming es una de las estándar.