ifft#
- scipy.fft.ifft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *, plan=None)[Quelle]#
Berechnet die 1-D inverse diskrete Fourier-Transformation.
Diese Funktion berechnet die Inverse der von
fftberechneten 1-D n-Punkt diskreten Fourier-Transformation. Anders ausgedrückt,ifft(fft(x)) == xbis auf numerische Genauigkeit.Die Eingabe sollte in der gleichen Reihenfolge angeordnet sein, wie sie von
fftzurückgegeben wird, d. h.x[0]sollte den Term der Nullfrequenz enthalten,x[1:n//2]sollte die Terme der positiven Frequenzen enthalten,x[n//2 + 1:]sollte die Terme der negativen Frequenzen enthalten, in aufsteigender Reihenfolge beginnend mit der am stärksten negativen Frequenz.
Bei einer geraden Anzahl von Eingabepunkten repräsentiert
x[n//2]die Summe der Werte an den positiven und negativen Nyquist-Frequenzen, da diese zwei zusammen aliased werden. Einzelheiten finden Sie unterfft.- Parameter:
- xarray_like
Eingabearray, kann komplex sein.
- nint, optional
Länge der transformierten Achse der Ausgabe. Wenn n kleiner ist als die Länge der Eingabe, wird die Eingabe abgeschnitten. Wenn sie größer ist, wird die Eingabe mit Nullen aufgefüllt. Wenn n nicht angegeben ist, wird die Länge der Eingabe entlang der durch axis angegebenen Achse verwendet. Siehe Hinweise zu Padding-Problemen.
- axisint, optional
Achse, über die die inverse DFT berechnet werden soll. 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:
- outcomplex ndarray
Die abgeschnittene oder mit Nullen aufgefüllte Eingabe, transformiert entlang der durch axis angegebenen Achse oder der letzten Achse, wenn axis nicht angegeben ist.
- Löst aus:
- IndexError
Wenn axes größer ist als die letzte Achse von x.
Siehe auch
Hinweise
Wenn der Eingabeparameter n größer ist als die Größe der Eingabe, wird die Eingabe durch Anhängen von Nullen am Ende aufgefüllt. Obwohl dies der übliche Ansatz ist, kann er zu überraschenden Ergebnissen führen. Wenn eine andere Auffüllung gewünscht ist, muss diese vor dem Aufruf von
ifftdurchgeführt werden.Wenn
xein 1-D-Array ist, ist dieifftäquivalent zuy[k] = np.sum(x * np.exp(2j * np.pi * k * np.arange(n)/n)) / len(x)
Wie bei
ffthatifftUnterstützung für alle Fließkommatypen und ist für reale Eingaben optimiert.Beispiele
>>> import scipy.fft >>> import numpy as np >>> scipy.fft.ifft([0, 4, 0, 0]) array([ 1.+0.j, 0.+1.j, -1.+0.j, 0.-1.j]) # may vary
Erstellen und plotten Sie ein bandbegrenztes Signal mit zufälligen Phasen
>>> import matplotlib.pyplot as plt >>> rng = np.random.default_rng() >>> t = np.arange(400) >>> n = np.zeros((400,), dtype=complex) >>> n[40:60] = np.exp(1j*rng.uniform(0, 2*np.pi, (20,))) >>> s = scipy.fft.ifft(n) >>> plt.plot(t, s.real, 'b-', t, s.imag, 'r--') [<matplotlib.lines.Line2D object at ...>, <matplotlib.lines.Line2D object at ...>] >>> plt.legend(('real', 'imaginary')) <matplotlib.legend.Legend object at ...> >>> plt.show()