Grupo4 - FFT: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
Linha 6: Linha 6:
Em muitas aplicações se tem informação sobre um conjunto de dados, ao invés de uma função contínua. A '''Transformada Discreta de Fourier''' transforma esse conjunto de dados em um conjunto de tamanho igual com informação sobre as frequências da função que satisfaz o conjunto de dados.
Em muitas aplicações se tem informação sobre um conjunto de dados, ao invés de uma função contínua. A '''Transformada Discreta de Fourier''' transforma esse conjunto de dados em um conjunto de tamanho igual com informação sobre as frequências da função que satisfaz o conjunto de dados.


A transformada pode ser dada pela equação:
Para um conjunto de dados igualmente espaçados, pode-se, ao considerar os dados como um período de uma função periódica, cujo período normalmente é considerado entre <math>[-\pi, \pi]</math> para facilitar o cálculo (e que pode sempre ser transformada em uma função nesse interválo), mostrar que a transformada discreta de Fourier pode ser dada pela equação:


<math>F_k = \sum_{n=0}^{N-1} f_n  e^{-i2\pi nk/N}</math>
<math>F_k = \sum_{n=0}^{N-1} f_n  e^{-i2\pi nk/N}</math>
Linha 13: Linha 13:


<math>f_n = \frac{1}{N} \sum_{n=0}^{N-1} F_k  e^{i2\pi nk/N}</math>
<math>f_n = \frac{1}{N} \sum_{n=0}^{N-1} F_k  e^{i2\pi nk/N}</math>
A transformada também pode ser expressa em forma vetorial, como
<math>\vec{F} = \mathbf{A} \vec{f}</math> onde <math>\mathbf{A}</math> é definido como
<math>\mathbf{A} = \begin{bmatrix}
e^{-2\pi i 0\cdot0/N} & e^{-2\pi i 0\cdot1/N} & \cdots  & e^{-2\pi i 0\cdot k/N}\\
e^{-2\pi i 1\cdot0/N} & e^{-2\pi i 1\cdot1/N} & \cdots & e^{-2\pi i 1\cdot k/N}\\
\vdots  & \vdots & \ddots  & \vdots\\
e^{-2\pi i n\cdot0/N} & e^{-2\pi i n\cdot1/N} & \cdots & e^{-2\pi i n\cdot k/N}
\end{bmatrix}</math>
O cálculo dessa expressão leva em torno de <math>N^2</math> passos para o resultado. Uma amostra com 3,000 pontos precisa de 9,000,000 operações para a transformada ser obtida, tornando a DFT inviável para aplicações rápidas.
== Transformada Rápida de Fourier ==
É possível calcular a transformada com <math>N log N</math> passos. Para isso se dispõe de um algoritmo chamado '''Transformada Rápida de Fourier'''.
<math>
F_k =\sum_{n=0}^{N-1} f_n \cdot e^{-i \frac{2 \pi}{N}\cdot k\cdot n}
</math><math>
F_k  =\color{red}\sum_{n=0}^{N/2-1} f_{2n} \cdot e^{-i \frac{2 \pi}{N}\cdot k\cdot 2n} \color{black}+ \color{blue}\sum_{n=0}^{N/2-1} f_{2n+1} \cdot e^{-i \frac{2 \pi}{N}\cdot k\cdot (2n+1)} \\
</math><math>
\color{black}F_k =\color{red}\sum_{n=0}^{N/2-1} f_{2n} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} \color{black}+ \color{blue}e^{-i\frac{2\pi}{N}k} \sum_{n=0}^{N/2-1} f_{2n+1} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} \\
</math><math>
\color{black}F_k =\color{red}\sum_{n=0}^{N/2-1} f_{2n} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} \color{black}+ \color{blue}~ C(k) ~ \sum_{n=0}^{N/2-1} f_{2n+1} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n}
</math>

Edição das 20h46min de 22 de outubro de 2017

A Transformada rápida de Fourier (em inglês Fast Fourier Transform, ou FFT) é um algoritmo que torna o cálculo da Transformada Discreta de Fourier (DFT) viável para a maior parte das aplicações.


Transformada Discreta de Fourier

Em muitas aplicações se tem informação sobre um conjunto de dados, ao invés de uma função contínua. A Transformada Discreta de Fourier transforma esse conjunto de dados em um conjunto de tamanho igual com informação sobre as frequências da função que satisfaz o conjunto de dados.

Para um conjunto de dados igualmente espaçados, pode-se, ao considerar os dados como um período de uma função periódica, cujo período normalmente é considerado entre para facilitar o cálculo (e que pode sempre ser transformada em uma função nesse interválo), mostrar que a transformada discreta de Fourier pode ser dada pela equação:

A sua inversa é, em paralelo ao caso da transformada contínua,

A transformada também pode ser expressa em forma vetorial, como

onde é definido como

O cálculo dessa expressão leva em torno de passos para o resultado. Uma amostra com 3,000 pontos precisa de 9,000,000 operações para a transformada ser obtida, tornando a DFT inviável para aplicações rápidas.


Transformada Rápida de Fourier

É possível calcular a transformada com passos. Para isso se dispõe de um algoritmo chamado Transformada Rápida de Fourier. Falhou ao verificar gramática (erro de sintaxe): {\displaystyle F_k =\color{red}\sum_{n=0}^{N/2-1} f_{2n} \cdot e^{-i \frac{2 \pi}{N}\cdot k\cdot 2n} \color{black}+ \color{blue}\sum_{n=0}^{N/2-1} f_{2n+1} \cdot e^{-i \frac{2 \pi}{N}\cdot k\cdot (2n+1)} \\ } Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \color{black}F_k =\color{red}\sum_{n=0}^{N/2-1} f_{2n} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} \color{black}+ \color{blue}e^{-i\frac{2\pi}{N}k} \sum_{n=0}^{N/2-1} f_{2n+1} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} \\ }