O Fast Fourier Transform (FFT) é um algoritmo eficiente para computação da Discreto Fourier Transform (DFT). O algoritmo Cooley-Tukey é o método mais comum para implementação do FFT, dependendo da decomposição recursiva do DFT. Compreender suas bases matemáticas ajuda a otimizar e aplicar o algoritmo de forma eficaz.

Base matemática da FFT

O DFT transforma uma sequência de números complexos em componentes de frequência. É definido como:

X(k) = .n=0N-1 x(n) e-2πi kn/N

onde x(n) é a sequência de entrada, X(k) é o componente de frequência, e N é o comprimento da sequência.

Derivação do Algoritmo de Cooley-Tukey

O algoritmo Cooley-Tukey decompõe o DFT em DFTs menores dividindo a sequência em partes iguais e ímpares:

X( k) = . . [[ FLT: 0]] n=0 [[ FLT:1]] [[ FLT: 2]] N-1 [[ FLT: 3]] x( n) e [[ FLT: 4]]-2πi kn/ N[[ FLT:5]]]

que podem ser reescritos como:

X( k) = .n=0N/2-1 x(2n) e-2πi 2n k/N + e-2πi k/N □[n=0[]N/2-1[] x(2n+1) e-2πi 2n k/N[

Esta separação permite a computação recursiva de DFTs menores, reduzindo a complexidade computacional de O(N2) para O(N log N).

Aplicando o Algoritmo

O algoritmo FFT aplica a decomposição recursiva repetidamente até que o caso base do tamanho 1 seja atingido. Os resultados são então combinados usando fatores twiddle, que são termos exponenciais complexos:

WN(k) = e-2πi k/N

Esses fatores ajustam a fase dos TDFs menores durante a recombinação, permitindo um cálculo eficiente da transformada completa.