Transformata Fouriera ma szerokie zastosowanie w analizie i syntezie układów i systemów elektronicznych, gdyż pozwala na połączenie dwóch sposobów przedstawiania sygnałów reprezentacji w dziedzinie czasu i reprezentacji w dziedzinie częstotliwości. Dyskretna transformata Fouriera (ang. discrete fourier transform - DFT) stosowana jest wtedy, gdy wartości liczbowe sygnału x t są określone dla skończonej liczby N wartości zmiennej t (czas) należącej do pewnego przedziału [0,T ]. Najczęściej przyjmuje się, że wartości te są równoodległe o jednakowy przedział czasu t=t / N =1 / f p, gdzie f p jest częstotliwością próbkowania. Sygał x t jest zatem reprezentowany przez skończony ciąg {x n },,1,, N 1, wartości liczbowych próbek sygnału. Zadanie obliczenia dyskretnej transformacji Fouriera sygnału sprowadza się do wyznaczenia wartości liczbowych sum nk X k = x n W N k=0,1,, N 1, dla przekształcenia prostego (czas częstotliwość) oraz sum x n = 1 nk X k W N N,1,, N 1, 9.1.b k =0 dla przekształcenia odwrotnego IDFT (ang. inverse DFT) - częstotliwość czas, gdzie W m N =e j 2 m/ N 9.1.c to współczynnik obrotu. N 1 N 1 9.1.a
Wyznaczenie DFT w oparciu o zależność 9.1.a (oraz IDFT z wykorzystaniem 9.1.b ) wymaga wykonania N 2 mnożeń oraz N dodawań. Stosując algorytm szybkiej transformacji Fouriera FFT (odwrotnej szybkiej transformacji Fouriera) liczbę obliczeń można zmniejszyć do ok. N /2 log2 N. Zmniejszenie nakładu obliczeń transformaty DFT można uzyskać stosując następujący ciąg przekształceń. 1. Podział sekwencji wejściowej {x n }={x 0, x 1,, x N 1 } na dwie połowy: x {x 0, x 1,, N oraz 2 1 } {x N 2, x N 2 1,, x N 1 }. Transformatę DFT całej sekwencji z uwzględnieniem transformat obydwu części można zapisać odpowiednio N /2 1 N 1 X k = x n W nk nk N x n W N 9.1.d n= N / 2 Podstawiając n=n N /2 w drugiej sumie powyższego wzoru otrzymuje się N /2 1 X k = x n W N nk W N kn/ 2 N / 2 1 x n N 2 W nk N 9.1.e
Wykorzystując własność wyrażenia 9.1.c W N kn / 2 =e j k = e j k = cos j sin k = 1 k zależność 9.1.e przyjmuje postać N /2 1 X k = [ x x n 1 k n N2 ] W nk N. 9.1.f Z kolei wyrażenie 1 k =1 dla k parzystego i 1 dla k nieparzystego. Pozwala to zapisać równanie 9.1.f oddzielnie dla k parzystego N /2 1 X k = [ x x n n N2 ] W nk N. 9.1.g k nieparzystego. N /2 1 X k = [ x x n n N2 ] W nk N. 9.1.h
Zastępując k=2 k dla parzystych k oraz k=2 k 1 dla nieparzystych k równania 9.1.g oraz 9.1.h dla k=0,1,, N /2 1 przyjmują odpowiednio postać N /2 1 X 2k = [ x x n n N2 ] W 2nk N, 9.1.i N / 2 1 X 2k 1 = [ x n x n n =0 N2 ] W n N W 2nk N. 9.1.j Wykorzystując własność współczynnika obrotu oraz stosując podstawienia 9.1.c W 2m N =W m N / 2, 9.1.k a n =x n x n N 2, b n =x n x n N 2,
Wyrażenia 9.1.i oraz 9.1.j przyjmują bardziej czytelną postać dwóch N /2 -punktowych transformat DFT N /2 1 X 2k = N / 2 1 X 2k 1 = n =0 nk a n W N / 2 b n W n nk N W N /2, 9.1.l. 9.1.m
2. Podział uzyskanych dwóch sekwencji {a 0, a 1,,a N /2 1 } oraz {b 0 W 0 N, b 1 W 1 N / N,,b N /2 1 W 2 1 N } na cztery sekwencje N /4 punktowe. Wyznaczenie transformat DFT dla poszczególnych sekwencji w sposób analogiczny do czynności w punkcie nr 1.
3. Przeprowadzanie dekompozycji DFT do momentu uzyskanych sekwencji dwuelementowych tzw. ''motylków''. N /2 W przypadku 2-punktowego DFT równanie lub 1 nk X k = x n W 2 k=0,1, X 0 =a 0 W 0 2 a 1 W 0 2 =a 0 a 1 X 1 =a 0 W 2 0 a 1 W 2 1 =a 0 a 1 przyjmuje postać 9.1.n 9.1.o W drugim równaniu 9.1.0 wykorzystano własność współczynnika obrotu W 1 2 =e j 2 / 2 = 1 9.1.c
Omówiona metoda dekompozycji DFT nosi nazwę algorytmu FFT z podziałem w dziedzinie częstotliwości DIF (ang. decimation in frequency ).
Jak można zauważyć w fazie końcowej algorytm ten wymaga posortowania uzyskanych wartości widma. Można do tego wykorzystać metodę numeracji o odwróconej kolejności bitów (ang. bit-reversal procedure) 0 (000) 2 (000) 2 0 1 (001) 2 (100) 2 4 2 (010) 2 (010) 2 2 3 (011) 2 (110) 2 6 5 (101) 2 (101) 2 5 7 (111) 2 (111) 2 7
Istnieje również metoda dekompozycji DFT z podziałem w dziedzinie czasu DIT (ang. decimation in time ). Powstaje ona w wyniku rozkładu algorytmu spowodowanego podziałami danych wejściowych na ciagi danych parzystych i nieparzystych. X k N /2 =C k W N k D k, k N / W 2 k N = W N k=0,1,, N /2 1
FFT z podziałem w dziedzinie czasu DIT. Dla N =8 X k =C k W k 8 D k, k=0, 1,2, 3, X k 4 =C k W k 8 D k, k=0, 1,2, 3.