INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

FFT-Analyse von EEG-Daten via RS232



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

05.03.2011, 16:33 (Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2011 18:01 von Frank37.)
Beitrag #1

Frank37 Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Feb 2011

Labview 2009
2011
EN

01277
Deutschland
FFT-Analyse von EEG-Daten via RS232
Hallo,

ich habe mir nach den Anleitungen der OpenEEG-community ein EEG-Gerät gebaut.
Da ich mich in Labview einarbeiten möchte, versuche ich nun die Daten, welche das Gerät über die serielle
Schnittstelle an den Computer sendet, aufzubereiten und grafisch zu visualisieren.
Mein Ziel ist die Darstellung der gemessenen Gehirnpotentiale als:

1. Oszilloskopbild
2. FFT der Gehirnströme (4Hz bis 30Hz)
3. Balken, der sich auf und abbewegt, nach Ausfilterung einer bestimmten Frequenz durch einen Bandpass

Nun habe ich folgende Probleme:
-Störfrequenzen im FFT
-Bei Einfügen von neuen Filtern oder neuen Strukturen (z.B. Casestruktur)
schafft es Labview nicht mehr alle Daten von der RS232 abzuholen und verpasst einige Pakete.

Zur Erklärung:

Das EEG-Gerät sendet periodisch 17 Bytes an den PC.
Davon interessant sind:

Byte1/Byte2: Synchronisationsbytes (A5 5A)
Byte3:Versionsnummer
Byte4:Rahmennummer (Zähler)
Byte5:Kanal1 Low Byte
Byte6:Kanal1 High Byte
Byte7 - Byte16:enthalten von mir nicht genutzte Kanäle
Byte17:nicht relevant

Also nach jeweils 17 Bytes erhalte ich einen digitalen 10Bit-Messwert (8Bit und 2 Bit von Byte5 und Byte6 zusammengesetzt).

Das VI habe ich folgendermassen aufgebaut:
Über VISA lese ich kontinuierlich die Daten von der RS232 ein.
Diese werden in der Haupt-Whileschleife am Ausgang in ein Schieberegister geschoben und
erscheinen somit am Eingang der Whileschleife sequentiell nacheinander.
Dort warte ich dann auf die SyncBytes A5 5A (Startkennung).
Sobald diese aufgetreten sind, was die SyncBit LED signalisiert, wird die
Case-Struktur "True" und nimmt den 10Bit-breiten Messwert auf.
Dieser Messwert wird vorher aus Byte5 und Byte6 zusammengesetzt.
In der Case-Struktur verwende ich wieder ein Schieberegister.
Das Oszilloskop ist direkt am ersten Eingang des Schieberegisters angeschlossen und
scheint gut zu funktionieren.
Über "Build Array" fasse ich 64 Messwerte zusammen und übergebe sie "Build Waveform".
Danach erfolgt eine Filterung, um z.B. das 50Hz Brummen auszufiltern und dann folgt das FFT-Modul.

Selbst wenn ich kein Signal vom EEG-Gerät bekomme (Messelektroden auf Masse gelegt), erscheinen im FFT-Diagramm Frequenzen.
In meinem Fall bei 0Hz, 4Hz, 8Hz.

   

Wenn ich ein 20Hz Sinussignal vom EEG einspeise,
bekomme ich 16Hz, 20Hz, 24Hz angezeigt, also die Summe und Differenz dazu.

   

Bei Einspeisung von 30Hz fehlt diese Frequenz komplett und es erscheinen 28Hz und 32Hz

   

Ich gehe davon aus, dass, wenn ich die 4 Hz beseitigen könnte,
auch die Summen- und Differenzenfrequenzen verschwinden werden, oder?
Woher könnten die 0Hz und 4 Hz Störfrequenzen kommen?
Nutze ich zu wenig Daten für das "Build Array" oder ist mein Ansatz falsch?

Ich habe es noch nicht geschafft, das VI mit einer Textdatei anstatt Daten von der RS232 zu speisen,
damit man das Verhalten unabhängig von dem EEG-Gerät ausprobieren kann.
Logisch erschien mir, anstelle des VISA Read Elementes ein Datei Read Element zu setzen, aber
ohne Daten von der RS232 läuft die While-Schleife nicht an. Oder sollte ich besser das komplette VI kopieren,
von allen VISA-Elementen befreien und dann mittels Case-Struktur, mal das Datei-Lese und mal das VISA Blockdiagramm aufrufen?
Vielleicht habt Ihr auch da einen Tip.

Da dies mein allererstes VI ist vermute ich auch noch generelle Fehler,
welche die Performance so verschlechtern, dass es zu den verlorenen Paketen kommt.
Das merke ich vor allem daran, dass nach Ausschalten des EEG-Gerätes Labview noch 2-3sec
weiter Daten im Oszilloskop anzeigt, also noch Daten irgendwo im Puffer liegen.

Damit das VI übersichtlich bleibt, habe ich es auf das Wesentliche reduziert und z.B. die
Paketfehlererkennung rausgenommen.

Danke für Eure Hilfe.

2009 .vi  EEG.vi (Größe: 66,79 KB / Downloads: 267)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
FFT-Analyse von EEG-Daten via RS232 - Frank37 - 05.03.2011 16:33

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Hilfe bei der Auswertung von FFT Analyse cesavila2k 1 4.864 22.05.2012 14:59
Letzter Beitrag: chrissyPu
  Order Analyse: schlechte Darstellung bei Drehzahlschwankungen jens_j 4 7.137 15.09.2010 08:11
Letzter Beitrag: jens_j
  Frequenz aus FFT-Analyse als Wert ausgeben quattro 9 11.660 27.07.2010 06:21
Letzter Beitrag: Y-P
  part average analyse(paa) cosmos 5 4.460 04.01.2008 10:30
Letzter Beitrag: Y-P
  FFT - Analyse & Filterung von Signalen durch Änderung der FFT-Koeffizienten? BeFu 1 12.944 19.03.2007 22:02
Letzter Beitrag: dc6xs
  Impact analyse / Pulsauswertung Philip1403 0 3.511 23.04.2006 16:01
Letzter Beitrag: Philip1403

Gehe zu: