Difference between revisions of "Aufgaben:Exercise 5.5Z: Complexity of the FFT"
m (Oezdemir moved page Aufgabe 5.5Z: Rechenaufwand für die FFT to Exercise 5.5Z: Complexity of The FFT) |
|
(No difference)
|
Revision as of 23:01, 29 November 2020
Der FFT–Algorithmus (Fast Fourier Transform) 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 log2 N Stufen, wobei in jeder Stufe die genau gleiche Anzahl an Rechenoperationen durchzuführen ist.
- 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+E2⋅wμ,
- A2=E1−E2⋅wμ.
- Hierbei bezeichnet w=e−j⋅2π/N den komplexen Drehfaktor. Für N=8 ergibt sich der Wert w=e−j⋅π/4=cos(45∘)−j⋅sin(45∘).
- Der Exponent μ für diesen komplexen Drehfaktor kann alle ganzzahligen Werte zwischen 0 und N/2−1 annehmen. Für N=8 gilt:
- w0=1,w1=1/√2−j⋅1/√2,w2=−j,w3=−1/√2−j⋅1/√2.
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≈8⋅N2 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.
Hinweis:
- Die Aufgabe gehört zum Kapitel Fast-Fouriertransformation (FFT).
Fragebogen
Musterlösung
- (R1+j⋅I1)+(R2+j⋅I2)=(R1+R2)+j⋅(I1+I2)⇒AA=2_.
(2) Eine jede komplexe Multiplikation benötigt vier reelle Multiplikationen und zwei reelle Additionen:
- (R1+j⋅I1)(R2+j⋅I2)=(R1⋅R2−I1⋅I2)+j⋅(R1⋅I2+R2⋅I1)⇒AM=2,MM=4_.
(3) Die Basisoperationen lauten mit den komplexen Eingangsgrößen E1, E2 und wμ:
- A1=E1+E2⋅wμ,A2=E1−E2⋅wμ.
- Dies bedeutet eine komplexe Multiplikation und zwei komplexe Additionen: aB=2,mB=1_.
(4) Im Gegensatz zu den ersten Computern nimmt heute eine Multiplikation keine wesentlich größere Rechenzeit in Anspruch als eine Addition bzw. Subtraktion.
- Mit den Ergebnissen der Teilaufgaben (1), (2) und (3) erhält man für die Gesamtzahl der Rechenoperationen:
- OB=aB⋅AA+aB⋅(AM+MM)=2⋅2+1⋅6=10_.
(5) Insgesamt gibt es log2 N Stufen, in denen jeweils N/2 Basisoperationen auszuführen sind:
- OFFT=log2N⋅N2⋅OB=5⋅N⋅log2N
- ⇒OFFT(N=16)=5⋅16⋅4=320_,OFFT(N=1024)=5⋅1024⋅10=51200_.
(6) Der Rechenzeitgewinn der FFT gegenüber der herkömmlichen DFT ergibt sich zu:
- GFFT=ODFTOFFT=8⋅N25⋅N⋅log2N=1.6⋅Nlog2N
- ⇒GFFT(N=16)=1.6⋅164=6.4_,GFFT(N=1024)=1.6⋅102410≈164_.