Möchten Sie als Datenwissenschaftler Ihre Zeitreihen analysieren?
Haben Sie sich jemals gefragt, ob die Signalverarbeitung Ihr Leben einfacher machen könnte?
Wenn ja – bleiben Sie bei mir. Dieser Artikel ist für Sie gemacht. 🙂
Die Arbeit mit realen Zeitreihen kann … schmerzhaft sein. Finanzkurven, EKG-Kurven, neuronale Signale: Sie sehen oft wie chaotische Spitzen ohne jegliche Struktur aus.
Die Arbeit mit realen Zeitreihen kann … schmerzhaft sein. Finanzkurven, EKG-Kurven, neuronale Signale: Sie sehen oft wie chaotische Spitzen ohne jegliche Struktur aus.
Die Arbeit mit realen Zeitreihen kann … schmerzhaft sein. Finanzkurven, EKG-Kurven, neuronale Signale: Sie sehen oft wie chaotische Spitzen ohne jegliche Struktur aus.
In der Datenwissenschaft verlassen wir uns in der Regel auf die klassische statistische Vorverarbeitung: saisonale Zerlegung, Trendbereinigung, Glättung, gleitende Durchschnitte … Diese Techniken sind nützlich, gehen jedoch mit starken Annahmen einher, die in der Praxis selten gültig sind. Und wenn diese Annahmen fehlschlagen, kann es sein, dass Ihr maschinelles Lernmodell leistungsschwach ist oder sich nicht verallgemeinern lässt.
Heute werden wir eine Familie von Methoden erkunden, die in der Knowledge-Science-Ausbildung selten gelehrt werden, die jedoch die Artwork und Weise, wie Sie mit Zeitdaten arbeiten, völlig verändern können.
Auf der heutigen Speisekarte 🍔
🍰 Warum traditionelle Methoden mit realen Zeitreihen zu kämpfen haben
🍛 Wie Signalverarbeitungstools helfen können
🍔 Wie Empirical Mode Decomposition (EMD) funktioniert und wo sie versagt
Die „klassischen“ Vorverarbeitungstechniken, die ich oben erwähnt habe, sind gute Ausgangspunkte, aber wie gesagt, sie basieren auf festen, definierten Annahmen darüber, wie sich ein Sign verhalten soll.
Die meisten von ihnen gehen davon aus, dass das Sign stationär ist, was bedeutet, dass seine statistischen Eigenschaften (Mittelwert, Varianz, spektraler Inhalt) über die Zeit konstant bleiben.
Aber in Wirklichkeit sind die meisten echten Signale:
- instationär (Ihr Frequenzinhalt entwickelt sich)
- nichtlinear (sie können nicht durch einfache additive Komponenten erklärt werden)
- laut
- gemischt mit mehreren Schwingungen gleichzeitig
Additionally… was genau ist ein „Sign“?
Ein Sign ist einfach jede Größe, die sich im Laufe der Zeit ändert (was wir normalerweise als a bezeichnen). Zeitreihen in Datenwissenschaft).
Einige Beispiele:
- ❤️ EKG oder EEG – biomedizinische/Gehirnsignale
- 🌋 Seismische Aktivität — Geophysik
- 🖥️ CPU-Auslastung — Systemüberwachung
- 💹 Aktienkurse, Volatilität, Auftragsfluss — Finanzen
- 🌦️ Temperatur oder Luftfeuchtigkeit — Klimawissenschaft
- 🎧 Audiowellenformen — Sprach- und Klanganalyse

Signale sind überall. Und quick alle von ihnen verstoßen gegen die Annahmen klassischer Zeitreihenmodelle.
Sie sind selten „sauber“. Ich meine damit, dass ein einzelnes Sign normalerweise eine Mischung aus mehreren gleichzeitig ablaufenden Prozessen ist.
In einem Sign finden Sie häufig:
- langsame Tendencies
- periodische Schwingungen
- kurze Ausbrüche
- zufälliges Rauschen
- versteckte Rhythmen, die man nicht direkt sehen kann
👉 Stellen Sie sich nun vor, Sie könnten alle diese Komponenten trennen – direkt aus den Daten – ohne Stationarität anzunehmen, ohne Angabe von Frequenzbändern und ohne das Sign in eine vordefinierte Foundation zu zwingen.
Das ist das Versprechen von Datengesteuerte Signalzerlegung.
Dieser Artikel ist Teil 1 einer dreiteiligen Serie zur adaptiven Zerlegung:
- EMD – Empirische Modenzerlegung (Heute)
- VMD – Variationsmoduszerlegung (nächste)
- MVMD – Multivariate VMD (nächste)
Jede Methode ist leistungsfähiger und stabiler als die vorherige – und am Ende der Serie werden Sie verstehen, wie Signalverarbeitungsmethoden saubere, interpretierbare Komponenten extrahieren können.
Empirische Moduszerlegung
Die empirische Modenzerlegung wurde von Huang et al. eingeführt. (1998) als Teil der Hilbert-Huang-Transformation.
Sein Ziel ist einfach, aber wirkungsvoll: Nehmen Sie ein Sign und teilen Sie es in eine Reihe sauberer Schwingungskomponenten auf, die als Intrinsic Mode Capabilities (IMFs) bezeichnet werden.
Jeder IMF entspricht einer in Ihrem Sign vorhandenen Schwingung, vom schnellsten zum langsamsten Pattern.
Schauen Sie sich Abbildung 2 unten an:
Oben sehen Sie das Originalsignal.
Darunter sehen Sie mehrere IWFs – jeder erfasst eine andere „Schwingungsschicht“, die in den Daten verborgen ist.
IWF₁ enthält die schnellsten Variationen
IWF₂ fängt einen etwas langsameren Rhythmus ein
…
Der letzte IWF + Relaxation repräsentiert den langsamen Pattern oder die Basislinie
Einige IMFs werden für Ihre maschinelle Lernaufgabe nützlich sein; andere können Rauschen, Artefakten oder irrelevanten Schwingungen entsprechen.

Was ist die Mathematik hinter EMD?
Jedes Sign x

Wo:
- Ci
- IWF₁ erfasst die schnellste Schwingungen
- IWF₂ fängt ein langsamere Schwingungund so weiter…
- r
- Durch die Addition aller IMFs + des Restes wird das Originalsignal exakt rekonstruiert.
Ein IWF ist ein saubere Schwingung direkt aus den Daten gewonnen.
Es muss zwei einfache Eigenschaften erfüllen:
- Die Anzahl der Nulldurchgänge ≈ die Anzahl der Extrema
→ Die Schwingung ist brav. - Der Mittelwert der oberen und unteren Hüllkurven beträgt ungefähr Null
→ Die Schwingung ist lokal symmetrisch, ohne Langzeitinformation.
Diese beiden Regeln machen IWFs grundsätzlich datengesteuert Und adaptiv im Gegensatz zu Fourier oder Wavelets, die das Sign in vorgegebene Formen zwingen.
Die Instinct hinter dem EMD-Algorithmus
Der EMD-Algorithmus ist überraschend intuitiv. Hier ist die Extraktionsschleife:
- Beginnen Sie mit Ihrem Sign
- Finden Sie alle lokalen Maxima und Minima
- Interpolieren Sie sie, um eine obere und eine untere Hülle zu bilden
(siehe Abbildung 3) - Berechnen Sie den Mittelwert beider Hüllkurven
- Subtrahieren Sie diesen Mittelwert vom Sign
→ Dies ergibt einen „Kandidaten-IWF“.
6. Überprüfen Sie dann die beiden IWF-Bedingungen:
- Hat es die gleiche Anzahl an Nulldurchgängen und Extrema?
- Ist der Mittelwert seiner Einhüllenden ungefähr Null?
Wenn Ja → Sie haben extrahiert IWF₁.
Wenn NEIN → Sie wiederholen den Vorgang (genannt Sichtung), bis es die Kriterien erfüllt.
7. Sobald Sie IMF₁ (die schnellste Schwingung) erhalten haben:
- Sie subtrahieren es vom Originalsignal,
- Der Relaxation wird zum neues Sign,
- Und Sie wiederholen den Vorgang, um IWF₂, IWF₃, … zu extrahieren.
Dies wird so lange fortgesetzt, bis keine nennenswerte Schwingung mehr vorhanden ist.
Was bleibt, ist das Resttrend r

