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.
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
Bist du sicher, dass du den Mittelwert gleich halten möchtest? Wäre es nicht besser, wenn die Nulllinie an gleicher Stelle bleiben würde?
@ 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.
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.
@ 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?
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
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.
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.