hfft#
- scipy.fft.hfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *, plan=None)[Quelle]#
Berechnet die FFT eines Signals mit hermitescher Symmetrie, d.h. einem reellen Spektrum.
- Parameter:
- xarray_like
Das Eingabearray.
- nint, optional
Länge der transformierten Achse der Ausgabe. Für n Ausgabepunkte werden
n//2 + 1Eingabepunkte benötigt. Ist die Eingabe länger als dies, wird sie abgeschnitten. Ist sie kürzer als dies, 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, 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; der Standardwert 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 durch axis angegebenen Achse oder der letzten Achse, wenn axis nicht angegeben ist. Die Länge der transformierten Achse ist n oder, wenn n nicht angegeben ist,
2*m - 2, wobeimdie Länge der transformierten Achse der Eingabe ist. Um eine ungerade Anzahl von Ausgabepunkten zu erhalten, muss n angegeben werden, z.B.2*m - 1im typischen Fall,
- Löst aus:
- IndexError
Wenn axis größer ist als die letzte Achse von a.
Siehe auch
Hinweise
hfft/ihfftsind ein Paar analog zurfft/irfft, aber für den umgekehrten Fall: hier hat das Signal hermitesche Symmetrie im Zeitbereich und ist im Frequenzbereich reell. Also hier ist eshfft, für das Sie die Länge des Ergebnisses angeben müssen, wenn es ungerade sein soll. * gerade:ihfft(hfft(a, 2*len(a) - 2) == a, bis auf Rundungsfehler, * ungerade:ihfft(hfft(a, 2*len(a) - 1) == a, bis auf Rundungsfehler.Beispiele
>>> from scipy.fft import fft, hfft >>> import numpy as np >>> a = 2 * np.pi * np.arange(10) / 10 >>> signal = np.cos(a) + 3j * np.sin(3 * a) >>> fft(signal).round(10) array([ -0.+0.j, 5.+0.j, -0.+0.j, 15.-0.j, 0.+0.j, 0.+0.j, -0.+0.j, -15.-0.j, 0.+0.j, 5.+0.j]) >>> hfft(signal[:6]).round(10) # Input first half of signal array([ 0., 5., 0., 15., -0., 0., 0., -15., -0., 5.]) >>> hfft(signal, 10) # Input entire signal and truncate array([ 0., 5., 0., 15., -0., 0., 0., -15., -0., 5.])