Transformada Discreta de Fourier (DFT)

Este es el primer tutorial en nuestra serie en curso sobre el análisis espectral de series de tiempo. En esta entrada, vamos a examinar de cerca la transformada de Fourier discreta (más conocida como DFT) y su inversa, así como los datos de filtrado usando salidas DFT. La DFT es básicamente una transformación matemática y puede ser un poco seco, pero esperamos que este tutorial le deje a usted una comprensión más profunda y una intuición a través del uso de las funciones y asistentes NumXL.

En las futuras entradas, vamos a dedicar más tiempo a los filtros de datos discretos, su construcción, y por supuesto, la aplicación.

Antecedentes

Usted ocasionalmente ha transformado probablemente sus datos para estabilizar la varianza (Por ejemplo. Transformación de logaritmo) o para mejorar la distribución de los valores en los datos de la muestra.

$$x_t=\{ x_1,x_2, \cdots , x_T \}$$ $$y_t=\log(x_t)$$ $$y_t=\{y_1,y_2, \cdots , y_T\}$$

En Matemáticas, la trasnformada discreta de Fourier (DFT) convierte una lista finita de muestras igualmente espaciadas de una función en una lista de coeficientes de una combinación finita de sinusoides complejas, ordenado por sus frecuencias, que tienen los mismos valores de la muestra. DFT convierte la función de la muestra a partir de su dominio original (a menudo el tiempo o la posición a lo largo de una línea) al dominio de la frecuencia.

En suma, la transformada de Fourier tiene las siguientes propiedades:

  1. Los datos transformados ya no están en el dominio del tiempo.
  2. La transformación opera en todo el conjunto de datos. No es una transformación de punto por punto, como hemos visto con las transformaciones anteriores en el dominio del tiempo.
  3. $$x_t=\{ x_1,x_2, \cdots , x_T \}$$ $$ Y= \mathcal{F}(\{ x_1,x_2, \cdots , x_T \})$$ $$Y=\{ y_1,y_2, \cdots , x_k \}$$ $$\{ x_1,x_2, \cdots , x_T \} = \mathcal{F}^{-1}(\{ y_1,y_2, \cdots , x_k \})$$
  4. Los datos transformados están complejos (no valorados realmente).

Qué es DFT?

En palabras sencillas, la transforamada discreta de Fourier descompone la serie de tiempo de entrada en un conjunto de funciones de coseno.

$$x_m=\frac{1}{N}\sum_{k=1}^N A_k \times \cos(\phi_k+k\times \omega \times m)$$

Entonces, usted puede pensar que la k-ésima salida de DFT como el $A_k \angle \phi_k$. El $A_k$ que se conoce como la amplitud, y la $\phi_k$ como la fase (en radianes).

La serie de tiempo de entrada puede expresarse ahora, ya sea como un tiempo de secuencia de valores, o como una frecuencia de secuencia de $[A_k \angle \phi_k]$. pares. Conociendo el conjunto de $[A_k \angle \phi_k]$, nosotros podemos recuperar las entradas exactas de las series de tiempo.

Qué es $\omega$?

$\omega$ es el fundamental o la frecuencia del radian principal. IT se expresa de la siguiente manera:

$\omega = \frac{2\pi}{T}$

Donde:

  • T es el número de observaciones en la serie de tiempo de entrada igualmente espaciadas.

Qué es N?

N es el número de $[A_k \angle \phi_k]$ pares que necesitamos, por lo que podemos recuperar la serie original de tiempo de entrada con un valor piso de $\frac{T}{2}$.

Tenga en cuenta que el componente de frecuencia cero (es decir, $k = 0$) es siempre un valor real, y en el caso de series de tiempo de un tamaño equitativo, el último componente de frecuencia es también un verdadero valor, lo que trae el número total de valores (amplitud y fase) a T. No hay ganancia o pérdida de información o almacenamiento requerido debido a esta transformación.

$$A_k \angle \phi_{T-k} = A_k \angle -\phi_k$$ $$A_k \angle \phi_{T+k} = A_k \angle \phi_k$$

En esencia, solo se necesitan los valores del primer componente de frecuencia $\left \lfloor \frac{T}{2} \right \rfloor$, mientras el resto pueden ser implícitos de ellos. Por otra parte, los valores de la DFT son periódicas con una duración de ciclo de T.

This is a sample plot for the amplitudes of a Discrete Fourier Transform (DFT). The plot demonstrates the symmetry around T/2 and periodicity with length equal to T.

¿Por qué se descomponen los datos de series de tiempo en una serie de funciones coseno?

Considere las siguientes series de tiempo $\{x_1, x_2, \cdots , x_{25} \}$:

A plot of the input sample data we are using in the Discrete Fourier Transform (DFT) demonstration.

Ahora, vamos a calcular las series de tiempo usando un subconjunto de la secuencia de frecuencias:

Caso 1: Usando el componente de frecuancia cero

Usando el componente de frecuencia cero:

$$x_m^{(0)}= \frac{A_o}{T}=\frac{A_o}{25}$$

This plot shows the original time series along with the zero-frequency component of the Discrete Fourier Transform (DFT).

Usando la frecuencia cero, obtenemos el promedio a largo plazo de las series de tiempo.

Case 2: Usando primero el componente de frecuencia ($k=1$)

$$x_m^{(0)}= \frac{A_o}{T}$$

$$\omega = \frac{2\pi}{T}$$

$$x_m^{(1)}= \frac{1}{T} (A_o + A_1 \cos (\phi_1+\omega \times m)= x_m^{(0)} + \frac{A_1}{T}\cos (\phi_1+\omega \times m)$$

This plot shows the original time series along with the first two components (zero and one) of the Discrete Fourier Transform (DFT).

This plot shows the original time series (Left-hand-side axis) along with the first two components (zero and one) of the Discrete Fourier Transform (DFT) using right-hand-side (RHS) axis.

Tenga en cuenta que el gráfico de la derecha es esencialmente el mismo que el de la izquierda, pero con trazado utilizando la escala del eje de la mano derecha.

Caso 3: Usando primer y segundo componente de frecuencia ($k=2$)

$$x_m^{(0)}= \frac{A_o}{T}=\frac{A_o}{25}$$

$$\omega = \frac{2\pi}{T}$$

$$x_m^{(1)}= \frac{1}{T} (A_o + A_1 \cos (\phi_1+\omega \times m)= x_m^{(0)} + \frac{A_1}{T}\cos (\phi_1+\omega \times m)$$

$$x_m^{(2)}= \frac{1}{T} (A_o + A_1 \cos (\phi_1+\omega \times m ) + A_2 \cos (\phi_2+ 2\omega \times m ))$$

$$x_m^{(2)} = x_m^{(1)} + \frac{A_2}{T}\cos (\phi_2 + 2 \omega \times m)$$

This plot shows the original time series along with the first three components of the Discrete Fourier Transform (DFT).

This plot shows the original time series (Left-hand-side axis) along with the first three components of the Discrete Fourier Transform (DFT) using right-hand-side (RHS) axis.

Nota, $x_m^{(2)}$ está más cerca a la serie de tiempo original que $x_m^{(1)}$ debido ala función de coseno adicional, pero $x_m^{(1)}$ es más suave.

En esencia, el proceso de recuperación de la serie de tiempo original del subconjunto es similar al suavizado de series de tiempo, pero sin el inconveniente del efecto de retraso o lag.

Case 4: Uso de los 8 primeros componentes de frecuencia ($k=8$)

$$x_m^{(0)}= \frac{A_o}{T}$$

$$x_m^{(1)}= x_m^{(0)} + \frac{A_1}{T}\cos (\phi_1+\omega \times m)$$

$$x_m^{(2)}= x_m^{(1)} + \frac{A_2}{T}\cos (\phi_2+ 2 \omega \times m)$$

$$x_m^{(3)}= x_m^{(2)} + \frac{A_3}{T}\cos (\phi_3+ 3 \omega \times m)$$

$$\cdots$$

$$x_m^{(8)}= x_m^{(7)} + \frac{A_8}{T}\cos (\phi_8+ 8 \omega \times m)$$

This plot shows the original time series along with the first eight components of the Discrete Fourier Transform (DFT).

En resumen, por la descomposición de las series de tiempo de entrada en funciones coseno, podemos separar el componente (s) atribuido al ruido (alta frecuencia), descubrir la periodicidad, y encontrar un valor a largo plazo para el proceso.

Proceso

En primer lugar, vamos a organizar nuestros datos de entrada. Podemos empezar por la colocación de los valores de los datos de la muestra en una columna separada.

The figure show the layout of input time series table in Excel for the Discrete Fourier Transform.

Ahora estamos listos para construir nuestra tabla de salida DFT. Primero, selecccione la celda vacía en su hoja de cálculo donde usted desee que la tabla de salida sea generada, luego busque y de clic en el icono de la tabla de herramientas de NumXL (o toolbar).

The figure shows the location of the Discrete Fourier Transform (DFT) icon on the NumXL Toolbar.

El asistente DFT aparece.

The figure show the Discrete Fourier Transform wizard (or Dialog) of NumXL Pro.

Selecciona el rango de celdas para los valores de las variables de entrada.

Nota:

Por defecto, el rango de celdas de la tabla se establece en la celda seleccionada actual en su hoja de cálculo.

Finalmente, una vez que se seleccionan los datos de entrada del rango de celdas (X), las tabulaciones “Opciones” y “Valores Faltantes” comienzan a estar disponibles (habilitadas).

A continuación, seleccione el tabulador o pestaña "Opciones":

The figure shows the different output options supported in the Discrete Fourier Transform implementation in NumXL.

Inicialmente, el tabulador es fijado para los siguientes valores:

  • Salida de componentes de frecuencia" está marcada. Deje esta opción marcada.
    • Se comprueban las opciones de amplitud y fase. Dejar esas opciones marcadas también.
    • El número de componentes se corresponde con el tamaño de la tabla de salida. Establecer este valor en cinco (5) para generar los primeros cinco componentes de frecuencia.
  • En el lado derecho, "Entrada Salida Variable" no está marcada. Marque esta opción para generar de nuevo la serie de tiempo de entrada usando un subconjunto de los componentes de frecuencia.
    • Bajo “No. de Componentes”, fije este valor a 4. Usted puede cambiar este valor más tarde en la tabla de salida.

Ahora, de clic en el tabulador de “Valores Faltantes”.

The figure shows the different options supported  in NumXL for handling missing input values in the Discrete Fourier Transform.

En este tabulador, usted puede seleccionar un enfoque para manejar los valores perdidos en la serie de datos (X’s). Por defecto, el asistente o wizard DFT no permite ningún valor faltante en el análisis.

Este tratamiento es un buen enfoque para nuestro análisis, así que vamos a dejarlo sin cambios.

Salida

Ahora, de clic en “OK” para generar las tablas de salida.

The figure shows the generated output table of the Discrete Fourier Transform (DFT) in Microsoft Excel.

En la primera tabla (a la izquierda), esta muestra la amplitud y fase (en radianes) para diferenctes componentes de frecuencia (es decir. funciones coseno). Dese cuenta que el componente cero tiene fase cero.

En la segunda tabla, se lleva a cabo la transformada inversa de Fourier usando un subconjunto de las frecuencias.

The figure shows the fitted output values using the first five(5) components of the Discrete Fourier Transform (DFT). Note that user can override this value, by entering a new one.

Si usted desea cambiar el número de componentes, simplemente modifique el número de celdas en la tabla y los valores bajo el título "Ajustados" serán recalculados.

Conclusión

En este tutorial, hemos presentado la interpretación de la transformada de Fourier discreta (DFT) y su inversa (IDTF), así como el proceso para llevar a cabo el cálculo en Excel relacionada con el uso de las funciones adicionales de NumXL.

¿A dónde vamos desde aquí?

Utilizando DFT, hemos construido una representación de fórmula analítica para la serie de tiempo de entrada.

Una aplicación directa que podemos pensar es calcular los valores de la nueva observación intermedia, o para alterar la frecuencia de muestreo (es decir, hasta la muestra) e introducir una nueva serie de tiempo.

Pero ¿qué pasa con los valores que faltan? ¿Qué pasa si no tenemos una tasa de muestreo fijo? Los diferentes tipos de transformadas de Fourier están disponibles (por ejemplo, el tiempo no uniforme transformada discreta de Fourier (DFT-NUT)) para manejar series de tiempo de entrada no-igualmente espaciados, el cual genera un conjunto discreto finito de frecuencias.Esto demostrará ser útil para imputar los valores intermedios que faltan utilizando la dinámica de todo el conjunto de datos, en lugar de observaciones adyacentes, como es el caso en la interpolación o métodos de puente de Gauss.

El espectro de series de tiempo contiene una cantidad significativa de información, que apenas hemos arañado en este tutorial. En la próxima entrada, vamos a ver la definición del filtro discreto (operador) en el tiempo y dominio de la frecuencia, y su aplicación al análisis de nuestra serie de tiempo/modelado.

  Archivos adjuntos

Comentarios

Inicie sesión para dejar un comentario.

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 5 de 7