transformata Fourier rapidă

tehnologia FFT

Acest ghid conține codul sursă pentru software-ul de operare pentru calculul FFT, o explicație detaliată a modului în care funcționează și baze teoretice. Toate acestea pot fi găsite pe alte site-uri, dar este greu de găsit în acel set: programul și explicații și teorie, și în limba rusă.







Dacă nu aveți timp sau dorința de a face cu teoria, puteți copia direct textul programului în C ++. Aici este fișierul antet și fft.h fft.cpp sursă pentru transformata Fourier rapidă la numărul de capete de acuzare egal cu o putere de două. Este necesar să se determine funcția fft. Aici este fișierul antet și codul sursă pentru orice (!) Numărul de probe. El este un pic mai lent, dar viteza este acolo, de asemenea, despre Nlog2 N. Apelarea funcției universal_fft necesară.

defini

definition 1

Având în vedere finit de secvență X0. x1. x2. xN-1 (în complexul general). Transformata Fourier discretă (DFT) este de a căuta alte secvențe X0. X1. X2. XN-1 ale cărui elemente sunt calculate prin formula:

definiția 2

Având în vedere finit de secvență X0. X1. X2. XN-1 (în complexul general). Inversa transformata Fourier discretă (DFT) este de a căuta alte secvențe x0. x1. x2. xN-1 ale cărui elemente sunt calculate prin formula:







Caracteristica principală a acestor transformări (care pot fi dovedite în secțiunile relevante ale matematicii) este faptul că dintr-o serie de spire (pentru conversia directă) secvență, și dacă apoi se aplică transformarea inversă, vom obține din nou secvența originală.

definition 3

se rotește este numit un multiplicator.

Luați în considerare numărul de proprietăți învârti factori, pe care o vom avea nevoie în viitor.

Cifra de sus în transformarea multiplicatorul nu este indexa - grade. Prin urmare, atunci când este egal cu unitatea, nu vom scrie:

Transformarea directă Fourier poate fi exprimată în termeni de factori de cotitură. Ca rezultat cu formula (1) devine:

Acești factori sunt justificate într-adevăr numele său. Desenați în planul complex, orice număr complex ca un vector care provine de la origine. Noi reprezentăm un număr complex în formă exponențială: re j # 966;. în care r - a modulului, și # 966; - argument. Modulul corespunde lungimii vectorului, iar argumentul - unghiul de rotație:

Acum, ia un factor de cotitură. Unitatea sa este egală cu unitatea, iar faza - 2π / N. După cum se știe, în înmulțirea numerelor complexe reprezentate în formă exponențială, acestea sunt module multiplicate și sunt cuprinse argumente. Apoi, înmulțiți numărul inițial de pe factorul de giratie nu se schimba lungimea vectorului, dar modifica unghiul său. Aceasta este, vectorul se va roti printr-un unghi de 2π / N (vezi. Figura anterioară).

Dacă acum ne uităm la formula (3), devine un sens geometric clar transformatei Fourier: este de a reprezenta numerele complexe N, vectori din set, fiecare ca sumă a vectorilor din setul rotit în multipli de 2π / N.

Știri
Cavalerii Teoria eter