Analoge Nulllageregelung (EKG) durch digitale Regelung ersetzen

OP #5007243
Lesenswert?

Das Ziel besteht darin, ein kleines "EGK-Gerät" mit dem rel. kleinen 
Eingangsverstäker ADS1293, welcher seinen Messwert über SPI ausgibt, zu 
bauen.
Ein damit aufgenommenes EKG-Diagramm ist im Anhang zu sehen. Dies zeigt 
hier eine Kurve, wo durch eine Änderung des Elektrodenpotentials sich 
die Kurve in ihrer Höhenlage verschoben hat, ohne wieder in 
Ursprungshöhe zu kommen.
In der Analogtechnik kann man mit der im Anhang gezeigten Schaltung 
dafür sorgen, dass die verschobene Kurve nach ca. 10s wieder nahe der 
Nulllinie verläuft.
Sinn ist, dass die Kurve nicht ständig über den Bildrand läuft, sondern 
nach einer gewissen Zeit selbst regulierend wieder im Bild läuft
Hat jemand einen Lösungsvorschlag, wie man dies digital mit einem µC 
(MSP430F1611)  machen könnte.
Mein erster Ansatz dazu wäre, dass man den gleitenden Mittelwert der 
vielleicht letzten 500 Messwerte  bildet, diesen Wert von eine 
Konstanten abzieht,  usw.
Wie macht man es richtig? Geht wahrscheinlich in Richtung Filtertheorie 
o.ä., wovon mir leider die Grundlagen fehlen.
Angehängte Dateien:
Gast #5007284
Lesenswert?

Wenn es nur grob Mittelwertfrei sein soll, dann müsste es tatsächlich 
reichen, über ausreichend viele Werte den Mittelwert zu bilden und 
diesen dann vor der Anzeige von den Messwerten zu subtrahieren. Du musst 
aber natürlich aufpassen, dass du nicht den Messbereich des AD-wandler 
überschreitest
Gast #5007611
Lesenswert?

@  Georg G. (df2au): Mittelwert, oder Nulllinie?
- Erkläre uns doch bitte den Unterschied bei so einem Signal!

Ansonsten: Langsamen Potentialverschiebungen wirkt man mit
einem (zeitlich) angemessen dimensioniertem Hochpassverhalten
entgegen.

Analog wird das mit einem Hochpass (Kondensator in Reihe mit
dem Eingangswiderstand der Schaltung - tau = R x C) bewerkstelligt.

Oder mit einem Tiefpass in der Gegenkopplung, was das zweite
Bild auch zeigt: Der erfasste Mittelwert (!) der letzten 0,22 s
(tau = 2M2 x 100 µ = 0,22 s) wird einfach als Offset abgezogen.

Das erfordert keine große Filtertheorie, sondern nur die
rechnerische Nachbildung dieses Verhaltens:

Mittelwert erfassen und vom Eingangssignal abziehen.
Gast #5007637
Lesenswert?

Am besten hälst du die Nulllinie, indem du anhand der R-Zacke die 
Herzfrequenz bestimmst und dann gezielt den Periodenmittelwert ohne 
QRS-Komplexes bestimmst. Damit lassen sich schnelle Änderungen des 
überlagerten Untergrundes besser abziehen, als bei einem (blinden) 
gleitenden Mittelwert, der wesentlich länger sein muss, damit die Fläche 
der R-Zacke nicht zu sehr stört.
Gast #5007650
Lesenswert?

@ Wolfgang (Gast):
Fragt sich - bei dem gezeigten Signal - wie man die R-Zacke
(ist das das der starke positive Puls?) von der Offset-
Verschiebung besser trennt, als mit einem simplen Hochpass.

Im gezeigten Signal sind ja beide Anstiegsgeschwindigkeiten
kaum auseinanderzuhalten.
Wie detektierst du das eindeutig?
OP #5007660
Lesenswert?

Jakob schrieb:
> Mittelwert erfassen und vom Eingangssignal abziehen.

Schade dass Du Dich "so spät" gemeldet hast.
Zwischenzeitlich war ich auch auf diese Lösung gekommen und kann 
bestätigen dass diese Verfahrensweise funktioniert.
Gibt es noch Hinweise, welcher gleitende Mittelwert günstig wäre, um 
Ausreißer besser eleminieren zu können
#5007669
Lesenswert?

Jakob schrieb:
> Im gezeigten Signal sind ja beide Anstiegsgeschwindigkeiten
> kaum auseinanderzuhalten.
> Wie detektierst du das eindeutig?

Das gezeigte Signal filtert auch die Analogschaltung nicht wirklich weg, 
das ist zu extrem. Da hat wer an den Kabeln gewackelt?

Normalerweise nimmt man einen Hochpass bei ca. 0.1 Hz, bei höherer 
Frequenz kann es schon zur Verzerrung auf der T-Welle kommen.
Gast #5007954
Lesenswert?

Jakob schrieb:
> Oder mit einem Tiefpass in der Gegenkopplung, was das zweite
> Bild auch zeigt: Der erfasste Mittelwert (!) der letzten 0,22 s
> (tau = 2M2 x 100 µ = 0,22 s) wird einfach als Offset abgezogen.

Tja, und hier versteckt sich das Problem dieser Schaltung. Die 
Zeitkonstante von 2,2M und 100µ ist nicht 0,22s (was halbwegs vernünftig 
wäre) sondern 220s (was viel zu langsam ist). Einfach richtig 
dimensionieren, dann sieht die Kurve schon viel besser aus.
Gast #5007990
Lesenswert?

wolle g. schrieb:
> Gibt es noch Hinweise, welcher gleitende Mittelwert günstig wäre, um
> Ausreißer besser eleminieren zu können
Wenn die Länge deines gleitenden Mittelwertes genau die Länge einer 
Periode bzw. ein Vielfaches davon ist, dann wird dein (periodisches) 
Nutzsignal komplett rausgefiltert, beim anschließenden Abziehen wäre das 
Nutzsignal also ideal erhalten. Nur ist die Herzfrequenz ja nicht 
konstant und schon verfälscht man das Nutzsignal durch den Filter (Was 
nat. jeder Filter unterschiedlich stark tut).

Ich würde hinter den gleitenden Mittelwertfilter noch einen einfachen 
IIR-Tiefpass "hängen" (und das gefilterte Signal wie gehabt vom 
Eingangssignal abziehen). Z.B. so:
y(n+1) = 0,95*y(n) + 0,05*u

Die Konstanten variierst du wie dus brauchst, sollten in Summe halt 1 
ergeben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren