Blog

Spectrum Function

Afortunadamente, hoy en día se ha convertido en habitual que los técnicos de sonido utilicen herramientas de medición y análisis para desarrollar sus diseños o ajustes. Obtener la repuesta en frecuencia de un sistema, comparar respuestas de fase o visualizar la respuesta impulsional de una sala está al alcance de la mano para cualquier profesional del audio. Obtenemos datos que nos ayudan a tomar decisiones, pero en muchas ocasiones desconocemos como éstos son tomados y cuáles son sus limitaciones. En este artículo estudiaremos como a partir de la transformada de Fourier, en nuestro caso la discreta, convertimos la información temporal de una señal en sus correspondiente respuesta espectral.

Today it has become common for sound technicians use measurement and analysis tools to develop their designs or settings. Get the frequency response of a system, comparing phase response or display the impulse response of a room is to reach for any professional audio. We obtain data that help us make decisions, but often do not know as they are taken and what their limitations are. This article will look like from the Fourier transform, we convert the time information of a signal at their corresponding spectral response.

La Transformada Discreta de Fourier/ Discrete Fourier Transform

Esta es la ecuación más importante que debemos conocer si estamos interesados en profundizar en el conocimiento del análisis en el dominio discreto.

This is the most important equation that we must know if we are interested in understanding the analysis in the discrete domain.

1

Donde n = índice temporal discreto (muestras), k = índice discreto en frecuencia, N = tamaño de la DFT y x[n] = la señal de entrada, nuestra serie de entrada de muestras discretas. En la ecuación podemos observar como multiplicamos cada muestra de la señal por una exponencial compleja. Es decir, a partir de la DFT encontramos la cantidad de sinusoides complejas que contiene la señal que estamos analizando.

Where n = discrete index (samples), k = frequency index, N = DFT size ans x[n] = input signal. In the equation we can see how we multiply each sample of the signal by a complex exponential. That is, from the DFT find the number of complex sinusoids containing the signal being analyzed.

Veamos un ejemplo, la señal de entrada es un sonido de flauta, y analizamos una porción de 512 muestras:

An example, the input signal is a flute, and we analyzed 512 samples:

 

DFT (Harmonic signal)

Si nos fijamos detalladamente en el gráfico podemos observar como la señal temporal es cortada en 512 muestras y en su respuesta espectral solamente visualizamos 257 muestras, la mitad del tamaño de la DFT que hemos usado (512) y la frecuencia cero, es decir hemos graficado la parte positiva de la respuesta. Explicaremos esto con más detalle en breve.

When viewing the graph we can see how the time signal is cut into 512 samples andfrom the spectral response we only visualize 257 samples, half the size of the DFT (512) and zero frequency, we only visualize the positive part of the response . We will explain this in more detail shortly.

En el gráfico de la respuesta espectral podemos visualizar claramente las frecuencias que forman la señal, y como el gráfico se muestra en escala lineal, comprobamos que se trata de una señal armónica.

In the graph we visualize the spectral response frequencies that are present in the signal. The horizontal axis is in linear scale, we see that is a harmonic signal.

Exponencial Compleja / Complex Exponential

Al aplicar la DFT la señal de entrada se ve multiplicada por una serie de exponenciales complejas, ondas sinusoidales complejas, que son la base de la DFT. Es decir, son los componentes que vamos a buscar y medir de nuestra señal de entrada.

Apply the DFT means that our input signal is multiplied by a serie of complex exponential, exponential sine waves, which are the basis of the DFT. These complex sinusoids are the components that are going to search and measure of the input signal.

Como ya hemos comentado en varios artículos anteriores, una exponencial compleja está formada por una parte real y otra imaginaria y que la identidad de Euler nos permite descomponerla en un coseno y en un seno:

A complex exponential is formed by a real and an imaginary part and Euler’s identity allows us to decompose a cosine and a sine:

34Complex Signal

Supongamos que analizamos un fragmento de 16 muestras de una señal de audio, entonces podemos localizar 16 sinusoides complejas:

If we analyze only 16 samples of an audio signal, then we can only find 16 complex sinusoids:

5Basis functions (DFT)

 Si nos fijamos en detalle en el gráfico, vemos que la frecuencia 0 equivale al componente DC de la señal y a partir de ahí cada incremento equivale a un periodo más, es decir, para k=1 tenemos un ciclo de un coseno (parte real) y un ciclo de un seno (parte imaginaria), k=2, 2 ciclos y así sucesivamente hasta llegar a K=8 donde se invierte el resultado y disminuye un ciclo a medida que aumenta el valor de la sinusoide. También se puede observar la simetría.

If you look in detail at the graph we see that the frequency 0 is the DC component of the signal and each increment equivalent to a period more, that is, for k = 1 we have a cycle of a cosine (real part) and a cycle a sine (imaginary part), k = 2, 2 cycles, etc., when we arrive to K = 8 the cycle reverses and decreases with increasing the value of the sinusoid. You can observe symmetry.

Qué quiere decir esto?, pues que si calculamos la DFT a un fragmento de una señal de 16 muestras, éstas son las sinusoides que vamos a poder localizar.

What does this mean? If we calculate the FFT of 16 samples of the signal, these are sinusoids that we will be able to find.

A medida que aumentamos el tamaño del fragmento a analizar mayor numero de sinusoides podremos localizar, lo que significa que vamos a poder obtener una mayor resolución frecuencial.

The larger the size of the fragment to be analyzed largest number of sinusoids can find, which means we will be able to obtain a higher frequency resolution.

Calculemos la DFT de 128 muestras para una sinusoide compleja de 16 ciclos:

We calculate the DFT of 128 samples for a complex sinusoid of 16 cycles:

6DFT (Complex signal)

Al aplicar la transformada de una señal que coincide con una de las sinusoidales que son base de la DFT, el resultado nos muestra que el contenido en frecuencia es cero para todos los componentes excepto para dicha frecuencia cuya amplitud es 128, que coincide con el tamaño de la DFT. Podemos definir la DFT como la proyección de la señal en un conjunto finito de sinusoidales complejas. Así somos capaces de identificar cuánto de estas sinusoides están presentes en la señal.

When applying the DFT of a signal that matches a sine, which are basis of DFT, the result shows that all frequencies are zero except for the frequency of the input signal, whose amplitude is 128, which coincides with the DFT size. DFT can be defined as the projection of the signal in a finite set of complex sine waves. So we are able to identify how these sinusoids are present in the signal.

Veamos el mismo ejemplo en Smaart V7, evidentemente Smaart normaliza el resultado de amplitud, dividiendo por el tamaño de la DFT:

Consider the same example in Smaart V7. Smaart normalizes the amplitude by dividing by the size of the DFT:

7Spectrum response (Smaart V7)

En este ejemplo, la señal de entrada coincide con una de las frecuencias exactas que la DFT puede localizar, pero esto no es lo habitual, lo habitual es que los componentes de la señal de entrada no coincidan con un múltiplo exacto de la frecuencia de resolución.

In this example, the input signal is a frequency of the DFT, but this is not common, it is usual that the component of the input signal does not match an exact multiple of the frequency resolution.

Recordemos que la frecuencia de resolución de un analizador depende de la frecuencia de muestreo y el tamaño de la DFT:

Recall that the frequency resolution depends on the sampling frequency and the size of the DFT:

9Para los ejemplos estamos tomando las frecuencias normalizadas, pero en cualquier momento podemos conocer el valor de la frecuencia aplicando la siguiente sustitución:

For these examples we’re taking the normalized frequencies, but anytime we can know the value of the frequency in Hz using the following substitution:

10Veamos qué ocurre al aplicar el mismo tamaño de DFT que el ejemplo anterior pero para una señal de entrada de 15.5 ciclos:

Let us see what happens when you apply the same DFT size as the previous example but for an input signal of 15.5 cycles:

11DFT (Complex signal)

15.5 periodos no corresponde a un valor entero, es decir, no tenemos una señal que tenga un número de periodos entero dentro de las 128 muestras que estamos analizando. Si observamos con atención el gráfico, podemos comprobar que todos los valores de frecuencia son positivos, y la mayor amplitud se centra alrededor de 15.5. En este caso el valor para la muestra 15 y 16 tienen la misma amplitud. El analizador no puede mostrar correctamente el valor de la señal de entrada y reparte la amplitud entre los valores más próximos:

