scipy.fft.

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 + 1 Eingabepunkte 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 als 2*(m-1) angenommen, wobei m die 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 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 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, wobei m die Länge der transformierten Achse der Eingabe ist. Um eine ungerade Anzahl von Ausgabepunkten zu erhalten, muss n angegeben werden, z.B. 2*m - 1 im typischen Fall,

Löst aus:
IndexError

Wenn axis größer ist als die letzte Achse von a.

Siehe auch

rfft

Berechnet die 1-D FFT für reelle Eingaben.

ihfft

Die Inverse von hfft.

hfftn

Berechnet die N-D FFT eines hermiteschen Signals.

Hinweise

hfft/ihfft sind ein Paar analog zu rfft/irfft, aber für den umgekehrten Fall: hier hat das Signal hermitesche Symmetrie im Zeitbereich und ist im Frequenzbereich reell. Also hier ist es hfft, 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.])