Kapitel 3: DFT und FFT

Ähnliche Dokumente
Kapitel 3: DFT und FFT

Test = 28 Punkte. 1: 2: 3: 4: 5: Punkte: Note:

Grundlagen der Signalverarbeitung

ZHAW, DSV1, FS2010, Rumc, 1. H(z) a) Zeichnen Sie direkt auf das Aufgabenblatt das Betragsspektrum an der Stelle 1.

SiSy1, Praktische Übung 3. Fourier-Analyse (periodischer Signale) kann als Fourier-Reihe 1 beschrieben werden:

Übung 3: Fouriertransformation

Diskrete Fourier-Transformation und FFT. 1. Die diskrete Fourier-Transformation (DFT) 2. Die Fast Fourier Transform (FFT)

Puls-Code-Modulation. Thema: PCM. Ziele

Übung 4: Spektrogramm

Übungsaufgaben Digitale Signalverarbeitung

Schnelle Fouriertransformation (FFT)

Systemtheorie Teil B

Klausur zur Vorlesung Digitale Signalverarbeitung

Versuch 3: Anwendungen der schnellen Fourier-Transformation (FFT)

Fouriertransformation, z-transformation, Differenzenglei- chung

Runde 9, Beispiel 57

Relevante Frequenztransformationen

Digitale Signalverarbeitung auf FPGAs

Bildverarbeitung Herbstsemester Fourier-Transformation

(Fast) Fourier Transformation und ihre Anwendungen

Abtastung. Normalisierte Kreisfrequenz = DSP_9-Abtasttheorem 2

Lösungsblatt 2 Signalverarbeitung und Klassifikation

Argumente für die diskrete Realisierung der Fourierintegrale

Beispiel für eine periodische Spline-Interpolationsfunktion: Wir betrachten f(x) = sin(πx) und geben die folgenden Stützstellen und Stützwerte vor:

Lösungsblatt 2 Signalverarbeitung

Digitale Signalverarbeitung, Vorlesung 11 - Kurzzeitfouriertransformation

Diskrete und Schnelle Fourier Transformation. Patrick Arenz

Systemtheorie Teil A. - Zeitkontinuierliche Signale und Systeme - Musterlösungen. Manfred Strohrmann Urban Brunner

Theorie digitaler Systeme

,Faltung. Heavisidefunktion σ (t), Diracimpuls δ (t) Anwendungen. 1) Rechteckimpuls. 2) Sprungfunktionen. 3) Schaltvorgänge

Digitale Signalverarbeitung

Klausur zur Vorlesung Digitale Signalverarbeitung

Spektrumanalyse. Inhalt. I. Einleitung 2. II. Hauptteil 2-8

Inhaltsverzeichnis. Daniel von Grünigen. Digitale Signalverarbeitung. mit einer Einführung in die kontinuierlichen Signale und Systeme

Nachrichtentechnik [NAT] Kapitel 4: Fourier-Transformation. Dipl.-Ing. Udo Ahlvers HAW Hamburg, FB Medientechnik

und mit t in Sekunden wird mit einer Frequenz von 8000 Hz abgetastet. Die Abtastung beginnt bei t=0 mit dem Zeitindex n=0.

Spektrale Analyse Fourier Transformation

5. Fourier-Transformation

Spektrum zeitdiskreter Signale

Diskrete Fourier Transformation (DFT): Zeitfenster, Frequenzauflösung, Fensterfunktionen

Signale und Systeme. Martin Werner

Digitale Verarbeitung analoger Signale

Übung 2: Spektrum periodischer Signale

Numerische Methoden und Algorithmen in der Physik

Übung: Computergrafik 1

Digitale Signalverarbeitung, Vorlesung 10 - Diskrete Fouriertransformation

Aufgabe 1 (20 Punkte)

Systemtheorie. Vorlesung 20: Eigenschaften der Fourier-Transformation. Fakultät für Elektro- und Informationstechnik, Manfred Strohrmann

Übung 6: Analyse LTD-Systeme

Spektralanalyse physiologischer Signale

A2.1: Gleichrichtung. Die Grafik zeigt das periodische Signal x(t). Legt man x(t) an den Eingang einer Nichtlinearität mit der Kennlinie

Ganzrationale Funktionen

Beispiel-Klausuraufgaben Digitale Signalverarbeitung. Herbst 2008

