scipy.fft.

irfftn#

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

Berechnet die Inverse von rfftn

Diese Funktion berechnet die Inverse der N-dimensionalen diskreten Fouriertransformation für reelle Eingaben über eine beliebige Anzahl von Achsen in einem M-dimensionalen Array mittels der schnellen Fouriertransformation (FFT). Mit anderen Worten: irfftn(rfftn(x), x.shape) == x bis auf numerische Genauigkeit. (Die a.shape ist ebenso notwendig wie len(a) für irfft und aus demselben Grund.)

Die Eingabe sollte auf dieselbe Weise sortiert sein, wie sie von rfftn zurückgegeben wird, d. h. wie für irfft für die letzte Transformationsachse und wie für ifftn entlang aller anderen Achsen.

Parameter:
xarray_like

Eingabearray.

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.). s ist auch die Anzahl der entlang dieser Achse verwendeten Eingabepunkte, außer für die letzte Achse, bei der s[-1]//2+1 Punkte der Eingabe verwendet werden. Entlang einer beliebigen Achse wird die Eingabe abgeschnitten, wenn die von s angegebene Form kleiner ist als die der Eingabe. Wenn sie größer ist, wird die Eingabe mit Nullen aufgefüllt. Wenn s nicht angegeben ist, wird die Form der Eingabe entlang der durch axes angegebenen Achsen verwendet. Außer für die letzte Achse, die auf 2*(m-1) gesetzt wird, wobei m die Länge der Eingabe entlang dieser Achse ist.

axesSequenz von ganzen Zahlen, optional

Achsen, über die die inverse FFT 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:
outndarray

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 obigen Abschnitt „Parameter“ erläutert. Die Länge jeder transformierten Achse entspricht dem entsprechenden Element von s oder der Länge der Eingabe in jeder Achse außer der letzten, wenn s nicht angegeben ist. In der letzten transformierten Achse ist die Länge der Ausgabe, wenn s nicht angegeben ist, 2*(m-1), wobei m die Länge der letzten transformierten Achse der Eingabe ist. Um eine ungerade Anzahl von Ausgabepunkten in der letzten Achse zu erhalten, muss s angegeben werden.

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

rfftn

Die Vorwärts-N-D-FFT von reeller Eingabe, deren Inverse ifftn ist.

fft

Die 1-D FFT mit Definitionen und Konventionen.

irfft

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

irfft2

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

Hinweise

Siehe fft für Definitionen und verwendete Konventionen.

Siehe rfft für Definitionen und Konventionen, die für reelle Eingaben verwendet werden.

Der Standardwert von s geht von einer geraden Ausgabelänge in der letzten Transformationsachse aus. Bei der Ausführung der letzten komplexen zu reellen Transformation muss die hermitische Symmetrie dazu führen, dass die letzte imaginäre Komponente entlang dieser Achse 0 ist und daher ignoriert wird. Um Informationsverlust zu vermeiden, muss die korrekte Länge der reellen Eingabe angegeben werden.

Beispiele

>>> import scipy.fft
>>> import numpy as np
>>> x = np.zeros((3, 2, 2))
>>> x[0, 0, 0] = 3 * 2 * 2
>>> scipy.fft.irfftn(x)
array([[[1.,  1.],
        [1.,  1.]],
       [[1.,  1.],
        [1.,  1.]],
       [[1.,  1.],
        [1.,  1.]]])