Numerische Methoden und Algorithmen in der Physik Hartmut Stadie, Christian Autermann 29.01.2009 Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 1/ 18
Einführung Fourier-Transformation DFT DFT in zwei Dimensionen Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 2/ 18
Übersicht Einführung Informationen Fourier-Transformation DFT DFT in zwei Dimensionen Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 3/ 18
Informationen Ablauf: Vorlesung: donnerstags 8:30 Hörsaal, Geb. 61, DESY Übung: im Anschluss an die Vorlesung Material: Stroustrup: The C++ Programming Language, 3rd edition http://www.mathematik.uni-marburg.de/ cpp/ Press et al: Numerical Recipes, 3rd edition Blobel, Lohrmann: Statistische und numerische Methoden der Datenanalyse http://wwwiexp.desy.de/studium/lehre/numalg/ (Wikipedia) Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 4/ 18
Übersicht Einführung Fourier-Transformation Einführung DFT DFT in zwei Dimensionen Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 5/ 18
Fourier-Transformation kontinuierliche Fourier-Transformation: x : R C: ˆx(ω) = x(t) = 1 2π 1 2π diskrete Fourier-Transformation: (x 0,..., x N 1 ) C N : ˆx k = N 1 n=0 x n = 1 N x(t)e i ωt d t (1) ˆx(ω)e i ωt d ω (2) kn i2π x n e N (3) N 1 kn i2π ˆx k e N (4) k=0 Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 6/ 18
Eigenschaften Signal Fouriertransf. Kommentar αf (t) + βg(t) αf (ω) + βf (ω) Linearität f (t a) e iaω F (ω) Zeitverschiebung e iat g(t) G(ω a) Frequenzverschiebung 1 g(at) a G ( ) ω a G(t) g( ω) (f g)(t) = D f (τ)g(t τ)dτ 2πF(ω) G(ω) Faltung < f (t), g(t) > < F (ω), G(ω) > Plancherel-Identität Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 7/ 18
Übersicht Einführung Fourier-Transformation DFT Beispiel FFT DFT in zwei Dimensionen Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 8/ 18
Diskrete Fourier-Transformation Beispiel: Audio-CD Gespeichert sind 44100 Amplitudenwerte a j pro Sekunde. a j = a(t j ), mit t j = j d und d = DFT für einen komplexen Vektor 1 44100 s Finde Fourierkoeffizienten â k für komplexen Vektor a = (a 0,..., a N 1 ) C N : â k = N 1 j=0 e 2πi jk N aj für k = 0,..., N 1 (6) Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 9/ 18
DFT für einen reellen Vektor DFT für einen reellen Vektor Benutze Symmetrie: F (ω) = [F ( ω)] für reelle Funktion f Daher: â N k = â k (7) Daher gibt es nur N/2 unabhängige komplexe Koeffizienten â k im Frequenzraum. Beweis: â N k = = N 1 j=0 N 1 j=0 Nj 2πi e N e 2πi jk N e 2πi jk N aj a j = â k Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 10/ 18
Fast Fourier Transformation Rechenaufwand bei Berechnung der â k nach Gleichung 6 skaliert mit N 2. schnelle Fourier-Transformation: FFT reduziert die Komplexität auf N log 2 (N). Algorithmus publiziert von James Cooley und John W. Tukey (1965) schon 1805 von Gauß bei der Berechnung der Bahnen der Asteroiden Pallas und Juno verwendet funktioniert nur für N = 2 k Datenpunkte Beispiel: N = 256 erfordert nur 2.048 statt 65.536 Rechenschritte Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 11/ 18
Herleitung nach Danielson and Lanczos (1942) â k = = = N 1 j=0 N/2 1 j=0 N/2 1 j=0 e 2πijk/N a j N/2 1 e 2πi(2j)k/N a 2j + j=0 N/2 1 e 2πijk/(N/2) a 2j + e 2πik/N e 2πi(2j+1)k/N a 2j+1 j=0 e 2πijk/(N/2) a 2j+1 = â g k + e2πik/n â u k Berechnung von â k aus N a j -Werten über Berechnung von âk e und âk o aus jeweils N/2 Werten. âg k kann wiederum aus âgg k und aus jeweils N/4 Werten berechnet werden. â gu k Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 12/ 18
Algorithmus Pseudocode: fft(n, f ) 1 Wenn n = 1 dann gebe f zurück 2 Wenn n nicht 1: 1 g = fft ( n 2, (f 0, f 2,..., f n 2 ) ) 2 u = fft ( n 2, (f 1, f 3,..., f n 1 ) ) 3 Berechne für k = 0,..., n 2 1: 4 gebe c zurück c k = g k + u k e 2πik/n c k+n/2 = g k u k e 2πik/n Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 13/ 18
Übersicht Einführung Fourier-Transformation DFT DFT in zwei Dimensionen Definition Beispiele FFT in zwei Dimensionen Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 14/ 18
Diskrete Fourier-Transformation in zwei Dimensionen Erweiterung auf zwei Dimensionen: Fourier-Transformation von a m,n = f (x m, y n ) M 1 X N 1 X 2πi mk â k,l = a m,n e M e 2πi nl N für k = 0,..., M 1 und l = 0,..., N 1 m=0 n=0 Die Rücktransformation lautet entsprechend: a m,n = 1 MN X X M 1 N 1 k=0 l=0 2πi mk â k,l e M e 2πi nl N (8) für m = 0,..., M 1 und n = 0,..., N 1 (9) Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 15/ 18
Beispiel Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 16/ 18
FFT in zwei Dimensionen Idee: Warnung: â k,l = = M 1 N 1 m=0 n=0 M 1 m=0 mk 2πi a m,n e M e 2πi nl N N 1 mk 2πi e M n=0 nl 2πi e N am,n = FFT-über-m(FFT-über-n(a m,n )) Dieser direkte Ansatz erfordert ein häufiges Umkopieren der Werte. Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 17/ 18
Kommende Woche? Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 18/ 18