http://nbviewer.jupyter.org/gist/leftaroundabout/83df89a7d3bdc24373ea470fb50be629
DFT, tamanho 16
FFT, tamanho 16
A diferença de complexidade é bastante evidente disso, não é?
Aqui está como eu entendo a FFT.
Primeiramente, eu sempre pensaria nas transformadas de Fourier principalmente como transformadas de funções contínuas , ou seja, um mapeamento bijetivo . Sob essa luz, fica claro que não pode ser realmente necessário ir para o "nível mais profundo" e fazer um loop sobre elementos individuais , porque os "elementos individuais" são pontos únicos na linha real, dos quais existem quantidades infinitamente infinitas .FT : L2( R ) → L2( R )
Então, como essa transformação ainda está bem definida? Bem, é crucial que ele opere não no espaço de função geral mas apenas no espaço das funções integráveis (Lebesgue-, square-) . Agora, essa integrabilidade não é uma propriedade muito forte (muito mais fraca que a diferenciabilidade, etc.), mas exige que a função se torne “localmente describível com informações contáveis”. Essa descrição é dada pelos coeficientes de uma transformada de Fourier de curta duração . †R → CO caso mais simples é que sua função é contínua e você a divide em regiões tão pequenas que é basicamente constante em cada uma delas. Então, cada um dos STFTs tem um termo mais zerótico. Se você ignorar os outros coeficientes (de qualquer forma deteriorados), cada domínio será apenas um único ponto de dados. De todos esses coeficientes de curto prazo - limite LF, você pode fazer uma transformação de Fourier discreta. Na verdade, é exatamente isso que você faz ao realizar qualquer TF em dados medidos do mundo real!
Os dados medidos não precisam necessariamente corresponder a uma quantidade física fundamental. Por exemplo, quando você mede alguma intensidade de luz , está realmente apenas medindo a amplitude de uma onda eletromagnética cuja frequência é alta demais para ser amostrada com um ADC. Mas é claro que você também pode calcular a DFT de um sinal de intensidade de luz amostrado, e de forma barata, apesar da frequência insana da onda de luz.
Isso pode ser entendido como a razão mais importante pela qual a FFT é barata:
Não se preocupe em tentar ver os ciclos de oscilação individuais do nível mais alto. Em vez disso, transforme apenas informações de alto nível que já foram pré-processadas localmente.
Isso não é tudo o que existe, no entanto. O melhor da FFT é que ela ainda fornece todas as informações que uma DFT completa daria . Ou seja, todas as informações que você também obteria ao experimentar a onda eletromagnética exata de um feixe de luz. Isso pode ser conseguido através da transformação de um sinal de fotodiodo? - você pode medir a frequência de luz exata disso?
Bem, a resposta é não, você não pode. Ou seja, a menos que você aplique truques extras.
Primeiro de tudo, você precisa medir pelo menos aproximadamente a frequência nos curtos blocos de tempo. Bem, isso é possível com um espectrógrafo. Mas só é possível até uma precisão de , uma típica relação de incerteza ‡ .Δ ν= 1 / Δ t
Por termos um período de tempo mais longo, também devemos reduzir a incerteza de frequência. E isso é realmente possível, se você medir localmente não apenas a frequência aproximada, mas também a fase da onda. Você sabe que um sinal de 1000 Hz terá exatamente a mesma fase se você o observar um segundo depois. Enquanto um sinal de 1000,5 Hz, embora indistinguível em pequena escala, terá a fase invertida um segundo depois.
Felizmente, essa informação de fase pode muito bem ser armazenada em um único número complexo. E é assim que a FFT funciona! Tudo começa com muitas pequenas transformações locais. Eles são baratos - por um lado, obviamente, porque eles usam apenas uma pequena quantidade de dados, mas, em segundo lugar, porque eles sabem que, devido ao curto período de tempo, eles não conseguem resolver a frequência com muita precisão de qualquer maneira - por isso ainda é acessível, mesmo que você faça muitas dessas transformações.
No entanto, eles também registram a fase e, a partir disso, é possível tornar a resolução da frequência mais exata no nível superior. A transformação necessária é novamente barata, porque ela mesma não se preocupa com oscilações de alta frequência, mas apenas com os dados de baixa frequência pré-processados.
† Sim, minha argumentação é um pouco circular neste momento. Vamos chamá-lo de recursivo e estamos bem ...
‡ Essa relação não é mecânica quântica, mas a incerteza de Heisenberg tem realmente a mesma razão fundamental.