🚧 Diese Seite wird aktuell noch aufgebaut – Fehler und unvollständige Inhalte sind möglich. Feedback (Fehler, inhaltliche Anregungen) gerne an info@sd20.org
Traumschreiber Tutorial

Get Started

Schritt für Schritt durch deine ersten Messungen

1
2
3
4
···

Übersicht

Level 1

Einschalten & Akkustand ablesen

Lerne den Grundbetrieb – Ein/Aus, SD-Karte und den Akkustatus-Check.

⚡ 100 XP
Du hältst ein Gerät in der Hand, das Biosignale aufzeichnet – aber bis jetzt schläft es noch. In diesem Level weckst du es zum ersten Mal auf: du lernst, wie du es sicher ein- und ausschaltest, den Akkustand abliest und wieder lädst. Klingt klein – ist aber die Grundlage für alles, was danach kommt. Wer hier sicher ist, verliert später keine Daten und keine Zeit.
Wichtige Sicherheitsregel

Den Traumschreiber niemals gleichzeitig über das USB-Kabel laden und über Elektroden mit dem Körper verbunden betreiben. Es gilt stets: entweder laden oder nutzen – niemals beides auf einmal.

💾 SD-Karte: Die SD-Karte darf nur im ausgeschalteten Zustand eingelegt oder entnommen werden. Andernfalls kann das Dateisystem auf der Karte beschädigt werden.

Schritt für Schritt

  • 1
    SD-Karte einlegen

    Stelle sicher, dass der Traumschreiber ausgeschaltet ist. Schiebe dann die SD-Karte in den Slot – du solltest ein leises Einrasten spüren.

  • 2
    Einschalten

    Schiebe den Schalter an der Seite des Gehäuses in die Ein-Position. Der Traumschreiber bootet nun.

  • 3
    LED-Demo & Startton

    Direkt nach dem Start durchläuft die integrierte LED eine kurze Farbdemonstration in den Institutsfarben. Anschließend – sofern eine SD-Karte eingelegt ist – ertönt BELL1.WAV über den eingebauten Lautsprecher. Ist keine SD-Karte vorhanden, bleibt es still.

🎯 Quest
Taste einmal drücken
Drücke nach dem Start einmalig den kleinen runden schwarzen Knopf am Traumschreiber. Das Gerät zeigt dir daraufhin den aktuellen Akkustand über die LED an – in Farbe und Blinkanzahl.

Akkustand ablesen

Wie funktioniert die Anzeige?

Die LED blinkt 1- bis 10-mal. Jeder Blitz entspricht ~10 % Akkukapazität. Die Farbe gibt zusätzliche Auskunft: Rot bedeutet wenig Akku, Gelb ist Mitte, Grün steht für voll. Jeder Blitz leuchtet ca. 300 ms, gefolgt von 150 ms Pause.

~10 %
1 Blitz · Rot
~30 %
3 Blitze · Orange
~50 %
5 Blitze · Gelb
~70 %
7 Blitze · Gelbgrün
~100 %
10 Blitze · Grün
⏱ Hinweis: Nach dem ersten Einschalten benötigt das Batterie-Monitoring ca. 30 Sekunden, um einen stabilen und korrekten Messwert zu liefern. Bitte entsprechend kurz warten, bevor du den Wert als verlässlich betrachtest.
  • 4
    Traumschreiber ausschalten

    Schiebe den Schalter zurück in die Aus-Position.

  • 5
    SD-Karte sicher entnehmen

    Erst wenn das Gerät vollständig ausgeschaltet ist, darf die SD-Karte herausgenommen werden. Kurz drücken – die Karte federt heraus.

Akku laden

  • 6
    USB-C-Kabel anschließen

    Den Traumschreiber ausschalten und ein USB-C-Kabel anstecken. Das Gerät beginnt sofort zu laden. Ob eine SD-Karte eingelegt ist oder nicht, spielt beim Laden keine Rolle.

  • 7
    Ladestatus an der LED ablesen

    Rotes Dauerlicht → lädt.  ·  Grünes Dauerlicht → vollständig geladen. Von leer bis voll dauert der Ladevorgang ca. 2 Stunden. Ein voller Akku ermöglicht über 16 Stunden kontinuierliche Datenaufnahme.

Level 2

Erste EKG-Aufnahme

Elektroden anlegen, aufnehmen, EDF-Datei öffnen – dein erstes Biosignal.

⚡ 250 XP
Jetzt wird es ernst: du klebst Elektroden auf deine Haut und nimmst zum ersten Mal dein eigenes Herz auf. Das EKG ist das zugänglichste Biosignal überhaupt – das Herz schlägt laut und regelmäßig, jeder Ausschlag ist im Signal klar erkennbar. Was du am Ende dieses Levels siehst, ist kein Beispielbild aus dem Internet, sondern dein eigenes Herz in Echtzeit, aufgezeichnet von einem Gerät, das du selbst in der Hand hältst.
Sicherheitsregel – auch hier!

Sobald Elektroden am Körper angebracht sind, darf das USB-Ladekabel nicht angeschlossen sein. Immer gilt: entweder laden oder messen – niemals beides gleichzeitig.

Elektroden anbringen

R L +
Elektrode 1 – rechts unterhalb Schlüsselbein

Befestige die erste Elektrode auf der rechten Seite deiner Brust, direkt unterhalb des rechten Schlüsselbeins. Die Haut sollte trocken und sauber sein.

Elektrode 2 – linker unterer Rippenbogen

Bringe die zweite Elektrode am linken unteren Rippenbogen an. Dieser Abstand zwischen den beiden Punkten erzeugt eine gute EKG-Ableitung (Einthoven-Position).

Tipps für guten Kontakt
  • Haut vorher mit einem Tuch abreiben
  • Selbstklebende Gel-Elektroden verwenden
  • Haare im Bereich der Elektroden können den Kontakt verschlechtern
  • Während der Aufnahme möglichst ruhig sitzen oder liegen

Aufnahme durchführen

  • 1
    SD-Karte einlegen (Gerät aus!)

    Stelle sicher, dass der Traumschreiber ausgeschaltet ist, und lege die SD-Karte ein.

  • 2
    Einschalten

    Schiebe den Schalter in die Ein-Position. Der Startton ertönt (wenn SD-Karte vorhanden) und die LED-Demo läuft kurz ab.

  • 3
    60 Sekunden warten

    Der Traumschreiber beginnt sofort mit der Aufzeichnung aller Kanäle. Bleibe ruhig sitzen oder liegen – Bewegungen erzeugen Artefakte im Signal. Nach etwa 60 Sekunden hast du eine auswertbare EKG-Sequenz.

  • 4
    Ausschalten

    Schiebe den Schalter zurück in die Aus-Position. Die Aufzeichnung wird automatisch abgeschlossen und auf die SD-Karte geschrieben.

  • 5
    SD-Karte entnehmen

    Erst wenn das Gerät vollständig ausgeschaltet ist: SD-Karte kurz eindrücken, sie federt heraus. Niemals während des Betriebs entnehmen!

📂 Wo ist die Datei? Die Aufnahme liegt auf der SD-Karte im Ordner ADC/ als Datei mit der Endung .edf. Die Dateien werden fortlaufend nummeriert (z. B. AD0001.EDF, AD0002.EDF, …).

Was ist das EDF-Format?

📄 European Data Format (EDF) – ausführliche Erklärung

EDF steht für European Data Format und ist ein offener, standardisierter Dateistandard für kontinuierliche Biosignale wie EEG, EKG, EMG oder Atemkurven. Er wurde 1992 von Bob Kemp und José Varela entwickelt und ist heute weltweit das meistgenutzte Format in der klinischen Schlaf- und Neurophysiologie-Forschung.

EDF unterstützt mehrere parallele Signalkanäle mit unterschiedlichen Abtastraten – ideal, um gleichzeitig EKG, EEG und weitere Sensoren in einer einzigen Datei zu speichern, wie es der Traumschreiber tut.

Datei mit EDFbrowser öffnen

EDFbrowser herunterladen

EDFbrowser ist ein freies, plattformübergreifendes Programm (Windows, macOS, Linux) zum Anzeigen und Analysieren von EDF-Dateien. Suche im Web nach „EDFbrowser download" und lade die aktuelle Version für dein Betriebssystem herunter.

  1. EDFbrowser starten.
  2. File → Open wählen (oder Strg+O) und zu deiner SD-Karte navigieren.
  3. Im Ordner ADC/ die .edf-Datei auswählen und öffnen. Es öffnet sich der Dialog „Add signals".
  4. Im linken Bereich siehst du alle Kanäle. Welcher Kanal das EKG enthält, hängt davon ab, an welchen Eingängen des Traumschreibers die Elektroden angeschlossen sind: Bei 3–4 Elektroden sind typischerweise Kanal 6 und 8 (EEG Ch6 / Ch8) aktiv, bei 8 Elektroden eher Kanal 1 und 3 (EEG Ch1 / Ch3). Du kannst auch einfach alle acht Kanäle einzeln nacheinander hinzufügen und selbst schauen, auf welchem die Herzschläge sichtbar sind.
  5. Zuerst „Add signal(s)" klicken – der Kanal erscheint rechts in der Signal-Composition. Dann „Make derivation" klicken. Das Signal wird ins Hauptfenster geladen. Wiederhole diesen Vorgang für jeden weiteren Kanal, den du prüfen möchtest.
  6. Den Dialog mit „Close" schließen.
  7. Mit dem Mausrad oder den Zoom-Schaltflächen die Zeitachse anpassen – starte mit einem Fenster von ca. 5–10 Sekunden, um einzelne Herzschläge zu erkennen.
  8. Du solltest nun eine rhythmische Kurve mit den typischen EKG-Ausschlägen sehen.
Add signals
/ADC/AD0105.EDF
Subject: X X X X Recording: Startdate X X X X Duration: 0:01:29
Signals in file:
1 EEG Ch1 250 Hz ← EKG-Signal
2EEG Ch2250 Hz
3EEG Ch3250 Hz
4EEG Ch4250 Hz
5EEG Ch5250 Hz
6EEG Ch6250 Hz
7EEG Ch7250 Hz
8EEG Ch8250 Hz
9Battery1 Hz
10Light1 Hz
11Button1 Hz
Signal Composition
SignalLabelFactorSamplerate
1EEG Ch1×1.000250 Hz
① Kanal 1 auswählen
② Add signal(s) → Make derivation → Close
Schematisches EKG – so sollte deine Kurve aussehen
P QRS T ~ 1 Herzschlag
Was du sehen solltest
  • P-Welle: Kleiner, runder Ausschlag – Vorhoferregung
  • QRS-Komplex: Scharfer, großer Ausschlag – Kammererregung (der Herzschlag selbst)
  • T-Welle: Breiter, flacher Ausschlag – Kammerrückbildung
  • Bei ruhigem Sitzen: typisch 60–80 Schläge pro Minute
  • Der Abstand zwischen zwei QRS-Komplexen entspricht dem RR-Intervall (Herzrate)
Artefakte: Alle Stromkabel und elektrischen Geräte in der Nähe können das Signal stören – besonders Laptop-Netzteile, Monitore und Steckdosen erzeugen 50-Hz-Einstreuungen. Wenn die Kurve stark verrauscht ist: von Steckdosen und elektrischen Geräten entfernen, nochmal messen und den Elektrodenkontakt (Andruck, Hautreinigung) überprüfen.
🗺️ Quest
50-Hz-Kartierung der Wohnung
Finde heraus, wo in deiner Wohnung das 50-Hz-Rauschen besonders stark ist – und wo es fast verschwindet.
  • 1
    Aufnahme starten

    Elektroden anlegen, Traumschreiber einschalten und mit der Aufzeichnung beginnen. Stelle sicher, dass du dich frei bewegen kannst – Elektroden und Kabel müssen halten.

  • 2
    Verschiedene Orte aufsuchen

    Bewege dich mit dem Traumschreiber durch die Wohnung. Halte an mehreren Stellen jeweils ca. 20–30 Sekunden inne und bleibe ruhig stehen. Interessante Orte zum Testen:

    • Direkt neben einem eingesteckten Laptop-Netzteil oder Ladegerät
    • Neben dem laufenden Kühlschrank oder Mikrowelle
    • Direkt an einer Steckdose / Verlängerungsleiste
    • In der Nähe eines eingeschalteten Monitors oder Fernsehers
    • In der Mitte eines Raums, weit weg von Geräten
    • Draußen oder auf dem Balkon (falls möglich)
  • 3
    Button als Markierung nutzen

    Drücke den Button am Traumschreiber jedes Mal, wenn du einen neuen Ort erreichst. So siehst du hinterher im EDFbrowser genau, wann du wo warst.

  • 4
    Aufnahme beenden & auswerten

    Traumschreiber ausschalten, SD-Karte entnehmen, EDF-Datei in EDFbrowser öffnen. Füge einen EKG-Kanal hinzu und zoome auf die verschiedenen Abschnitte. Wo sieht das Signal ruhig aus – und wo ist es von einem regelmäßigen 50-Hz-Zittern überlagert?

Was du sehen solltest: An Orten mit starken 50-Hz-Quellen (Netzteile, Steckdosen, Bildschirme) überlagert eine gleichmäßige Sinuswelle das EKG-Signal – 50 Schwingungen pro Sekunde sind bei 250 Hz Abtastrate klar erkennbar. An ruhigen Orten ohne elektrische Geräte bleibt das Signal deutlich sauberer. Der Button-Kanal zeigt dir die genauen Wechselorte.
Level 3

Signale erkunden – Button, Licht & Batterie

Lerne die Hilfssignale kennen und führe dein erstes kontrolliertes Experiment durch.

⚡ 150 XP
Ein EKG aufzunehmen ist ein Anfang – aber der Traumschreiber zeichnet noch viel mehr auf: Er weiß, ob du den Knopf gedrückt hast, wie hell es im Raum war und wie voll der Akku war. Diese Zusatzsignale klingen unscheinbar, sind aber der Schlüssel zu kontrolliertem Experimentieren: Wenn du weißt, wann du das Licht ausgemacht hast, kannst du nachher im Signal genau an dieser Stelle nachschauen – und beobachten, was sich verändert hat. Das ist der Übergang von „Aufnahme machen" zu „Experiment durchführen".

Was bedeuten 1 Hz und 250 Hz?

Abtastrate (Samplerate)

Die Abtastrate gibt an, wie viele Messwerte pro Sekunde aufgezeichnet werden. Im EDFbrowser siehst du sie hinter jedem Kanal. Die Einheit ist Hertz (Hz), d.h. "pro Sekunde", benannt nach dem Hamburger Physiker Heinrich Hertz. Fun facts: Hertz war der erste, der elektromagnetische Wellen experimentell nachweisen konnte. Nach ihm ist der Hamburger Fernsehturm benannt.

Rate Kanäle Warum?
250 Hz EEG Ch1–Ch8 EKG- und EEG-Signale ändern sich sehr schnell. Um sie korrekt abzubilden, muss man mindestens doppelt so oft abtasten wie die höchste relevante Frequenz (Nyquist-Theorem). Bei 250 Hz können Frequenzen bis 125 Hz erfasst werden – ideal für Herzschläge und Hirnwellen.
1 Hz Battery, Light, Button Akkustand, Helligkeit und Button-Presses ändern sich viel langsamer – ein Wert pro Sekunde reicht vollkommen aus und spart Speicherplatz auf der SD-Karte.

Die drei Hilfssignale

Button 1 Hz

Das Button-Signal ist digital: es kennt nur zwei Werte – 0 (nicht gedrückt) und 1 (gedrückt). Im EDFbrowser erscheint es zunächst als kaum sichtbare Linie nahe der Nulllinie.

Um es gut lesbar zu machen, nutze die „Fit to pane"-Funktion:

  1. Button-Signal hinzufügen: Kanal (Button) auswählen → „Add signal(s)"„Make derivation"„Close".
  2. Im Hauptfenster auf den Signalnamen klicken.
  3. Im Menü dann „Fit to pane" auswählen.
  4. Das Signal dehnt sich auf die volle Spurhöhe aus – der Sprung von 0 auf 1 beim Drücken ist jetzt deutlich sichtbar.
Battery 1 Hz

Das Batterie-Signal speichert die Rohspannung des Akkus als ADC-Rohwert – keine Prozentzahl. Der Wertebereich hängt von der Ladeschaltung ab; ein höherer Wert entspricht einer höheren Spannung und damit einem volleren Akku.

Light 1 Hz

Der Helligkeitssensor liefert ein invertiertes Signal: je höher der Messwert, desto dunkler ist es. Bei vollständiger Dunkelheit ist der Wert maximal; bei hellem Licht fällt er ab.

Hoher Wert Dunkel
Mittlerer Wert Halbdunkel
Niedriger Wert Hell

Quest

🔬 Quest
Das Licht-aus-Experiment
Führe eine kontrollierte Sequenz durch und überprüfe hinterher im EDFbrowser, ob Button und Helligkeitssensor korrekt mitgezeichnet haben.
  • 1
    Aufnahme starten

    Traumschreiber einschalten – die Aufzeichnung beginnt automatisch.

  • 2
    Licht ausschalten

    Mache den Raum komplett dunkel. Das Light-Signal wird nun einen hohen Wert annehmen.

  • 3
    20 Sekunden warten

    Bleibe ruhig – die Dunkelphase muss deutlich sichtbar im Signal sein.

  • 4
    Button drücken

    Drücke einmal den Button am Traumschreiber. Der Batterie-Ladezustand (0–100%) wird durch mehrmaliges Blinken angezeigt. Da der Helligkeitssensor direkt neben der LED liegt, sollte dieses Blinken im Light-Signal erkennbar sein. Das Button-Signal springt für diese Sekunde auf 1.

  • 5
    20 Sekunden warten

    Weitere 20 Sekunden ruhig bleiben.

  • 6
    Licht einschalten

    Schalte das Raumlicht wieder an. Das Light-Signal fällt nun auf einen niedrigen Wert ab.

  • 7
    20 Sekunden warten

    Nochmals 20 Sekunden warten, damit die Hellphase aufgezeichnet wird.

  • 8
    Aufnahme beenden & auswerten

    Traumschreiber ausschalten. SD-Karte entnehmen, EDF-Datei im EDFbrowser öffnen. Kanäle Button und Light hinzufügen und jeweils „Fit to pane" anwenden.

Was du sehen solltest: Im Button-Signal genau eine kurze Spitze auf 1 – beim Light-Signal ein klarer Abfall von einem hohen auf einen niedrigen Wert, sobald das Licht angegangen ist. Außerdem sollte das Blinken der Battery-LED (rot/gelb/grün je nach Ladestand) im Light-Kanal als leichte Schwankung erkennbar sein – wegen der 1-Hz-Abtastrate vermutlich etwas unregelmäßig.
Level 4

Signalanalyse mit Python

Erstelle Time-Frequency-Plots, lerne Filtergrundlagen und erkenne 50-Hz-Netzrauschen.

⚡ 200 XP
Warum Python – und nicht einfach EDFbrowser?

EDFbrowser ist großartig, um ein Signal anzusehen. Aber ab dem Moment, wo du anfängst, echte Fragen zu stellen – „Wie verändert sich mein Herzrhythmus beim Einschlafen?", „Wann genau hat das 50-Hz-Rauschen aufgehört?", „Kann ich automatisch alle Herzschläge zählen?" – stößt jede Klick-Oberfläche an ihre Grenzen. Python ist das Werkzeug, mit dem Wissenschaftler und Ingenieure auf der ganzen Welt genau diese Fragen beantworten. Und du kannst es auch.

Häufige Sorge #1

"Ich bin kein Programmierer."

Das Script ist fertig geschrieben – du musst es nur ausführen. Kein einziges Zeichen Code selbst tippen. Das Terminal ist nur eine Texteingabe, nicht anders als eine Suchmaschine.

Häufige Sorge #2

"Ich könnte etwas kaputtmachen."

Das Script liest nur – es schreibt nichts auf deine SD-Karte zurück. Die schlimmste Konsequenz einer falschen Eingabe: eine Fehlermeldung, und du probierst es nochmal.

Häufige Sorge #3

"Das dauert Stunden bis es läuft."

Von Null bis zum ersten Plot: etwa 10–15 Minuten. Die meiste Zeit davon wartest du auf den Python-Installer.

Was dich am Ende dieses Levels erwartet: Du führst ein fertiges Python-Script aus und bekommst einen farbigen Time-Frequency-Plot deiner eigenen EKG-Aufnahme – ein Bild, das zeigt, welche Frequenzen zu welchem Zeitpunkt in deinem Signal stecken. Du siehst mit eigenen Augen, ob und wo 50-Hz-Netzrauschen aufgetaucht ist. Das ist exakt die Art von Analyse, die in Schlaf- und Neurophysiologielabors eingesetzt wird.

Python & Terminal – Erste Schritte

Terminal öffnen
🪟 Windows

Taste Win + X drücken, dann „Windows PowerShell" oder „Terminal" wählen.

🍎 macOS

⌘ Cmd + Leertaste → „Terminal" tippen → Enter.

🐧 Linux

Strg + Alt + T – oder „Terminal" in den Anwendungen suchen.

Python installieren

🪟 Windows

Auf python.org/downloads die aktuelle Version herunterladen. Im Installer unbedingt „Add Python to PATH" anhaken.

python --version
🍎 macOS

Über Homebrew (empfohlen) oder python.org.

brew install python3 python3 --version
🐧 Linux

Über den Paketmanager:

sudo apt install python3 python3-pip python3 --version

Bibliotheken installieren

Das Script benötigt drei Bibliotheken. Diesen Befehl einmalig im Terminal ausführen:

pip install numpy matplotlib scipy

Auf macOS/Linux eventuell pip3 statt pip verwenden.

Hilfe bei Fehlern: Fehlermeldungen einfach in ChatGPT oder Gemini einfügen. Guter Startprompt:

„Ich lerne Python für Signalanalyse mit dem Traumschreiber-Gerät (EDF-Dateien). Das Script plot_edf_tutorial.py nutzt Python 3 mit numpy, matplotlib und scipy. Ich erhalte diesen Fehler: [FEHLER HIER EINFÜGEN]. Was bedeutet das und wie behebe ich es?"

Script ausführen

Script herunterladen

Das Script plot_edf_tutorial.py kann hier heruntergeladen werden. Die Datei in einen Ordner deiner Wahl speichern – am besten dorthin, wo auch die EDF-Dateien liegen.

Im Terminal navigieren

Das Terminal startet meist im Home-Verzeichnis. Mit drei Befehlen kommt man überall hin:

📋 Inhalt anzeigen

Zeigt alle Dateien und Ordner im aktuellen Verzeichnis:

ls # macOS / Linux dir # Windows
📂 Ordner wechseln

In einen Unterordner wechseln:

cd Downloads cd Traumschreiber
⬆ Eine Ebene zurück

In den übergeordneten Ordner wechseln:

cd ..
Beispiel: vom Home-Ordner zum Script navigieren
ls # was ist hier? cd Downloads # in Downloads wechseln ls # Script sehen? python plot_edf_tutorial.py meine_aufnahme.EDF
Tipp: Im Terminal die Tab-Taste drücken, um Datei- und Ordnernamen automatisch zu vervollständigen. Spart Tipparbeit und vermeidet Tippfehler.

Script aufrufen

Grundaufruf – plottet die ersten 30 Sekunden von Kanal 0
python plot_edf_tutorial.py ADC/AD0041.EDF
Kanal und Startzeit auswählen
python plot_edf_tutorial.py ADC/AD0041.EDF --channel 0 --start 30
Parameter:
  • --channel 0 wählt EEG-Kanal 1 (0–7 möglich, entspricht EEG Ch1–Ch8)
  • --start 30 beginnt die Analyse bei Sekunde 30
  • Es werden immer exakt 30 Sekunden ab dem Startpunkt geplottet

Was zeigt der Time-Frequency-Plot?

Die drei Dimensionen
Achse / FarbeBedeutungBeispiel
X-Achse Zeit – wie beim Rohsignal 0–30 Sekunden
Y-Achse Frequenz in Hz – wie viele Mal pro Sekunde das Signal auf und ab geht 12 Hz = 12× hoch und runter pro Sekunde
Farbe Stärke des Signals bei dieser Frequenz zum jeweiligen Zeitpunkt Warm (rot/gelb) = stark · Kalt (blau) = schwach
Wie wird der Plot berechnet?
  1. Das 30-Sekunden-Signal wird in kurze, überlappende Fenster zerschnitten (z.B. je 2 Sekunden).
  2. Für jedes Fenster wird die Fourier-Transformation (FFT) berechnet – sie „zerlegt" das Signal in seine Frequenzanteile und ergibt ein Spektrum.
  3. Jedes Spektrum wird als eine vertikale Farbspalte dargestellt: unten = niedrige, oben = hohe Frequenzen.
  4. Alle Spalten nebeneinander ergeben das zweidimensionale Time-Frequency-Bild.

Je länger die Fenster, desto besser die Frequenzauflösung – aber desto schlechter die Zeitauflösung. Das ist der fundamentale Zeit-Frequenz-Kompromiss.

Beispiel-Output

Beispiel-Output von plot_edf_tutorial.py
Was ist hier zu sehen?

Aufnahme von Kanal 0 (EEG Ch1), Sekunden 10–40. Das Signal startet mit einem großen Artefakt und geht dann in ein sauberes EKG-Signal über.

PanelBeobachtung
Rohsignal Sekunden 10–20: Das Signal clippt – es trifft den maximalen ADC-Messbereich (orange ausgefüllter Block). Das passiert bei starker Elektroden-Bewegung oder Körperbewegung. Ab Sekunde ~22 setzt ein klares EKG-Signal ein: regelmäßige spitze QRS-Zacken, ca. 1 pro Sekunde (~60 bpm).
Time-Frequency Plot Im Artefakt-Bereich (10–20 s) breite Energie über alle Frequenzen – alles leuchtet. Deutlich erkennbar: eine helle horizontale Linie bei 50 Hz über die gesamte Aufnahme – das ist das 50-Hz-Netzrauschen aus Stromleitungen und Netzteilen. Im ruhigen EKG-Bereich konzentriert sich die Energie bei niedrigen Frequenzen (Herzrate ~1 Hz und ihre Harmonischen).
Mit 0,5 Hz HP-Filter Der langsame Baseline-Drift ist entfernt – das Signal ist vertikal zentriert. Der Artefakt-Block selbst bleibt (er enthält auch höhere Frequenzen), aber im EKG-Bereich sind die Zacken besser lesbar.
Mit 30 Hz LP-Filter Das Signal ist deutlich glatter. Hochfrequentes Rauschen (inkl. dem 50-Hz-Anteil) ist entfernt. Die QRS-Zacken bleiben erhalten, verlieren aber ihre scharfen Flanken. Die Ränder des Artefakt-Blocks sehen weicher aus.
Toolbar-Buttons (unten links im Plot-Fenster)

Matplotlib zeigt eine Toolbar mit interaktiven Werkzeugen:

🏠
Home

Ansicht auf den ursprünglichen Zoom zurücksetzen

◀ ▶
Back / Forward

Zwischen Zoom-/Pan-Zuständen vor und zurück springen

Pan

Klicken & ziehen, um den Ausschnitt zu verschieben

🔍
Zoom

Rechteck aufziehen, um in einen Bereich hineinzuzoomen

Subplots

Abstände zwischen den Panels interaktiv anpassen

💾
Save

Plot als PNG, PDF oder SVG speichern

Beispiel – sauberes EKG-Signal

Zweites Beispiel: sauberes EKG-Signal mit Zoom
Was ist hier zu sehen?

Dieselbe Aufnahme – jetzt ohne Artefakt. Die Panels wurden mit Pan und Zoom auf unterschiedliche Zeitfenster gezoomt, um die Signaleigenschaften besser zu vergleichen. Jedes Panel kann unabhängig verschoben werden.

PanelBeobachtung
Rohsignal (~29–31,5 s) Mit dem Zoom-Tool auf wenige Sekunden hereingezoomt: klarer EKG-Rhythmus mit regelmäßigen QRS-Zacken. Zwischen den Herzschlägen ist ein leises Hochfrequenzrauschen sichtbar – das ist hauptsächlich das 50-Hz-Netzrauschen.
Time-Frequency Plot (10–40 s) Der TF-Plot zeigt weiterhin die gesamte 30-Sekunden-Übersicht. Die helle 50-Hz-Linie ist durchgehend sichtbar. Im Bereich ab ~22 s konzentriert sich die Energie auf niedrige Frequenzen: die Herzrate (~1,2 Hz) und ihre Harmonischen (2,4 Hz, 3,6 Hz …) bilden schwache horizontale Streifen.
Mit 0,5 Hz HP-Filter (~25–34 s) Vergleich im mittleren EKG-Bereich: Links (roh) zeigt eine leichte Baseline-Drift. Rechts (HP-gefiltert) liegt das Signal exakt auf null – die Basislinie ist komplett flach. Die QRS-Zacken bleiben gleich hoch.
Mit 30 Hz LP-Filter (~33–39 s) Das ist der deutlichste Unterschied: Links ist das 50-Hz-Netzrauschen als schnelle Welligkeit auf dem Signal sichtbar (die Linie hat einen „zittrigen" Rand). Rechts hat der Tiefpassfilter dieses Rauschen entfernt – die QRS-Zacken stechen klar und scharf aus einem fast rauschfreien Hintergrund heraus. In diesem Panel ist das EKG am besten zu analysieren.
Tipp – Panels unabhängig zoomen: Nach dem Aktivieren des Zoom-Werkzeugs (🔍) lässt sich in jeden Panel separat hineinzoomen. So kann man gleichzeitig eine Makro-Übersicht im TF-Plot behalten und trotzdem einzelne Herzschläge in den Waveform-Panels auf Sekunden-Ebene untersuchen. Mit dem Home-Button (🏠) springt man zurück zur Gesamtansicht.

Filter

0,5 Hz Hochpassfilter Butterworth · 5. Ordnung · sosfilt

Lässt alle Frequenzen oberhalb von 0,5 Hz durch – blockiert alles darunter. Damit wird langsame Drift entfernt: Das Signal wandert oft langsam nach oben oder unten durch Schwitzen, Bewegung oder veränderten Elektrodenkontakt. Der Hochpassfilter zieht die Basislinie wieder gerade, ohne die eigentlichen Herzschläge (1–25 Hz) zu verändern.

Im Vergleich „ohne / mit" (Zeile 3 des Plots) ist der Effekt deutlich sichtbar, wenn das Rohsignal stark driftet.

30 Hz Tiefpassfilter Butterworth · 5. Ordnung · sosfilt

Lässt alle Frequenzen unterhalb von 30 Hz durch – blockiert alles darüber. Besonders wichtig ist das 50-Hz-Netzrauschen: Stromleitungen, Netzteile und Bildschirme strahlen elektromagnetisch auf genau 50 Hz ab und überlagern das Biosignal. Im Time-Frequency-Plot erscheint das als helle horizontale Linie bei 50 Hz (weiß gestrichelt markiert).

Das EKG-Signal enthält kaum relevante Informationen oberhalb von 25–30 Hz – dieser Bereich ist bei Körperelektroden meist Muskel- oder Netzrauschen.

Butterworth wurde gewählt, weil er im Durchlassbereich maximal flach ist (keine Welligkeiten). sosfilt (Second-Order Sections) macht die Berechnung numerisch stabiler, besonders bei hohen Filterordnungen.

Quest

🔬 Quest
Eigene EDF-Datei analysieren
Öffne eine Aufnahme aus Level 3 und beantworte die Fragen anhand der vier Plot-Panels.
  • 1
    Script aufrufen

    Öffne deine Level-3-Aufnahme mit --channel 0 --start 0.

  • 2
    50-Hz-Linie suchen

    Ist im Time-Frequency-Plot bei 50 Hz eine helle horizontale Linie sichtbar? Das wäre Netzrauschen – typisch, wenn ein Laptop-Netzteil oder Monitor in der Nähe ist.

  • 3
    Button-Ereignis finden

    Wechsle mit --start zu dem Zeitpunkt, an dem du in Level 3 den Button gedrückt hast. Siehst du eine Veränderung im Signal?

  • 4
    Filterwirkung beobachten

    Vergleiche Zeile 3 (Hochpass) und Zeile 4 (Tiefpass): Welchen sichtbaren Unterschied macht der jeweilige Filter in deinen Daten?

  • 5
    Verschiedene Zeitfenster

    Probiere --start 0, --start 30, --start 60 – ändert sich das Rauschen über die Zeit (z.B. wenn Geräte in der Nähe waren)?

Level 5

Augenbewegungen messen – EOG

Elektrookulographie: horizontal und vertikal, Blinzeln erkennen, Schlaf-Staging verstehen.

⚡ 200 XP
Das EOG (Elektrookulogramm) misst die elektrische Aktivität rund um die Augen – und damit indirekt die Augenbewegungen selbst. In der Schlafforschung ist es unverzichtbar: REM-Schlaf (Rapid Eye Movement) wird genau über das EOG erkannt. Jede Augenbewegung erzeugt einen klaren, langsamen Ausschlag im Signal – viel größer und ruhiger als ein EKG-Spike. Das macht EOG zu einem der einfachsten und faszinierendsten Biosignale zum Einstieg.

Die zwei Messrichtungen

Horizontal EOG

Misst Augenbewegungen nach links und rechts. Die Elektroden werden an die äußeren Augenwinkel (Kanthi) beider Augen geklebt. Schaut man nach links, steigt das Signal; nach rechts fällt es – oder umgekehrt, abhängig von der Polung.

Vertikal EOG

Misst Augenbewegungen nach oben und unten – und erfasst dabei auch das Blinzeln sehr deutlich, da beim Schließen des Lids die Cornea nach oben rotiert. Die Elektroden gehen über und unter ein Auge.

Elektroden anbringen

H H V V Ansicht von vorne
H – Horizontale Elektroden (beide äußeren Augenwinkel)

Je eine Elektrode direkt am äußeren Augenwinkel (lateraler Kanthus) des linken und rechten Auges. Die Haut ist dort dünn und empfindlich – sanft andrücken. Dieser Kanal zeigt Links-Rechts-Bewegungen.

V – Vertikale Elektroden (über und unter ein Auge)

Eine Elektrode direkt über dem Augenbrauen-Bogen (knapp über dem Brauen-Ende), eine auf dem Wangenknochen direkt unter dem linken Auge. Dieser Kanal zeigt Auf-Ab-Bewegungen und Blinzeln.

Traumschreiber-Belegung

Verbinde die horizontalen Elektroden mit Kanal 1 und die vertikalen mit Kanal 2 (oder andere Kanalpaare, je nach Stecker). Im EDFbrowser oder mit dem Script beide Kanäle separat laden.

Aufnahme durchführen

  • 1
    Elektroden kleben

    Haut rund um die Augen sanft reinigen. Keine Creme oder Make-up. Elektroden wie oben beschrieben anbringen. Das Kabel so verlegen, dass es beim Bewegen nicht zieht.

  • 2
    SD-Karte einlegen, einschalten

    Gerät ausgeschaltet. SD-Karte einlegen. Einschalten – Aufzeichnung beginnt sofort.

  • 3
    Kontrollierten Bewegungsablauf durchführen

    Sitze ruhig, Körper stillhalten. Nur die Augen bewegen – kein Kopfwackeln, da Muskelartefakte das Signal stören.

  • 4
    Ausschalten, SD-Karte entnehmen

    Nach dem Experiment Gerät ausschalten, SD-Karte entnehmen.

  • 5
    Analysieren

    EDF-Datei mit plot_exg_timedomain.py --type eog öffnen. Beide Kanäle separat aufrufen.

Quest

👁️ Quest
Kontrolliertes Augenbewegungsexperiment
Führe eine feste Sequenz durch und überprüfe hinterher, ob alle Bewegungen im Signal klar erkennbar sind.
  • 1
    10 s ruhig geradeaus schauen

    Baseline – das Signal sollte flach sein.

  • 2
    Schnelle RLRLRL-Bewegungen – 10× nach links und rechts schauen

    Zügig und rhythmisch: links – rechts – links – rechts … jeweils ca. 0,5 Sekunden halten. Im horizontalen Kanal entsteht ein klares, regelmäßiges Rechteck-Muster. Kein Kopfdrehen!

  • 3
    10 s Pause (geradeaus)
  • 4
    5× langsam oben–unten schauen (jeweils 2 s halten)

    Klare Ausschläge im vertikalen Kanal.

  • 5
    10 s Pause
  • 6
    10× bewusst blinzeln (1 s Pause zwischen jedem Blinzeln)

    Blinzeln erzeugt im vertikalen Kanal charakteristische Spikes – viel schneller als Augenbewegungen.

  • 7
    Augen 20 s geschlossen halten

    Das Signal sollte ruhig und niedrig bleiben. Augenbewegungen hinter geschlossenen Lidern (z.B. Träume) wären sichtbar.

Script herunterladen

Das Script plot_exg_timedomain.py kann hier heruntergeladen werden. In denselben Ordner legen wie die EDF-Datei.

Analyse: python plot_exg_timedomain.py DATEI.EDF --type eog --channel 0 für den horizontalen Kanal, --channel 1 für vertikal. Im Zoom-Panel (5 s) sind einzelne Augenbewegungen klar als langsame Kurven sichtbar. Blinzeln erscheint als scharfer, kurzer Spike.
Level 6

Gehirnwellen messen – EEG

F3–F4 an der Haarlinie, Alpha- und Beta-Band, Entspannung vs. kognitive Belastung.

⚡ 300 XP
EEG (Elektroenzephalogramm) ist das direkteste Fenster zur Gehirnaktivität, das man ohne OP von außen messen kann. Das Signal ist schwach – etwa 10–100 Mikrovolt, 100-mal leiser als das EKG – aber der Traumschreiber ist empfindlich genug. Was du messen wirst: frontale Gehirnwellen (F3–F4), die bei Entspannung klar im Alpha-Band (8–13 Hz) schwingen und bei Denkaufgaben ins Beta-Band (13–25 Hz) wechseln. Dieser Unterschied ist in einem guten Time-Frequency-Plot mit bloßem Auge sichtbar.

Frequenzbänder des EEG

Was bedeuten die Bänder?
BandFrequenzTypisch bei
Delta0,5–4 HzTiefschlaf, Tiefenentspannung
Theta4–8 HzDämmerschlaf, kreatives Denken, Meditation
Alpha8–13 HzEntspannung mit geschlossenen Augen, ruhige Wachheit
Beta13–30 HzAktives Denken, Konzentration, kognitive Belastung
Gamma> 30 HzHochfrequente Verarbeitung (schwer zu messen mit Hautektroden)

Elektroden anbringen

Nase A1 A2 Cz Fp1 Fp2 F3 F4 ≈ Haarlinie Aufsicht von oben
F3 – Linke frontale Elektrode

Ca. 3 cm links der Stirnmitte, so nah an der Haarlinie wie möglich – aber nicht ins Haar kleben. Die Haut dort mit einem Tuch abreiben. Haare im Weg zur Seite legen.

F4 – Rechte frontale Elektrode

Spiegelposition zu F3, ca. 3 cm rechts der Stirnmitte. Beide Elektroden sollten auf gleicher Höhe sitzen – nutze die Haarlinie als Orientierung.

Wichtige Hinweise
  • Kein Haarspray, keine Creme auf der Stirn
  • Elektrode nicht auf behaarter Haut kleben
  • Der Traumschreiber hat keine separate Referenzelektrode – die Messung ist rein differentiell zwischen den zwei angeklemmten Elektroden
  • Stirn nicht runzeln oder Augenbrauen hochziehen während der Aufnahme – das erzeugt Muskelartefakte

Aufnahme durchführen

  • 1
    Elektroden kleben, Kabel prüfen

    F3 und F4 wie oben beschrieben anbringen. Kabel so verlegen, dass keine Zugspannung entsteht.

  • 2
    SD-Karte einlegen, einschalten

    Aufzeichnung beginnt sofort nach dem Start.

  • 3
    Ruhig sitzen, Augen schließen – 30 s warten

    Das EEG-Signal braucht etwas Zeit, um sich zu stabilisieren. Erste 30 Sekunden als Eingewöhnung nutzen.

  • 4
    Experiment-Sequenz durchführen

    Exakt nach dem Quest-Plan unten – Timing ist wichtig für die Analyse.

  • 5
    Ausschalten, analysieren

    Mit plot_eeg_timefreq.py den Kanal wählen, auf dem F3 oder F4 liegt. Das Script zeigt per Standard das Beta-Band (13–30 Hz) über 120 s und glättet das Spektrogramm automatisch mit einem Medianfilter.

Quest

🧠 Quest
Entspannung vs. kognitive Belastung
Führe die folgende Sequenz durch und beobachte im Time-Frequency-Plot (Beta-Band, 13–30 Hz), wie sich die Beta-Power bei kognitiver Belastung erhöht – das Spektrogramm wird wärmer.
  • 1
    20 s Entspannung

    Augen geschlossen. An nichts Bestimmtes denken. Atmen. → Beta-Band ist schwach, Spektrogramm bleibt kühl (blau-lila).

  • 2
    20 s Kognitive Belastung

    Von 700 in 7er-Schritten rückwärts zählen: 700 → 693 → 686 → 679 … Augen können offen oder geschlossen sein. Konzentriert arbeiten – nicht aufhören! → Beta-Power steigt, Spektrogramm wird wärmer.

  • 3
    20 s Entspannung

    Wieder loslassen, Augen zu, nicht mehr zählen.

  • 4
    20 s Kognitive Belastung

    Weiterzählen, wo du aufgehört hast – oder von vorne.

  • 5
    20 s Entspannung

    Abschluss-Entspannungsphase.

Script herunterladen

Das Script plot_eeg_timefreq.py kann hier heruntergeladen werden. In denselben Ordner legen wie die EDF-Datei.

Analyse: python plot_eeg_timefreq.py DATEI.EDF --channel 0 --duration 120
Das Script zeigt per Standard das Beta-Band (13–30 Hz). In den Entspannungsphasen bleiben die Farben kühl (blau-lila); in den Zählphasen hellen sie sich auf (gelb-orange) – das ist der Beta-Anstieg. Klappt es auf F3 nicht, versuche F4 (--channel 1 oder welcher Kanal F4 ist).
Parameter-Übersicht
ParameterStandardBedeutung
--channel / -c0Kanal-Index (0 = Kanal 1)
--start / -s0.0Startzeit in Sekunden
--duration / -d120Analysefenster in Sekunden
--median / -m11Horizontal-Medianfilter in Sekunden (0 = deaktiviert)
--median-freq1.0Vertikal-Medianfilter in Hz (0 = deaktiviert)

Beispiel: einen anderen Startpunkt und längeres Fenster wählen:
python plot_eeg_timefreq.py DATEI.EDF --channel 0 --start 60 --duration 180

Beispiel-Plot

Aufnahme mit dem Traumschreiber – 100 s Entspannung gefolgt von 100 s Online-Schach auf Zeit (aktive Denkbelastung). Channel 5 (Ch6), F3–F4-Position.

Beispiel EEG Time-Frequency-Plot: Entspannung vs. kognitive Belastung (Online-Schach)

Was ist zu sehen?
Das Spektrogramm (unteres Panel, 13–30 Hz) zeigt das Beta-Band über die Zeit. In der ersten Hälfte (~100–200 s, Entspannung) ist die Farbe überwiegend kühl (blau-lila) – wenig Beta-Aktivität, das Gehirn ist im Ruhemodus. Ab ~200 s beginnt die Schach-Phase: Die Farben wechseln zu warm (gelb-orange-rot), was eine deutlich erhöhte Beta-Power signalisiert – das frontale Netz arbeitet unter Zeitdruck auf Hochtouren. Das obere Panel zeigt das gefilterte EEG-Rohsignal; die Amplitude allein verrät wenig – der Frequenzinhalt im Spektrogramm ist das eigentlich Interessante.

Level 7

Muskelaktivität messen – EMG (Kinn)

Elektromyographie am Kinn: Kaumuskel, Kieferklemmen, Schlaf-EMG.

⚡ 150 XP
EMG (Elektromyogramm) misst die elektrische Aktivität von Muskeln. Es ist das lauteste Biosignal – ein angespannter Kaumuskel erzeugt Signale, die deutlich über dem EKG-Niveau liegen. Das macht EMG besonders einsteigerfreundlich: Man sieht sofort etwas. Das Kinn-EMG (Musculus mentalis) ist in der Schlafforschung Standard, weil Muskeln im REM-Schlaf nahezu erschlaffen – dieser Abfall auf Null ist ein zuverlässiges REM-Merkmal.
EMG-Signal hochfrequent · 20–200 Hz

Im Gegensatz zu EKG oder EEG besteht das EMG nicht aus einzelnen, regelmäßigen Ausschlägen, sondern aus einem hochfrequenten, unregelmäßigen Rauschen, das stärker wird, wenn der Muskel aktiv ist – und fast auf Null sinkt, wenn er entspannt. Im Zeitbereich sieht man dickere, dichtere Pakete bei Aktivität, und eine fast flache Linie bei Ruhe.

Elektroden anbringen

1 2 Kinn (Mentalis)
Elektrode 1 & 2 – Kinn (Musculus mentalis)

Zwei Elektroden horizontal nebeneinander auf dem Kinn, ca. 2 cm voneinander entfernt. Die Mitte des Kinns (leichte Wölbung, Kinngrübchen-Region). Haut vorher gründlich abreiben – das Kinn hat oft etwas Fett/Creme.

Weitere Muskeln zum Ausprobieren
  • Unterarm-Beuger: Elektroden auf dem Unterarm (Mitte Innen­seite) – bei Faustballen klares EMG-Burst-Muster
  • Schläfenmuskel: Elektroden über der Schläfe – reagiert beim Kauen und Kiefer­klemmen
  • Stirn (Frontalis): Über der Stirn – reagiert beim Runzeln

Aufnahme durchführen

  • 1
    Elektroden kleben

    Zwei Elektroden wie oben auf das Kinn – sauber und trocken. Kabel nach oben führen, nicht am Kiefer ziehen.

  • 2
    SD-Karte einlegen, einschalten

    Aufzeichnung beginnt sofort.

  • 3
    Experiment-Sequenz durchführen

    Ruhig sitzen. Kiefer locker lassen. Bewegungsartefakte durch Kopfbewegungen vermeiden.

  • 4
    Ausschalten, analysieren

    plot_exg_timedomain.py --type emg – der Bandpass (20–120 Hz) filtert alles außer dem eigentlichen Muskel-Signal.

Quest

💪 Quest
Kiefer-Klemm-Experiment
Erzeuge ein klares Muster aus Anspannung und Entspannung und beobachte, wie der EMG-Kanal antwortet.
  • 1
    10 s Kiefer komplett entspannen

    Mund leicht geöffnet, kein Zähnepressen. → flaches Signal.

  • 2
    5 s Kiefer fest zusammenpressen

    So fest wie möglich. → starkes, dichtes EMG-Burst-Muster.

  • 3
    10 s entspannen
  • 4
    5 s klemmen
  • 5
    10 s entspannen
  • 6
    3× schnell kauen (wie beim Essen)

    Kurze, rhythmische EMG-Bursts – jeder Kauzyklus als eigener Ausschlag sichtbar.

  • 7
    10 s Entspannung, dann ausschalten
Script herunterladen

Das Script plot_exg_timedomain.py kann hier heruntergeladen werden (auch für EOG und EKG verwendbar, einfach --type anpassen).

Analyse: python plot_exg_timedomain.py DATEI.EDF --type emg --channel 0
Im Zoom-Panel siehst du, wie das Signal bei Kieferklemmen deutlich breiter und dichter wird (mehr Motoreinheiten feuern). Bei Entspannung ist die Kurve fast flach. Die Kauzyklen erscheinen als gleichmäßig wiederkehrende Aktivitätspakete.
Level 8

Erste Berechnungen – EKG & HRV

Herzschläge automatisch erkennen, Herzratenvariabilität berechnen, Code mit KI verstehen und selbst anpassen.

⚡ 350 XP
Bisher hast du Signale betrachtet. In diesem Level fängt das eigentliche Rechnen an: Ein Script erkennt selbstständig jeden Herzschlag in deiner Aufnahme, misst die Abstände zwischen ihnen und berechnet daraus die Herzratenvariabilität (HRV) – eine Kenngröße, die in der Medizin, im Sport und in der Schlafforschung als Indikator für Erholung und Stress eingesetzt wird. Das ist keine Zauberei, sondern Mustererkennung im Signal – und du siehst den kompletten Code dazu.

Was ist HRV?

Herzratenvariabilität – die vier Metriken im Script
MetrikWas wird gemessen?Typischer Bereich (Ruhe)
HerzrateMittlere Schläge pro Minute aus allen RR-Intervallen55–80 bpm
SDNNStandardabweichung aller RR-Intervalle – Gesamtvariabilität über das Zeitfenster30–100 ms
RMSSDQuadratisches Mittel aufeinanderfolgender RR-Differenzen – kurzfristige Variabilität, Parasympathikus-Index20–80 ms
pNN50Anteil benachbarter RR-Intervalle, die sich um mehr als 50 ms unterscheiden5–40 %

Das RR-Intervall (auch R-R oder NN) ist der zeitliche Abstand zwischen zwei aufeinanderfolgenden R-Zacken im EKG – also zwischen zwei Herzschlägen. Ein gesundes Herz schlägt nicht mit konstant gleichem Abstand, sondern mit messbarer Variabilität: Diese Variabilität ist ein Zeichen aktiver nervöser Regulation und hat in Studien Vorhersagekraft für Erholungszustand, Stressniveau und kardiovaskuläre Gesundheit.

Beispiel-Plot

So sieht ein gutes EKG aus dem Traumschreiber aus – aufgenommen in Ruheposition (sitzend, Luft anhalten für eine sauberere Baseline). R-Zacken werden automatisch erkannt (rote Punkte), die HRV-Metriken rechts unten werden direkt aus den RR-Abständen berechnet.

Beispiel-ECG-Plot: Herzschlag-Detektion und HRV-Metriken mit dem Traumschreiber

Kanal 7 (Ch8), 30 s, sitzend, Luft angehalten – 48 Herzschläge erkannt, HR 95 bpm, SDNN 80,8 ms

Quest

❤️ Quest
Herzschlag-Detektion auf deiner eigenen Aufnahme
Führe das Script auf einer EKG-Aufnahme aus Level 2 aus und lies deine persönlichen HRV-Metriken ab.
Script herunterladen

Das Script plot_ecg_hrv.py kann hier heruntergeladen werden. In denselben Ordner legen wie die EDF-Datei.

  • 1
    Terminal öffnen und in den Ordner wechseln

    Wie in Level 4 beschrieben. Den Ordner mit der EDF-Datei und dem Script aufrufen.

  • 2
    Script ausführen

    python plot_ecg_hrv.py ADC/AD0041.EDF (Dateiname anpassen). Das Script gibt im Terminal sofort Herzrate, SDNN, RMSSD und pNN50 aus – noch bevor das Fenster öffnet.

  • 3
    Plot prüfen: Sind die roten Punkte auf den R-Zacken?

    Panel 1 zeigt das EKG mit jedem erkannten Herzschlag als roten Punkt. Wenn Punkte falsch liegen oder fehlen: anderen Kanal probieren (--channel 5 oder --channel 7), oder --start anpassen um ruhigere Signalabschnitte zu treffen.

  • 4
    RR-Tachogramm lesen

    Panel 3 zeigt, wie sich der Herzschlag-Abstand über die 30 Sekunden verändert. Ist die Kurve ruhig und gleichmäßig? Oder gibt es Sprünge? Sprünge entstehen durch Artefakte oder echte Herzrhythmusveränderungen (z.B. Atemvariation).

Was du sehen solltest: Im Zoom-Panel (Panel 2) ist jede einzelne QRS-Zacke klar erkennbar – und direkt darüber sitzt ein roter Marker. Das RR-Tachogramm schwankt leicht mit der Atemfrequenz (Respiratorische Sinusarrhythmie): beim Einatmen beschleunigt das Herz minimal, beim Ausatmen verlangsamt es sich. Dieser Effekt ist bei ruhigem Sitzen gut sichtbar.
🤖 Quest
Lass dir den Code von einer KI erklären
Du musst Code nicht selbst verstehen können – aber du kannst eine KI fragen. Das ist eine Kernkompetenz im modernen wissenschaftlichen Arbeiten mit Code.
  • 1
    Code in die Zwischenablage kopieren

    Klicke den Button unten. Das Script plot_ecg_hrv.py wird zusammen mit einem vorbereiteten Erklär-Prompt in deine Zwischenablage geladen.

  • 2
    ChatGPT oder Gemini öffnen

    Im Browser: chatgpt.com oder gemini.google.com – beide sind kostenlos nutzbar ohne Anmeldung (ChatGPT) bzw. mit Google-Konto (Gemini).

  • 3
    Einfügen und abschicken

    Neuen Chat starten. In das Eingabefeld klicken, Strg+V (Windows/Linux) oder Cmd+V (macOS) drücken. Dann Enter / Senden.

Der Button kopiert diesen Prompt + den vollständigen Code:

Ich bin neu beim Programmieren und lerne Python. Ich verwende ein Biosignal-Gerät namens Traumschreiber, das EKG-Signale aufnimmt. Ich habe ein fertiges Python-Script (plot_ecg_hrv.py), das automatisch Herzschläge erkennt und die Herzratenvariabilität (HRV) berechnet. Bitte erkläre mir folgende Dinge in einfachen Worten, ohne Vorkenntnisse vorauszusetzen: 1. Was macht die Funktion detect_r_peaks()? Wie funktioniert find_peaks? 2. Was bedeuten SDNN und RMSSD – und warum berechnet man das? 3. Was passiert Schritt für Schritt in compute_hrv()? 4. Was ist ein RR-Intervall und warum ist es interessant? Hier ist der vollständige Code: [Code wird automatisch angehängt]
Tipp: Wenn die Erklärung zu kompliziert ist, antworte der KI: „Erkläre das bitte nochmal, als ob ich noch nie programmiert hätte und in einfacheren Sätzen." Du kannst jederzeit nachhaken – die KI vergisst nichts innerhalb eines Gesprächs.
✏️ Quest
Code selbst anpassen – erste eigene Modifikation
Du fragst die KI, was du ändern musst – und setzt die Änderung dann selbst in einem Texteditor um. Kein Terminal, keine IDE, so einfach wie möglich.

Das Script enthält am Anfang einige Variablen, die leicht zu ändern sind. Zwei gute Einstiegsmodifikationen:

Idee A

Farbe der EKG-Linie ändern. Im Script gibt es eine Zeile ORANGE = '#ff9151'. Der Code daneben ist ein Hexadezimal-Farbwert. Ändere ihn auf eine andere Farbe – z.B. Hellblau ('#00ccff') oder Weiß ('#ffffff').

Idee B

Analysefenster verlängern. Die Zeile WINDOW_S = 30 legt fest, wie viele Sekunden analysiert werden. Ändere 30 auf 60 – dann werden 60 Sekunden ausgewertet und du bekommst mehr Herzschläge und stabilere HRV-Werte.

Schritt-für-Schritt: Änderung mit KI-Hilfe

  • 1
    KI fragen, was zu ändern ist

    Im bereits offenen KI-Chat (aus Quest 2) schreibe: „Ich möchte die Farbe der EKG-Linie auf Hellblau (#00ccff) ändern. Zeige mir nur die eine Zeile, die ich ändern muss, und wie sie danach aussieht."
    Die KI zeigt dir genau die Zeile – z.B. ORANGE = '#00ccff'.

  • 2
    Texteditor öffnen – je nach Betriebssystem

    Wichtig: Kein Word, Pages oder ähnliche Office-Programme – diese fügen unsichtbare Formatierungen ein, die den Code zerstören. Nur reine Texteditoren verwenden:

    🪟 Windows
    1. Windows-Taste drücken
    2. „Notepad" tippen → Enter
    3. In Notepad: Datei → Öffnen
    4. Unten rechts bei Dateityp: „Alle Dateien (*.*)" auswählen
    5. Zur Datei plot_ecg_hrv.py navigieren, öffnen
    🍎 macOS
    1. Cmd+Leertaste → „TextEdit" → Enter
    2. In TextEdit: oben im Menü Format → Nur Text umwandeln (Cmd+Shift+T)
    3. Datei → Öffnen
    4. Zur Datei plot_ecg_hrv.py navigieren, öffnen
    🐧 Linux
    1. Dateimanager öffnen
    2. Rechtsklick auf plot_ecg_hrv.py
    3. „Mit Texteditor öffnen" oder „Mit Anwendung öffnen"
    4. gedit / Mousepad / Kate wählen
  • 3
    Die Zeile finden

    Strg+F (Windows/Linux) oder Cmd+F (macOS) öffnet die Suche im Texteditor. Tippe ORANGE → Enter. Der Editor springt zur entsprechenden Zeile. Du siehst: ORANGE = '#ff9151'

  • 4
    Änderung vornehmen

    Den Farbwert '#ff9151' markieren und durch den neuen ersetzen – z.B. '#00ccff'. Nur den Wert innerhalb der Anführungszeichen ändern, nicht die Anführungszeichen selbst entfernen.

  • 5
    Speichern

    Strg+S (Windows/Linux) oder Cmd+S (macOS). Der Texteditor sollte die Datei als .py speichern – nicht als .py.txt. Falls Windows ein .txt anhängt: Datei → Speichern unter → Dateityp auf „Alle Dateien" setzen und explizit plot_ecg_hrv.py als Namen eingeben.

  • 6
    Script erneut ausführen

    Zurück ins Terminal. Gleicher Befehl wie zuvor – das Fenster öffnet sich neu, diesmal mit der EKG-Linie in der neuen Farbe. Herzlichen Glückwunsch: du hast deinen ersten Python-Code erfolgreich modifiziert.

Fehler nach der Änderung? Keine Panik. Lies die Fehlermeldung im Terminal durch – KI erklären lassen: „Ich habe plot_ecg_hrv.py geändert und bekomme jetzt diesen Fehler: [Fehlermeldung einfügen]. Was habe ich falsch gemacht?" Typische Ursache: ein Anführungszeichen wurde versehentlich gelöscht oder der Doppelpunkt nach dem Variablennamen. Die KI findet das in Sekunden.
Level 9

Schlaf-Staging – automatische KI-Analyse

Ganze Nacht aufzeichnen, mit AnySleep-Modell automatisch in Schlafphasen einteilen.

⚡ 400 XP
Sleep-Staging bedeutet: Eine EEG-Aufzeichnung automatisch in Schlafphasen unterteilen — Wake, N1, N2, N3 und REM. Das ist eine zentrale Aufgabe in der Schlafforschung. Eine ganze Nacht per Hand zu bewerten dauert jedoch Stunden; ein trainiertes KI-Modell macht es in Minuten mittlerweile ähnlich gut wie menschliche Scorer. Das AnySleep-Modell [Grieger et al., 2025] wurde auf Millionen von echten Patienten-Daten trainiert und kann frontale EEG-Elektroden (wie F3–F4 am Traumschreiber) direkt analysieren.

Schlafphasen und ihre Merkmale

Die 5 Schlafstadien
SchlafphaseEEG-MusterBedeutung
Wakeschnell, rhythmisch (8–13 Hz, Alpha)Wach, Ruhe mit geschlossenen Augen
N1langsamer, Theta (4–8 Hz)Einschlafphase, leichter Schlaf
N2Spindeln, K-Komplexe (12–15 Hz)Leichter bis mittlerer Schlaf
N3langsam, Delta (0,5–4 Hz), hochamplitudigTiefschlaf, Erholung und Regeneration
REMschnell, ähnlich Wake, AugenbewegungenParadoxer Schlaf, "typische" Träume

Voraussetzungen

Installation

Python 3.7+ mit PyTorch (CPU-Version reicht aus). Installiere die nötigen Pakete:

pip install torch numpy scipy matplotlib

Dann lade zwei Python-Dateien herunter:

Hinweis: Das KI-Modell (~12 MB) wird beim ersten Start automatisch heruntergeladen und gespeichert.

Aufnahme durchführen

Elektroden & Timing

Anbringung wie in Level 6 (Gehirnwellen – EEG) beschrieben: F3 und F4 an der Haarlinie. Für eine aussagekräftige Schlafanalyse solltest du mindestens 6–8 Stunden (eine ganze Nacht) aufnehmen.

  1. Elektroden kleben (F3–F4 wie Level 6)
  2. SD-Karte einlegen, Gerät einschalten
  3. Schlafen gehen und schlafen
  4. Gerät ausschalten, SD-Karte entnehmen

Quest

🌙 Quest
Eine ganze Nacht aufnehmen und analysieren
Zeichne eine komplette Nacht mit dem Traumschreiber auf, lade die EDF-Datei auf deinen Computer und führe das Sleep-Staging mit AnySleep aus.
Analysieren

Grundbefehl:

python plot_sleep_scoring.py NACHT.EDF --channel 0

Das Script liest die EDF-Datei, führt die KI-basierte Klassifikation durch und zeigt ein Plot mit 3 Panels: Wahrscheinlichkeiten, Hypnogramm und Spektrogramm.

Parameter
ParameterStandardBedeutung
--channel / -c0EEG-Kanal (0–7)
--modelautoPfad zu anysleep-run1.pth (optional)
--start / -s0.0Startzeit in Sekunden (zum Debuggen)
--duration / -d-1Analysedauer in Sekunden (-1 = ganzes File)

Beispiel: Analysiere ab Sekunde 3600 (1h) für 14400 Sekunden (4h):
python plot_sleep_scoring.py NACHT.EDF --channel 0 --start 3600 --duration 14400

Hinweis zur Rechenzeit: Die KI-Inferenz auf CPU dauert typisch 1–3 Minuten für eine ganze Nacht (7–8 Stunden). Der erste Start lädt das Modell (~12 MB) herunter — das ist eine Einmalarbeit.

Beispiel-Output

Beispiel-Output von plot_sleep_scoring.py: ganze Nacht mit Wahrscheinlichkeiten, Hypnogramm, Spektrogramm und Statistik
Was du in diesem Beispiel siehst

Eine reale Traumschreiber-Aufnahme: 9.1 Stunden Nacht, 1095 Epochen à 30 s, Kanal 5 (F3–F4 frontal). Klicke auf das Bild zum Vergrößern. Der Plot besteht aus 4 zeitlich synchronisierten Panels:

PanelWas zu sehen ist
Wahrscheinlichkeiten Die gestapelten Farbflächen summieren sich pro Epoche auf 1.0 — sie zeigen, wie sicher das Modell sich für jede Schlafphase ist. Bei klarem N3-Tiefschlaf sieht man fast nur orange; bei REM überwiegt magenta. Im Beispiel sind die ersten ~6 Stunden klar strukturiert mit wechselnden NREM- und REM-Blöcken; ab Stunde 6 mehr Wake (hellblau) und Mikro-Wechsel — typische Fragmentierung gegen Morgen.
Hypnogramm Die finale Klassifikation (argmax über die Wahrscheinlichkeiten) als Stufenplot. Y-Achse von unten nach oben: N3 → N2 → N1 → REM → WAKE. Im Beispiel sieht man die klassische Schlafarchitektur: 4–5 NREM-REM-Zyklen mit ~90 Minuten Periode, N3 konzentriert in der ersten Nachthälfte, REM-Phasen werden gegen Morgen länger.
EEG-Spektrogramm (0–60 Hz) Frequenzgehalt des EEG-Rohsignals über die Zeit. X = Zeit (h), Y = Frequenz (Hz), Farbe = log10(Power). Warme Farben unten (0,5–4 Hz) = Delta-Wellen sind charakteristisch für N3-Tiefschlaf. Die dunkle horizontale Linie bei 50 Hz ist der Notch-Filter (Netzbrummen entfernt). Über 30 Hz sieht man oft EMG-Muskelaktivität, besonders während Wake.
Sleep Statistics & Stage Breakdown Klassische Schlaf-Metriken (TIB, TST, SOL, WASO, SE, RL, AW) und die Aufteilung in Schlafstadien. Mini-Boxplots vergleichen den eigenen Wert mit Normwerten gesunder Erwachsener (25–45 J., Meta-Analysen): grün = innerhalb ±1σ (typischer Bereich), gelb = innerhalb ±2.5σ (noch normal), rot = außerhalb (auffällig).
Konkrete Befunde dieser Nacht
MetrikWertBewertung
Total sleep time (TST)7:36 h Normal (Norm 7±1 h)
Sleep efficiency (SE)83.3 % Im Bereich (Norm 87±8 %)
WASO1:22 h Erhöht (Norm 30±25 min)
REM latency (RL)0:48 h Etwas kurz (Norm 85±35 min)
N2 Anteil49.7 % Trifft die Norm-Mean perfekt (50±7 %)
N3 Anteil14.1 % Normal (17±8 %)
REM Anteil23.4 % Normal (22±5 %)
Awakenings (AW)30 Stark erhöht (Norm 8±5)

Fazit: Die Schlafarchitektur ist insgesamt gesund — Tiefschlaf und REM in normalen Anteilen, regelmäßige NREM-REM-Zyklen mit ~90 Min Periode. Die hohe Aufwach-Zahl und das erhöhte WASO zeigen eine deutliche Fragmentierung, besonders in der zweiten Nachthälfte ab Stunde 6 — gut im Hypnogramm sichtbar.