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á 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)$$

Entoces, 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.

Plot for DFT amplitudes showing the symmetry around T/2 and period 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} \}$:

input sample data fourier transform 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}$$

sample-data-IDFT-A0--plot

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)$$

sample-data-IDFT-A1-original-scale--plotsample-data-IDFT-A1--plot

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)$$

sample-data-IDFT-A2-original-scale--plotsample-data-IDFT-A2--plot

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)$$

sample-data-IDFT-A8-original-scale--plot

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.
DFT-Data-table

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).
Fourier-icon-NumXL-Tab

El asistente DFT aparece.

DFT-Wizard-general-tab

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

Nota:

  1. 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":

DFT-Wizard-options-tab

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”.

DFT-Wizard-missing-values-tab

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.

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

DFT-output-table

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.

IDFT-output-table

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.

 

Ver También

 

¿Tiene más preguntas? Enviar una solicitud

0 Comentarios