Matematik | KTH - SF1538Projektisimuleringsteknik · 2015-11-18 · Periodiskafunktioner...

Post on 01-Mar-2020

0 views 0 download

Transcript of Matematik | KTH - SF1538Projektisimuleringsteknik · 2015-11-18 · Periodiskafunktioner...

Fouriertransformation och spektralmetoder

Michael Hanke

Skolan för teknikvetenskap

SF1538 Projekt i simuleringsteknik

1 (28)

Introduktion

Varför Fouriertransformation?• Många processer är periodiska.• Den snabba Fouriertransformationen är ett kraftfullt vertyg för attundersöka sådana processer, både teoretiskt och numeriskt

I detta kapitel gör vi tre saker:• Vi undersöker hur man kan approximera periodiska funktioner medhjälp av sinus-/kosinusfunktioner och komplexaexponentialfunktioner.

• Vi introducerar en effektiv algoritm för att göra det numeriskt (FFT).• Vi använder Fouriertransformationens egenskaper för att konstrueraen ny numerisk metod för att lösa partiella differentialekvationer.

2 (28)

Periodiska funktioner

• Vi undersöker periodiska funktioner f definerad på R med perioden2π, dvs f (x + 2π) = f (x) för alla x ∈ R. Därför räcker det med attanta att funktionen är definerat på intervallet [−π, π].

• Funktionen kallas för jämn om f (x) = f (−x) för alla x ∈ R.• Funktionen kallas för udd om f (x) = −f (−x) för alla x ∈ R.

3 (28)

Fourier sinusserie

• Prototyp av udda 2π-periodiska funktioner: sin(nx).• Fourier sinusserie

S(x) =∞∑

n=1

bn sin(nx)

Q: Vilka funktioner f : [−π, π]→ R kan representeras bragenom en sinusserie?

A: Väldigt många (udda) funktioner om man mäter felet iminsta kvadratmening (minsta kvadratanpassning),

‖SN − f ‖2 =12π

∫ π

−π(SN(x)− f (x))2dx .

Här betecknar SN de första N termer i S .

4 (28)

Hur beräknar man koefficienterna?• MVi har att: ∫ π

−πsin(nx) sin(kx)dx =

