Analiza szeregów czasowych: 1. Dyskretna transformata ...

42
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

Transcript of Analiza szeregów czasowych: 1. Dyskretna transformata ...

Page 1: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Analiza szeregów czasowych:

1. Dyskretna transformata Fouriera i zagadnienia

pokrewne

P. F. Górahttp://th-www.if.uj.edu.pl/zfs/gora/

semestr letni 2006/07

Page 2: Analiza szeregów czasowych: 1. Dyskretna transformata ...

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 przejscia 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 mo-

dele ARMA, ARCH, GARCH.• Banki filtrów. Falki (wavelets) Daubechies.

1. Dyskretna transformata Fouriera 2

Page 3: Analiza szeregów czasowych: 1. Dyskretna transformata ...

• Inne bazy falkowe. Przykłady zastosowania falek.

• Kompresja i odszumianie przy uzyciu falek.

• Transformata falkowa obrazów nieruchomych.

• Sygnały nieliniowe. Twierdzenie Takensa. Rekonstrukcja przestrzeni fazo-wej.

• Odszumianie i przewidywanie przyszłego zachowania nieliniowego szereguczasowego.

1. Dyskretna transformata Fouriera 3

Page 4: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Zaliczenie

W celu zaliczenia wykładu nalezy rozwiazywac — i oddawac mi w formiepisemnej — zadania “dla wszystkich” zamieszczane na mojej stronie WWW.Z osobami, które chca (moga? musza?) zdawac egzamin, forme egzaminu

ustale indywidualnie.

1. Dyskretna transformata Fouriera 4

Page 5: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Transformata Fouriera

G(f) =

∞∫

−∞g(t)e2πift dt (1)

Transformata odwrotna:

g(t) =

∞∫

−∞G(f)e−2πift df (2)

Trzeba pamietac gdzie w uzywanej konwencji pojawia sie 2π. Aby transformataFouriera istniała, funkcja musi odpowiednio szybko zanikac w ±∞.1. Dyskretna transformata Fouriera 5

Page 6: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Własnosci 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 6

Page 7: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Twierdzenie Wienera-Chinczyna∗

Funkcja autokorelacji:

Corr(g, g) ↔ |G(f)|2 (5)

Równosc Parsevala

∞∫

−∞|g(t)|2 dt =

∞∫

−∞|G(f)|2 df = całkowita moc (6)

∗Ang. Wiener-Khinchin Theorem.

1. Dyskretna transformata Fouriera 7

Page 8: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Próbkowanie dyskretne

W praktyce nigdy nie mamy do czynienia z sygnałami ciagłymi, a tylko z szere-gami czasowymi. Załózmy, ze mamy szereg próbkowany ze stałym krokiem ∆:

gn = g(n∆) , n = . . . ,−3,−2,−1,0,1,2,3, . . . (7)

Zauwazmy, ze samo próbkowanie wprowadza do układu pewna charakterystycz-na czestotliwosc, zwana czestotliwoscia Nyquista:

fNyq =1

2∆. (8)

Jaki jest jej sens? Aby prawidłowo rozpoznac okres fali harmonicznej, trzeba jaspróbkowac co najmniej dwa razy na okres. Jesli zatem próbkujemy z krokiem∆, mozemy zaobserwowac tylko czestotliwosci f ∈ [−fNyq, fNyq].

1. Dyskretna transformata Fouriera 8

Page 9: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Aliasing

A co jesli sygnał zawiera czestotliwosci f 6∈ [−fNyq, fNyq]? Czy zostaja oneutracone? To byłoby pół biedy: Czestosci spoza przedziału Nyquista, jesli saobecne w sygnale, zafałszowuja obserwowany rozkład czestosci wewnatrz tegoprzedziału: „Ogony” zostaja odbite do srodka. Dlatego tez jesli podejrzewamy,ze krok próbkowania jest za duzy i nie mozna go zmniejszyc, nalezy odfiltrowacczestosci spoza przedziału Nyquista przed dalsza obróbka.

Praktycznym testem na nieobecnosc aliasingu jest to, ze widmo mocy† zanikana granicach przedziału Nyquista.

†Wybiegajac przed orkiestre.

1. Dyskretna transformata Fouriera 9

Page 10: Analiza szeregów czasowych: 1. Dyskretna transformata ...

-fNyq 0 fNyq

P(f

)

f

prawdziweznieksztalcone

ogony odbite do srodka

