scipy.fft.

irfft#

scipy.fft.irfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *, plan=None)[Quelle]#

Berechnet die Inverse von rfft.

Diese Funktion berechnet die Inverse der 1-D n-Punkt-Diskreten Fourier-Transformation reeller Eingaben, die von rfft berechnet wurde. Anders ausgedrückt gilt irfft(rfft(x), len(x)) == x bis auf numerische Genauigkeit. (Siehe Hinweise unten, warum len(a) hier notwendig ist.)

Die Eingabe wird erwartet in der Form, die von rfft zurückgegeben wird, d.h. der reelle Term bei Frequenz Null, gefolgt von den komplexen positiven Frequenztermen in aufsteigender Reihenfolge. Da die diskrete Fourier-Transformation reeller Eingaben hermitesch-symmetrisch ist, werden die negativen Frequenzterme als die komplexen Konjugierten der entsprechenden positiven Frequenzterme angenommen.

Parameter:
xarray_like

Das Eingabearray.

nint, optional

Länge der transformierten Achse der Ausgabe. Für n Ausgabepunkte sind n//2+1 Eingabepunkte erforderlich. Wenn die Eingabe länger ist, wird sie abgeschnitten. Wenn sie kürzer ist, wird sie mit Nullen aufgefüllt. Wenn n nicht angegeben ist, wird es als 2*(m-1) angenommen, wobei m die Länge der Eingabe entlang der durch axis angegebenen Achse ist.

axisint, optional

Achse, über die die inverse FFT berechnet wird. Wenn nicht angegeben, wird die letzte Achse verwendet.

norm{“backward”, “ortho”, “forward”}, optional

Normalisierungsmodus (siehe fft). Standard ist „backward“.

overwrite_xbool, optional

Wenn True, kann der Inhalt von x zerstört werden; Standard ist False. Weitere Einzelheiten finden Sie unter fft.

workersint, optional

Maximale Anzahl von Workern, die für die parallele Berechnung verwendet werden sollen. Wenn negativ, wickelt sich der Wert von os.cpu_count() ab. Weitere Einzelheiten finden Sie unter fft.

planobject, optional

Dieses Argument ist für die Übergabe eines vorab berechneten Plans von nachgelagerten FFT-Anbietern reserviert. Es wird derzeit in SciPy nicht verwendet.

Hinzugefügt in Version 1.5.0.

Rückgabe:
outndarray

Die abgeschnittene oder mit Nullen aufgefüllte Eingabe, transformiert entlang der Achse, die durch axis angegeben ist, oder die letzte, wenn axis nicht spezifiziert ist. Die Länge der transformierten Achse ist n, oder, wenn n nicht gegeben ist, 2*(m-1), wobei m die Länge der transformierten Achse der Eingabe ist. Um eine ungerade Anzahl von Ausgabepunkten zu erhalten, muss n spezifiziert werden.

Löst aus:
IndexError

Wenn axis größer ist als die letzte Achse von x.

Siehe auch

rfft

Die 1-D FFT reeller Eingaben, deren Inverse irfft ist.

fft

Die 1-dimensionale FFT.

irfft2

Die Inverse der 2-D-FFT von reeller Eingabe.

irfftn

Die Inverse der N-D FFT reeller Eingaben.

Hinweise

Gibt die reellwertige n-Punkt-Inverse diskrete Fourier-Transformation von x zurück, wobei x die nicht-negativen Frequenzterme einer hermitesch-symmetrischen Sequenz enthält. n ist die Länge des Ergebnisses, nicht der Eingabe.

Wenn Sie ein n angeben, für das a mit Nullen aufgefüllt oder abgeschnitten werden muss, werden die zusätzlichen/entfernten Werte bei hohen Frequenzen hinzugefügt/entfernt. Man kann somit eine Serie mittels Fourier-Interpolation auf m Punkte neu abtasten durch: a_resamp = irfft(rfft(a), m).

Der Standardwert von n geht von einer geraden Ausgabelänge aus. Aufgrund der hermiteschen Symmetrie muss die letzte imaginäre Komponente 0 sein und wird daher ignoriert. Um Informationsverlust zu vermeiden, muss die korrekte Länge der reellen Eingabe angegeben werden.

Beispiele

>>> import scipy.fft
>>> scipy.fft.ifft([1, -1j, -1, 1j])
array([0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j]) # may vary
>>> scipy.fft.irfft([1, -1j, -1])
array([0.,  1.,  0.,  0.])

Beachten Sie, wie der letzte Term in der Eingabe der gewöhnlichen ifft die komplex-konjugierte des zweiten Terms ist und die Ausgabe überall einen Imaginärteil von Null hat. Beim Aufruf von irfft werden die negativen Frequenzen nicht angegeben und das Ausgabearray ist rein reell.