Analiza szeregów czasowych: 1. Dyskretna transformata Fouriera i
Transkrypt
Analiza szeregów czasowych: 1. Dyskretna transformata Fouriera i
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 2006/07 Plan wykładu • Dyskretna transformata Fouriera, podstawowe pojecia, ˛ algorytm(y) FFT, twierdzenie Shannona o próbkowaniu. • Splot, widmo mocy, wygładzanie widma. • Filtr Wienera. • Filtry liniowe FIR, IIR. Funkcja przejścia filtru. Rola fazy. • Projektowanie prostych filtrów. • Modele stochastyczne: AR, MA, ARMA, ARIMA. Równania Yule’a–Walkera. Identyfikacja modelu. Kryterium Akaike, • Przewidywanie przyszłego zachowania szeregu. • Uwagi o wielowymiarowych szeregach czasowych — wielowymiarowe modele ARMA, ARCH, GARCH. • Banki filtrów. Falki (wavelets) Daubechies. 1. Dyskretna transformata Fouriera 2 • Inne bazy falkowe. Przykłady zastosowania falek. • Kompresja i odszumianie przy użyciu falek. • Transformata falkowa obrazów nieruchomych. • Sygnały nieliniowe. Twierdzenie Takensa. Rekonstrukcja przestrzeni fazowej. • Odszumianie i przewidywanie przyszłego zachowania nieliniowego szeregu czasowego. 1. Dyskretna transformata Fouriera 3 Zaliczenie W celu zaliczenia wykładu należy rozwiazywać ˛ — i oddawać mi w formie pisemnej — zadania “dla wszystkich” zamieszczane na mojej stronie WWW. Z osobami, które chca˛ (moga? ˛ musza?) ˛ zdawać egzamin, forme˛ egzaminu ustale˛ indywidualnie. 1. Dyskretna transformata Fouriera 4 Transformata Fouriera Z∞ g(t)e2πif t dt (1) G(f )e−2πif t df (2) G(f ) = −∞ Transformata odwrotna: Z∞ g(t) = −∞ Trzeba pamietać ˛ gdzie w używanej konwencji pojawia sie˛ 2π. Aby transformata Fouriera istniała, funkcja musi odpowiednio szybko zanikać w ±∞. 1. Dyskretna transformata Fouriera 5 Własności transformaty Fouriera Splot: Z∞ g(τ )h(t − τ ) dτ (g ? h)(t) = (3a) −∞ g ? h ↔ G(f )H(f ) (3b) Funkcja korelacji: Z∞ Corr(g, h) = g(τ + t)h(t) dτ (4a) −∞ Corr(g, h) ↔ G(f )H ∗(f ) 1. Dyskretna transformata Fouriera (4b) 6 Twierdzenie Wienera-Chinczyna∗ Funkcja autokorelacji: Corr(g, g) ↔ |G(f )|2 (5) Równość Parsevala Z∞ |g(t)|2 dt = −∞ ∗ Ang. Z∞ |G(f )|2 df = całkowita moc (6) −∞ Wiener-Khinchin Theorem. 1. Dyskretna transformata Fouriera 7 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 ∆: gn = g(n∆) , n = . . . , −3, −2, −1, 0, 1, 2, 3, . . . (7) Zauważmy, że samo próbkowanie wprowadza do układu pewna˛ charakterystyczna˛ cz˛estotliwość, zwana˛ cz˛estotliwościa˛ Nyquista: 1 fNyq = . 2∆ (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˛estotliwości f ∈ [−fNyq, fNyq]. 1. Dyskretna transformata Fouriera 8 Aliasing A co jeśli sygnał zawiera cz˛estotliwości f 6∈ [−fNyq, fNyq]? Czy zostaja˛ one utracone? To byłoby pół biedy: Cz˛estości spoza przedziału Nyquista, jeśli sa˛ obecne w sygnale, zafałszowuja˛ obserwowany rozkład cz˛estoś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˛estoś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 orkiestre. ˛ 1. Dyskretna transformata Fouriera 9 P(f) prawdziwe znieksztalcone ogony odbite do srodka -fNyq 1. Dyskretna transformata Fouriera 0 f fNyq 10 Formalne źródło aliasingu: Jeśli ∆ jest krokiem próbkowania, dwie fale o cz˛estotliwościach f1, f2 daja˛ takie same próbki, jeśli f1 − f2 = k/∆: exp(2πif1n∆) = exp(2πi(f2 + k/∆)n∆) = exp(2πif2n∆ + 2πikn) = exp(2πif2n∆). 1.5 ∆ = 1/8, N = 32 1.0 1.0 0.0 -0.5 0.4 0.2 -1.0 -1.5 0.0 0.6 P(ω) 0.5 sin(2πt) - 0.5sin(7πt) sin(2πt) + 0.5sin(9πt) 0.8 0.0 0.5 1.0 1.5 2.0 t 1. Dyskretna transformata Fouriera 2.5 3.0 3.5 4.0 0π 1π 2π 3π 4π ω 5π 6π 7π 8π 11 Twierdzenie Shannona‡ o próbkowaniu§: Jeżeli funkcja jest pasmowo ograniczona (ang. bandwidth limited, band-limited), to znaczy jeśli zawiera tylko cz˛estotliwości z przedziału [−fNyq, fNyq], i jeśli dany jest nieskończony ciag ˛ próbek z krokiem ∆, to ∀t : g(t) = ∆ ∞ X ³ gn ´ sin 2πfNyq(t − n∆) n=−∞ π(t − n∆) . (9) 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 § Ang. także Twierdzeniem Shannona-Kotelnikowa. Shannon sampling theorem. 1. Dyskretna transformata Fouriera 12 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 dostepny ˛ 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 13 My przyjmujemy te˛ druga˛ konwencje. ˛ Zgodnie z nia˛ udajemy, że badamy szereg postaci . . . , g0, g1, g2, . . . , gN −1, g0, g1, g2, . . . , gN −1, g0, g1, g2, . . . , gN −1, . . . (10) | {z kopia −1 } | {z prawdziwe dane } | {z kopia 1 } Ponieważ mamy N próbek wejściowych, także dyskretna˛ transformate˛ Fouriera (DFT, ang. Discrete Fourier Transform) możemy obliczyć tylko w N punktach. Dla ustalenia uwagi niech N bedzie ˛ parzyste. Przyjmujemy, że DFT obliczać bedziemy ˛ dla cz˛estotliwości n , fn = N∆ 1. Dyskretna transformata Fouriera N N n = − ,..., . 2 2 (11) 14 Z∞ G(fn) = −∞ s(NZ−1)∆ M X 1 = lim M →∞ 2M +1 s=−M g(t) e2πifnt dt g(t) e2πifnt dt = (N −1)∆ Z g(t)e2πifntdt 0 (s−1)(N −1)∆ (12) ˛ funkcje˛ podCałk˛e w (12) przybliżam w najprostszy możliwy sposób, przybliżajac całkowa˛ funkcja˛ schodkowa: ˛ G(fn) ' NX −1 k=0 1. Dyskretna transformata Fouriera gk e2πifntk ∆ ' ∆ NX −1 gk e2πikn/N . (13) k=0 15 Liczby −1 1 NX Gn = √ gk e2πikn/N N k=0 (14) nazywam dyskretnymi składowymi fourierowskimi funkcji g. W tej konwencji transformata odwrotna ma postać −1 1 NX gk = √ Gn e−2πikn/N . N n=0 (15) Dyskretna wersja tożsamości Parsevala ma postać NX −1 k=0 1. Dyskretna transformata Fouriera |gk |2 = NX −1 |Gn|2 . (16) n=0 16 DFT jako operacja liniowa Zauważmy, że wzór (14) można zapisać w postaci Gn = NX −1 Wnk gk , (17a) k=0 1 2πikn/N √ Wnk = e . (17b) N Liczby Wnk można zinterpretować jako elementy pewnej macierzy. Wobec tego zwarta˛ postacia˛ (17) jest G = Wg , (18) gdzie G, g ∈ CN , W ∈ CN ×N . Wydaje sie, ˛ że koszt numeryczny obliczania DFT wynosi O(N 2), czyli tyle, ile wynosi koszt mnożenia wektora przez macierz. Jednak dzieki ˛ symetriom macierzy W, koszt ten można znacznie zredukować. 1. Dyskretna transformata Fouriera 17 Własności macierzy W −1 1 NX = Wlk (Wsk ) = e2πi(l−s)k/N = Wlk ks ls 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 6= 0, ³ ³ WW† ´ NX −1 ³ W† NX −1 ´ ∗ ³ ´N 2πim/N e NX −1 ³ ´k 1− 1 1 − e2mπi † 2πim/N WW = = = 0. e = 2πim/N 2πim/N ls N k=0 N (1 − e ) N (1 − e ) (20) ´ ³ WW† ´ = δls. Widzimy, że macierz W jest unitarna. (Uwaga na przyjet ˛ a˛ normalizacje!) ˛ 1. Dyskretna transformata Fouriera ls 18 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 rozpietej ˛ przez sinusy i kosinusy o cz˛estotliwościach 0, 1/(N ∆), 2/(N ∆), . . . , 1/(2∆). Zgodnie ze wzorem (18), numeryczny koszt obliczenia DFT wprost z definicji wynosi O(N 2). Na szcz˛eście istnieja˛ szybsze sposoby — algorytm FFT. 1. Dyskretna transformata Fouriera 19 Uwagi • Dyskretne współczynniki fourierowskie sa˛ okresowe, w szczególności G−N/2 = GN/2. Jest to konsekwencja założenia o okresowości sygnału. • Ujemne cz˛estotliwości pojawiaja˛ sie˛ dlatego, że funkcje sinus i kosinus o tym samym okresie traktujemy jako niezależne. • Niekiedy rozważa sie˛ transformaty rozpiete ˛ 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 transformate˛ 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 sie˛ korzystajac ˛ z własności symetrii DFT. 1. Dyskretna transformata Fouriera 20 Dodatnie i ujemne czesto ˛ ści Re H(ω) Im H(ω) 80 60 60 h(t) = six(t) + cos(t) 40 h(t) = six(t) - cos(t) 40 20 H(ω) 20 H(ω) Re H(ω) Im H(ω) 80 0 -20 0 -20 2.0 -40 2.0 -40 1.0 -60 -6π 1.0 -60 0.5 -80 1.5 P(ω) P(ω) 1.5 0.5 -80 0.0 0 1π 2π ω -4π -2π 0 ω 1. Dyskretna transformata Fouriera 2π 4π 6π -6π 0.0 0 1π 2π ω -4π -2π 0 ω 2π 4π 6π 21 Transformata sygnału „zgranego” z funkcjami bazowymi 1.0 ∆ = 1/8, N = 32 1.0 0.9 0.5 0.8 0.6 0.0 P(ω) sin(2πt) 0.7 0.5 0.4 0.3 -0.5 0.2 0.1 -1.0 0.0 0 0.5 1 1.5 2 t 1. Dyskretna transformata Fouriera 2.5 3 3.5 4 0π 1π 2π 3π 4π ω 5π 6π 7π 8π 22 Transformata sygnału „niezgranego” z funkcjami bazowymi 1.0 ∆ = 1/8, N = 32 1.0 0.8 0.9 0.6 0.8 0.4 0.7 0.6 0.0 P(ω) sin(6t) 0.2 -0.2 0.5 0.4 -0.4 0.3 -0.6 0.2 -0.8 0.1 -1.0 0.0 0.0 0.5 1.0 1.5 2.0 t 1. Dyskretna transformata Fouriera 2.5 3.0 3.5 4.0 0π 1π 2π 3π 4π ω 5π 6π 7π 8π 23 Zwiekszenie ˛ ilości próbek przy tym samym kroku próbkowania poprawia rozdzielczość transformaty ∆ = 1/8, N = 32 1.0 0.8 1.5 P(ω) 0.6 0.4 1.0 sin(6t) + 0.5sin(7t) 0.2 0.5 0.0 0π 1π 2π 3π 4π ω 5π 6π 7π 8π 5π 6π 7π 8π ∆ = 1/8, N = 128 1.0 0.0 0.8 -0.5 P(ω) 0.6 0.4 -1.0 0.2 -1.5 0.0 0.5 1.0 1.5 2.0 t 1. Dyskretna transformata Fouriera 2.5 3.0 3.5 4.0 0.0 0π 1π 2π 3π 4π ω 24 Funkcja kwaziokresowa 4.0 ∆ = 1/16, N = 1024 1.0 3.0 0.9 0.8 0.7 1.0 0.6 P(ω) Funkcja kwaziokresowa 2.0 0.0 0.5 0.4 -1.0 0.3 0.2 -2.0 0.1 -3.0 0.0 0 8 16 24 32 t 1. Dyskretna transformata Fouriera 40 48 56 64 0π 1π 2π 3π 4π ω 5π 6π 7π 8π 25 Funkcja okresowa z zaburzeniem sprzeżonym ˛ nieliniowo: 1.0 ∆ = 1/16, N = 256 100 0.8 0.6 SNR ≈ 8 dB 10-1 0.2 10-2 0.0 P(ω) sin(4πt) + zaburzenie 0.4 -0.2 10-3 -0.4 -0.6 10-4 -0.8 -1.0 2 4 6 8 t 1. Dyskretna transformata Fouriera 10 12 14 16 10-5 0π 2π 4π 6π 8π ω 10π 12π 14π 16π 26 Sygnał nieliniowy — układ Lorentza ẋ = σ(y − x) , ẏ = −xz + rx − y , ż = xy − bz σ = 16, b = 4, r = 45.92 ∆ = 20/128, N = 16384 100 30 10-1 20 10-2 10 P(ω) x(t) 10-3 0 10-4 -10 10-5 -20 -30 2000 10-6 2050 2100 t 1. Dyskretna transformata Fouriera 2150 2200 10-7 0 1π 2π 3π ω 4π 5π 6π 27 Kolejny przykład 3.0 2.5 (a) 10-1 c = 1.0 2.0 S(f) x(t) 1.0 0.5 0.0 10-5 10-7 -1.0 -1.5 256 272 288 304 10-8 2-8 320 t (c) 10-1 c = 0.5 2-4 2-2 f 20 (d) 22 24 c = 0.5 10-3 1.5 S(f) 1.0 0.5 0.0 10-4 10-5 10-6 -0.5 10-7 -1.0 -1.5 256 2-6 10-2 2.0 x(t) 10-4 10-6 -0.5 2.5 c = 1.0 10-3 1.5 3.0 (b) 10-2 272 288 t 1. Dyskretna transformata Fouriera 304 320 10-8 2-8 2-6 2-4 2-2 f 20 22 24 28 Uwaga terminologiczna: macierz Vandermonde’a Macierz realizujaca ˛ DFT jest szczególnym przypadkiem macierzy Vandermonde’a W = √1 V ∈ CN ×N , gdzie N V = 1 z0 z02 ... 1 z1 z12 ... ··· ··· ··· 1 1 zN −2 zN −1 2 2 zN z −2 N −1 ... ... N −1 N −1 N −1 N −1 z0 z1 · · · zN −2 zN −1 (21) W przypadku DFT, zk = exp(2πik/N ). 1. Dyskretna transformata Fouriera 29 Algorytm Fast Fourier Transform, FFT Przykład: N = 8 1 1 V(8) G= √ g 8 1 =√ 8 1 1+i √ 2 1 1 1 1 √ √ i −1+i −1 −1−i 1 i −1 √ 1 −1+i −i 2 1 −1 √ 1 −1−i 1 1 2 −i 1−i √ 2 1 i 2 −i 1+i √ 2 −1 1−i √ 2 1 −1 1 −1 2 i 1−i √ 2 −1 1+i √ 2 1 −i −1 i 1 −i −1 i 1 −i −1 √ √ −i −1−i −1 −1+i i 2 2 1 −i −1−i √ 2 −1 −1+i √ 2 i 1+i √ 2 1−i √ 2 g0 g1 g2 g3 g4 g5 g6 g7 (22) Widać regularności, ale trudno zobaczyć symetrie. . . 1. Dyskretna transformata Fouriera 30 Permutujemy kolumny, jednocześnie permutujac ˛ wektor danych — to nie zmienia wyniku. 1 1 G 1 =√ 8 1 1 i −1 1 −i 1 1 1 1+i √ 2 −1+i √ 2 −1−i √ 2 2 1+i √ 2 1−i √ 2 2 1−i √ 2 1+i √ 2 −1−i √ 2 −1+i √ 2 1 −1 1 −1 i √ 1 −i −1 i −1+i 1 1 1 1 i −1 1 −1 √ −i −1−i 1 −1 1 −1 1 −i −1 i −i 1−i √ 2 −i −1 i i −1 −i 1 −i −1−i √ 2 −1 −1+i √ 2 i 1+i √ 2 1−i √ 2 g0 g2 g4 g6 g1 g3 g5 g7 (23) Dzieki ˛ zmianie kolejności zaczyna być coś widać! 1. Dyskretna transformata Fouriera 31 Równanie (23) możemy przepisać w postaci (zapis blokowy) G 1 =√ 8 (4) (4) (4) V Ω V V(4) −Ω(4)V(4) 1. Dyskretna transformata Fouriera g0 g2 g4 g6 g1 g3 g5 g7 (24) 32 . . . gdzie oznaczyliśmy 1 1 1 1 1 i −1 −i V(4) = 1 −1 1 −1 1 −i −1 , (25) i µ ¶0 √ 1+i 2 µ ¶1 1 0 0 0 1+i √ √ 0 1+i 0 0 2 2 Ω(4) = µ ¶2 = 0 0 i 0 1+i √ −1+i √ 2 0 0 0 ¶3 µ 2 1+i √ 2 (26) 1. Dyskretna transformata Fouriera 33 A zatem G 1 =√ 8 (4) V (4) V g0 g2 g4 g6 g0 g2 g4 g6 (4) (4) V +Ω (4) (4) V −Ω g1 g3 g5 g7 g1 g3 g5 g7 (27) Fragmenty oznaczone kolorami obliczamy tylko raz. Mnożenie przez Ω(4) wykonujemy w czasie liniowym. Zmniejszyliśmy czas obliczeń o połowe. ˛ 1. Dyskretna transformata Fouriera 34 Rzecz w tym, iż V(4) podlega analogicznej faktoryzacji (zob. (25)), przy jednoczesnej dalszej permutacji wektora wejściowego: g0 g V(4) 2 g4 g6 " 1 V(2) = = 1 1 −1 V(2) V(2) Ω(2)V(2) g0 g4 (2) (2) g 2 −Ω V g6 # " , Ω(2) = # 1 i " = i0 (28) # i1 (analogicznie dla [g1, g3, g5, g7]T ) 1. Dyskretna transformata Fouriera 35 W ten sposób ¸ · ¸ g1 g3 +Ω(2) V(2) g5 g7 ¸ · ¸ g1 g3 −Ω(2) V(2) g5 g7 ¸ ¸ · · g1 g3 (2) (2) (2) V +Ω V g5 g7 ¸ ¸ · · g1 g3 V(2) −Ω(2) V(2) g5 g7 (29) ¸ · ¸ · g0 g2 V(2) +Ω(2) V(2) V(2) g4 g6 +Ω(4) · ¸ · ¸ · g0 g2 V(2) −Ω(2)V(2) V(2) g4 g6 · 1 G=√ ¸ · · 8 g 0 V(2) +Ω(2) V(2) g4 ¸ · · (2) g0 V −Ω(2) V(2) g4 g2 g6 ¸ −Ω(4) ¸ g2 g6 Dwuwymiarowe wektory oznaczone kolorami oblicza sie˛ tylko raz. W ten sposób złożoność obliczeniowa˛ zredukowaliśmy już czterokrotnie. 1. Dyskretna transformata Fouriera 36 Ostatnia zagadka: W porównaniu z wyjściowym równaniem (22), w równaniu (29) dokonaliśmy permutacji [g0, g1, g2, g3, g4, g5, g6, g7]T → [g0, g4, g2, g6, g1, g5, g3, g7]T . Co to za permutacja? 0 0002 4 1002 2 0102 6 1102 −→ = 0012 odwracam kolejność 1 1012 5 0112 3 1112 7 0002 0 0012 1 0102 2 0112 3 = 1002 4 1012 5 1102 6 1112 7 (30) Wektor wejściowy (“wektor próbek”) uporzadkowany ˛ jest w odwrotnej kolejności bitowej (bit reversal order ) indeksów. 1. Dyskretna transformata Fouriera 37 Ten algorytm bardzo łatwo uogólnia sie˛ na dowolne N = 2s, s ∈ N. Widać też,³że ´znacznie konieczność obliczania złożonych wyrażeń ³ redukujemy ´ nπ — konieczność wywoływania funkcji bibliotecznych , cos typu sin nπ N N 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 potegi. ˛ Jaki jest koszt numeryczny tego algorytmu? 1. Dyskretna transformata Fouriera 38 Każda faktoryzacja zmniejsza ilość operacji o połowe. ˛ Faktoryzacji można zrobić tyle, ile razy można podzielić macierz “na ćwiartki”. Koszt numeryczny algorytmu FFT wynosi O(N log2 N ) Na przykład dla N = 65536 = 216 zastosowanie algorytmu FFT zmniejsza złożoność obliczeniowa˛ w stosunku do liczenia “z definicji” ponad cztery tysiace ˛ razy . 1. Dyskretna transformata Fouriera 39 Uwagi • Zupełnie podobny algorytm można skonstruować dla N = 3s, N = 5s i, ogólnie, dla N = q s, gdzie q jest liczba˛ pierwsza. ˛ Koszt obliczeniowy wynosi wówczas O(N logq N ). • Dobre biblioteki “szybko” obsługuja˛ także N q1, q2, . . . , qm sa˛ niskimi liczbami pierwszymi. s s sm , gdzie = q11 q22 · · · qm • 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 poteg ˛ a˛ niskiej liczby pierwszej, ewentualnie iloczynem jak najmniejszej ilości czynników s typu qi j . 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 40 Inne uwagi • DFT traktuje ciag ˛ próbek jak ciag ˛ zmiennych zespolonych. Jeśli liczymy transformate˛ sygnału rzeczywistego, można go przekształcić za sygnał “zespolony” o długości dwa razy mniejszej. Po dokonaniu transformacji, odwikłujemy transformate˛ korzystajac ˛ z własności symetrii transformaty Fouriera: Jeżeli g ∈ RN , 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 sie˛ w standardzie JPEG. 1. Dyskretna transformata Fouriera 41 Jak zrobić transformacje˛ dwuwymiarowa? ˛ Bardzo prosto: Jeżeli g ∈ CN ×N , G = WgW† (31) Oczywiście jest na to odpowiedni “szybki” algorytm, z odpowiednim przyspieszeniem dla g ∈ RN ×N . 1. Dyskretna transformata Fouriera 42