1. Dyskretna transformata Fouriera 10

Page 11: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Formalne zródło aliasingu:

Jesli ∆ jest krokiem próbkowania, dwie fale o czestotliwosciach f1, f2 daja takiesame próbki, jesli f1 − f2 = k/∆: exp(2πif1n∆) =exp(2πi(f2 + k/∆)n∆) = exp(2πif2n∆ + 2πikn) = exp(2πif2n∆).

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

sin(

2πt)

+ 0

.5si

n(9π

t)

sin(

2πt)

- 0

.5si

n(7π

t)

t

0.0

0.2

0.4

0.6

0.8

1.0

0π 1π 2π 3π 4π 5π 6π 7π 8π

P(ω

)

ω

∆ = 1/8, N = 32

1. Dyskretna transformata Fouriera 11

Page 12: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Twierdzenie Shannona‡ o próbkowaniu§:

Jezeli funkcja jest pasmowo ograniczona (ang. bandwidth limited, band-limited),to znaczy jesli zawiera tylko czestotliwosci z przedziału [−fNyq, fNyq], i jesli danyjest nieskonczony ciag próbek z krokiem ∆, to

∀t : g(t) = ∆∞∑

n=−∞gn

sin(2πfNyq(t− n∆)

)

π(t− n∆). (9)

To bardzo mocne twierdzenie: Pozwala odtworzyc wartosci funkcji pasmowoograniczonej w nieprzeliczalnie wielu punktach na podstawie jej znajomosciw dyskretnych punktach. Szumy (procesy stochastyczne) i funkcje nieciagłe niesa pasmowo ograniczone.‡Zwane takze Twierdzeniem Shannona-Kotelnikowa.§Ang. Shannon sampling theorem.

1. Dyskretna transformata Fouriera 12

Page 13: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Skonczone szeregi czasowe

W praktyce nigdy nie mamy nieskonczonego szeregu czasowego — dysponu-jemy zaledwie skonczonym ciagiem o długosci N . Co zrobic z transformataFouriera, a w szczególnosci jak zapewnic jej zbieznosc? Stosowane sa dwiekonwencje:

• Zakładamy, ze szereg czasowy zanika do zera przy koncach — a jesli niezanika, obkładamy go odpowiednia funkcja okna zapewniajaca to zanikanie.

• Zakładamy, ze dostepny ciag skonczony jest okresem podstawowym nie-skonczonego ciagu okresowego. Jest to motywowane tym, iz w tej konwen-cji czyste przebiegi harmoniczne maja transformaty (ciagła transformata Fo-uriera funkcji sinus istnieje tylko w sensie dystrybucyjnym).

1. Dyskretna transformata Fouriera 13

Page 14: Analiza szeregów czasowych: 1. Dyskretna transformata ...

My przyjmujemy te druga konwencje. Zgodnie z nia udajemy, ze badamy szeregpostaci

. . . , g0, g1, g2, . . . , gN−1︸ ︷︷ ︸kopia −1

, g0, g1, g2, . . . , gN−1︸ ︷︷ ︸prawdziwe dane

, g0, g1, g2, . . . , gN−1︸ ︷︷ ︸kopia 1

, . . . (10)

Poniewaz mamy N próbek wejsciowych, takze dyskretna transformate Fouriera(DFT, ang. Discrete Fourier Transform) mozemy obliczyc tylko w N punktach.Dla ustalenia uwagi niech N bedzie parzyste. Przyjmujemy, ze DFT obliczacbedziemy dla czestotliwosci

fn =n

N∆, n = −N

2, . . . ,

N

2. (11)

1. Dyskretna transformata Fouriera 14

Page 15: Analiza szeregów czasowych: 1. Dyskretna transformata ...

G(fn) =

∞∫

−∞g(t) e2πifnt dt

= limM→∞

1

2M+1

M∑

s=−M

s(N−1)∆∫

(s−1)(N−1)∆

g(t) e2πifnt dt =

(N−1)∆∫

0

g(t)e2πifntdt

(12)

Całke w (12) przyblizam w najprostszy mozliwy sposób, przyblizajac funkcje pod-całkowa funkcja schodkowa:

G(fn) 'N−1∑

k=0

gk e2πifntk∆ ' ∆N−1∑

k=0

gk e2πikn/N . (13)

1. Dyskretna transformata Fouriera 15

Page 16: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Liczby

Gn =1√N

N−1∑

k=0

gk e2πikn/N (14)

