Blog

Analysis window (Part I)

Las funciones de ventana realizan un papel fundamental en el análisis dentro del dominio discreto, existen infinidad de ellas, probablemente una para casi cualquier situación. En este artículo nos centraremos en las más utilizadas dentro del  análisis de audio, estudiando sus respuestas y limitaciones. Sin el uso de ventanas no podríamos analizar, cada ventana tiene sus características propias y entenderlas significa aprovecharlas.

Window functions perform a key role in the discrete domain analysis, there are plenty of them, probably for almost any situation. In this article we focus on the most used in the audio analysis, studying their responses and limitations. Without windows we could not analyze, each window has its own characteristics and understand them  mean to take advantage of them.

Short-Time Fourier Transform (STFT)

La ecuación de la STFT es básicamente una versión modificada de la Discrete Fourier Transform (DFT) pero con algunas diferencias:

The STFT equation is basically a modified version of the Discrete Fourier Transform (DFT) but with some differences:

1

Cada fragmento de la señal de entrada se ve multiplicada por una ventana de análisis (w), donde (l) es el índice del fragmento de la señal analizada. A diferencia del anterior artículo donde analizábamos un único fragmento de la señal, en esta ocasión, la señal de entrada varía en el tiempo, por lo tanto, iteramos sobre trozos de la señal variables en el tiempo. El tamaño del Hopsize determina cuantas muestras de cada fragmento están presentes en la siguiente iteración del análisis.

Each fragment of the input signal is multiplied by an analysis window (w), where l is the index of the analyzed signal fragment. Unlike the previous article where we analyzed a single fragment of the signal, this time, the input signal varies over time, therefore, we iterate on pieces of the variables time signal. Hopsize size determines how many samples of each fragment are present in the next iteration of the analysis.

El tamaño de cada fragmento viene determinado por el tamaño de la ventana de análisis, es decir, cada fragmento es multiplicado, como veremos más adelante, por una función de ventana que nos permite minimizar el error en la medición. Podríamos definir la STFT como el cómputo de varias DFT en cascada y el resultado de la STFT como una secuencia de respuestas espectrales.

The size of each fragment is determined by the size of the analysis window, that is, each fragment is multiplied, as discussed below, by a window function that allows us to minimize measurement error. STFT could be defined as computing several DFT cascade and the result of the STFT as a sequence of spectral responses.

Si en el anterior articulo podíamos relacionar la DFT de un trozo de la señal como una fotografía, es decir, una imagen fija, la STFT la podemos relacionar con un video, es decir, una imagen en movimiento. En el siguiente gráfico podemos observar como enventanado trozos de la señal nos movemos a través de la señal de entrada, es decir, captamos trozos finitos de la señal para su análisis:

If in the above article we could relate the DFT as a photograph, ie, a still image signal, now we can relate the STFT with a video, ie, a moving image. In the graph below we can see that if windowing, we can move through the input signal. We capture finite pieces of the signal for analysis:

2Windows iteration

En el gráfico observamos en color negro la señal de entrada y en diferentes colores las diferentes ventanas, es decir, obtenemos la señal de entrada como la suma de sus fragmentos:

The black line is the input signal and colored lines the windows, that is, we obtain the input signal as the sum of its fragments:

3Signal & windowed signal

Transform Analysis Window

En el anterior artículo vimos como a través de la DFT únicamente éramos capaces de obtener la respuesta espectral de una señal si ésta era una de las sinusoides base de la DFT; Para cualquier otra señal el analizador nos mostraba su respuesta con un elevado margen de error:

In the previous article we saw through the DFT only we were able to obtain the spectral response of a signal if it was one of the sinusoidal basis of DFT; For any other signal analyzer shows a high measurement error:

4Spectrum of 2 sine waves

5Spectrum of 2 sine waves in Smaart V7