{0, om n 6= k,π, om n = k.

• Antag att (f ojämn)

f (x) =∞∑

n=1

bn sin(nx).

• Multiplicera ekvationen med sin(kx) och integrera:∫ π

−πf (x) sin(kx)dx =

∞∑n=1

bn

∫ π

−πsin(nx) sin(kx)dx = bkπ.

• Därmed får vibn =

∫ π

−πf (x) sin(nx)dx .

5 (28)

Exempel: Rektangulär våg

Bild fattas!!!!

SW (x) =

−1, om x ∈ (−π, 0),

1, om x ∈ (0, π),

0 om x = −π, 0, π.

Fourier sinusserie:

SW (x) =4π

[sin x1

+sin 3x3

+sin 5x5

+sin 7x7

+ · · ·]

6 (28)

Exempel (cont)

−3 −2 −1 0 1 2 3

−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

7 (28)

Gibbs fenomen

−3 −2 −1 0 1 2 3

−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.2 2.4 2.6 2.8 3 3.2 3.40

0.2

0.4

0.6

0.8

1

SW

N=9

N=15

N=21

Gibbs fenomen: Partialsummor håller konstant avstånd näradiskontinuiteter!(men konvergerar i minsta kvadratmening)

8 (28)

Fourier kosinusserie• För jämna funktioner är det lämpligt att använda cosinusfunktionercos(nx).

• Fourier cosinusserie:

C (x) = a0 +∞∑

n=1

an cos(nx).

• Vi har

∫ π

−πcos(nx) cos(kx)dx =

0, om n 6= k,2π, om n = k = 0,π, om n = k > 0.

• På samma sätt som ovan får vi (f jämn)

an =

{12π

∫ π−π f (x)dx , om k = 0,

∫ π−π f (x) cos(nx)dx , om k > 0.

9 (28)

Exempel: RampFunktionen fås genom att integrera SW :

RR(x) = |x |.

−3 −2 −1 0 1 2 3

−0.5

0

0.5

1

1.5

2

2.5

3

3.5

4

Fourier kosinusserie:

RR(x) =π

2− π

4

[cos x12 +

cos 3x32 +

cos 5x52 +

cos 7x72 + · · ·

]Obs: Koefficienterna fås genom integration av de för SW .

10 (28)

Fourierserie: Allmäna periodiska funktioner

Låt f : [−π, π]→ R vara en periodisk funktion. Sedan gäller:• f = fjämn + fojämn

• fjämn = 1/2(f (x) + f (−x))

• fojämn = 1/2(f (x)− f (−x))

Därför kan vi skriva f som en summa av sinus- och kosinusserier:

f (x) = fjämn + fojämn

= a0 +∞∑

n=1

an cos(nx) +∞∑

n=1

bn sin(nx).

11 (28)

Fourierserie: Den komplexa versionen

• Moivres teorem: e iα = cosα + i sinα.• Låt ck = (ak − ibk)/2, c−k = (ak + ibk)/2 = ck .

cke ikx + c−ke−ikx = ck(cos kx + i sin kx) + c−k(cos kx − i sin kx)

= (ck + c−k) cos kx + i(ck − c−k) sin kx= ak cos kx + bk sin kx .

• Därmed får vi

f (x) =∞∑

n=−∞cne inx .

• Från och med nu använder vi alltid den komplexa versionen!• Obs: Även om f är en reell funktion så är koefficienterna cnvanligtvis komplexa.

12 (28)

Fourierserie (cont)

• Vanligt beteckning:fn ≡ cn.

• Det är enkelt att verifiera: n = 0,±1,±2, . . .

fn =12π

∫ π

−πf (x)e−inxdx

13 (28)

Intressanta egenskaper• Parsevals identitet∫ π

−π|f (x)|2dx = ‖f ‖22 = 2π

∞∑n=−∞

|fn|2

Därför gäller

f ∈ L2(−π, π)⇔∞∑

n=−∞|fn|2 <∞.

• Derivator:

f (p)(x) =∞∑

n=−∞(in)p fne inx .

• Låt Hpper vara mängden av all 2π periodiska funktioner som är p

gånger (generaliserad) deriverbara. Då gäller

f ∈ Hpper ⇔

∞∑n=−∞

k2p|fn|2 <∞.

Koefficienterna avtar snabbare ju oftare f är deriverbar!14 (28)

IntervalltransformationerQ: Antag att vi använder “basintervallet” (0, 2π) istället för

(−π, π). Vad händer med koefficienterna?A: Ingenting eftersom alla inblandade funktioner har samma

period 2π.Q: Antag att funktionen f har perioden T istället för 2π. Hur

kommer vi fram till en lämplig Fourierserie?A: Härledningen görs i två steg:

• Perioden T måste vara en “multiple” av perioden avde komplexa exponentialfunktionerna. Låt ω = 2π/T .Sedan görs ansatsen

f (x) =∞∑

n=−∞fne inωx

• Genom ansatsen ovan fås

fn =1T

∫ T

0f (x)e−inωxdx =

1T

∫ T/2

−T/2f (x)e−inωxdx .

15 (28)

Diskret Fouriertransformation (DFT)• Standardversionen av DFT bygger på intervallet (0, 2π).• Låt (0, 2π) vara indelat i N ekvidistanta delinterval,

h =2πN, xj = jh.

• Integralen approximeras genom trapetsregeln. Medf (0) = f (2π) = f (xN) fås

12π

∫ 2π

0f (x)e−inxdx ≈ h

N−1∑j=0

fje−inxj =1N

N−1∑j=0

fj(e−ih)jkn

=1N

N−1∑j=0

fj w jn

=: fn

Här: fj = f (xj) och w = e ih.• Sats: (invers DFT)

fj =N−1∑n=0

fnwnj

16 (28)

Matlabs DFT

• Matlab har två funktioner för DFT och den inversa DFT: fft ochifft.

• Båda använder en annan normering: Faktorn 1/N finns inbyggd iifft, medan den fattas i fft.

• Ibland delas faktorn så att båda transformationer ser mer“symmetriska” ut: Istället för 1/N används faktorn 1/

√N i DFT och

dess invers.

17 (28)

Snabb Fouriertransformation (FFT)

• Antalet räkneoperationer för DFT: N2 komplexa multiplikationer ochadditioner (vi antar att de f -oberoende koefficienterna w jk redan harberäknats i förväg.) Väldigt dyrt!

• Om N är en potens av 2 så kan man härleda en(divide-and-conquer) algoritm som bara har komplexitetenO(N logN): Cooley och Tukeys FFT

• Exempel: N = 212

• naiv algoritm: 224 ≈ 1.7 · 107 operationer• FFT: 6× 1012 ≈ 2.4 · 104 operationer (nästan 1000 gånger snabbare)

18 (28)

Förskjuten FFT

• Att använda intervallet (0, 2π) leder till standardalgoritmen.• Vad händer om man använder intervallet (−π, π) istället?• Lite algebra leder till (N jämn!)

fn =1N

N/2−1∑l=−N/2

fle−ihnl

fl =

N/2−1∑n=−N/2

fne ihnl

• De diskreta koefficienterna kommer att ha olika ordningar (men äridentiska!):

DFT (f0, f1, . . . , fN−1)

förskjuten DFT (fN/2, fN/2+1, . . . , fN−1, f0, . . . , fN/2−1)

• Det är just vad matlabs fftshift åstadkommer!

19 (28)

Spektralinterpolation• DFT och dess invers kan redan beräknas om bara de diskreta värden fj är

kända.• Exponentialuttryck kan däremot enkelt fortsättas på hela intervallet

(0, 2π) resp (−π, π):e ihnl = e inxl

• För givna fj kan vi beräkna deras DFT fl och sedan definera

ΠN f (x) :=N−1∑n=0

fne inx

• Enligt Sats är Πf en interpolation till funktionen f !Interpolationsfunktionen kallas för trigonometriskt polynom.

• På samma sätt kan vi använda den “symmetriska” versionen:

Πc,N f (x) :=

N/2−1∑n=−N/2

fne inx

• Obs: ΠN f 6= Πc,N f !!• Mellan interpolationsnoderna xl har Πc,N vanligtvis bättre noggrannhet än

ΠN .20 (28)

Spektralinterpolation (cont)

• Vi såg tidigare att koefficienterna i Fourierserien avtar väldigt snabbtom funktionen f är många gånger deriverbar.

• Det antyder att Fourierserien konvergerar ju snabbare ju oftarefunktionen är deriverbar.

• Man kan visa: Om funktionen f tillhör C∞[−π, π], så är

‖f − Πc,N‖2 ≤ C1e−C2N

• Konvergensen är snabbare än vilken polynom som helst. Det kallasför exponentiell konvergens.

21 (28)

Spektralinterpolation (cont)

Q: Kan en funktion entydigt återfås genom att användadiskreta värden?

A: Nej! Frågan går ut på att kunna konstruera en entydiginterpolation.Däremot går det bra om vi använder a-priori information(t ex funktionen är ett polynom av ett visst grad).

Q: Vilken klass kan vi använder om vi bara tittar påperiodiska funktioner och trigonometriska polynom?

A: Tag den enkla periodiska funktionen f (t) = ae i(ωx+φ). Vibehöver (minst) två värden i intervallet [0, ω/(2π)) för attkunna identifiera de två parametrarna entydigt.

22 (28)

Nyquist sampling theorem

• Låt T (= h) vara steglängden för “sampling” av signalen.• Definition: Nyquist sampling rate: T = π/ω.

Sats:Låt sampling rate T vara given. Frekvenserna som är högre än Nyquistfrequensen ωN = π/T kan inte bestämmas. En signal med högre frekvensän ωN mappas till en signal med lägre frekvens. Denna effekt kallas föraliasing.

23 (28)

Spektralmetoder: Derivering

Ide: Om vi har en funktion given vid diskreta noder så kan vi fåen approximation till derivatan genom att interpolerafunktionen med en deriverbar funktion p(x) och sedansätter u′(xj) ≈ p′(xj).

Exempel

• Stegvis linjär interpolation. u′(xj) ≈ uj+1−ujh

• Stegvis kvadratiskt interpolation: u′(xj) ≈ uj+1−uj−12h

24 (28)

Derivering (cont)

Använd spektralinterpolation,

p(x) = Πc,Nu =

N/2−1∑n=−N/2

une inx

Derivatan:

p′(x) =

N/2−1∑n=−N/2

unine inx

Approximation:

p′(xj) =

N/2−1∑n=−N/2

unine injh

25 (28)

Derivering: Algoritm

1 Låt vektorn u vara given.2 Beräkna FFT u av u.3 Använd fftshift för att förskjuta intervallet till (−π, π).4 Beräkna vektorn (. . . , inun, . . .).5 Använd fftshift en gång till.6 Till sist, beräkna p′ genom ifft.

Obs: Man kan omordna algoritmen lite så att det bara behövs enfftshift (jf anteckningarna).

26 (28)

Spektralmetoder för PDE

• Genom att använda deriveringsalgoritmen är det enkelt attkonstruera en linjemetod för PDE.

• Metoden konvergerar väldigt snabbt om lösningen är glatt ochperiodiskt.

• Komplexiteten med FFT är O(N logN) jämfört med komplexitetenO(N) för polynomiala derivator.

27 (28)

Sammanfattning

• Approximation av periodiska funktioner med hjälp av “enkla”periodiska funktioner.

• Analys av periodiska fenomen med hjälp av DFT ochtrigonometriska polynom.

• Spektralmetoder för partiella differentialekvationer.

28 (28)