Analiza szeregów czasowych: 1. Dyskretna transformata Fouriera i zagadnienia pokrewne

Podobne dokumenty
Analiza szeregów czasowych: 1. Dyskretna transformata Fouriera i zagadnienia pokrewne

Wstęp do metod numerycznych Dyskretna transformacja Fouriera. P. F. Góra

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Transformaty. Kodowanie transformujace

9. Dyskretna transformata Fouriera algorytm FFT

uzyskany w wyniku próbkowania okresowego przebiegu czasowego x(t) ze stałym czasem próbkowania t takim, że T = t N 1 t

FFT i dyskretny splot. Aplikacje w DSP

Transformata Fouriera i analiza spektralna

Przekształcenie Fouriera obrazów FFT

Transformacje Fouriera * podstawowe własności

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne

Przetwarzanie i transmisja danych multimedialnych. Wykład 8 Transformaty i kodowanie cz. 2. Przemysław Sękalski.

Szybka transformacja Fouriera (FFT Fast Fourier Transform)

Dystrybucje, wiadomości wstępne (I)

Ćwiczenie 3. Właściwości przekształcenia Fouriera

8. Analiza widmowa metodą szybkiej transformaty Fouriera (FFT)

Przekształcenie Fouriera i splot

Szereg i transformata Fouriera

Analiza szeregów czasowych: 7. Liniowe modele stochastyczne

Wykład 2: Szeregi Fouriera

PRZETWARZANIE SYGNAŁÓW

Tydzień nr 9-10 (16 maja - 29 maja), Równania różniczkowe, wartości własne, funkcja wykładnicza od operatora - Matematyka II 2010/2011L

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

DYSKRETNA TRANSFORMACJA FOURIERA

Transformacja Fouriera i biblioteka CUFFT 3.0

Transformata Fouriera

dr inż. Artur Zieliński Katedra Elektrochemii, Korozji i Inżynierii Materiałowej Wydział Chemiczny PG pokój 311

Analiza szeregów czasowych: 5. Liniowe modele stochastyczne

Analiza szeregów czasowych: 3. Filtr Wienera

DYSKRETNE PRZEKSZTAŁCENIE FOURIERA C.D.

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Kompresja Danych. Streszczenie Studia Dzienne Wykład 13, f(t) = c n e inω0t, T f(t)e inω 0t dt.

Adaptacyjne Przetwarzanie Sygnałów. Filtracja adaptacyjna w dziedzinie częstotliwości

Szybka transformacja Fouriera

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

Wykład 2. Transformata Fouriera

Zastowowanie transformacji Fouriera w cyfrowym przetwarzaniu sygnałów

2. P (E) = 1. β B. TSIM W3: Sygnały stochastyczne 1/27

Cyfrowe przetwarzanie i kompresja danych

Postać Jordana macierzy

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

Analiza obrazu. wykład 5. Marek Jan Kasprowicz Uniwersytet Rolniczy 2008

Spis treści. Metody nieparametryczne. Transformacja Fouriera

2. Szybka transformata Fouriera

Teoria sygnałów Signal Theory. Elektrotechnika I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 1/8 ĆWICZENIE 6. Dyskretne przekształcenie Fouriera DFT

lim Np. lim jest wyrażeniem typu /, a

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

Algorytmy detekcji częstotliwości podstawowej

Różne reżimy dyfrakcji

NIEOPTYMALNA TECHNIKA DEKORELACJI W CYFROWYM PRZETWARZANIU OBRAZU

7. Szybka transformata Fouriera fft

Definicje i przykłady

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Komputerowa analiza zagadnień różniczkowych 10. Dwupunktowe problemy brzegowe (BVP, Boundary Value Problems)

Akwizycja i przetwarzanie sygnałów cyfrowych

Informacja o przestrzeniach Hilberta

Akwizycja i przetwarzanie sygnałów cyfrowych

Przetwarzanie sygnałów

Prawdopodobieństwo i statystyka

Analiza szeregów czasowych: 4. Filtry liniowe

5. Logarytmy: definicja oraz podstawowe własności algebraiczne.

Funkcje analityczne. Wykład 12

Kartkówka 1 Opracowanie: Próbkowanie częstotliwość próbkowania nie mniejsza niż podwojona szerokość przed spróbkowaniem.

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

5. Rozwiązywanie układów równań liniowych

Liczby zespolone. P. F. Góra (w zastępstwie prof. K. Rościszewskiego) 27 lutego 2007

Stabilność. Krzysztof Patan

Funkcje analityczne. Wykład 2. Płaszczyzna zespolona. Paweł Mleczko. Funkcje analityczne (rok akademicki 2017/2018)

Matematyka A kolokwium: godz. 18:05 20:00, 24 maja 2017 r. rozwiązania. ) zachodzi równość: x (t) ( 1 + x(t) 2)

Propagacja w przestrzeni swobodnej (dyfrakcja)

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Wstęp do metod numerycznych Eliminacja Gaussa Faktoryzacja LU. P. F. Góra

Liczby zespolone. x + 2 = 0.

Drgania i fale II rok Fizyk BC

1 Macierz odwrotna metoda operacji elementarnych

Dyskretne przekształcenie Fouriera cz. 2

III. Układy liniowe równań różniczkowych. 1. Pojęcie stabilności rozwiązań.

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Równania różniczkowe cząstkowe drugiego rzędu

Matematyka A kolokwium 26 kwietnia 2017 r., godz. 18:05 20:00. i = = i. +i sin ) = 1024(cos 5π+i sin 5π) =

Wykład 8. Informatyka Stosowana. 26 listopada 2018 Magdalena Alama-Bućko. Informatyka Stosowana Wykład , M.A-B 1 / 31

Transformata Laplace a to przekształcenie całkowe funkcji f(t) opisane następującym wzorem:

Układy równań i nierówności liniowych

Właściwości sygnałów i splot. Krzysztof Patan

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

Politechnika Wrocławska, Wydział Informatyki i Zarządzania. Modelowanie

Teoria Sygnałów. Inżynieria Obliczeniowa II rok 2018/19. Wykład 10. ( t) Wykorzystanie transformacji Fouriera w analizie korelacyjnej

Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L

Przetwarzanie sygnału cyfrowego (LabVIEW)

Rozdział 8. Analiza fourierowska. 8.1 Rozwinięcie w szereg Fouriera

FUNKCJE ZESPOLONE Lista zadań 2005/2006

6. FUNKCJE. f: X Y, y = f(x).

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7

dr inż. Artur Zieliński Katedra Elektrochemii, Korozji i Inżynierii Materiałowej Wydział Chemiczny PG pokój 311

Transkrypt:

Analiza szeregów czasowych: 1. Dyskretna transformata Fouriera i zagadnienia pokrewne P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 007/08

Transformata Fouriera G(f) = g(t)e πift dt (1) Transformata odwrotna: g(t) = G(f)e πift df () Trzeba pamiętać gdzie w używanej konwencji pojawia się π. Aby transformata Fouriera istniała, funkcja musi odpowiednio szybko zanikać w ±. 1. Dyskretna transformata Fouriera

Własności transformaty Fouriera Splot: (g h)(t) = g(τ)h(t τ) dτ (3a) g h G(f)H(f) (3b) Funkcja korelacji: Corr(g, h) = g(τ + t)h(t) dτ (4a) Corr(g, h) G(f)H (f) (4b) 1. Dyskretna transformata Fouriera 3

Twierdzenie Wienera-Chinczyna Funkcja autokorelacji: Corr(g, g) G(f) (5) Równość Parsevala g(t) dt = G(f) df = całkowita moc (6) Ang. Wiener-Khinchin Theorem. 1. Dyskretna transformata Fouriera 4

Próbkowanie dyskretne W praktyce nigdy nie mamy do czynienia z sygnałami ciagłymi, a tylko z szeregami czasowymi. Załóżmy, że mamy szereg próbkowany ze stałym krokiem : g n = g(n ), n =..., 3,, 1, 0, 1,, 3,... (7) Zauważmy, że samo próbkowanie wprowadza do układu pewna charakterystyczna częstotliwość, zwana częstotliwościa Nyquista: f Nyq = 1. (8) Jaki jest jej sens? Aby prawidłowo rozpoznać okres fali harmonicznej, trzeba ja spróbkować co najmniej dwa razy na okres. Jeśli zatem próbkujemy z krokiem, możemy zaobserwować tylko częstotliwości f [ f Nyq, f Nyq ]. 1. Dyskretna transformata Fouriera 5