La señal de entrada que estamos analizando está formada por la suma de dos sinusoides, una que coincide con una función de base y otra que no. Podemos observar en el gráfico cómo la respuesta espectral nos muestra las dos frecuencias contenidas en la señal, pero una de ellas con un alto grado de error. Recordemos que visualizamos solamente la parte positiva del espectro ya que la parte negativa es simétrica.

The input signal under analysis is the sum of two sinusoids, one that coincides with a base function and the other not. We can see in the graph how the spectral response shows the two frequencies contained in the signal, but one with a high degree of error. Recall that we visualize only positive part of the spectrum because the negative part is symmetrical.

¿Cómo podemos solucionar el error en la medición? Para solucionar el error debemos enventanar la señal. Sin entrar en el desarrollo matemático se comprueba que cuando una sinusoide de entrada es multiplicada por una ventana de análisis su respuesta espectral es básicamente la respuesta espectral de la ventana. Veamos un ejemplo:

How can we fix the error in measure? To fix this error we must use an analysis window. Without going into the mathematical development it is found that when a sinusoidal input is multiplied by an analysis window it spectral response is basically the spectral response of the window. Here’s an example:

6Hann window

Claramente se observa como el espectro de una sinusoide enventada se corresponde al espectro de la ventana. Para este ejemplo y para mejorar la visualización hemos usado la técnica de zero-Padding, (hablaremos de este asunto en otro artículo) y por eso la gráfica de la señal temporal tiene 64 muestras (tamaño de la ventana) y la representación espectral tiene 1024 muestras (tamaño de la FFT).

The spectrum of a windowing sinusoid corresponds to the spectrum of the window. For this example and to improve visualization we have used the zero-padding technique, (we will talk about this in a future article). The graphic of the time signal has 64 samples (window size) and spectral representation is 1024 samples (FFT size).

Analysis window

Estudiemos en el siguiente apartado el comportamiento de las diferentes ventanas más usadas en el análisis de sistemas de audio.

In the next section we will study the behaviour of different windows most used in the audio systems analysis.

La ventana rectangular, en la mayoría de analizadores denominada “no window”, es básicamente un truncamiento de la señal, donde todos los valores que no están contenidos dentro de la ventana son cero y uno para todos los demás:

The rectangular window in most analyzers called “no window” is basically a signal truncation where all values that are not contained within the window are zero and one for everyone else.

7Rectangular window

Los dos parámetros más importantes para cada tipo de ventana son: la anchura del lóbulo principal (el pico central) y la amplitud de sus lóbulos secundarios, básicamente la amplitud del lóbulo secundario de mayor nivel. La ventana rectangular muestra una anchura muy estrecha en su lóbulo principal, pero la amplitud de sus lóbulos secundarios son muy elevados, es por ese motivo que el analizador muestra un elevado grado de error cuando no se utiliza ningún tipo de ventana.

The two most important parameters for each type of window are: the width of the main lobe (center peak) and the amplitude of its side lobes, basically the amplitude of secondary lobe higher level. The rectangular window shows a very narrow width in the main lobe, but the amplitude of its side lobes are very high, it is for this reason that the analyzer displays a high degree of error when we do not use a window.

La anchura del lóbulo principal de una ventana rectangular es de 2 bins (2 muestras en frecuencia) y la amplitud máxima de los lóbulos secundarios es de -13.3 dB. Hemos de tener en cuenta que para mejorar la visualización de los gráficos estamos usando zero-padding y en estos casos el numero de bins de amplitud es mayor, pero si usamos el mismo tamaño de FFT que de ventana la amplitud del lóbulo principal será de 2 bins.

The width of the main lobe of a rectangular window is 2 bins (2 samples in frequency) and the maximum amplitude of the side lobes is -13.3 dB. Just keep in mind that to improve the display of graphics we are using zero-padding and in these cases the number of bins amplitude is higher, but if we use the same FFT size and window size, the main lobe amplitude is 2 bins.

Posiblemente una de las ventanas más usadas en el análisis de audio es la ventana Hann, Smaart V7 utiliza Hann por defecto siempre que realicemos algún tipo de promedio o resolución.