nazywam dyskretnymi składowymi fourierowskimi funkcji g. W tej konwencjitransformata odwrotna ma postac

gk =1√N

N−1∑

n=0

Gn e−2πikn/N . (15)

Dyskretna wersja tozsamosci Parsevala ma postac

N−1∑

k=0

|gk|2 =N−1∑

n=0

|Gn|2 . (16)

1. Dyskretna transformata Fouriera 16

Page 17: Analiza szeregów czasowych: 1. Dyskretna transformata ...

DFT jako operacja liniowa

Zauwazmy, ze wzór (14) mozna zapisac w postaci

Gn =N−1∑

k=0

Wnk gk , (17a)

Wnk =1√N

e2πikn/N . (17b)

Liczby Wnk mozna zinterpretowac jako elementy pewnej macierzy. Wobec tegozwarta postacia (17) jest

G = Wg , (18)

gdzie G, g ∈ CN , W ∈ CN×N . Wydaje sie, ze koszt numeryczny obliczaniaDFT wynosi O(N2), czyli tyle, ile wynosi koszt mnozenia wektora przez macierz.Jednak dzieki symetriom macierzy W, koszt ten mozna znacznie zredukowac.1. Dyskretna transformata Fouriera 17

Page 18: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Własnosci macierzy W

(WW†)

ls=

N−1∑

k=0

Wlk

(W†)

ks=

N−1∑

k=0

Wlk (Wsk)∗ =

1

N

N−1∑

k=0

e2πi(l−s)k/N

(19)Jesli l = s, wszystkie wyrazy pod suma sa równe 1 i wynik wynosi 1. Jeslil − s = m 6= 0,

(WW†)

ls=

1

N

N−1∑

k=0

(e2πim/N

)k=

1−(e2πim/N

)N

N(1− e2πim/N)=

1− e2mπi

N(1− e2πim/N)= 0 .

(20)

(WW†)

ls= δls.

Widzimy, ze macierz W jest unitarna. (Uwaga na przyjeta normalizacje!)

1. Dyskretna transformata Fouriera 18

Page 19: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Podsumowanie

DFT jest (z dokładnoscia do normalizacji) unitarnym przekształceniem wektorapróbek (sygnału) w wektor składowych fourierowskich.

DFT mozna zatem traktowac jako przedstawienie wektora próbek w innej bazie,mianowicie w bazie rozpietej przez sinusy i kosinusy o czestotliwosciach

0, 1/(N∆), 2/(N∆), . . . , 1/(2∆).

Zgodnie ze wzorem (18), numeryczny koszt obliczenia DFT wprost z definicjiwynosi O(N2). Na szczescie istnieja szybsze sposoby — algorytm FFT.

1. Dyskretna transformata Fouriera 19

Page 20: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Uwagi• Dyskretne współczynniki fourierowskie sa okresowe, w szczególnosci

G−N/2 = GN/2. Jest to konsekwencja załozenia o okresowosci sygnału.• Ujemne czestotliwosci pojawiaja sie dlatego, ze funkcje sinus i kosinus o tym

samym okresie traktujemy jako niezalezne.• Niekiedy rozwaza sie transformaty rozpiete na samych sinusach (transfor-

mata sinusowa) lub na samych kosinusach (transformata kosinusowa).• „Sygnał” moze byc w ogólnosci zespolony. Jezeli sygnał jest rzeczywisty,

mozna jego transformate obliczyc szybciej robiac sygnał zespolony o po-łowie długosci. Podobnie mozna jednoczesnie liczyc transformaty dwu sy-gnałów rzeczywistych. Transformaty rozwikłuje sie korzystajac z własnoscisymetrii DFT.

1. Dyskretna transformata Fouriera 20

Page 21: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Dodatnie i ujemne czestosci

-80

-60

-40

-20

0

20

40

60

80

-6π -4π -2π 0 2π 4π 6π

H(ω

)

ω

h(t) = six(t) + cos(t)

Re H(ω)Im H(ω)

0.0

0.5

1.0

1.5

2.0

0 1π 2π

P(ω

)

ω-80

-60

-40

-20

0

20

40

60

80

-6π -4π -2π 0 2π 4π 6πH

(ω)

ω

h(t) = six(t) - cos(t)

Re H(ω)Im H(ω)

0.0

0.5

1.0

1.5

2.0

0 1π 2π

P(ω

)

ω

1. Dyskretna transformata Fouriera 21

