[Artikel] Schnelle Fourier Transformation (FFT)

Neue Frage »

tigerbine Auf diesen Beitrag antworten »
[Artikel] Schnelle Fourier Transformation (FFT)
In diesem Artikel sollen motiviert durch den [Workshop - Trigonometrische Interpolation] noch andere Anwendungsmöglichkeiten des Verfahrens vorgestellt werden.

Wer den Artikel um eigene Beispiele ergänzen möchte, schreibt diese bitte im Numerik-Forum und informiert mich per PN, diese hier anzuhängen. Augenzwinkern

  1. Multiplikation von Polynomen

  2. Auswerten von Trigonometrischen Polynomen

  3. Trigonometrische Interpolation

tigerbine Auf diesen Beitrag antworten »
1. Multiplikation von Polynomen
Gegeben seien die beiden Polynome . Gesucht ist das Produkt :





Beispiel (n=4):





Es ist hierbei nicht nötig, dass beide den Polynome den gleichen Maximalgrad haben, solange sie in liegen (man würde mit Nullen als Koeffizient auffüllen). Mit dem Distributivgesetzt und einem Aufwand von 4² Rechenoperationen könnte man nun die Lösung berechnen und erhält:



Wir wollen uns nun überlegen, wie man mit weniger Aufwand das gleiche Ziel erreichen kann. r ist nun ein Polynom vom Maximalgrad 6, also Element eines 7-dimensionalen VR. Wir stocken nun (mit Nullen) die Dimension soweit auf, dass wir eine Zweierpotenz erhalten. Bzgl. der Monom Basis des haben die Polynome p und q die Koordinatenvektoren (aufsteigende Potenz von x):

tigerbine Auf diesen Beitrag antworten »
1a. Die Diskrete Fourier Transformation -Teil 1
  1. Sei nun die 8te oder (allgemein -te) Einheitswurzel. So wollen wir unter der FourierMatrix folgendes verstehen:



  2. Multipliziert man diese Matrix nun mit den Koordinatenvektoren von p und q, so erhält man die Transformierten Vektoren (wir werten p und q also in 8 komplexen Zahlen aus):






  3. Nun multipliziert man diese beiden transformierten Vektoren komponentenweise. (Dies dürfen wir, da es sich um Funktionswerte handelt):



  4. Nun muss dieser Vektor wieder zurücktransformiert werden. Allgemein ist die Bestimmung einer Inversen Matrix eher schwierig, doch in diesem Fall gilt:



  5. Und so erhalten wir am Ende (die schon bekannte Lösung):

tigerbine Auf diesen Beitrag antworten »
1b. Die Diskrete Fourier Transformation -Teil 2
  1. Nun wollen wir zunächst der Frage nachgehen, warum dieser Weg letztendlich auch zum Ziel geführt hat. Darin wird sich dann auch der Schlüssel finden, wie man das Ergebnis effizienter berechnen kann. Kehren wir einmal zum [Workshop - Trigonometrische Interpolation] zurück, mit dem Ziel das Polynom



    an den folgenden Stellen auszuwerten:



    Anders formuliert:



  2. Substituieren wir nun den Koeffizientenvektor d mit dem Koordiantenvektor von p (bzw q), so lässt sich die Rechnung in (2) wie folgt verstehen. sind gerade die Funktionswerte des Polynoms an den äquidistanten Stützstellen .

  3. Bildet man nun das Produkt der beiden "Funktionswertevektoren", so muss dies offensichtlich Komponentenweise geschehen. Wir erhalten also :



  4. Die Regularität der Matrix F folgt gerade aus den paarweise verschiedenen Knoten. F ist eine Vandermonde-Matrix und als solche regulär.

  5. Somit erhalten wir mit den gesuchten Koordinatenvektor.


Analyse

  • Wir sehen, dass die Multiplikation der "Funktionswertevektoren" mit n Multiplikationen zu bewerkstelligen ist.

  • Ob sich der Umweg dieses Verfahrens also rentiert, hängt von dem Aufwand der beiden Transformationen ab. So wie sie bislang durchgeführt wurden haben die jeweils einen Aufwand von und es ist noch nicht wirklich etwas gewonnen.