Possibly one of the most used windows in the audio analysis is the Hann window. By default, Smaart V7 uses Hann window if we use some type of average or resolution.

8Hann window

Podemos observar como la ventana Hann muestra una anchura mayor que la ventana rectangular (4 bins) en su lóbulo principal, pero a cambio una amplitud menor en sus lóbulos secundarios (-31.5 dB).

We can see how the Hann window displays a bigger width than the rectangular window (4 bins) in the main lobe, but lower amplitude in its side lobes (-31.5 dB).

La ventana Hamming es muy similar a la ventana Hann pero con un pequeño escalón en sus laterales:

The Hamming window is very similar to the Hann window but with a small step on its side:

9Hamming window

La anchura del lóbulo principal es el mismo que el de la ventana Hann, 4 bins. Pero la amplitud de sus lóbulos laterales es menor -42.7 dB. También podemos observar como que a pesar de que la amplitud del lóbulo secundario es menor que el de la ventana Hann sus lóbulos secundarios no decrecen tan rápidamente.

The width of the main lobe is the same as the Hann window, 4 bins. The amplitude of the side lobes is -42.7 dB. But its side lobes do not decrease as fast as the Hann window.

La ventana Blackman es la suma de dos sinusoides: / The Blackman window is the sum of two sinusoids:

10Blackman window

La ventana Blackman genera una gran mejora en términos de la amplitud de los lóbulos secundarios (-58 dB), pero como sabemos, en audio nada es gratis, el precio a pagar es una mayor anchura del lóbulo principal, en este caso 6 bins.

The Blackman window is a great improvement in terms of the amplitude of the side lobes (-58 dB), but as we know, nothing is free in audio; the price to pay is a greater width of the main lobe, in this case 6 bins.

Finalmente, posiblemente la mejor ventana en términos de la amplitud de sus lóbulos secundarios, la ventana Blackman-Harris:

Finally, possibly the best window in terms of amplitude of its side lobes, the Blackman-Harris window:

11Blackman-Harris window

La amplitud de su lóbulo secundario es -92 dB, prácticamente podríamos decir que no tiene lóbulos secundarios, ya que en audio digital -92dB estaría por debajo del ruido de fondo para una cuantizacion de 16 bits. Pero la anchura de su lóbulo principal es de 8 bins, y esto tiene su efecto algorítmicamente, ya que debemos procesar más datos. Veremos esto más adelante.

The amplitude of the secondary lobe is -92 dB, we can say that virtually has no side lobes. In digital audio -92dB would be below the noise floor for a 16-bit quantization. The width of the main lobe is 8 bins, and this has its cost algorithmically, we are to process more data. We will see that later.

En todos los ejemplos anteriores hemos visualizado la respuesta espectral utilizando un tamaño mayor de FFT que de ventana. Pero es habitual en la mayoría de los analizadores utilizar el mismo tamaño para ambas funciones, como es el caso de Smaart v7:

In all examples, we have visualized the spectral response using a larger FFT size than window size. But it is common in most analyzers to use the same size for both functions, such as Smaart v7:

12windows in Matlab

13windows in Smaart v7

Claramente podemos observar las diferentes anchuras de sus lóbulos principales.

We can clearly see the different widths of the main lobes.

Para finalizar esta primera parte sobre las ventanas de análisis comparemos una señal de audio armónica utilizando diferentes tipos de ventana:

To finish this first part of the analysis windows we can see in the graph the different spectrum responses of a harmonic signal using different windows.

14Spectrum off different windows

Seguiremos desarrollando las virtudes y defectos de las ventanas de análisis en el próximo artículo.

We continue to develop the strengths and weaknesses of the analysis windows in the next article.

Bibliography:

Coursera, Audio signal processing for music applications, Chapter 4, Standford & UPF University, https://class.coursera.org

Este artículo tiene 3 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

En EducaSound no lo enseñamos, lo demostramos