Este é o segundo tutorial de nossa série contínua sobre análise espectral de séries temporais. Nesta entrada, continuaremos nossa discussão sobre a transformada discreta de Fourier no Excel, sua interpretação e aplicação no domínio do tempo.
A DFT é basicamente uma transformação matemática e talvez seja um pouco árida, mas esperamos que este tutorial o deixe com um entendimento e uma intuição mais profundos por meio do uso de funções e assistentes do NumXL.
Histórico
Houve várias consultas desde que lançamos nosso primeiro post sobre DFT, especialmente sobre o uso dos componentes da DFT para representar o conjunto de dados de entrada como a soma das funções trigonométricas seno-coseno. As perguntas foram motivadas pelo uso dessa representação para interpolar valores intermediários e possivelmente extrapolar (também conhecido como previsão) além do conjunto de dados de entrada.
Em princípio, a DFT converte um conjunto discreto de observações em uma série de funções trigonométricas contínuas (ou seja, seno e cosseno). Portanto, o sinal original pode ser representado como:
$$x(t)=\frac{1}{N}\left ( A_o+\sum_{i=1}^N A_i\times cos(\omega\times i \times t + \phi_i)\right )$$
Onde:
- $x(t)$ é o valor da observação no momento $t$.
- $t$ é o tempo discreto em que uma observação foi feita.
- $t \in \left \{ 0,1,2 \cdots N-1 \right \}$.
- $N$ é o número de observações no conjunto de dados de entrada.
- $\omega = \frac{2\pi}{N}$ é a frequência fundamental ou principal.
- $A_i\angle \phi_i$ é a amplitude e a fase do i-ésimo componente discreto de Fourier.
Análise
Examinando os componentes da transformada de Fourier (ou seja, amplitude e fase) de uma série finita mais próxima, encontramos as seguintes observações:
- A série de amplitudes é simétrica em torno do componente $N/2$.
- A fase do componente $k$ é o negativo do componente $N-k$.
Basicamente, precisamos apenas da primeira metade dos componentes da DFT para recuperar o conjunto de dados de entrada original. O tempo original é representado pelos seguintes componentes:
$$x(t)=\frac{1}{N}\left( A_o+2\times\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i)\right)$$
Prova
$$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) +\sum_{i=N/2+1}^N A_i\times cos(\omega\times i \times t + \phi_i) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) +\sum_{i=N/2+1}^N A_{N-i}\times cos(\omega\times i \times t - \phi_{N-i}) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) +\sum_{i=1}^{N/2} A_i\times cos(\omega\times (N-i) \times t - \phi_i) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) + A_i\times cos(\omega\times (N-i) \times t - \phi_i) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) + A_i\times cos(2\pi\times t -(\omega\times i \times t + \phi_i)) \right)$$ $$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i)\right)$$
IMPORTANTE: Para um conjunto de dados de entrada de tamanho uniforme, o último componente DFT não precisa ser multiplicado por 2. Portanto, a representação cosseno dos dados de entrada é expressa da seguinte forma:
$$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2-1} A_i\times cos(\omega\times i \times t + \phi_i)+ A_{N/2}\times cos(\omega\times \frac{N}{2} \times t + \phi_{N/2})\right)$$ $$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2-1} A_i\times cos(\omega\times i \times t + \phi_i)+ A_{N/2}\times cos(\pi \times t + \phi_{N/2})\right)$$ $$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2-1} A_i\times cos(\omega\times i \times t + \phi_i)+ A_{N/2}\times cos(\phi_{N/2})cos(\pi \times t)\right)$$
Conclusão
Usando a transformada discreta de Fourier, representamos o conjunto de dados de entrada discreta como a soma de funções trigonométricas contínuas determinísticas.
Diferentemente dos dados originais, que são definidos em instâncias de tempo discretas, a representação de Fourier é contínua e, portanto, definida em valores de tempo integral. Usando essa representação contínua, podemos interpolar quaisquer valores nesse intervalo (mas não para extrapolação/previsão).
Comentários
Artigo fechado para comentários.