Martin Meyer. Signalverarbeitung. Analoge und digitale Signale, Systeme und Filter 5. Auflage STUDIUM VIEWEG+ TEUBNER

Übungen zu Transformationen. im Bachelor ET oder EW. Version 2.0 für das Wintersemester 2014/2015 Stand:

FH Jena FB Elektrotechnik/Informationstechnik Prof. Giesecke Prüfungsaufgaben Signalverarbeitung SS 2012

Seminar Digitale Signalverarbeitung

Digitale Signalverarbeitung

Signale und Systeme Ergänzungen zu den Spektraltransformationen

Fouriertransformationen DSP 1

5. Fourier-Transformation

Musterklausur 1 zu Signal- und Systemtheorie I 5. Januar 2013

Einführung in die Signalverarbeitung

Biosignalverarbeitung (Schuster)

Spektralanalyse

Frequenzbewertung von Luftschallsignalen

Klausur zur Vorlesung Digitale Signalverarbeitung

Digitale Signalverarbeitungssysteme II: Praktikum 2

Digitale Signalverarbeitung mit MATLAB

Signale und Systeme I

Kontrollfragen zum Skript Teil 1 beantwortet

Einführung in die Signalverarbeitung

Digitale Signalverarbeitung. mit MATLAB

1 Diskrete Fourier Transformation. 2 Definition der Diskreten Fourier Transformation (DFT)

12.2 Gauß-Quadratur. Erinnerung: Mit der Newton-Cotes Quadratur. I n [f] = g i f(x i ) I[f] = f(x) dx

3.3 Das Abtasttheorem

Signale und Systeme Spektraldarstellungen determinierter Signale (Teil 1)

Kapitel 8: Zeitdiskrete Zufallssignale

(Bitte geben Sie bei der Beantwortung von Fragen eine Begründung bzw. bei der Lösung von Kurzaufgaben eine kurze Berechnung an!)

Kapitel 2: Fourieranalyse. Analoge, periodische Signale

Zusammenfassung der 2. Vorlesung

π soll mit Hilfe einer DFT spektral

Biosignal Processing II

Übung 7: Methode der kleinsten Quadrate

Fourierreihen und Spektrenanalyse Protokoll 11

2. Fourier-Transformation

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16

Kapitel 9: Informationstheorie. 2. Entropie

Diskrete Fourier-Transformation

FH Jena Prüfungsaufgaben - Master Prof. Giesecke FB ET/IT Digitale Signalverarbeitung SS 2012

Einführung in die digitale Signalverarbeitung WS11/12

Klausur zur Vorlesung Digitale Signalverarbeitung

Betrachtetes Systemmodell

Praktikum, NT 1: Spektrumsschätzung

einige Zusatzfolien für s Seminar

6. Vorlesung. Systemtheorie für Informatiker. Dr. Christoph Grimm. Professur Prof. Dr. K. Waldschmidt, Univ. Frankfurt/Main

Spektralanalyse. Spektralanalyse ist derart wichtig in allen Naturwissenschaften, dass man deren Bedeutung nicht überbewerten kann!

Hilfsblätter Lineare Algebra

Transkript:

ZHAW, DSV1, FS2009, Rumc, 3-1 Inhaltsverzeichnis Kapitel 3 DFT und FFT 3.1. EINLEITUNG... 1 3.2. DISKRETE FOURIERTRANSFORMATION (DFT)... 2 3.3. EIGENSCHAFTEN DER DFT... 2 3.4. VERWANDTSCHAFT DER DFT MIT DER FOURIERREIHE... 4 3.5. FILTERFUNKTION DER DFT... 5 3.6. LEAKAGE... 6 3.7. SCHNELLE FOURIERTRANSFORMATION (FFT)... 8 3.8. FFT VON REELLWERTIGEN SIGNALEN... 9 Literatur- bzw. Quellenverzeichnis [1] M. Meier Signalverarbeitung, ISBN 3-528-16955-9, Vieweg Verlag, Oktober 2000. [2] A.V. Oppenheim, R.W. Schafer, J. R. Buck Zeitdiskrete Signalverarbeitung, 2., überarbeitete Auflage, ISBN 3-8273-7077-9, Pearson Studium, 2004. [3] W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes in C, ISBN 0-521-43108-5, Cambridge University Press 1992. Download (einzelne Kapitel als PDF, kostenlos) http//www.library.cornell.edu/nr/bookcpdf.html 3.1. Einleitung Das Fourierspektrum X(f) eines abgetasteten Signals x[n] = x(nt s ) ist periodisch und kann auch in Funktion der Abtastwerte x[n] ausgedrückt werden (siehe Kapitel 2) X j n2 f Ts ( f ) x[ n] e. (3.1) n In diesem Kapitel wird zuerst gezeigt, dass die diskrete Fouriertransformation (DFT) eine Näherung des Fourierspektrums X(f) in Gleichung (3.1) darstellt. Danach werden die Eigenschaften der DFT analysiert und die Verwandtschaft mit der komplexen Fourierreihe aufgezeigt. Ausgehend von der DFT wird dann die Fast Fourier Transformation (FFT) vorgestellt. Die FFT ist einer der wichtigsten Algorithmen der DSV.

ZHAW, DSV1, FS2009, Rumc, 3-2 3.2. Diskrete Fouriertransformation (DFT) Ein Problem bei der praktischen Bestimmung des Fourierspektrums in (3.1) ist das Aufsummieren über unendlich viele Terme. Bei der DFT berücksichtigt man nur noch die N Abtastwerte x[0],..., x[n-1] in einem Zeitfenster bzw. window der Länge T DFT =NT s, d.h. N-1 jn 2 f Ts. (3.2) n=0 X(f ) x[n] e N bezeichnet man als Blocklänge. Die Näherung in (3.2) ist natürlich umso besser, je kleiner die vernachlässigten Abtastwerte sind. Aus N Abtastwerten können maximal N Frequenzwerte bestimmt werden. Bei der DFT bestimmt man deshalb nur die N äquidistanten Abtastwerte m f s /N, m=0,..., N-1, des Fourier- Spektrums X(f) im Intervall [0,f s ]. Wenn man in Gleichung (3.2) die kontinuierliche Variable f durch die diskrete Variable m f s /N, m=0,..., N-1, ersetzt, erhält man die DFT N-1 n=0 2 j mn N X[m] x[n] e m 0, 1,..., N 1 (3.3) Man kann zeigen, dass der folgende Ausdruck die inverse DFT bzw. die IDFT darstellt N-1 2 1 j mn N x[n] X[m] e n 0, 1,..., N 1 (3.4) N m=0 3.3. Eigenschaften der DFT Die folgende Eigenschaft der DFT ist die (aller) Wichtigste! Die DFT berechnet aus N Abtastwerten x[n] in einem Zeitfenster der Länge T DFT = NT s N komplexe Spektralwerte im Frequenzbereich [0,f s ]. Die Frequenzauflösung ist also umgekehrt proportional zur Länge des Zeitfensters T DFT, d.h. Δf = f s / N = 1 / (N T s ) = 1/T DFT, (3.5) Eigentlich ist nur die erste Hälfte des DFT-Spektrums interessant, denn es gilt die Symmetrie wobei z* den konjugiert komplexen Wert von z darstellt. X*[N-m] = X[m], m=1,...,n-1, (3.6) Beispiel In Abbildung 3.1 ist die Zeitfenster-Sequenz x[n] dargestellt, die man erhält, wenn man die Stossantwort eines analogen RC-Tiefpass-Filters 1. Ordnung mit der Zeitkonstante t 0 =RC=10s mit der Abtastfrequenz f s =1 Hz im Zeitfenster 0...T DFT =NT s =32s abtastet. In Abbildung 3.1 ist auch das normierte 32-Punkt DFT-Betragsspektrum mit der Frequenzauflösung Δf=1/T DFT =1/32 Hz im Frequenzbereich [0,f s ] dargestellt.

ZHAW, DSV1, FS2009, Rumc, 3-3 RC = 10s δ(t) x a (t) f s = 1 Hz R C x[0],..., x[31] N=32 Punkt DFT Zeitbereich x a (t)=(1/t 0 ) e -t/to t 0 =RC=10s T s = 1 s Frequenzbereich T DFT = 32 s IX a (f)i = I1/(1+j2πf t 0 )I Δf = 1/T DFT = 1/32 Hz f s = 1 Hz Abbildung 3.1 Normiertes 32-Punkt-DFT-Betragsspektrum. Das DFT-Spektrum in der 1. Nyquistzone [0,f s /2] stimmt gut mit dem Amplitudengang des analogen RC-Tiefpass-Filters 1. Ordnung überein, weil beim Abtasten nur wenig Aliasing entsteht. Das DFT-Spektrum in Gleichung (3.3) ist diskret und periodisch. Ein periodisches Spektrum hat zur Folge, dass das Zeitsignal diskret, d.h. abgetastet, ist. Weiter hat ein diskretes Spektrum zur Folge, dass das Zeitsignal periodisch ist! Mit der DFT bestimmt man also das Spektrum der periodisch fortgesetzten Zeitfenster-Sequenz, d.h. x Np [n] =..., {x N [n+n]}, {x N [n]}, {x N [n-n]}, {x N [n-2n]},... X[n]/N (3.7) wobei n=0,..., N-1 und die Zeitfenster-Sequenz x N (n) in Gleichung (3.6) gegeben ist und aus N Abtastwerten einer Periode besteht. In Abbildung 3.2 ist ein Beispiel einer periodisch fortgesetzten Zeitfenster-Sequenz x Np [n] dargestellt.

ZHAW, DSV1, FS2009, Rumc, 3-4 Abbildung 3.2 Periodisch fortgesetzte Zeitfenster-Sequenz x Np [n], N=32. Die Definition der DFT in Gleichung (3.3) hat den Nachteil, dass die Spektralwerte mit zunehmendem N immer grösser werden. Diesen Sachverhalt erkennt man am einfachsten, wenn man die DC-Komponente X[0] für die DC-Folge x N [n]=1,..., 1, 0 n < N, betrachtet. Es bleibt dem Anwender überlassen, die entsprechende Normierung vorzunehmen. Normalerweise teilt man die Spektralwerte X[m] durch N, siehe Gleichung (3.7). 3.4. Verwandtschaft der DFT mit der Fourierreihe Jede periodische Funktion x p (t) = x p (t-nt) kann als Fourierreihe dargestellt werden. Die komplexen Fourierkoeffizienten c n stellen dabei die Spektrallinien bei den Vielfachen der Grundperiode T dar. Tastet man die periodische Funktion x p (t) mit N Werten pro Periode T ab, d.h. T s =T/N bzw. f s =N/T, so erhält man das diskrete Signal x Np [n], dessen Spektrum aus dem Originalspektrum c n und Kopien bei Vielfachen der Abtastfrequenz f s besteht. Wenn beim Abtasten kein Aliasing entsteht, können die Spektrallinien c n gemäss Gleichung (3.7) mit der DFT berechnet werden, d.h. c n = X[n]/N, n=0,...,n/2. (3.8) Beispiel In Abbildung 3.3 sind N=8 Abtastwerte x[n] einer Periode T 0 des cos-signals x(t) = cos(2πf 0 t), f 0 = 1/T 0, und das zugehörige, normierte DFT-Spektrum X[n]/N dargestellt. Das periodische Signal x(t) kann mit Hilfe der Eulerformel wie folgt als (komplexe) Fourierreihe dargestellt werden x(t) = 0.5 e 2πfot +0.5 e -2πfot. Alle Fourierkoeffizienten c n sind Null, ausser c 1 =c -1 =0.5. Aus Abbildung 3.3 ist ersichtlich, dass die normierten 8-Punkt DFT-Werte mit den Fourierkoeffizienten c n, n = -3,...,3, übereinstimmen.

ZHAW, DSV1, FS2009, Rumc, 3-5 Zeitbereich N = 8 Abtastwerte x[n] einer Periode eines cos-signals Zeit / T 0 Frequenzbereich N = 8 Spektralwerte X[n]/N im Bereich [0,f s =N f 0 ] c[1] c[-1] c[0] c[2] c[3] c[-3] c[-2] Frequenz / f 0 f 0 f s =8f 0 Abbildung 3.3 Verwandtschaft normierte DFT mit komplexer Fourierreihe. 3.5. Filterfunktion der DFT Die Berechnung der einzelnen DFT-Werte X[m] in Gleichung (3.3) entspricht einer Filterung. In Abbildung 3.4 ist der normierte Betrag IX(5)I/N einer 40-Punkt-DFT eines mit f s =8 khz abgetasteten Cosinus-Signals x[n]=cos(2πf 0 nt s ), n=0,..., 39, dargestellt, wenn f 0 variiert wird. Die Frequenzauflösung Δf=f s /N=8000/40 Hz=200 Hz. Der DFT-Wert X(5) entspricht der Spektralkomponente bei 5 Δf = 1 khz. Für ein Cosinus-Signal der Frequenz f 0 = 1000 Hz resultiert wie erwartet IX(5)I/N = 0.5. Solange die Frequenz f 0 des Cosinus-Signals innerhalb des f=200 Hz breiten Behälters (engl. bin) um f 0 liegt, gilt IX(5)I/N 0.5. Liegt die Frequenz f 0 des Cosinus-Signals aber ausserhalb des f=200 Hz breiten Behälters um f 0, spricht die 1 khz Spektralkomponente kaum mehr an, d.h. IX(5)I/N << 0.5. Bei den (anderen) Vielfachen der Frequenzauflösung f gilt sogar IX(5)I/N=0. Dort sprechen die anderen DFT-Spektralfilter an.

ZHAW, DSV1, FS2009, Rumc, 3-6 x(t) = cos(2πf 0 t) f s =8 khz x[n] N=40 Punkt DFT X[5]/N Abbildung 3.4 Filterfunktion der DFT. 3.6. Leakage Mit der DFT wird das Spektrum der periodisch fortgesetzten Zeitfenster-Sequenz x Np [n] berechnet, siehe Gleichung (3.7). Wenn man die Fensterlänge unpassend wählt, kann es auf Grund der periodischen Fortsetzung zu Sprungstellen kommen, die im ursprünglichen Signal nicht enthalten waren. Das resultierende Spektrum weist dann zusätzliche, auslaufende Spektrallinien auf. Dieser Effekt wird leakage (Auslaufen) genannt. Der leakage-effekt kann vermindert werden, wenn die Zeitfenster-Sequenz x N [n] mit einem auslaufenden Fenster (Window) gewichtet wird. Dieses sogenannte Windowing werden wir beim Digitalfilterentwurf noch genauer kennen lernen. Beispiel In Abbildung 3.5 oben ist das Zeitfenster so gewählt worden, dass genau 5 Perioden eines 50 Hz-Sinus darin Platz haben. Bei der periodischen Fortsetzung entstehen keine Sprungstellen. Das Betragsspektrum weist nur 1 Frequenzkomponente auf, nämlich bei 50 Hz. In Abbildung 3.5 Mitte ist das Zeitfenster so gewählt worden, dass 4.75 Perioden eines 50 Hz-Sinus darin Platz haben. Bei der periodischen Fortsetzung entstehen Sprungstellen. Das Betragsspektrum weist neben der Frequenzkomponente bei 50 Hz noch weitere, auslaufende Frequenzkomponenten in der Nähe von 50 Hz auf (Leakage). In Abbildung 3.5 unten ist das Zeitfenster wieder so gewählt worden, dass 4.75 Perioden eines 50 Hz-Sinus darin Platz haben. Die Zeitfenster-Sequenz x N [n] ist in diesem Fall aber mit einem Hanning-Fenster der Länge N gewichtet worden. Im Betragsspektrum ist der Leakage-Effekt immer noch erkennbar, aber deutlich kleiner als in der Mitte rechts.

ZHAW, DSV1, FS2009, Rumc, 3-7 Abbildung 3.5 Leakage-Effekt bei der FFT, Betragsspektrum linear und in db, [1].

ZHAW, DSV1, FS2009, Rumc, 3-8 3.7. Schnelle Fouriertransformation (FFT) Die Verarbeitungszeit für einen Algorithmus hängt wesentlich von der Anzahl Multiplikationen ab, die ein Rechner ausführen muss. Der Aufwand zur Berechnung der N Spektralwerte beträgt mit der DFT ca. N 2 komplexe Multiplikationen, siehe Gleichung (3.3). Cooley und Tukey haben 1965 die Fast Fourier Transformation entwickelt. Mit dem FFT- Algorithmus lassen sich die N DFT-Werte mit einem Aufwand von ca. N log 2 (N) komplexen Multiplikationen berechnen, was einer enormen Reduktion des Aufwands entspricht. Für eine Blocklänge von N=1024 zum Beispiel müssten mit der DFT ca. 1 Million Multiplikationen berechnet werden, während mit der FFT nur ca. 10 000 Multiplikationen anfallen. Es gibt allerdings Anwendungen (z.b. Detektion DTMF-Wählton), in denen nur wenige Spektralwerte interessieren. In diesen Anwendungen kann es durchaus vorteilhaft sein, mit der DFT die wenigen Spektralwerte direkt und nicht mit der FFT alle möglichen DFT-Werte zu berechnen. Mit dem Görtzel-Algorithmus [2] ist es z.b. möglich, einzelne DFT-Werte X[m 0 ] mit IIR-Filtern 1. bzw. 2. Ordnung rekursiv zu berechnen. Die Grundidee bei der FFT besteht darin, eine N-Punkt DFT in zwei N/2-Punkt DFTs aufzuteilen, eine über die geraden und eine über die ungeraden Abtastwerte. Im Folgenden nehmen wir der Einfachheit wegen an, dass N eine Zweierpotenz ist. Wenn man in der Definition (3.3) der DFT eine Aufteilung für die geraden und die ungeraden Abtastwerte x[2n] und x[2n+1] vornimmt, erhält man N/2-1 N/2-1 m2n m(2n 1) N N n=0 n=0, (3.9) X[m] x[2n] W x[2n+1] W m 0, 1,..., N 1 wobei der Term W N =e -j2π/n weight oder twiddle factor genannt wird und nur eine Funktion von N ist. W N weist die Symmetrie W N 2mn =W N/2 mn auf. Der Ausdruck (3.9) kann deshalb wie folgt vereinfacht werden, N/2-1 N/2-1 mn m mn N/ 2 N N/ 2 n=0 n=0. (3.10) X[m] x[2n] W W x[2n+1] W m 0, 1,..., N 1 Die beiden Summen oben stellen N/2-Punkt DFTs dar. Für die Berechnung von (3.10) sind jetzt aber nur noch 2 (N/2) 2 +N komplexe Multiplikationen erforderlich, statt N 2 für die DFT in der ursprünglichen Form. Diese Reduktion ist für grosse N (z.b. N=1024) bereits beträchtlich. Die beiden kurzen DFTs im Ausdruck (3.10) können nun sukzessive in DFTs halber Länge unterteilt werden, bis letztlich nur noch 2-Punkt-DFTs zu berechnen sind. Man bezeichnet FFT-Algorithmen, die die Eingangsfolge x[n] wie oben beschrieben in immer kürzere Teilfolgen unterteilen, decimation-in-time FFT-Algorithmen. Umgekehrt gibt es auch decimation-in-frequency Algorithmen, die die Ausgangsfolge X[n] in immer kürzere Teilfolgen unterteilen. In Abbildung 3.6 ist das Signalflussdiagramm zur Berechnung des FFT-Algorithmus für N=4 gemäss Gleichung (3.10) dargestellt. Die Addition ist mit zusammenlaufenden Pfaden dargestellt. Die Multiplikation mit 1 ist nicht speziell gekennzeichnet.

ZHAW, DSV1, FS2009, Rumc, 3-9 x[0] 00 => 00 x[2] 10 => 01 x[1] 01 => 10-1 -j -1 X[0] = (x[0]+x[2]) + (-j) 0 (x[1]+x[3]) X[1] = (x[0]-x[2]) + (-j) 1 (x[1]-x[3]) X[2] = (x[0]+x[2]) + (-j) 2 (x[1]+x[3]) x[3] 11 => 11-1 j X[3] = (x[0]-x[2]) + (-j) 3 (x[1]-x[3]) Abbildung 3.6 Signalflussdiagramm der 4-Punkt FFT mit Bitumkehr am Eingang. Das Spektrum kann in log 2 (N) unabhängigen Teilschritten mit Hilfe von je N/2 sogenannten butterflys berechnet werden. Es ist nur 1 Vektor mit N komplexen Speicherwerten erforderlich (in-place computation)! Die Eingangswerte sind seltsam sortiert und müssen umsortiert werden, was ein Bestandteil des Algorithmus ist. Die korrekte Reihenfolge erhält man, wenn man den Zeitindex n von x[n] binär darstellt und für die Speicherung rückwärts liest (bit-reversed-adressierung bzw. Bitumkehr, siehe Abbildung 3.6). Der FFT-Algorithmus ist so wichtig in der digitalen Signalverarbeitung, dass die meisten Numerikprogramme und DSP-Entwicklungsumgebungen FFT-Library-Routinen bereitstellen. In der Matlab Signal Processing Toolbox z.b. gibt es die Funktionen fft()und ifft(). In [3] gibt es gut dokumentierte C-Beispielprogramme für den Fall, dass keine Routinen zur Verfügung stehen. 3.8. FFT von reellwertigen Signalen (fakultativ) Eine N-Punkt FFT transformiert N komplexe Zeitwerte in N komplexe Spektralwerte. Dank der in-place Berechnung ist im Speicher nur 1 Vektor mit N komplexen Werten erforderlich. In der Praxis sind die meisten Zeitsignale x[n] aber reellwertig, denn sie repräsentieren zum Beispiel einen Spannungsverlauf in Funktion der Zeit. Selbstverständlich ist es möglich, mit einer N-Punkt FFT aus N reellen Zeitwerten N komplexe Spektralwerte zu berechnen. Dazu muss man im Speicher einfach die Imaginärteile der N Speicherwerte mit Null initialisieren, siehe Abbildung 3.7. reellwertiges Zeitsignal Re{x[0]} = x[0] Im{x[0]} = 0 Re{x[1]} = x[1] Im{x[1]} = 0 Re{x[N-1]} = x[n-1] Im{x[N-1]} = 0 N-Punkt FFT komplexes Spektrum Re{X[0]} Im{X[0]} Re{X[1]} Im{X[1]} Re{X[N-1]} Im{X[N-1]} Abbildung 3.7 N-Punkt FFT eines Zeitsignals x[n] mit N reellen Abtastwerten.