15.5 periods does not correspond to an integer value, that is, the signal has not an integer number of periods within the 128 samples. If we look carefully at the graph we can see that all the frequency values are positive, and the widest is around 15.5. In this case the value for the sample 15 and 16 have the same amplitude. The analyzer cannot properly display the value of the input signal amplitude and distributed between the nearest values:

12Spectrum Response (Smaart V7)

Podemos observar el mismo efecto en la respuesta de Smaart V7, pero debemos tener en cuenta que Smaart muestra el eje de ordenadas como 20 veces el logaritmo en base 10 del valor absoluto de la respuesta espectral.

We can see the same effect in the response of Smaart V7, but Smaart shows the vertical axis as 20 times the base 10 logarithm of the absolute value of the spectral response.

Señales Reales / Real signals

En el anterior apartado hemos visto cómo un analizador nos muestra aplicando la DFT el contenido de sinusoides complejas que están presentes en la señal, pero en el mundo real nosotros no nos encontramos con señales complejas, sino que manipulamos y analizamos señales reales.

In the previous section we have seen how the analyzer show us the complex sinusoids that are present in the signal, but in the real world we do not find complex signals, we manipulate and analyze real signals.

Entonces cómo podemos realizar la DFT de una señal real?. Sabemos por la identidad de Euler que cualquier sinusoide real se puede expresar como la suma de dos sinusoides complejas:

How can we make the DFT of a real signal? We know from the identity of Euler that any real sinusoid can be expressed as the sum of two complex sinusoids:

13Por lo tanto, si aplicamos la DFT a una señal real, aplicamos el mismo procedimiento que en el apartado anterior, pero en este caso podemos expresar la DFT de esta suma de dos exponenciales complejas como la DFT de cada sinusoide individual, es decir, el resultado es básicamente 2 DFTs, una de frecuencia positiva y otra de frecuencia negativa:

Therefore, if we apply the DFT to a real signal, we use the same method as in the previous section, but in this case we can express the DFT of the sum of two exponential complex as the DFT of each individual sinusoid, i.e. the result is basically 2 DFTs a positive and negative frequency:

14DFT (Real signal)

Como podemos observar en la medición aparecen dos frecuencias, una situada en la parte negativa y la otra en la parte positiva del espectro. La amplitud de ambas respuestas como sabemos por la ecuación de Euler corresponden a la mitad, en este caso 64 que es la mitad del tamaño de la DFT que hemos usado 128 muestras.

The response shows two frequencies, one located on the negative side and the other on the positive side of the spectrum. The amplitude of both responses as we know from the Euler equation correspond to half, in this case 64 which is half the size of the DFT (128 samples).

Por lo tanto, cuando analizamos en un analizador la respuesta al espectro de una señal, únicamente visualizamos la parte positiva del espectro y como valor de amplitud la suma de ambas respuestas:

Therefore, when we analyzed the spectral response of a signal, only we visualize the positive part of the spectrum and the amplitude value as the sum of two responses:

15Spectrum response (Positive frequencies)

 16Spectrum response (Smaart V7)

Del mismo modo que anteriormente, si la señal de entrada no coincide con un múltiplo de la frecuencia de resolución, el analizador no podrá mostrar correctamente la respuesta espectral:

Just as before, if the input signal does not match a multiple of the frequency resolution, the analyzer cannot properly display the spectral response:

17Frequency response (Real signal)

En este ejemplo, la frecuencia contiene 15.5 ciclos por lo tanto, podemos observar como aparecen dos frecuencias, parte positiva y negativa y como el analizador tiene que repartir la amplitud del valor de la señal entre los valores de frecuencia más cercanos.

In this example, the frequency contains 15.5 cycles, therefore, we can see two frequencies (positive and negative part). The analyzer has to divide the amplitude value of the signal between the frequency values closest.

Si visualizamos la respuesta únicamente en su parte positiva y su respuesta de amplitud en dB obtenemos la misma respuesta en ambos analizadores:

If we visualize the response only in its positive side and the amplitude in dB we obtain the same response in both analyzers:

18Positive Part

19Positive part (Smaart v7)