Page 22: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Transformata sygnału „zgranego” z funkcjami bazowymi

-1.0

-0.5

0.0

0.5

1.0

0 0.5 1 1.5 2 2.5 3 3.5 4

sin(

2πt)

t

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

0π 1π 2π 3π 4π 5π 6π 7π 8πP

(ω)

ω

∆ = 1/8, N = 32

1. Dyskretna transformata Fouriera 22

Page 23: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Transformata sygnału „niezgranego” z funkcjami bazowymi

-1.0

-0.8

-0.6

-0.4

-0.2

0.0

0.2

0.4

0.6

0.8

1.0

0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

sin(

6t)

t

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

0π 1π 2π 3π 4π 5π 6π 7π 8πP

(ω)

ω

∆ = 1/8, N = 32

1. Dyskretna transformata Fouriera 23

Page 24: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Zwiekszenie ilosci próbek przy tym samym kroku próbkowaniapoprawia rozdzielczosc transformaty

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

sin(

6t)

+ 0

.5si

n(7t

)

t

0.0

0.2

0.4

0.6

0.8

1.0

0π 1π 2π 3π 4π 5π 6π 7π 8π

P(ω

)

ω

∆ = 1/8, N = 32

0.0

0.2

0.4

0.6

0.8

1.0

0π 1π 2π 3π 4π 5π 6π 7π 8π

P(ω

)

ω

∆ = 1/8, N = 128

1. Dyskretna transformata Fouriera 24

Page 25: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Funkcja kwaziokresowa

-3.0

-2.0

-1.0

0.0

1.0

2.0

3.0

4.0

0 8 16 24 32 40 48 56 64

Fun

kcja

kw

azio

kres

owa

t

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

0π 1π 2π 3π 4π 5π 6π 7π 8πP

(ω)

ω

∆ = 1/16, N = 1024

1. Dyskretna transformata Fouriera 25

Page 26: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Funkcja okresowa z zaburzeniem sprzezonym nieliniowo:

-1.0

-0.8

-0.6

-0.4

-0.2

0.0

0.2

0.4

0.6

0.8

1.0

2 4 6 8 10 12 14 16

sin(

4πt)

+ z

abur

zeni

e

t

10-5

10-4

10-3

10-2

10-1

100

0π 2π 4π 6π 8π 10π 12π 14π 16πP

(ω)

ω

∆ = 1/16, N = 256

SNR ≈ 8 dB

1. Dyskretna transformata Fouriera 26

Page 27: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Sygnał nieliniowy — układ Lorentza

x = σ(y − x) , y = −xz + rx− y , z = xy − bz

-30

-20

-10

0

10

20

30

2000 2050 2100 2150 2200

x(t)

t

σ = 16, b = 4, r = 45.92

10-7

10-6

10-5

10-4

10-3

10-2

10-1

100

0 1π 2π 3π 4π 5π 6πP

(ω)

ω

∆ = 20/128, N = 16384

1. Dyskretna transformata Fouriera 27

Page 28: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Kolejny przykład

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

2.5

3.0

256 272 288 304 320

x(t)

(a)

t

c = 1.0

10-8

10-7

10-6

10-5

10-4

10-3

10-2

10-1

2-8 2-6 2-4 2-2 20 22 24

S(f

)

(b)

f

c = 1.0

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

2.5

3.0

256 272 288 304 320

x(t)

(c)

t

c = 0.5

10-8

10-7

10-6

10-5

10-4

10-3

10-2

10-1

2-8 2-6 2-4 2-2 20 22 24

S(f

)

(d)

f

c = 0.5

1. Dyskretna transformata Fouriera 28

Page 29: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Uwaga terminologiczna: macierz Vandermonde’a

Macierz realizujaca DFT jest szczególnym przypadkiem macierzy Vandermon-de’a W = 1√

NV ∈ CN×N , gdzie

V =

1 1 · · · 1 1z0 z1 · · · zN−2 zN−1z20 z2

1 · · · z2N−2 z2

N−1... ... ... ...zN−10 zN−1

1 · · · zN−1N−2 zN−1

N−1

(21)

W przypadku DFT, zk = exp(2πik/N).

1. Dyskretna transformata Fouriera 29

Page 30: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Algorytm Fast Fourier Transform, FFT

Przykład: N = 8

G =V(8)√

8g =

1√8

1 1 1 1 1 1 1 1

1 1+i√2

i −1+i√2

−1 −1−i√2

−i 1−i√2

1 i −1 −i 1 i −1 −i

1 −1+i√2

−i 1+i√2

−1 1−i√2

i −1−i√2

1 −1 1 −1 1 −1 1 −1

1 −1−i√2

i 1−i√2

−1 1+i√2

−i −1+i√2

1 −i −1 i 1 −i −1 i

1 1−i√2

−i −1−i√2

−1 −1+i√2

i 1+i√2

g0g1g2g3g4g5g6g7

(22)

Widac regularnosci, ale trudno zobaczyc symetrie. . .1. Dyskretna transformata Fouriera 30

Page 31: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Permutujemy kolumny, jednoczesnie permutujac wektor danych — to nie zmie-nia wyniku.

G =1√8

1 1 1 1 1 1 1 1

1 i −1 −i 1+i√2

−1+i√2

−1−i√2

1−i√2

1 −1 1 −1 i −i i −i

1 −i −1 i −1+i√2

1+i√2

1−i√2

−1−i√2

1 1 1 1 −1 −1 −1 −1

1 i −1 −i −1−i√2

1−i√2

1+i√2

−1+i√2

1 −1 1 −1 −i i −i i

1 −i −1 i 1−i√2

−1−i√2

−1+i√2

1+i√2

g0g2g4g6g1g3g5g7

(23)

Dzieki zmianie kolejnosci zaczyna byc cos widac!1. Dyskretna transformata Fouriera 31

Page 32: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Równanie (23) mozemy przepisac w postaci (zapis blokowy)

G =1√8

V(4) Ω(4)V(4)

V(4) −Ω(4)V(4)

g0g2g4g6g1g3g5g7

(24)

1. Dyskretna transformata Fouriera 32

Page 33: Analiza szeregów czasowych: 1. Dyskretna transformata ...

. . . gdzie oznaczylismy

V(4) =

1 1 1 11 i −1 −i1 −1 1 −11 −i −1 i

, (25)

Ω(4) =

1 0 0 0

0 1+i√2

0 0

0 0 i 0

0 0 0 −1+i√2

=

(1+i√

2

)0

(1+i√

2

)1

(1+i√

2

)2

(1+i√

2

)3

(26)

1. Dyskretna transformata Fouriera 33

Page 34: Analiza szeregów czasowych: 1. Dyskretna transformata ...

A zatem

G =1√8

V(4)

g0g2g4g6

+ Ω(4)V(4)

g1g3g5g7

V(4)

g0g2g4g6

−Ω(4)V(4)

g1g3g5g7

(27)

Fragmenty oznaczone kolorami obliczamy tylko raz. Mnozenie przez Ω(4) wy-konujemy w czasie liniowym. Zmniejszylismy czas obliczen o połowe.1. Dyskretna transformata Fouriera 34

Page 35: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Rzecz w tym, iz V(4) podlega analogicznej faktoryzacji

(zob. (25)), przy jednoczesnej dalszej permutacji wektora

wejsciowego:

V(4)

g0g2g4g6

=

V(2) Ω(2)V(2)

V(2) −Ω(2)V(2)

g0g4g2g6

(28)

V(2) =

[1 11 −1

], Ω(2) =

[1

i

]=

[i0

i1

]

(analogicznie dla [g1, g3, g5, g7]T )

1. Dyskretna transformata Fouriera 35

Page 36: Analiza szeregów czasowych: 1. Dyskretna transformata ...

W ten sposób

G =1√8

V(2)

[g0

g4

]+Ω(2)V(2)

[g2

g6

]

V(2)

[g0

g4

]−Ω(2)V(2)

[g2

g6

]

+Ω(4)

V(2)

[g1

g5

]+Ω(2)V(2)

[g3

g7

]

V(2)

[g1

g5

]−Ω(2)V(2)

[g3

g7

]

V(2)

[g0

g4

]+Ω(2)V(2)

[g2

g6

]

V(2)

[g0

g4

]−Ω(2)V(2)

[g2

g6

]

−Ω(4)

V(2)

[g1

g5

]+Ω(2)V(2)

[g3

g7

]

V(2)

[g1

g5

]−Ω(2)V(2)

[g3

g7

]

(29)

Dwuwymiarowe wektory oznaczone kolorami oblicza sie tylko raz. W ten sposóbzłozonosc obliczeniowa zredukowalismy juz czterokrotnie.

1. Dyskretna transformata Fouriera 36

