Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Exercise 5.5Z: Complexity of the FFT

From LNTwww
Revision as of 13:45, 17 March 2017 by Khalil (talk | contribs)

P ID1179 Sig Z 5 5.png

Der FFT–Algorithmus realisiert eine Diskrete Fouriertransformation mit dem kleinstmöglichen Rechenaufwand, wenn der Parameter N eine Zweierpotenz ist. Im einzelnen sind zur Durchführung einer FFT folgende Rechenschritte notwendig:

  • Die FFT geschieht in ld N Stufen, wobei in jeder Stufe die genau gleiche Anzahl an Rechenoperationen durchzuführen ist. „ld” steht hier als Abkürzung für den Logarithmus zur Basis 2.
  • Die Grafik zeigt die dritte und letzte Stufe für das Beispiel N = 8. Man erkennt, dass in dieser und auch den anderen Stufen jeweils N/2 Basisoperationen durchzuführen sind.
  • In jeder Basisoperation, die man häufig auch als Butterfly bezeichnet, werden aus den beiden komplexen Eingangsgrößen E1 und E2 zwei komplexe Ausgänge berechnet:

A1=E1+E2wμ, A2=E1E2wμ.

  • Hierbei bezeichnet w = exp(–j · 2π/N) den komplexen Drehfaktor. Für das Beispiel N = 8 hat dieser folgenden Wert:

w=ejπ/4=cos(45)jsin(45).

  • Der Exponent μ dieses komplexen Drehfaktors kann alle ganzzahligen Werte zwischen 0 und N/2 –1 annehmen. Für N = 8 gilt:

w0=1,w1=12j12,w2=j,w3=12j12.

Mit dieser Aufgabe sollen die für die FFT erforderliche Anzahl von Rechenoperationen (OFFT) ermittelt und mit dem für die DFT angebbaren Wert ODFT ≈ 8N2 verglichen werden.

Zu beachten ist:

  • Sinnvollerweise werden die Potenzen von w vor dem eigentlichen Algorithmus berechnet und in einer Lookup–Tabelle abgelegt. Die hierfür notwendigen Operationen sollen deshalb unberücksichtigt bleiben.
  • Die Bitumkehroperation – eine Umsortierung, die vor der ersten Stufe durchzuführen ist – soll bei dieser Abschätzung ebenfalls nicht berücksichtigt werden.

Fragebogen

1

Wieviele reelle Additionen (AA) erfordert eine komplexe Addition?

AA =

2

Wieviele reelle Additionen (AM) und Multiplikationen (MM) sind für eine komplexe Multiplikation erforderlich?

AM =

MM =

3

Wieviele komplexe Additionen/Subtraktionen (aB) erfordert eine einzige Basisoperation („Butterfly”)? Wieviele komplexe Multiplikationen (mB) sind pro Basisoperation notwendig?

aB =

mB =

4

Wieviele Rechenoperationen (Additionen, Subtraktionen, Multiplikationen gleichermaßen) erfordert eine Basisoperation?

OB =

5

Wieviele reelle Operationen erfordert der gesamte FFT–Algorithmus? Welche Zahlenwerte ergeben sich für N = 16 und N = 1024?

OFFT(N=16) =

OFFT(N=1024) =

6

Wie groß ist der Zeitgewinn GFFT = ODFT/OFFT für N = 16 und N = 1024?

GFFT(N=16) =

GFFT(N=16) =


Musterlösung

1. 2. 3. 4. 5. 6. 7.