Como vemos en ambas respuestas, el resultado de la medición no es del todo correcto, a pesar que aproxima el valor de frecuencia a la señal analizada, no muestra correctamente la amplitud y nos muestra energía en frecuencias que no están presentes en la señal de entrada. Pero esto no es un problema del analizador, es una limitación al aplicar la DFT, para solucionarlo los analizadores deben trabajar con funciones de ventana para minimizar el error, hablaremos de ello en el próximo artículo.

As we see in both answers, the result of the measurement is not correct, although the analyzer approximates the frequency value, it cannot to show properly the amplitude and it shows frequencies that are not present in the input signal. But this is not a problem of the analyzer is a limitation to apply the DFT, to solve this the analyzers must work with window functions to minimize the error, we will discuss this in the next article.

Inverse DFT

Una de las grandes propiedades de la DFT es que es invertible, es decir, que podemos reconvertir la señal en el dominio temporal a partir de su respuesta espectral:

One of the great properties of the DFT is that it is inverted, that is, we can convert the signal in the time domain from its spectral response:

20

La operación es similar a la DFT, pero en este caso no multiplicamos por una exponencial negativa y normalizamos el resultado por la inversa del tamaño de la DFT.

The operation is similar to the DFT, but in this case is not multiplied by an exponential negative and the result is normalized by the inverse DFT size.

Aunque ambas ecuaciones son muy parecidas, conceptualmente son muy diferentes, mientras la DFT realiza el análisis de una señal, la IDFT realiza la síntesis, es decir, reconstruimos la señal a partir de su espectro.

Although both equations are very similar, they are conceptually very different, while the DFT performs the analysis of a signal, the IDFT makes the synthesis, ie we reconstruct the signal from its spectrum.

En el proceso de análisis al igual que mostramos la respuesta espectral también podríamos mostrar su respuesta de fase, pero para nosotros no es importante conocer la fase absoluta de una señal cuando analizamos sistemas, estamos interesados en conocer la fase relativa entre distintos elementos. Pero para la reconstrucción de una señal sí debemos tenerla en cuenta.

In the analysis process we can also obtain the phase response, but for us it is not important to know the absolute phase of a signal, when analyzing systems, we are interested in knowing the relative phase between different elements. But we need the phase to recover the signal.

Por otro lado, en el caso de señales reales no necesitamos conocer el espectro completo, como sabemos que éste es simétrico, es suficiente con utilizar la parte positiva del mismo y computar su conjugado.

As the result of the DFT of a real signal is symmetric, it is sufficient to use the positive part of the spectrum and calculate its conjugate to recover the signal.

21IDFT

Limitaciones de la DFT

Como hemos podido comprobar el tamaño de la DFT determina la frecuencia de resolución, aunque esto no es del todo cierto, como veremos en el siguiente articulo, depende del tamaño del fragmento analizado, o lo que es lo mismo del tamaño de ventana.

DFT size determines the frequency resolution, although this is not entirely true, as we shall see in the next article, depends on the size of the fragment analyzed, or what is the same size window.

En estos ejemplos estamos usando el mismo tamaño de DFT que de ventana, por lo tanto asumimos que son lo mismo. Que implica esto?, que no podemos analizar nada desde nuestro analizador que esté por debajo de la frecuencia de resolución.

In these examples we are using the same DFT and window size. What does this mean? We can not analyze anything from our analyzer that is below the frequency resolution.

Analicemos un ruido aleatorio / analyze random noise:

22DFT (lin & log)

Fijémonos, como al visualizar la escala de frecuencia en modo logarítmico, con un tamaño de DFT de 128 muestras y una frecuencia de muestreo de 48kHz no podemos visualizar nada por debajo de 375Hz.

When we visualize the logarithmic frequency scale mode, with a DFT size of 128 samples and a sampling frequency of 48kHz we cannot see anything below 375Hz.

Nuestros analizadores utilizan estos cálculos para obtener los datos en frecuencia, pero en su implementación rápida, la transformada rápida de Fourier (FFT), que permite, siempre y cuando el tamaño de la DFT sea una potencia de 2, reducir el numero total de cálculos de N2 a N log2N .

Our analyzers use these calculations to obtain the data in frequency but in fast implementation, the Fast Fourier Transform (FFT), which allows, as long as the DFT size is a power of 2, reducing the total number of calculations from N2 to N log2N.

Bibliografía

Audio signal Processing for music aplications, Coursera, Stanford and UPF University, https://class.coursera.org

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