FFT

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje

FFT (Fast Fourier Tranformation) je algoritem za hitro računanje diskretne Fourierjeve transformacije. Medtem, ko je število kompleksnih množenj običajnega algoritma (DFT) N2, je število kompleksnih množenj FFT samo . Obstaja veliko inačic tega algoritma. Najhitrejša je Winogradova, a je prezapletena za uporabo pri digitalnem procesiranju signalu, kjer se uporablja radix 2 decimacija v času.

Vsebina

Radix 2 decimacija v času

DFT je definirana kot:

... N-ti primitivni koren
Za N-ti primitivni koren mora veljati;


Velja:

in
,

pri čemer je
in


Če razdelimo x na sode in na lihe indekse, dobimo par enačb:

Z delitvijo na sode in na lihe indekse nadaljujemo vse dokler ne dobimo DFT dolžine 1.

Prednost tega postopka je visoka stopnja paralelnosti in možnost inplace računanja. Inverzna FFT deluje po istem principu, le da za N-ti pritivni koren vzamem funkcijo

Vprašanja na ustnem izpitu

Metuljčki pri FFT

Metuljček je naslednji par enačb:

Izhaja iz naslednjih enačb:

Pri računanju FFT naredimo log2N korakov. V vsakem koraku uporabimo metuljčov.

Bitreverzno mešanje

Vsak indeks se preslika v vrednost, ki je enaka reverzni zapisani v binarni obliki.

Zakaj pride do bitreverznega mešanja pri radix 2?

Z delitvijo zaporedja na sode in na lihe indekse, se nam indeksi med seboj premešajo. Pri zaporedju dolžine 8 pridemo na koncu do zaporedja indeksov: 0,4,2,6,1,5,3,7. Če hočemo, da imamo na izhodu transformirano zaporedje v pravem vrstnem redu, moramo vhodno zaporedje premešati. Če uporabljamo decimacijo v frekvenci, imamo premešane izhode.

Kje dobimo na hitrosti pri radix 4 in radix 8?

Namesto deljenja zaporedja na dva dela, ga v vsakem koraku razdelimo na 4 ali 8 delov. Pogoj da to lahko naredimo je, da je dolžina zaporeja potenca števila 4 oziroma 8. S tem pridemo do oziroma kompleksnih množenj. Metuljčki v teh primerih izgubijo obliko metulja (sestavljeni so iz štirih/osmih vhodov in štirih/osmih izhodov). Izboljšava ni zadostna v primerjavi s kompleksnostjo radix 4 oziroma radix 8 algoritma.

Hitro računanje konvolucije

Periodična zaporedja

Izračunati želimo izhodno zaporedje sistema: .

Postopek:

  • izračunamo DFT od xp in hp s pomočjo FFT algoritma
  • pomnožimo transforma
  • izračunamo inverzno DFT produkta transformov s pomočjo FFT algoritma

Neperiodična zaporedja

x(n) je zaporedje dolžine N1, h(n) pa dolžine N2. Če računamo po definiciji konvolucije, dobimo izhodno zaporednje y(n) dolžine N1 + N2 − 1. Lahko rečemo, da sta zaporedji x(n) in h(n) periodični s periodo N1 + N2 − 1. Vrednosti, ki v prvotnih zaporedjih niso definirane postavimo na 0. Če ta dolžina ni potenca števila dva, na koncu dodamo še več ničel saj (zaradi uporabe FFT algoritma?) želimo da je dolžina potenca števila dva. Ker so sedaj vsa zaporedja iste dolžine lahko uporabimo postopek za periodična zaporedja. Tega ne moremo narediti le, če je x(n) neskončno dolgo zaporedje. V tem primeru računamo hitro konvolucijo po odsekih.

Hitra konvolucija po odsekih

Imamo prenosno funkcijo sistema h(n) dolžine N2 in vhodno zaporedje x(n) dolžine . Izberemo število N3 in definiramo xk(n), ki je definiran kot:

Dolžina izhodnega zaporedja y(n) je tako N3 + N2 − 1. N3 mora biti izbran tako, da je ta dolžina potenca števila 2. Do te dolžine dopolnimo tudi h(n) in vsak odsek xk(n). Tako lahko izračunamo y(n) za vsak odsek posebej po postopku za periodična zaporedja.

Hitro računanje korelacije

Križna korelacija je definirana kot:

Križna korelacija ni komutativna operacija tako kot konvolucija. S pomočjo križne korelacije lahko detektiramo signale, ki so vsebovani v šumu. Avtokorelacijo lahko uporabljamo za ugotavljanje periodičnosti signala. Avtokorelacija je soda funkcija.

Hitro računanje križne korelacije periodičnih zaporedij

Za realna zaporedja velja:
Xp( − k) = Xp(Nk) = X * (k)

Postopek:

  • izračunam DFT od xp in yp po FFT algoritmu
  • izračunam Rpxy(k)
  • izračunam rpxy(n) s pomočjo inverzne DFT za n = 0,1,...,N − 1

V praksi se uporablja enostavnejša formula za računanje križne korelacije:

Prednosti:

  • končno dolg odcep
  • deljenje s k omogoča primerjavo rezultatov, ki jih dobimo za različne vrednosti k

Hitro računanje križne korelacije neperiodičnih zaporedij

Če imamo zaporedje x(n) dolžine N1 in zaporedje y(n) dolžine N2, bo imelo izhodno zaporedje rxy(n) dolžino N1 + N2 − 1. Torej podaljšam vhodni zaporedji do dolžine, ki je potenca števila 2 in je večja od N1 + N2 − 1 z dodajanjem 0. Postopek za samo računanje je enak kot pri periodičnih zaporedjih.

Glej tudi

Vzpostavljeno iz »http://www.e-studij.si/FFT«
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja