Wie bringe ich 8 analoge Signale im PC?

4 Antworten

Rasperry Pi nehmen, Signalverstärker und A/D-Wandler an mehrere GPIO-Ports hängen. Genug davon hat er ja. Also selbst ein wenig Hardwarebastelei betreiben. Das dürfte mit Abstand der kostengünstigste Weg sein.

Wenn Du nicht reine Frequenzen, sondern auch die Signalform haben willst, also eine echte EEG-Auswertung betreiben willst, brauchst Du Abtastraten von wenigstens einigen hundert Hertz, besser noch kleiner KHz-Bereich.

Dann direkt auf dem Raspi die Daten aufzeichnen lassen. Das kann man mit einem kleinen C-Progrämmchen o. ä. machen, was erstmal Rohdaten als Datei wegschreibt. Die Performance eines Raspi dürfte auch ausreichen, um die Daten direkt auf dem Bildschirm zu visualisieren. Allerdings würde ich dann wegen der Echtzeit-Thematik nicht X11-basiert arbeiten, sondern lieber selbst direkt auf dem Framebuffer-Device eine Visualisierung machen.

Um das ganze vom elektrotechnischen Aufbau her sicher zu gestalten, solltest Du auf jeden Fall eine galvanische Entkopplung vorsehen: Messelektroden nicht direkt an den Raspi anschließen, sondern Optokoppler dazwischen packen. Das stellt sicher, dass im Falle einer Störung auf der "Computerseite" keine Spannung an den Probanden/Patienten gelangt. Auch wenn wir theoretisch nur über wenige Volt bei einem Raspi reden: auch das Netzteil kann mal Murks machen, und Du möchtest nicht plötzlich 230 V an der Rübe haben.

Was willst Du denn machen? EVP-Untersuchungen? Ich wundere mich eher über die geringe Kanalzahl. Für eine volle "Haube" nach ten-twenty-System braucht's ja eigentlich deutlich mehr Elektroden...

Gena221 
Fragesteller
 19.01.2018, 22:32

Danke.

An Raspberry Pi hatte ich gar nicht nachgedacht. Ich würde ein Differenzverstärker mit mehrere Filter verwenden und es natürlich mit Optokoppler galvanisch trennen und dann erst in ein Digitalsignal umwandeln. Sample rate muss natürlich stimmen ich weiß nicht welche auflösung ich also für den Wandler brauche. Und eigentlich wollte ich keine EVP Untersuchungen betreiben sondern die Hirnaktivität lokalisieren "brain mapping" mittels Diskrete Fourier Transformation problem natürlich 8 Kanäle sind zu wenig aber mehr Kanäle heißt mehr Daten und das macht mir immer sorgen.

0
dan030  20.01.2018, 01:00
@Gena221

Die A/D-Wandler, die man als Bausteine bekommt, wandeln ja eh "kontinuierlich" und sind auf jeden Fall schnell genug. Die Frage ist eher, wie hoch die Signalauflösung auf der Digitalseite dann sein muss. 8 Bit reicht, um "was zu sehen". Mit 12 Bit bekommt man bei EEG-Daten schon ganz brauchbare Daten, die sich auch realistisch visualisieren lassen. Da kann man dann auch direkt auf 15/16 Bit gehen, benötigt dann also pro Elektrode letztlich 2 GPIO-Ports, um die Daten zeitgleich abnehmen zu können. (Und man sollte dann auch nicht auf einen GPIO multiplexen, weil man sich sonst Artefakte einfängt). "15 Bit" deshalb, weil man ggf. per Hardware noch ein Latch-Bit liefern kann, um Datenvalididät anzuzeigen. Müsste man sich am konkreten Schaltungsaufbau anschauen.

Erfahrungswert aus dem EVP/P300-Bereich vor 25 Jahren (da habe ich mal Software für sowas auf 'nem ollen 386/40 gebaut): Sample Rate von 300 Hz und 12 Bit reichen, um ziemlich viel zu sehen. Und schon damals hat die CPU gereicht, um 14 Kanäle in Echtzeit durch 'ne FFT zu jagen, zu visualisieren und erstmal in den Speicher zu schmeißen, um sie später dann am Stück auf Platte wegzuschreiben.

Schafft also ein Raspi definitiv heute auch. Muss man halt "nur" bauen...

0
dan030  20.01.2018, 02:04
@Gena221

Nachtrag: Filter auf Hardwareseite sind allenfalls nach oben hin im kHz-Bereich sinnvoll. Den Rest erledigt man besser auf Softwareseite. Gerade wenn Du (lokalisierte) Hirnaktivität (mit feinem Kurvenverlauf) messen willst, musst Du aktiv unterscheiden können, was Hirnaktivität, Artefakt z. B. durch muskuläre Aktivität oder externe Störung ist. Wenn Du z. B. die Elektroden geschickt platzierst, kannst Du bei visueller Wahrnehmung alle Verarbeitungsschritte sehen, von "Auge bewegt sich" über "da kommt ein Reiz über die Leitung", "visuelles Zentrum wird aktiv" bis hin "jetzt fängt er an drüber nachzudenken". Irgendwelche zu harten Filter in Hardware würden Dir das Signal nur zerschießen. Und in Software rausfiltern kannst Du selbst. Z. B. einfach durch 'nen Array von geeignet parametrierten Butterworth-Filtern laufen lassen - und dabei ggf. sogar verschiedene Signalarten direkt voneinander vortrennen lassen. Das dürfte der performanteste Weg sein, Signalarten frühzeitig zumindest mit einer gewissen Trefferquote auszudifferenzieren.

0

Wenn es nicht unbedingt ein Selbtbauprojket werden muss, würde ich nach einer 8-Kanal-Analog-Karte für PCs suchen. Die gibt's als Einschub oder extern für an USB inkl. Software und allem. Das gab's schon vor 25 Jahren mit 1 IC und für RS232, leider kann ich dir grad den Typ nicht sagen.

Im Prinzip ein 8-Kanal-Oszilloskop für den PC.

Hier ist was:

https://www.conrad.ch/de/usb-schnittstellenkarte-baustein-h-tronic-191030-5-vdc-190760.html

Denn dies von Grund auf selber zu machen, ist doch ein erheblicher Aufwand. Und zuerst musst du dir über die Sensoren, Signalart, Sample-Rate, Auflösung, Datenrate zum Übertragen ud Verarbeiten, und die Speicherung, Auswertung und Anzeige Gedanken machen. Dann alles zusammenbauen und programmieren. Also relativ heftig.

Wenn du noch nicht firm drin bist nimm nen Arduino und mach einige Anleitungen durch.

Genau soetwas habe ich gebaut. Atmega16 + rs232ToUsb-Modul.

Im Linux-Pc dann alles mit einem tcl-Programm verarbeiten.

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995
dan030  20.01.2018, 01:13

Damit kommst Du nicht auf die Performance, die für EEG-Daten gebraucht wird. Bei 300 Samples/min (und drunter geht's definitiv nicht) hättest Du bei 115.2 kbps (8N1) nur 38 Zeichen pro Sample für alle n Kanäle. Da gibt's innerhalb kürzester Zeit a) Backlogs in der Kommunikation und b) keine zeitsynchronen Portabfragen.

0
guenterhalt  20.01.2018, 08:56
@dan030

Der Atmega16 kann durchaus eine Menge Daten speichern und die dann als Paket senden, ob

1. der mega16 schnell genug ist, 8Kanäle (ohne Übertragung) für so eine Anwendung zu behandeln, kann ich nicht beurteilen.

2. Scann-Pausen (für die Übertragung) zulässig sind müssen andere Entscheiden.

0