Zurück zu den Modellen
Transformer

HilbertTransformer

Extract instantaneous features from a time series via Hilbert transform.

Computes the analytic signal using the Hilbert transform and returns one of several derived representations: the amplitude envelope, instantaneous phase, instantaneous frequency, the quadrature component, or all three main features as a multi-column DataFrame.

Wraps scipy.signal.hilbert.

Schnellstart

python
from sktime.transformations.hilbert import HilbertTransformer

estimator = HilbertTransformer(output_type='envelope', N=None, unwrap_phase=True, fs=1.0)

Tags

Fähigkeiten

  • Multivariat
  • Reihen ungleicher Länge
  • Inverse Transformation: Nicht unterstützt
  • Fehlende Werte: Nicht unterstützt
  • Entfernt fehlende Werte: Nicht unterstützt
  • Gleicht Reihenlängen an: Nicht unterstützt

Eigenschaften

Eingabetypscitype:transform-input
Series
Ausgabetypscitype:transform-output
Series
Label-Typscitype:transform-labels
None
Fit ist leerfit_is_empty
Ja
Behält den Zeitindextransform-returns-same-time-index
Ja
Benötigt Xrequires_X
Ja
Benötigt yrequires_y
Nein
X und y brauchen denselben IndexX-y-must-have-same-index
Nein

Parameter(4)

output_typestr, default=”envelope”

Which feature to extract. One of:

  • "envelope": instantaneous amplitude, |z(t)|

  • "phase": unwrapped instantaneous phase in radians

  • "frequency": instantaneous frequency in cycles per sample

  • "quadrature": imaginary part of the analytic signal

  • "all": envelope, phase and frequency as separate columns

Nint or None, default=None

Number of Fourier components (FFT length). If None, defaults to the length of the input.

unwrap_phasebool, default=True
Whether to unwrap the phase to remove 2-pi discontinuities.
fsfloat, default=1.0

Sampling frequency, used to scale instantaneous frequency into physical units (Hz) when output_type is "frequency" or "all".

Beispiele

>>> from sktime.transformations.hilbert import HilbertTransformer
>>> from sktime.datasets import load_airline
>>> y = load_airline ()
>>> t = HilbertTransformer (output_type = "envelope")
>>> y_envelope = t. fit_transform (y)