scipy.fft.

ifftn#

scipy.fft.ifftn(x, s=None, axes=None, norm=None, overwrite_x=False, workers=None, *, plan=None)[Quelle]#

Berechnet die N-dimensionale diskrete Umkehr-Fourier-Transformation.

Diese Funktion berechnet die Umkehrung der N-dimensionalen diskreten Fourier-Transformation über eine beliebige Anzahl von Achsen in einem M-dimensionalen Array mittels der Schnellen Fourier-Transformation (FFT). Mit anderen Worten, ifftn(fftn(x)) == x bis auf numerische Genauigkeit.

Die Eingabe sollte analog zu ifft in derselben Reihenfolge erfolgen, wie sie von fftn zurückgegeben wird, d.h. sie sollte den Term für Nullfrequenz in allen Achsen in der unteren Ecke, die positiven Frequenzterme in der ersten Hälfte aller Achsen, den Term für die Nyquist-Frequenz in der Mitte aller Achsen und die negativen Frequenzterme in der zweiten Hälfte aller Achsen in der Reihenfolge abnehmend negativer Frequenzen enthalten.

Parameter:
xarray_like

Eingabearray, kann komplex sein.

sSequenz von ganzen Zahlen, optional

Form (Länge jeder transformierten Achse) der Ausgabe (s[0] bezieht sich auf Achse 0, s[1] auf Achse 1 usw.). Dies entspricht n für ifft(x, n). Entlang jeder Achse wird, wenn die angegebene Form kleiner als die der Eingabe ist, die Eingabe beschnitten. Wenn sie größer ist, wird die Eingabe mit Nullen aufgefüllt. Wenn s nicht angegeben ist, wird die Form der Eingabe entlang der von axes angegebenen Achsen verwendet. Siehe Anmerkungen zu Problemen bei der Nullauffüllung von ifft.

axesSequenz von ganzen Zahlen, optional

Achsen, über die die IFFT berechnet werden soll. Wenn nicht angegeben, werden die letzten len(s) Achsen verwendet, oder alle Achsen, wenn s ebenfalls nicht angegeben ist.

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:
outcomplex ndarray

Die abgeschnittene oder mit Nullen aufgefüllte Eingabe, transformiert entlang der durch axes angegebenen Achsen, oder durch eine Kombination von s oder x, wie im Abschnitt Parameter oben erklärt.

Löst aus:
ValueError

Wenn s und axes unterschiedliche Längen haben.

IndexError

Wenn ein Element von axes größer ist als die Anzahl der Achsen von x.

Siehe auch

fftn

Die vorwärtsgerichtete N-dimensionale FFT, deren Umkehrung ifftn ist.

ifft

Die 1-dimensionale inverse FFT.

ifft2

Die 2-dimensionale inverse FFT.

ifftshift

Macht fftshift rückgängig, verschiebt Nullfrequenzterme an den Anfang des Arrays.

Hinweise

Die Nullauffüllung wird, analog zu ifft, durch Anhängen von Nullen an die Eingabe entlang der angegebenen Dimension durchgeführt. Obwohl dies der übliche Ansatz ist, kann er zu überraschenden Ergebnissen führen. Wenn eine andere Form der Nullauffüllung gewünscht wird, muss sie erfolgen, bevor ifftn aufgerufen wird.

Beispiele

>>> import scipy.fft
>>> import numpy as np
>>> x = np.eye(4)
>>> scipy.fft.ifftn(scipy.fft.fftn(x, axes=(0,)), axes=(1,))
array([[1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j], # may vary
       [0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j],
       [0.+0.j,  0.+0.j,  1.+0.j,  0.+0.j],
       [0.+0.j,  0.+0.j,  0.+0.j,  1.+0.j]])

Erstellt und plottet ein Bild mit bandbegrenztem Frequenzgehalt

>>> import matplotlib.pyplot as plt
>>> rng = np.random.default_rng()
>>> n = np.zeros((200,200), dtype=complex)
>>> n[60:80, 20:40] = np.exp(1j*rng.uniform(0, 2*np.pi, (20, 20)))
>>> im = scipy.fft.ifftn(n).real
>>> plt.imshow(im)
<matplotlib.image.AxesImage object at 0x...>
>>> plt.show()
../../_images/scipy-fft-ifftn-1.png