tigerbine Auf diesen Beitrag antworten »
1c. Schnelle Fourier Transformation
In Bezug auf [Workshop - Trigonometrische Interpolation] sind uns hier also die Koeffizienten d bereits gegeben und anstelle des Matrix-Vektorprodukts kann wie im Workshop die FFT durchgeführt werden. Für die ersten beiden Umrechnung ergibt sich also ein Aufwand in der Größenordnung von



Um nun wieder den gleichen Vektor wie nach der diskreten Fourier Transformation zu erhalten, müssen wir die ursprüngliche Reihenfolge der Einträge wieder herstellen. Dazu verwendet man die Bitumkehr.
tigerbine Auf diesen Beitrag antworten »
1d. Inverse Schnelle Fourier Transformation
FFT: Berechnung der Funktionswerte zu gegebenen Koeffizienten d.



IFFT: Berechnung der Koeffizienten zu gegebenen Funktionswerten.








Für gerades k = 2l




Für ungerades k=2l+1




Am Ende der IFFT muss noch mit multipliziert werden.
 
 
tigerbine Auf diesen Beitrag antworten »
1e. Das Kleingedruckte
Je nach Literatur werden unterschiedlich motivierte Zugänge zu dem Verfahren gewählt. So kann es sein, dass bei manchen das Polynom



betrachtet wird.

Zum Beispiel in matlab. Achtung, es kann auch mal j für den Imaginäreteil verwendet werden!

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
FFT Discrete Fourier transform.
    FFT(X) is the discrete Fourier transform (DFT) of vector X.  For
    matrices, the FFT operation is applied to each column. For N-D
    arrays, the FFT operation operates on the first non-singleton
    dimension.
 
    FFT(X,N) is the N-point FFT, padded with zeros if X has less
    than N points and truncated if it has more.
 
    FFT(X,[],DIM) or FFT(X,N,DIM) applies the FFT operation across the
    dimension DIM.
    
    For length N input vector x, the DFT is a length N vector X,
    with elements
                     N
       X(k) =       sum  x(n)*exp(-j*2*pi*(k-1)*(n-1)/N), 1 <= k <= N.
                    n=1
    The inverse DFT (computed by IFFT) is given by
                     N
       x(n) = (1/N) sum  X(k)*exp( j*2*pi*(k-1)*(n-1)/N), 1 <= n <= N.
                    k=1
 
    The relationship between the DFT and the Fourier coefficients a and b in
                N/2
    x(n) = a0 + sum a(k)*cos(2*pi*k*t(n)/(N*dt))+b(k)*sin(2*pi*k*t(n)/(N*dt))
                k=1
    is
       a0 = X(1)/N, a(k) = 2*real(X(k+1))/N, b(k) = -2*imag(X(k+1))/N,
    where x is a length N discrete signal sampled at times t with spacing dt.
 
tigerbine Auf diesen Beitrag antworten »
2. Auswerten von trig. Polynomen
Wie das geht kann man im [Workshop - Trigonometrische Interpolation] nachlesen, wo auch die Formel der FFT erläutert wird. In Bezug auf Teil 1 dieses Artikels ist wieder ein Vektor mit der Fouriermatrix zu multiplizieren. Nur stehen dessen Einträge nun für die Koeffizienten d des Polynoms

tigerbine Auf diesen Beitrag antworten »
3. Trigonometrische Interpolations Aufgabe
Hier sind nun die Funktionswerte an den äquidistanten Stützstellen gegeben und gesucht sind die Koeffizienten d.



Mit Punkt 1 wissen wir, dass eine Möglichkeit zur Berechnung die folgende wäre. Dabei bezeichne y die Funktionswerte.



Oder eben im Falle einer Zweierpotenz die Inverse Schnelle Fourier Transformation. Da haben wir auch schon eine Formel notiert:



Die Koeffizienten können auch hier mit der FFT berechnet werden, es sind lediglich negative Einheitswurzeln zu verwenden und am Ende durch 1/N zu dividieren.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »