Fast Fourier Transform (FFT) ist eine Technik, die bei der Signalverarbeitung verwendet . Eine Fourier-Transformation nähert sich jeder stetigen Funktion als Summe von periodischen Funktionen ( Sinus und Cosinus ) . FFT tut dasselbe für diskrete Signale - Reihe von Datenpunkten anstatt eine kontinuierlich definierte Funktion . FFT können Sie identifizieren periodische Komponenten in Ihrem diskretes Signal . Möglicherweise müssen Sie ein periodisches Signal unter Rauschen begraben zu identifizieren , zu analysieren oder ein Signal mit verschiedenen periodischen zugrunde liegenden Quellen . MATLAB enthält eine integrierte Implementierung von FFT um Ihnen dabei helfen . Things You
MATLAB Vektor brauchen die diskrete Signal Daten
anzeigen Weitere Anweisungen
Führen Sie die FFT
1
Berechnen Sie die Länge (Anzahl der Elemente ) des Vektors Ihre Daten enthält . Zum Beispiel, wenn Sie Ihre Daten in einem Vektor namens " d " Art gespeichert "L = Länge (d); " an der MATLAB-Kommandozeile ohne Anführungszeichen . L enthält nun die Anzahl der Elemente in d
2
Berechnen Sie die Potenz von 2 , die größer oder gleich L ist , indem Sie . "P = nextpow2 (L); " an der MATLAB-Befehl Linie ohne Anführungszeichen . Wenn L = 1000 , zum Beispiel , p wird 10 sein , weil 2 ^ 10 = 1024
3
Führen Sie die FFT durch Eingabe von " Y = fft (d, 2 ^ p) . "an der MATLAB-Kommandozeile ohne Anführungszeichen . Dieser Befehl hängt Nullen d um einen Vektor der Länge 2 ^ p zu bekommen und dann führt FFT auf dem 2 ^ p- Element-Vektor . Die angehängten Nullen haben keinen Einfluss auf das Ergebnis der FFT, FFT aber läuft schneller mit einem Vektor , dessen Länge eine Potenz von 2
Der resultierende Vektor Y ergibt die Koeffizienten der Sinus-und Cosinus- Funktionen auf Frequenzen im Bereich von - . ( 2 ^ p /2) ) 1 + (2 ^ p /2) (unter der Annahme d bei 1 Probe pro Sekunde abgetastet wurde , oder 1Hz) . Dies sind die Sinus-und Cosinus- Funktionen, die auf das ursprüngliche Signal d hinzuzufügen. Y ist komplex, seine wirkliche Teile sind die Koeffizienten der Sinus- Funktionen , und ihre imaginären Teile sind die Koeffizienten der Cosinus- Funktionen
4
Behalten Sie nur die einzigartigen Teile des Y durch Eingabe von " Y = Y . (1: ((2 ^ p +1) /2 ) ), " ohne die Anführungszeichen in der MATLAB-Kommandozeile . Dies ist notwendig, weil der Ausgang der FFT ist symmetrisch - das heißt, die zweite Hälfte des Y einfach die komplex konjugierte des ersten Halbjahres . Nun gibt Y die Koeffizienten der Sinus-und Cosinus -Funktionen bei Frequenzen von 0 bis 1 + (2 ^ p /2) ) .
5
Dividieren durch Y L /2 durch Eingabe von " Y = Y. /(L /2); "an der MATLAB-Kommandozeile ohne Anführungszeichen . Dies ist notwendig, da die Standard- FFT MATLAB Ausgang um den Faktor L /2 multipliziert wird , so wird es größer, wenn d ist länger. Division durch L /2 normiert die FFT -Ausgang, so dass es nicht auf die Länge von d abhängig ist .
Grundstück FFT ergibt
6
Wenn d wurde nicht bei 1 Hz abgetastet aber an einem gewissen Frequenz " f ", die tatsächlichen Frequenzen in Y dargestellt werden 0 bis f * (1 + (2 ^ p /2 ))) . Berechnen Sie ein MATLAB Vektor, diese Frequenzen . Zunächst definieren Sie Ihre tatsächliche Abtastfrequenz f in einer Variablen . Wenn Ihre tatsächlichen Abtastfrequenz war 0,5 Hz (1 Probe alle 2 Sekunden) , geben Sie " f = 0,5 ; " an der MATLAB-Kommandozeile ohne Anführungszeichen . Weiter, geben Sie " freq = f * (0: (1 + (2 ^ p /2 ))) . ) " An der MATLAB-Kommandozeile ohne Anführungszeichen . Jetzt freq enthält die eigentlichen Frequenzen in Y.
7
Holen Sie sich die Amplitude des Signals Komponente bei jeder Frequenz durch Eingabe von " Ya = abs ( Y) " dargestellt. bei der MATLAB-Kommandozeile ohne Anführungszeichen .
8
Grundstück das Amplitudenspektrum des Signals durch Eingabe von " plot ( freq , Ya) " an der MATLAB-Kommandozeile ohne Anführungszeichen .
< br > 9
Holen Sie sich die Leistung des Signals Komponente bei jeder Frequenz , indem Sie " Yp = Y. ^ 2" an der MATLAB-Kommandozeile ohne Anführungszeichen .
10
Grundstück das Leistungsspektrum der Signal durch Eingabe von " plot ( freq , Yp ) " an der MATLAB-Kommandozeile ohne Anführungszeichen .