Scipy fft

Scipy fft
Sowohl Numpy als auch Scipy in Python haben viele FFT -Routinen (von Basic bis Komplex). Das Scipy FFT -Konzept wird in diesem Beitrag gründlich untersucht. Wir werden auch untersuchen, wie man es in der Praxis anwendet. Wir werden erklären, was die scipy fftfunktionen sind, und geben Ihnen ein paar Programmierbeispiele, um Ihnen den Einstieg zu erleichtern. Die Skipie.fft (), scipy.fft rfft (), scipy.FFT Shift (), FFTFREQ () und FFTConvolve () werden alle ausführlich behandelt, zusammen mit Beispielen in diesem Artikel. Die Beispiele werden bereitgestellt, um das Thema für Sie zu klären, damit Sie es mit Leichtigkeit in die Praxis umsetzen können.

Python Scipy FFT Erklärung

Die Fourier -Analysemethode definiert ausschließlich eine Funktion als die Gesamtzahl der periodischen Komponenten und leitet das Signal ab, das vom Python Scipy -Modul bezeichnet wird, das als Scipy bezeichnet wird.fft. Die Funktion und ihre Fourier -Transformation (FT) werden beide durch diskretisierte Äquivalente ersetzt, um die diskrete Fourier -Transformation zu erzeugen.

Unter Verwendung einer zeitbasierten Sequenz ist die Fourier-Transformation, die einfach Fourier bezeichnet wird. Wellenformen, die primären Operationen von Zeit, Raum oder einer anderen Variablen können mit Hilfe der Fourier -Transformation leicht transformiert werden.

Wir werden die beliebteste Fourier -Transformationsmethode mit Beispielen in den folgenden Unterabschnitten untersuchen.

Beispiel 1:

Wir beginnen damit, die Scipy zu beschreiben.FFT () -Methode unter Verwendung des folgenden Code -Stücks. In diesem Beispiel können wir sehen, dass die Skipei.FFT () -Methode kann die schnelle Fourier -Transformation berechnen, indem ein Array von Werten empfangen und das Ergebnis zurückgegeben wird. Schauen Sie sich jede Zeile des Codes an.

Hier im Code können Sie sehen, dass die beiden Module, Scipy und Numpy, zuerst importiert werden. Danach wird eine Variable mit dem Namen "input_val" erstellt, in der ein Numpy.Array () Methode wird verwendet, um ein Wertegitter zu erzeugen. Danach ist eine andere Variable mit dem Namen "res_val" zu sehen, in der die Skipie.Die FFT -Methode wird verwendet, wenn das erstellte "input_val" übergeben wird. Schließlich wird das Ergebnis gegeben.

Skipie importieren
Numpy importieren
input_val = numpy.Array (Numpy.Arange (8))
res_val = scipy.FFT (input_val)
print (res_val)

Hier ist die Ausgabe für Ihre Referenz beigefügt:

Beispiel 2:

Lassen Sie uns Pythons Scipy FFT RFFT -Funktion besprechen. Die diskrete Fourier -Transformation in einer Dimension der angegebenen realen Eingabe wird vom RFFT () -Scipy -Modul der Python -Programmiersprache berechnet.

Die Ausgabe der RFFT -Methode erfolgt vom Typ nDarray. Der endgültige Eingang, wenn die Achse nicht angegeben ist, oder der Eingang, der mit Nullpackung oder abgeschnitten und entlang der von der Achse bereitgestellten Achse transformiert wurde.

Nehmen wir das Programm als Beispiel, indem wir den folgenden Code ausführen. Versuchen Sie, das Codeprogramm vollständig zu verstehen.

In der ersten Zeile wird die RFFT -Methode aus der Scipy importiert.FFT -Modul. Anschließend wird die RFFT -Methode auf die erstellten Array -Werte angewendet. Die Werte sind 2,4,6 und 8. Das Ergebnis der FFT -Methode wird in der erstellten Variablen mit dem Namen "Magnum" gespeichert. Zuletzt wird die Anweisung „Print (Magnum)“ verwendet, um das Ergebnis anzuzeigen.

von Scipy.fft import RFFT
Magnum = rfft ([2, 4, 6, 8])
Druck (Magnum)

Dies ist der richtige Weg, um die Python Scipy -Methode RFFT () und die Berechnung der diskreten Fourier -Transformation zu verwenden.

Das Folgende ist die Ausgabe, die aus dem vorherigen Code für Ihre Hilfe generiert wird:

Beispiel 3:

Das dritte Beispiel dieses Artikels enthält die Details zur Python Scipy FFT -Verschiebung. Die FFTShift () -Methode erzeugt das Y des NDarray -Typs. Hier ist y das verschobene Array.

Betrachten wir dieses Beispiel.