ZHAW, DSV1, FS2009, Rumc, 3-10 Man kann aber vermuten, dass man effizienter arbeiten kann. Tatsächlich gibt es 2 Verbesserungsmöglichkeiten Eine Verbesserungsmöglichkeit besteht darin, mit einer einzigen N-Punkt FFT gleichzeitig zwei N-Punkt Spektren von zwei verschiedenen, reellwertigen Zeitsignalen (z.b. linker und rechter Stereokanal) zu berechnen. Eine andere Verbesserungsmöglichkeit besteht darin, mit einer kurzen N/2-Punkt FFT ein grosses N-Punkt Spektrum eines reellwertigen Zeitsignals zu berechnen und so Rechenzeit und Speicherplatz zu sparen. N-Punkt FFT von 2 reellwertigen Zeitsignalen mit je N Abtastwerten Wir betrachten zuerst die gleichzeitige Berechnung von zwei N-Punkt Spektren X 1 [m] und X 2 [m] mit Hilfe einer einzigen N-Punkt FFT, siehe Abbildung 3.8. x 1 [0] x 1 [1] x 1 [N-1] x 2 [0] x 2 [1] x 2 [N-1] Re{y[0]} Im{y[0]} Packing Re{y[N-1]} Im{y[N-1]} x 1 [0] x 2 [0] x 1 [1] x 2 [1] x 1 [N-1] x 2 [N-1] Zeitbereich N-Punkt FFT Re{Y[0]} Im{Y[0]} Re{Y[1]} Im{Y[1]} Re{Y[N-1]} Im{Y[N-1]} Frequenzbereich Splitting X 1 [0] X 1 [1] X 1 [N-1] X 2 [0] X 2 [1] X 2 [N-1] Abbildung 3.8 Berechnung von zwei N-Punkt Spektren mit einer einzigen N-Punkt FFT. Im 1. Schritt bildet man aus den beiden verschiedenen, reellwertigen Zeitsignalen x 1 [n] und x 2 [n] der Länge N einen komplexen Inputvektor y[n] = x 1 [n] + j x 2 [n], n=0,...,n-1, (3.11) für die FFT, indem man die geraden Speicherzellen im FFT-Buffer mit x 1 [n], n=0,...,n-1, und die ungeraden Speicherzellen mit x 2 [n], n=0,...,n-1, füllt, siehe Abbildung 3.8. Im 2. Schritt berechnet man mit Hilfe der FFT aus den N komplexen Werten y[n], n=0,...,n-1, die N komplexen Spektralwerte Y[m], m=0,...,n-1. Wegen der Linearität der DFT gilt Y[m] = X 1 [m] + j X 2 [m]. (3.12) Die gewünschten Spektren X 1 [m] und X 2 [m] sind komplex und können deshalb nicht einfach durch Bildung des Realteils und des Imaginärteils in Gleichung (3.12) bestimmt werden, wie man vielleicht auf den ersten Blick vermuten mag. Um die beiden gewünschten Spektren X 1 [m] und X 2 [m] aus dem FFT-Spektrum Y[m] heraus zu trennen, werden im 3. Schritt deshalb die folgenden Summen gebildet (Y[m] + Y*[N-m])/2 = (X 1 [m] + j X 2 [m] + X 1 *[N-m] - j X 2 *[N-m])/2 (Y[m] - Y*[N-m])/2j = (X 1 [m] + j X 2 [m] - X 1 *[N-m] + j X 2 *[N-m])/2j (3.13)

ZHAW, DSV1, FS2009, Rumc, 3-11 wobei m=0,...,n-1. In Gleichung (3.13) stellt z* den konjugiert komplexen Wert von z dar. Ausserdem ist in der Umformung Gleichung (3.12) sowie die Identität (z 1 z 2 )* = z 1 * z 2 * verwendet worden. Für das N-Punkt FFT-Spektrum eines reellwertigen Zeitsignals x[n] gilt aber die Symmetrie wobei m = 0,..., N-1. X*[N-m] = X[m] (3.14) Durch Einsetzen von (3.14) in (3.13) erhält man die gewünschte Spektrumstrennung X 1 [m] = (Y[m] + Y*[N-m]) / 2 X 2 [m] = (Y[m] - Y*[N-m]) / 2j, (3.15) wobei m=0,...,n-1. Wegen der Symmetrie Y*[N]=Y[0] gilt für die DC-Werte insbesondere X 1 [0] = Re{Y[0]} und X 2 [0] = Im{Y[0]}. N/2-Punkt FFT eines reellwertigen Zeitsignals mit N Abtastwerten Wir betrachten nun die Berechnung eines N-Punkt Spektrums eines reellwertigen Zeitsignals x[n] mit Hilfe einer (kurzen) N/2-Punkt FFT, siehe Abbildung 3.9. y[0] y[1] y[n/2-1] x[0]=x e [0] x[1]=x o [0] x[2]=x e [1] x[3]=x o [1] x[n-2] =x e [N/2-1] x[n-1]=x o [N/2-1] N/2-Punkt FFT Re{Y[0]} Im{Y[0]} Re{Y[1]} Im{Y[1]} Re{Y[N/2-1]} Im{Y[N/2-1]} Zusammenfügen X[0] X[1] X[2] X[3] X[N-2] X[N-1] Zeitbereich Frequenzbereich Abbildung 3.9 Berechnung eines N-Punkt Spektrums mit einer N/2-Punkt FFT. Zuerst bildet man aus dem reellwertigen Zeitsignal x[n] der Länge N einen Eingangsvektor für die FFT mit N/2 komplexen Werten y[n] = x[2n] + j x[2n+1] = x e [n] + j x o [n], n=0,...,n/2-1, (3.16) indem man die geraden Speicherzellen im FFT-Buffer mit den geraden bzw. even-werten x e [n], n=0,...,n/2-1, und die ungeraden Speicherzellen mit den ungeraden bzw. odd-werten x o [n], n=0,...,n/2-1, füllt, siehe Abbildung 3.9. Dann berechnet man die N/2-Punkt FFT und erhält N/2 komplexe Spektralwerte Y[m] = X e [m] + j X o [m], m=0,...,n/2-1. (3.17) Das Spektrum Y[m] setzt sich aus dem even-spektrum X e [m] und dem odd-spektrum X o [m] zusammen. Gemäss Gleichung (3.10) kann das N-Punkt Spektrum X[m] aber aus den zwei N/2-Punkt-Spektren X e [m] und X o [m] wie folgt zusammengesetzt werden, X[m] = X e [m] + e j2πm/n X o [m], m=0,...,n/2-1. (3.18)

ZHAW, DSV1, FS2009, Rumc, 3-12 Verwendet man jetzt wieder die Symmetrie (3.14), kann man analog zur Herleitung oben zeigen, dass man das gewünschte Spektrum X[m] wie folgt bestimmen kann (siehe [2], [3]) wobei m=0,...,n-1. X[m] = 0.5 (Y[m] + Y*[N-m]) - 0.5 j (Y[m] - Y*[N-m]) e j2πm/n (3.19) In der Praxis nennt man die oben beschriebenen Verfahren manchmal etwas unpräzis komplexe FFT und reelle FFT. In [3] gibt es gut dokumentierte C-Beispielprogramme für den Fall, dass keine Routinen für die reelle FFT zur Verfügung stehen.