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
rfftberechnet wurde. Anders ausgedrückt giltirfft(rfft(x), len(x)) == xbis auf numerische Genauigkeit. (Siehe Hinweise unten, warumlen(a)hier notwendig ist.)Die Eingabe wird erwartet in der Form, die von
rfftzurü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+1Eingabepunkte 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 als2*(m-1)angenommen, wobeimdie 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 unterfft.- 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), wobeimdie 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
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
ifftdie komplex-konjugierte des zweiten Terms ist und die Ausgabe überall einen Imaginärteil von Null hat. Beim Aufruf vonirfftwerden die negativen Frequenzen nicht angegeben und das Ausgabearray ist rein reell.