Aliasing A co jeśli sygnał zawiera częstotliwości f [ f Nyq, f Nyq ]? Czy zostaja one utracone? To byłoby pół biedy: Częstości spoza przedziału Nyquista, jeśli sa obecne w sygnale, zafałszowuja obserwowany rozkład częstości wewnatrz tego przedziału: Ogony zostaja odbite do środka. Dlatego też jeśli podejrzewamy, że krok próbkowania jest za duży i nie można go zmniejszyć, należy odfiltrować częstości spoza przedziału Nyquista przed dalsza obróbka. Praktycznym testem na nieobecność aliasingu jest to, że widmo mocy zanika na granicach przedziału Nyquista. Wybiegajac przed orkiestrę. 1. Dyskretna transformata Fouriera 6

prawdziwe znieksztalcone ogony odbite do srodka P(f) -f Nyq 0 f Nyq 1. Dyskretna transformata Fouriera 7 f

Formalne źródło aliasingu: Jeśli jest krokiem próbkowania, dwie fale o częstotliwościach f 1, f daja takie same próbki, jeśli f 1 f = k/ : exp(πif 1 n ) = exp(πi(f + k/ )n ) = exp(πif n + πikn) = exp(πif n ). 1.5 1.0 1 N = 3, = 1/8 0.8 sin(πt) + 0.5sin(9πt) 0.5 0.0-0.5 sin(πt) - 0.5sin(7πt) P(f) 0.6 0.4-1.0 0. -1.5 0.0 0.5 1.0 1.5.0.5 3.0 3.5 4.0 t 0 0.0 0.5 1.0 1.5.0.5 3.0 3.5 4.0 f 1. Dyskretna transformata Fouriera 8

Twierdzenie Shannona o próbkowaniu : Jeżeli funkcja jest pasmowo ograniczona (ang. bandwidth limited, band-limited), to znaczy jeśli zawiera tylko częstotliwości z przedziału [ f Nyq, f Nyq ], i jeśli dany jest nieskończony ciag próbek z krokiem, to sin ( πf Nyq (t n ) ) t : g(t) = g n. (9) π(t n ) n= To bardzo mocne twierdzenie: Pozwala odtworzyć wartości funkcji pasmowo ograniczonej w nieprzeliczalnie wielu punktach na podstawie jej znajomości w dyskretnych punktach. Szumy (procesy stochastyczne) i funkcje nieciagłe nie sa pasmowo ograniczone. Zwane także Twierdzeniem Shannona-Kotelnikowa. Ang. Shannon sampling theorem. 1. Dyskretna transformata Fouriera 9

Skończone szeregi czasowe W praktyce nigdy nie mamy nieskończonego szeregu czasowego dysponujemy zaledwie skończonym ciagiem o długości N. Co zrobić z transformata Fouriera, a w szczególności jak zapewnić jej zbieżność? Stosowane sa dwie konwencje: Zakładamy, że szereg czasowy zanika do zera przy końcach a jeśli nie zanika, obkładamy go odpowiednia funkcja okna zapewniajac a to zanikanie. Zakładamy, że dostępny ciag skończony jest okresem podstawowym nieskończonego ciagu okresowego. Jest to motywowane tym, iż w tej konwencji czyste przebiegi harmoniczne maja transformaty (ciagła transformata Fouriera funkcji sinus istnieje tylko w sensie dystrybucyjnym). 1. Dyskretna transformata Fouriera 10