Page 37: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Ostatnia zagadka: W porównaniu z wyjsciowym równaniem (22), w równaniu(29) dokonalismy permutacji[g0, g1, g2, g3, g4, g5, g6, g7]

T → [g0, g4, g2, g6, g1, g5, g3, g7]T .

Co to za permutacja?

04261537

=

00021002010211020012101201121112

−→odwracam kolejnosc

00020012010201121002101211021112

=

01234567

(30)

Wektor wejsciowy (“wektor próbek”) uporzadkowany jest w odwrotnej kolejnoscibitowej (bit reversal order ) indeksów.

1. Dyskretna transformata Fouriera 37

Page 38: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Ten algorytm bardzo łatwo uogólnia sie na dowolne N = 2s, s ∈ N.

Widac tez, ze znacznie redukujemy koniecznosc obliczania złozonych wyrazentypu sin

(nπN

), cos

(nπN

)— koniecznosc wywoływania funkcji bibliotecznych

sin(·), cos(·) została w ogóle wyeliminowana. Na kazdym etapie faktoryzacjiwystarczy raz wyliczyc odpowiedni pierwiastek z i, na co sa gotowe wzory,

potem zas wyliczac tylko kolejne potegi.

Jaki jest koszt numeryczny tego algorytmu?

1. Dyskretna transformata Fouriera 38

Page 39: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Kazda faktoryzacja zmniejsza ilosc operacji o połowe.

Faktoryzacji mozna zrobic tyle, ile razy mozna podzielic macierz “na cwiartki”.

Koszt numeryczny algorytmu FFT wynosi

O(N log2 N)

Na przykład dla N = 65536 = 216 zastosowanie algorytmu FFT zmniejszazłozonosc obliczeniowa w stosunku do liczenia “z definicji” ponad cztery tysiace

razy .

1. Dyskretna transformata Fouriera 39

Page 40: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Uwagi

• Zupełnie podobny algorytm mozna skonstruowac dla N = 3s, N = 5s i,ogólnie, dla N = qs, gdzie q jest liczba pierwsza. Koszt obliczeniowy wynosiwówczas O(N logq N).

• Dobre biblioteki “szybko” obsługuja takze N = qs11 q

s22 · · · qsm

m , gdzieq1, q2, . . . , qm sa niskimi liczbami pierwszymi.

• Jezeli analizujemy ciag uzyskany z symulacji, to w zasadzie kontrolujemyjego długosc i koniecznie nalezy zadbac o to, aby była ona potega niskiejliczby pierwszej, ewentualnie iloczynem jak najmniejszej ilosci czynnikówtypu q

sji . Jezeli mamy ciag “doswiadczalny”, dla zapewnienia odpowiedniej

szybkosci obliczen nalezy go albo obciac, albo uzupełnic zerami do najbliz-szej “specjalnej” długosci.

1. Dyskretna transformata Fouriera 40

Page 41: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Inne uwagi

• DFT traktuje ciag próbek jak ciag zmiennych zespolonych. Jesli liczymytransformate sygnału rzeczywistego, mozna go przekształcic za sygnał “ze-spolony” o długosci dwa razy mniejszej. Po dokonaniu transformacji, odwi-kłujemy transformate korzystajac z własnosci symetrii transformaty Fouriera:Jezeli g ∈ RN , G∗(f) = G(−f). Daje to istotne przyspieszenie obliczen.

• Podobnie mozna jednoczesnie liczyc transormaty dwu sygnałów rzeczywi-stych — bardzo przydatne przy liczeniu splotu dwu takich sygnałów.

• Istnieja takze “szybkie” algorytmy rozkładajace sygnał wejsciowy w baziesamych kosinusów (szybka transformata kosinusowa) lub samych sinusów(szybka transformata sinusowa). Transformat tych mozna z sensem uzywacjesli sygnały wejsciowe maja odpowiednie symetrie. Szybkiej dwuwymia-rowej transformacji kosinusowej uzywa sie w standardzie JPEG.

1. Dyskretna transformata Fouriera 41

Page 42: Analiza szeregów czasowych: 1. Dyskretna transformata ...

Jak zrobic transformacje dwuwymiarowa?

Bardzo prosto: Jezeli g ∈ CN×N ,

G = WgW† (31)

Oczywiscie jest na to odpowiedni “szybki” algorytm, z odpowiednim przyspie-szeniem dla g ∈ RN×N .

1. Dyskretna transformata Fouriera 42