Anfangs können Sie sehen, dass wir die erforderlichen Bibliotheken importieren. Der Code dafür lautet „von Scipy.fft import fftshift, fftfreq “, wie Sie zu Beginn des Codes sehen, der im Folgenden beigefügt ist. Danach berechnen wir die Frequenzen mithilfe der zweiten Zeile des Codes. Jetzt stellen wir die Frequenzen für eine Methode von FFTShift () mit dem Code „res = fftshift (Frequenzen)“ an. Schließlich wird der Druck (Res) verwendet, um das Ergebnis für die Leser anzuzeigen.

von Scipy.fft import fftshift, fftfreq
frequncies = fftfreq (7,4)
res = fftshift (frequncies)
Druck (res)

Angehängt ist der resultierende Screenshot. Dies ist der beste Weg, um die Nullfrequenzkomponente des Spektrums auf den Mittelpunkt zu verschieben. Es wird in den definierten Frequenzen unter Verwendung der FFTShift () -Methode verschoben:

Beispiel 4:

Die Frequenz der Proben wird durch die Scipy Scipy gesteuert.FFT -Modul. Die Frequenz -Mülleimerzentren werden vom Float -Array „F“ zurückgegeben. Es ist in Zyklen pro Einheit. Die FFTFREQ () -Methode gibt ein Ndarary -Objekt mit dem F -Wert zurück.

Das Folgende ist ein weiteres Beispielprogramm, um das Konzept besser zu verstehen.

Zunächst importieren wir die erforderlichen Bibliotheken mit der Import -Anweisung. Wie aus dem folgenden Code zu sehen ist, erzeugt es dann ein Signal und Fourier transformiert es.

Wir importieren die erforderlichen Bibliotheken (Numpy, FFT und FFtreq) mit den Importanweisungen. Danach erstellen wir ein Signal. Es wird dann unter Verwendung von Fourier transformiert, wie im folgenden Code gezeigt. Anschließend berechnen wir die Stichprobenfrequenzen und definieren die Zeit als „time_st = 0.1 ”. Dies ist die empfohlene Möglichkeit, die in Python Scipy verfügbare FFTFREQ () -Methode zu verwenden.

Numpy importieren
von Scipy.fft import fft
von Scipy.fft import fftfreq
erstellt_Sig = numpy.Array ([3, -4, 5, 0, 2, 5, 8, 10], dType = float)
ft_val = fft (created_sig)
data_val = created_sig.Größe
TIME_ST = 0.1
freq = fftfreq (data_val, d = time_st)
drucken (freq)

Hier ist das Ergebnis:

Beispiel 5:

FFT wird von der fftconvolve () -Methode des Scipy in der Scipy verwendet.Signalmodul zum Verpacken von n-dimensionalen Arrays (schnelle Fourier-Transformation). Der folgende Beispielprogrammiercode zeigt die Idee fftconvolve (). Siehe den folgenden beigefügten Code.

Der Code ist den vorherigen Beispielcodes sehr ähnlich, mit der Ausnahme, dass wir hier die FFTConvolve ().

Führen Sie diesen Beispielcode aus (siehe das folgende beigefügte Bild) und verstehen Sie, wie Sie die Methode FFTConvolve () verwenden, um ein n-dimensionales Array zu übermitteln:

von Scipy.Signalimport fftconvolve
Skipie importieren.Signal
Numpy importieren
Matplotlib importieren.Pyplot als PLT
sig1 = numpy.willkürlich.default_rng ()
res = sig1.Standard_normal (500)
autocorrelation = fftconvolve (res, res [::-1], modus = 'full')
Fig, (orig_axes, Mag_axes) = PLT.Nebenhandlungen (2, 1)
orig_axes.Diagramm (res)
orig_axes.set_title ('rauschen')
Mag_axes.Handlung (Numpy.Arange (-len (res)+1, len (res)), Autokorrelation)
Mag_axes.set_title ('Autokorrelation')
Feige.eng_layout ()
Feige.zeigen()

Siehe die folgende Ausgabe. Diese Ausgabe wird aus dem vorherigen Code generiert. Das erste Diagramm zeigt das Rauschen und das zweite Diagramm zeigt die Autokorrelation:

Abschluss

Scipy FFT ist das Diskussionsthema in diesem Beitrag. Zusammenfassend wird das einfache 1-D-Numpy-Array an die Skipie übergeben.FFT () -Methode, die die schnelle Fourier -Transformation berechnet und das transformierte Array zurückgibt. Wir haben verschiedene Techniken, einschließlich Scipy FFT () Shift (), FFTFREQ () und FFTConvolve (). Die Programmiermuster und detaillierten Diskussionen jeder dieser Techniken werden bereitgestellt. Um das genannte Thema weiter zu verstehen, lesen Sie die Codes, die in diesem Artikel bereitgestellt werden.