Numeeriset menetelmät Luento 13 Ti 18.10.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 1/43 p. 1/43
Nopeat Fourier-muunnokset Fourier-sarja: Jaksollisen funktion esitys trigonometristen funktioiden (sin ja cos) sarjakehitelmänä Fourier-muunnos: Integraalimuunnos, jonka avulla signaali voidaan jakaa sinimuotoisiin komponentteihinsa Diskreetti Fourier-muunnos: Jatkuvan Fourier-muunnoksen diskreetti versio Nopea Fourier-muunnos: Algoritmi, jolla diskreetti Fourier-muunnos lasketaan tehokkaasti Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 2/43 p. 2/43
Nopeat Fourier-muunnokset Sovelluskohteita: Signaalinkäsittely Spektrianalyysi Magneettikuvaus Äänenpakkaus Yleisesti sovellukset, jotka perustuvat ilmiöiden jaksollisuuteen tai spektrin mittaamiseen Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 3/43 p. 3/43
Kompleksiluvut Kompleksiluku z C z = a + ib, missä a = Rez R b = Imz R reaaliosa imaginääriosa i = 1 imaginääriyksikkö Kompleksikonjugaatti z = a ib Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 4/43 p. 4/43
Kompleksiluvut De Moivren kaava e ikt = coskt + i sin kt e ikt = coskt i sin kt = cos ( kt) + i sin ( kt) = e ikt Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 5/43 p. 5/43
Fourier-sarjat Olkoon f : R C siten, että se on integroituva välillä ] π, π[ 2π-jaksollinen f(x + n2π) = f(x) Merkitään f L 1 (] π, π[) Määritellään kantafunktiot ϕ k : R C siten, että ϕ k (t) = 1 2π e ikt Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 6/43 p. 6/43
Fourier-sarjat π π ϕ k (t)ϕ j (t)dt = 1 2π = 1 2π = π π e ikt e ijt dt = 1 π 2π [ π cos (k j)t dt + i π { 1, k = j 0, k j π π e i(k j)t dt ] sin (k j)t dt π Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 7/43 p. 7/43
Fourier-sarjat Kuvauksen f Fourier-kertoimet c k (f) = π π f(t)ϕ k (t)dt = 1 2π π π f(t)e ikt dt Kuvauksen f Fourier-sarja F(f, x) = c k (f)ϕ k (x) = 1 2π c k (f)e ikx k= k= Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 8/43 p. 8/43
Fourier-sarjat Lause: Olkoon f L 1 (] π, π[) siten, että Fourier-sarja suppenee tasaisesti f jatkuva kaikkialla ja F(f, x) = f(x) Lause: Olkoon f L 1 (] π, π[) paloittain jatkuvasti differentioituva Fourier-sarja suppenee kaikkialla ja F(f, x) = f(x), ( 1 2 lim x x+ ) f( x) + lim f( x) x x jatk., epäjatk. Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 9/43 p. 9/43
Fourier-muunnos Olkoon f : R C integroituva koko R:ssä Merkitään f L 1 (R) Fourier-muunnos Ff(y) = ˆf(y) = 1 2π f(t)e iyt dt Fourier-käänteismuunnos F 1 ˆf(x) = 1 2π ˆf(y)e ixy dy Huom: Skaalauskertoimet voidaan valita toisinkin Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 10/43 p. 10/43
Fourier-muunnos Muodollisesti F 1 Ff = f Mutta: F 1 ˆf(x) ei välttämättä hyvin määritelty Jos f L 1 (R) ˆf on olemassa ˆf L 1 (R) Lause: Olkoon f L 1 (R) siten, että ˆf L 1 (R) f jatkuva kaikkialla ja F 1 ˆf(x) = f(x) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 11/43 p. 11/43
Fourier-muunnos Lause: Fourier-muunnos on lineaarinen (f + g)(y) = ˆf(y) + ĝ(y), (λf)(y) = λ ˆf(y) missä f, g L 1 (R) ja λ C Lause: Fourier-muunnos muuttaa derivoinnin kertolaskuksi (f )(y) = iy ˆf(y) missä f L 1 (R) siten, että f L 1 (R) ja b a f (t)dt = f(b) f(a) a, b R Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 12/43 p. 12/43
Konvoluutiot Olkoot f, g L 1 (R) Konvoluutio (f g)(x) = f(x t)g(t)dt Konvoluutio on symmetrinen: (f g)(x) = (g f)(x) kaikilla x joilla se on määritelty Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 13/43 p. 13/43
Konvoluutiot Eräs Fourier-muunnosten sovellus on konvoluutioiden laskeminen Lause: Olkoot f, g L 1 (R) f g L 1 (R) ja (f g)(y) = 2π ˆf(y)ĝ(y) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 14/43 p. 14/43
Diskreetti Fourier-muunnos Fourier-muunnoksen diskreetti versio Sovelluskohde esimerkiksi: Signaalista otetaan näytteitä sopivin väliajoin Käsitellään saatua diskreettiä mittausaineistoa Diskreetti Fourier-muunnos siirtää signaalit aika-alueelta (time domain) taajuusalueelle (frequency domain) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 15/43 p. 15/43
Diskreetti Fourier-muunnos Aika t, mittausjakso [0, 2π] Mittausten lukumäärä N, oletetaan että N = 2M jollain positiivisella kokonaisluvulla M Mittaushetket t j = j2π/n, j = 0, 1,..., N 1 Vastaavat mittausarvot f j C Laajennetaan N-jaksolliseksi pisteistöksi: f j+nn = f j, j = 0, 1,..., N 1 Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 16/43 p. 16/43
Diskreetti Fourier-muunnos Merkintä w = e i2π/n Pisteistö w j = e ij2π/n on N-jaksollinen Lause: Jos 0 k, j N 1 N 1 l=0 w kl w lj = { N, k = j 0, k j Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 17/43 p. 17/43
Diskreetti Fourier-muunnos Todistus: N 1 w kl w lj = N 1 w kl w lj = N 1 w (k j)l l=0 l=0 l=0 Tapaus k = j w k j = 1 N 1 l=0 w(k j)l = N Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 18/43 p. 18/43
Diskreetti Fourier-muunnos Tapaus k j w k j 1 Koska w (k j)n = 1 kaikilla k, j w k j on polynomin p(z) = z N 1 juuri Toisaalta p(z) = (z 1)( N 1 l=0 zl ) ( w k j 1 ) ( N 1 } {{ } 0 N 1 l=0 w(k j)l = 0 l=0 w (k j)l ) = 0 Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 19/43 p. 19/43
Diskreetti Fourier-muunnos Määritellään pisteistö ϕ kj siten, että ϕ kj = 1 N w kj, k, j = 0, 1,..., N 1 Edellinen lause N 1 l=0 ϕ kl ϕ lj = { 1, k = j 0, k j Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 20/43 p. 20/43
Diskreetti Fourier-muunnos Diskreetti Fourier-muunnos ˆf k = N 1 j=0 f j ϕ kj = 1 N 1 N j=0 f j w kj, k = 0, 1,..., N 1 Diskreetti Fourier-käänteismuunnos f j = N 1 ˆf k ϕ jk = 1 N 1 N ˆf k w jk, j = 0, 1,..., N 1 k=0 k=0 Myös pisteistöt ˆf k ja f j ovat N-jaksollisia Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 21/43 p. 21/43
Diskreetti Fourier-muunnos Käänteismuunnos: f l = N 1 ˆf k ϕ lk = N 1 ( N 1 f j ϕ kj )ϕ lk = k=0 N 1 ( N 1 k=0 ϕ lk ϕ kj ) j=0 f j j=0 = f l k=0 } {{ } = 1, l = j = 0, l j Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 22/43 p. 22/43
Diskreetti Fourier-muunnos Lause: Diskr. Fourier-muunnos on lineaarinen (f + g) k = ˆf k + ĝ k, (λf)k = λ ˆf k, missä f j, g j ovat N-jaksollisia ja λ C Lause: Diskr. Fourier-muunnos säilyttää normin N 1 ˆf k 2 = N 1 f j 2 k=0 j=0 missä f j on N-jaksollinen Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 23/43 p. 23/43
Diskreetti Fourier-muunnos ˆf k = 1 N 1 N j=0 f j w kj N + 1 kertolaskua, N 1 yhteenlaskua (sekä w kj :n laskemiset) Pisteitä N kappaletta N 2 + N kertolaskua, N 2 N yhteenlaskua Diskreetin Fourier-muunnoksen laskennallinen vaativuus määritelmästä laskettuna on O(N 2 ) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 24/43 p. 24/43
Diskreetit konvoluutiot Olkoot f j, g j kaksi N-jaksollista pisteistöä Diskreetti konvoluutio (f g) j = N 1 l=0 f j l g l, j = 0, 1,..., N 1 Symmetrinen: (f g) j = (g f) j N kertolaskua, N 1 yhteenlaskua Pisteitä N kappaletta N 2 kertolaskua, N 2 N yhteenlaskua Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 25/43 p. 25/43
Diskreetit konvoluutiot Lause: Olkoot f j, g j N-jaksollisia (f g) k = N ˆf k ĝ k Kaksi N:n pisteen muunnosta, yksi N:n pisteen käänteismuunnos, N + 1 kertolaskua Jos Fourier-muunnosten laskeminen O(N 2 ) Myös konvoluution laskeminen O(N 2 ) Ei parempi kuin suoraan määritelmästä Lause hyödyllinen jos Fourier-muunnos pystytään laskemaan nopeammin kuin O(N 2 ) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 26/43 p. 26/43
Esimerkki Reaaliarvoinen signaali f(t) = sin(2π20t) + sin(2π35t) + sin(2π50t) Näytteenottoväli δt = 0.001 Näytteiden lukumäärä N = 256 Näytteet f j = f(t j ) ajanhetkillä t j = jδt, j = 0, 1,..., N 1 Mutta: Mitattu signaali sisältää aina myös kohinaa Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 27/43 p. 27/43
Esimerkki jatkuu 4 3 2 1 0-1 -2-3 -4 0 50 100 150 200 250 AIKA (MS) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 28/43 p. 28/43
Esimerkki jatkuu 4 3 2 1 0-1 -2-3 -4 0 50 100 150 200 250 AIKA (MS) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 29/43 p. 29/43
Esimerkki jatkuu Pisteistön f j diskreetti Fourier-muunnos ˆf k Signaalin diskreetti tehospektri ˆf k 2 /N Esitetään tehospektri taajuuden ϕ k = k/(nδt) funktiona Suuret piikit alkuper. signaalin taajuuksia Pienet piikit kohinan aiheuttamia Koska f j :t reaalisia tarvitaan vain pisteet k = 0, 1,..., N/2 1 Vain puolet taajuusalueesta käyttökelpoista (taajuudet 0 Hz... 1/2δt Hz) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 30/43 p. 30/43
Esimerkki jatkuu 60 50 40 30 20 10 0 0 50 100 150 200 250 300 350 400 450 500 TAAJUUS (HZ) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 31/43 p. 31/43
Esimerkki jatkuu Kohinan suodatus: Poistetaan kohinaa vastaavat taajuudet Asetetaan pisteistöstä ˆf k nolliksi ne komponentit, jotka vastaavat yli 100 Hz taajuuksia Suodatetun pisteistön ˆf k diskreetti Fourier-käänteismuunnos f j Verrataan alkuperäiseen signaaliin Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 32/43 p. 32/43
Esimerkki jatkuu 4 3 2 1 0-1 -2-3 -4 0 50 100 150 200 250 AIKA (MS) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 33/43 p. 33/43
Nopeat Fourier-muunnokset Diskreetin Fourier-muunnoksen laskeminen määritelmästä O(N 2 ) nopeilla Fourier-muunnoksilla O(N log N) N N 2 N log N 128 16 384 896 1024 1 048 576 10 240 Fast Fourier transforms, FFT Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 34/43 p. 34/43
Yleinen algoritmi Diskreetti Fourier-muunnos ˆf k = 1 N 1 N j=0 f j w kj N, w N = e i2π/n Olkoon N = N 1 N 2 Määritellään j ja k uudelleen j = N 1 j 2 + j 1, k = N 2 k 1 + k 2 missä j 1, k 1 = 0, 1,..., N 1 1 ja j 2, k 2 = 0, 1,..., N 2 1 Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 35/43 p. 35/43
Yleinen algoritmi ˆf N2 k 1 +k 2 = 1 N 1 1 N j 1 =0 = 1 N 1 1 N N 2 1 j 2 =0 N 2 1 f N1 j 2 +j 1 w (N 2k 1 +k 2 )(N 1 j 2 +j 1 ) N f N1 j 2 +j 1 j 1 =0 j 2 =0 w N 2N 1 k 1 j 2 } N {{} w N 2k 1 j 1 } N{{} w N 1k 2 j 2 } N{{} w k 2j 1 N w N 1N 2 N = 1 w N 2 N = w N 1 w N 1 N = w N 2 Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 36/43 p. 36/43
Yleinen algoritmi ˆf N2 k 1 +k 2 = 1 N 1 1 N1 ( j 1 =0 kiertokerroin N 1 2 1 N2 {}}{ w k 2j 1 N j 2 =0 ) f N1 j 2 +j 1 w k 2j 2 N 2 }{{} N 2 :n pisteen diskr. Fourier-muunnos w k 1j 1 N 1 } {{ } N 1 :n pisteen diskr. Fourier-muunnos Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 37/43 p. 37/43
Yleinen algoritmi (1) Merkitään g j2 = f N1 j 2 +j 1, j 2 = 0, 1,..., N 2 1 Kullakin j 1 saadaan eri pisteistö g j2 = g j1,j 2 Lasketaan N 2 :n pisteen muunnokset ĝ k2 = 1 N 2 1 N2 j 2 =0 g j2 w k 2j 2 N 2 Erikseen kullakin j 1 N 1 kpl N 2 :n pisteen muunnoksia ĝ k2 = ĝ j1,k 2 Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 38/43 p. 38/43
Yleinen algoritmi (2) Merkitään h j1 = w k 2j 1 N ĝ j1,k 2, j 1 = 0, 1,..., N 1 1 Toisin sanoen kerrotaan pisteistöjen ĝ j1,k 2 alkiot kiertokertoimilla w k 2j 1 N Kullakin k 2 saadaan eri pisteistö h j1 = h k2,j 1 Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 39/43 p. 39/43
Yleinen algoritmi (3) Lasketaan N 1 :n pisteen muunnokset ĥ k1 = 1 N 1 1 N1 j 1 =0 h j1 w k 1j 1 N 1 Erikseen kullakin k 2 N 2 kpl N 1 :n pisteen muunnoksia ĥk 1 = ĥk 2,k 1 ˆf k = ĥk 2,k 1 Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 40/43 p. 40/43
Yleinen algoritmi (vaativuus) Muunnos suoraan N:n pisteen muunnoksena: N 2 + N = N 1 N 2 (N 1 N 2 + 1) kertolaskua Edellisellä algoritmilla: N 1 kertaa N 2 :n pisteen muunnos kerrotaan N 1 N 2 kertaa kiertokertoimilla N 2 kertaa N 1 :n pisteen muunnos N 1 (N2 2 + N 2 ) + N 1 N 2 + N 2 (N1 2 + N 1 ) = N 1 N 2 (N 1 + N 2 + 3) < N 1 N 2 (N 1 N 2 + 1) kertolaskua Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 41/43 p. 41/43
Yleinen algoritmi Laskut voidaan tehdä myös toisessa järjestyksessä: Kerrotaan N 2 N 1 kertaa kiertokertoimilla N 2 kertaa N 1 :n pisteen muunnos N 1 kertaa N 2 :n pisteen muunnos (Ei käsitellä) Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 42/43 p. 42/43
Yleinen algoritmi (rekursio) Olkoot N 1 ja N 2 muotoa N 1 = N 1,1 N 1,2 ja N 2 = N 2,1 N 2,2 Sovelletaan edellistä algoritmia N 1 :n ja N 2 :n pisteen muunnosten laskemiseen FFT rekursiivisesti N = 2 n Cooley Tukey-algoritmit Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 43/43 p. 43/43