EMD in der Praxis
Um wirklich zu verstehen, wie EMD funktioniert, erstellen wir unser eigenes synthetisches Sign.
Wir mischen drei Komponenten:
- Eine niederfrequente Schwingung (ca. 5 Hz)
- Eine hochfrequente Schwingung (ca. 30 Hz)
- Ein bisschen zufälliges weißes Rauschen
Sobald alles zu einem einzigen, chaotischen Sign zusammengefasst ist, wenden wir die EMD-Methode an.
import numpy as np
import matplotlib.pyplot as plt
# --- Parameters ---
Fs = 500 # Sampling frequency (Hz)
t_end = 2 # Length in seconds
N = Fs * t_end # Complete variety of samples
t = np.linspace(0, t_end, N, endpoint=False)
# --- Elements ---
# 1. Low-frequency part (Alpha-band equal)
f1 = 5
s1 = 2 * np.sin(2 * np.pi * f1 * t)
# 2. Excessive-frequency part (Gamma-band equal)
f2 = 30
s2 = 1.5 * np.sin(2 * np.pi * f2 * t)
# 3. White noise
noise = 0.5 * np.random.randn(N)
# --- Composite Sign ---
sign = s1 + s2 + noise
# Plot the artificial sign
plt.determine(figsize=(12, 4))
plt.plot(t, sign)
plt.title(f'Artificial Sign (Elements at {f1} Hz and {f2} Hz)')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.grid(True)
plt.tight_layout()
plt.present()

Ein wichtiges Element:
EMD wählt automatisch die Anzahl der IWFs.
Das Sign wird so lange zerlegt, bis a Stoppkriterium erreicht ist – normalerweise, wenn:
- Es kann keine oszillierende Struktur mehr extrahiert werden
- oder das Residuum wird zu einem monotonen Pattern
- oder der Siebvorgang stabilisiert sich
(Sie können bei Bedarf auch eine maximale Anzahl von IMFs festlegen, aber der Algorithmus stoppt natürlich von selbst.)
from PyEMD import EMD
# Initialize EMD
emd = EMD()
IMFs = emd.emd(sign, max_imf=10)
# Plot Authentic Sign and IMFs
fig, axes = plt.subplots(IMFs.form(0) + 1, 1, figsize=(10, 2 * IMFs.form(0)))
fig.suptitle('EMD Decomposition Outcomes', fontsize=14)
axes(0).plot(t, sign)
axes(0).set_title('Authentic Sign')
axes(0).set_xlim(t(0), t(-1))
axes(0).grid(True)
for n, imf in enumerate(IMFs):
axes(n + 1).plot(t, imf, 'g')
axes(n + 1).set_title(f"IMF {n+1}")
axes(n + 1).set_xlim(t(0), t(-1))
axes(n + 1).grid(True)
plt.tight_layout(rect=(0, 0.03, 1, 0.95))
plt.present()

EMD-Einschränkungen
EMD ist mächtig, hat aber mehrere Schwächen:
- Modusmischung: unterschiedliche Frequenzen können im selben IWF landen.
- Überteilung: EMD entscheidet selbst über die Anzahl der IWFs und kann zu viele herausholen.
- Geräuschempfindlichkeit: Kleine Geräuschänderungen können die IWFs völlig verändern.
- Keine solide mathematische Grundlage: Es kann nicht garantiert werden, dass die Ergebnisse stabil oder eindeutig sind.
Aufgrund dieser Einschränkungen gibt es mehrere verbesserte Versionen (EEMD, CEEMDAN), die jedoch empirisch bleiben.
Genau aus diesem Grund mögen Methoden VMD entstanden – und das werden wir im nächsten Artikel dieser Serie untersuchen.