My przyjmujemy tę druga konwencję. Zgodnie z nia udajemy, że badamy szereg postaci..., g 0, g 1, g,..., g N 1, g 0, g 1, g,..., g N 1, g 0, g 1, g,..., g N 1,... (10) } {{ } kopia 1 } {{ } prawdziwe dane } {{ } kopia 1 Ponieważ mamy N próbek wejściowych, także dyskretna transformatę Fouriera (DFT, ang. Discrete Fourier Transform) możemy obliczyć tylko w N punktach. Dla ustalenia uwagi niech N będzie parzyste. Przyjmujemy, że DFT obliczać będziemy dla częstotliwości f n = n N, n = N,..., N. (11) 1. Dyskretna transformata Fouriera 11

G(f n ) = g(t) e πif nt dt = lim M 1 M+1 M s(n 1) s= M (s 1)(N 1) g(t) e πif nt dt = (N 1) 0 g(t)e πif nt dt (1) Całkę w (1) przybliżam w najprostszy możliwy sposób, przybliżajac funkcję podcałkowa funkcja schodkowa: G(f n ) N 1 k=0 g k e πif nt k N 1 k=0 g k e πikn/n. (13) 1. Dyskretna transformata Fouriera 1

Liczby G n = 1 N 1 N k=0 g k e πikn/n (14) nazywam dyskretnymi składowymi fourierowskimi funkcji g. transformata odwrotna ma postać g k = 1 N 1 N n=0 Dyskretna wersja tożsamości Parsevala ma postać W tej konwencji G n e πikn/n. (15) N 1 k=0 g k = N 1 n=0 G n. (16) 1. Dyskretna transformata Fouriera 13

DFT jako operacja liniowa Zauważmy, że wzór (14) można zapisać w postaci G n = N 1 k=0 W nk g k, W nk = 1 N e πikn/n. (17a) (17b) Liczby W nk można zinterpretować jako elementy pewnej macierzy. Wobec tego zwarta postacia (17) jest G = Wg, (18) gdzie G, g C N, W C N N. Wydaje się, że koszt numeryczny obliczania DFT wynosi O(N ), czyli tyle, ile wynosi koszt mnożenia wektora przez macierz. 1. Dyskretna transformata Fouriera 14

Własności macierzy W ( WW ) ls = N 1 ( W lk W ) N 1 ks = N 1 W lk (W sk ) = 1 N k=0 k=0 k=0 (19) Jeśli l = s, wszystkie wyrazy pod suma sa równe 1 i wynik wynosi 1. Jeśli l s = m 0, ( WW ) ls = 1 N N 1 k=0 ( e πim/n ) k = 1 ( e πim/n ) N e πi(l s)k/n N(1 e πim/n ) = 1 emπi N(1 e πim/n ) = 0. (0) ( WW ) ls = δ ls. Widzimy, że macierz W jest unitarna. (Uwaga na przyjęta normalizację!) 1. Dyskretna transformata Fouriera 15

Podsumowanie DFT jest (z dokładnościa do normalizacji) unitarnym przekształceniem wektora próbek (sygnału) w wektor składowych fourierowskich. DFT można zatem traktować jako przedstawienie wektora próbek w innej bazie, mianowicie w bazie rozpiętej przez sinusy i kosinusy o częstotliwościach 0, 1/(N ), /(N ),..., 1/( ). Alternatywnie w bazie funkcji exp ( πi t),..., exp ( N πi t),1,exp ( πi N t),..., exp ( πi t) Dzięki symetriom macierzy W, koszt obliczania DFT można znacznie zredukować (algorytm FFT). 1. Dyskretna transformata Fouriera 16

Uwagi Dyskretne współczynniki fourierowskie sa okresowe, w szczególności G N/ = G N/. Jest to konsekwencja założenia o okresowości sygnału. Ujemne częstotliwości pojawiaja się dlatego, że funkcje sinus i kosinus o tym samym okresie traktujemy jako niezależne. Niekiedy rozważa się transformaty rozpięte na samych sinusach (transformata sinusowa) lub na samych kosinusach (transformata kosinusowa). Sygnał może być w ogólności zespolony. Jeżeli sygnał jest rzeczywisty, można jego transformatę obliczyć szybciej robiac sygnał zespolony o połowie długości. Podobnie można jednocześnie liczyć transformaty dwu sygnałów rzeczywistych. Transformaty rozwikłuje się korzystajac z własności symetrii DFT. 1. Dyskretna transformata Fouriera 17

Transformata sygnału zgranego z funkcjami bazowymi 1.0 1 N = 3, = 1/8 0.5 0.8 sin(πt) 0.0 P(f) 0.6 0.4-0.5 0. -1.0 0.0 0.5 1.0 1.5.0.5 3.0 3.5 4.0 t 0 0.0 0.5 1.0 1.5.0.5 3.0 3.5 4.0 f 1. Dyskretna transformata Fouriera 18

Transformata sygnału niezgranego z funkcjami bazowymi 1.0 0.8 1 N = 3, = 1/8 0.6 0.4 0.8 0. sin(6t) 0.0 P(f) 0.6-0. 0.4-0.4-0.6 0. -0.8-1.0 0.0 0.5 1.0 1.5.0.5 3.0 3.5 4.0 t 0 0.0 0.5 1.0 1.5.0.5 3.0 3.5 4.0 f 1. Dyskretna transformata Fouriera 19

Zwiększenie ilości próbek przy tym samym kroku próbkowania poprawia rozdzielczość transformaty 1 N = 3, = 1/8 0.8 1.5 P(f) 0.6 1.0 0.4 0. sin(6t) + 0.5sin(7t) 0.5 0.0-0.5 P(f) 0 0.0 0.5 1.0 1.5.0.5 3.0 3.5 4.0 f N = 18, = 1/8 1 0.8 0.6-1.0 0.4-1.5 0.0 0.5 1.0 1.5.0.5 3.0 3.5 4.0 t 0. 0 0.0 0.5 1.0 1.5.0.5 3.0 3.5 4.0 f 1. Dyskretna transformata Fouriera 0

Funkcja kwaziokresowa 4.0 3.0 1.0 0.9 = 1/16, N = 104.0 0.8 Funkcja kwaziokresowa 1.0 0.0-1.0 P(ω) 0.7 0.6 0.5 0.4 0.3 -.0 0. 0.1-3.0 0 8 16 4 3 40 48 56 64 t 0.0 0π 1π π 3π 4π 5π 6π 7π 8π ω 1. Dyskretna transformata Fouriera 1

Funkcja okresowa z zaburzeniem sprzężonym nieliniowo: 1.0 0.8 10 0 = 1/16, N = 56 0.6 0.4 10-1 SNR 8 db sin(4πt) + zaburzenie 0. 0.0-0. P(ω) 10-10 -3-0.4-0.6 10-4 -0.8-1.0 4 6 8 10 1 14 16 t 10-5 0π π 4π 6π 8π 10π 1π 14π 16π ω 1. Dyskretna transformata Fouriera

Sygnał nieliniowy układ Lorentza ẋ = σ(y x), ẏ = xz + rx y, ż = xy bz 30 σ = 16, b = 4, r = 45.9 10 0 = 0/18, N = 16384 0 10-1 10 10-10 -3 x(t) 0 P(ω) 10-4 -10 10-5 -0 10-6 -30 000 050 100 150 00 t 10-7 0 1π π 3π 4π 5π 6π ω 1. Dyskretna transformata Fouriera 3

Kolejny przykład x(t) x(t) 3.0.5 (a) c = 1.0.0 1.5 1.0 0.5 0.0-0.5-1.0-1.5 56 7 88 304 30 t 3.0 (c) c = 0.5.5.0 1.5 1.0 0.5 0.0-0.5-1.0-1.5 56 7 88 304 30 t S(f) S(f) 10-1 (b) c = 1.0 10-10 -3 10-4 10-5 10-6 10-7 10-8 -8-6 -4-0 4 f 10-1 (d) c = 0.5 10-10 -3 10-4 10-5 10-6 10-7 10-8 -8-6 -4-0 4 f 1. Dyskretna transformata Fouriera 4

Uwaga terminologiczna: macierz Vandermonde a Macierz realizujaca DFT jest szczególnym przypadkiem macierzy Vandermonde a W = 1 V C N N, gdzie N V = 1 1 1 1 z 0 z 1 z N z N 1 z0 z1 zn z N 1... z0 N 1 z1 N 1 zn N 1. zn 1 N 1 (1) W przypadku DFT, z k = exp(πik/n). 1. Dyskretna transformata Fouriera 5

Algorytm Fast Fourier Transform, FFT Przykład: N = 8 G = V(8) 8 g = 1 8 1 1 1 1 1 1 1 1 i i 1 1+i 1+i 1 1 i 1 i 1 i 1 i 1 i 1 i i 1 i 1 1+i 1+i 1 i 1 i 1 1 1 1 1 1 1 1 i i 1 1 i 1 i 1 1+i 1+i 1 i 1 i 1 i 1 i 1 i i 1 i 1 i 1 1+i 1+i g 0 g 1 g g 3 g 4 g 5 g 6 g 7 () Widać regularności, ale trudno zobaczyć symetrie... 1. Dyskretna transformata Fouriera 6

Permutujemy kolumny, jednocześnie permutujac wektor danych to nie zmienia wyniku. G = 1 8 1 1 1 1 1 1 1 1 1 i 1 i 1+i 1+i 1 i 1 i 1 1 1 1 i i i i 1 i 1 i 1+i 1+i 1 i 1 i 1 1 1 1 1 1 1 1 1 i 1 i 1 i 1 i 1+i 1+i 1 1 1 1 i i i i 1 i 1 i 1 i 1 i 1+i 1+i g 0 g g 4 g 6 g 1 g 3 g 5 g 7 (3) Dzięki zmianie kolejności zaczyna być coś widać! 1. Dyskretna transformata Fouriera 7

Równanie (3) możemy przepisać w postaci (zapis blokowy) G = 1 8 V (4) Ω (4) V (4) V (4) Ω (4) V (4) g 0 g g 4 g 6 g 1 g 3 g 5 g 7 (4) 1. Dyskretna transformata Fouriera 8

... gdzie oznaczyliśmy Ω (4) = 1 0 0 0 0 1+i 0 0 V (4) = 0 0 i 0 0 0 0 1+i = 1 1 1 1 1 i 1 i 1 1 1 1 1 i 1 i, (5) ( ) 0 1+i ( ) 1 1+i ( ) 1+i ( ) 3 1+i (6) 1. Dyskretna transformata Fouriera 9

A zatem G = 1 8 V (4) V (4) g 0 g g 4 g 6 g 0 g g 4 g 6 + Ω(4) V (4) Ω(4) V (4) g 1 g 3 g 5 g 7 g 1 g 3 g 5 g 7 (7) Fragmenty oznaczone kolorami obliczamy tylko raz. Mnożenie przez Ω (4) wykonujemy w czasie liniowym. Zmniejszyliśmy czas obliczeń o połowę. 1. Dyskretna transformata Fouriera 30

Rzecz w tym, iż V (4) podlega analogicznej faktoryzacji (zob. (5)), przy jednoczesnej dalszej permutacji wektora wejściowego: V (4) g 0 g g 4 g 6 = V () Ω () V () V () Ω () V () g 0 g4 g g 6 (8) V () = [ 1 1 1 1 ], Ω () = [ 1 i ] = [ i 0 i 1 ] (analogicznie dla [g 1, g 3, g 5, g 7 ] T ) 1. Dyskretna transformata Fouriera 31

W ten sposób G = 1 8 V () [ g0 g 4 ] +Ω () V () [ g g 6 ] V () [ g0 g 4 ] Ω () V () [ g g 6 ] V () [ g0 g 4 ] +Ω () V () [ g g 6 ] V () [ g0 g 4 ] Ω () V () [ g g 6 ] +Ω(4) Ω(4) V () [ g1 g 5 ] +Ω () V () [ g3 g 7 ] V () [ g1 g 5 ] Ω () V () [ g3 g 7 ] V () [ g1 g 5 ] +Ω () V () [ g3 g 7 ] V () [ g1 g 5 ] Ω () V () [ g3 g 7 ] Dwuwymiarowe wektory oznaczone kolorami oblicza się tylko raz. W ten sposób złożoność obliczeniowa zredukowaliśmy już czterokrotnie. 1. Dyskretna transformata Fouriera 3 (9)

Ostatnia zagadka: W porównaniu z wyjściowym równaniem (), w równaniu (9) dokonaliśmy permutacji [g 0, g 1, g, g 3, g 4, g 5, g 6, g 7 ] T [g 0, g 4, g, g 6, g 1, g 5, g 3, g 7 ] T. Co to za permutacja? 0 4 6 1 5 3 7 = 000 100 010 110 001 101 011 111 odwracam kolejność 000 001 010 011 100 101 110 111 = 0 1 3 4 5 6 7 (30) Wektor wejściowy ( wektor próbek ) uporzadkowany jest w odwrotnej kolejności bitowej (bit reversal order) indeksów. 1. Dyskretna transformata Fouriera 33

Ten algorytm bardzo łatwo uogólnia się na dowolne N = s, s N. Widać też, że znacznie redukujemy konieczność obliczania złożonych wyrażeń typu sin ( ) ( ) nπ N, cos nπ N konieczność wywoływania funkcji bibliotecznych sin( ), cos( ) została w ogóle wyeliminowana. Na każdym etapie faktoryzacji wystarczy raz wyliczyć odpowiedni pierwiastek z i, na co sa gotowe wzory, potem zaś wyliczać tylko kolejne potęgi. Jaki jest koszt numeryczny tego algorytmu? 1. Dyskretna transformata Fouriera 34

Każda faktoryzacja zmniejsza ilość operacji o połowę. Faktoryzacji można zrobić tyle, ile razy można podzielić macierz na ćwiartki. Koszt numeryczny algorytmu FFT wynosi O(N log N) Na przykład dla N = 65536 = 16 zastosowanie algorytmu FFT zmniejsza złożoność obliczeniowa w stosunku do liczenia z definicji ponad cztery tysiace razy. 1. Dyskretna transformata Fouriera 35

Uwagi Zupełnie podobny algorytm można skonstruować dla N = 3 s, N = 5 s i, ogólnie, dla N = q s, gdzie q jest liczba pierwsza. Koszt obliczeniowy wynosi wówczas O(N log q N). Dobre biblioteki szybko obsługuja także N = q s 1 q 1, q,..., q m sa niskimi liczbami pierwszymi. 1 qs qs m, gdzie Jeżeli analizujemy ciag uzyskany z symulacji, to w zasadzie kontrolujemy jego długość i koniecznie należy zadbać o to, aby była ona potęga niskiej liczby pierwszej, ewentualnie iloczynem jak najmniejszej ilości czynników typu q s j i. Jeżeli mamy ciag doświadczalny, dla zapewnienia odpowiedniej szybkości obliczeń należy go albo obciać, albo uzupełnić zerami do najbliższej specjalnej długości. 1. Dyskretna transformata Fouriera 36

Inne uwagi DFT traktuje ciag próbek jak ciag zmiennych zespolonych. Jeśli liczymy transformatę sygnału rzeczywistego, można go przekształcić za sygnał zespolony o długości dwa razy mniejszej. Po dokonaniu transformacji, odwikłujemy transformatę korzystajac z własności symetrii transformaty Fouriera: Jeżeli g R N, G (f) = G( f). Daje to istotne przyspieszenie obliczeń. Podobnie można jednocześnie liczyć transormaty dwu sygnałów rzeczywistych bardzo przydatne przy liczeniu splotu dwu takich sygnałów. Istnieja także szybkie algorytmy rozkładajace sygnał wejściowy w bazie samych kosinusów (szybka transformata kosinusowa) lub samych sinusów (szybka transformata sinusowa). Transformat tych można z sensem używać jeśli sygnały wejściowe maja odpowiednie symetrie. Szybkiej dwuwymiarowej transformacji kosinusowej używa się w standardzie JPEG. 1. Dyskretna transformata Fouriera 37

Jak zrobić transformację dwuwymiarowa? Bardzo prosto: Jeżeli g C N N, G = WgW (31) Oczywiście jest na to odpowiedni szybki algorytm, z odpowiednim przyspieszeniem dla g R N N. 1. Dyskretna transformata Fouriera 38