rfft#
- scipy.fft.rfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *, plan=None)[Quelle]#
Berechnet die 1-D diskrete Fourier-Transformation für reelle Eingaben.
Diese Funktion berechnet die 1-D *n*-Punkt-diskrete Fourier-Transformation (DFT) eines reellwertigen Arrays mittels eines effizienten Algorithmus namens Fast Fourier Transform (FFT).
- Parameter:
- xarray_like
Eingabearray
- nint, optional
Anzahl der Punkte entlang der Transformationsachse in der Eingabe, die verwendet werden sollen. Wenn n kleiner als die Länge der Eingabe ist, wird die Eingabe abgeschnitten. Wenn es größer ist, wird die Eingabe mit Nullen aufgefüllt. Wenn n nicht angegeben ist, wird die Länge der Eingabe entlang der von axis angegebenen Achse verwendet.
- axisint, optional
Achse, entlang derer die FFT 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 von axis angegebenen Achse oder der letzten Achse, wenn axis nicht angegeben ist. Wenn n gerade ist, ist die Länge der transformierten Achse
(n/2)+1. Wenn n ungerade ist, ist die Länge(n+1)/2.
- Löst aus:
- IndexError
Wenn axis größer ist als die letzte Achse von a.
Siehe auch
Hinweise
Wenn die DFT für rein reelle Eingaben berechnet wird, ist die Ausgabe hermitesch-symmetrisch, d. h. die negativen Frequenzterme sind einfach die komplexen Konjugierten der entsprechenden positiven Frequenzterme, und die negativen Frequenzterme sind daher redundant. Diese Funktion berechnet nicht die negativen Frequenzterme, und die Länge der transformierten Achse der Ausgabe ist daher
n//2 + 1.Wenn
X = rfft(x)und fs die Abtastfrequenz ist, enthältX[0]den Nullfrequenzterm 0*fs, der aufgrund der hermiteschen Symmetrie reell ist.Wenn n gerade ist, enthält
A[-1]den Term, der sowohl die positive als auch die negative Nyquist-Frequenz repräsentiert (+fs/2 und -fs/2) und daher rein reell sein muss. Wenn n ungerade ist, gibt es keinen Term bei fs/2;A[-1]enthält die größte positive Frequenz (fs/2*(n-1)/n) und ist im allgemeinen Fall komplex.Wenn die Eingabe a einen Imaginärteil enthält, wird dieser stillschweigend verworfen.
Beispiele
>>> import scipy.fft >>> scipy.fft.fft([0, 1, 0, 0]) array([ 1.+0.j, 0.-1.j, -1.+0.j, 0.+1.j]) # may vary >>> scipy.fft.rfft([0, 1, 0, 0]) array([ 1.+0.j, 0.-1.j, -1.+0.j]) # may vary
Beachten Sie, wie das letzte Element der
fft-Ausgabe die komplexe Konjugierte des zweiten Elements für reelle Eingaben ist. Fürrfftwird diese Symmetrie ausgenutzt, um nur die nicht-negativen Frequenzterme zu berechnen.