Gleichanteil sehr sauber entfernen

OP #4206758
Lesenswert?
• ▲
▼
Hallo Leute,

mir liegt ein gedämpftes, sinusförmiges Signal vor. Das ganze hat einen 
Gleichanteil, nennen wir ihn mal g und sagen wir dieser beträgt 50. 
Also:

g = 50

Diesen Gleichanteil will ich nun entfernen. Soweit ich mich eingelesen 
habe macht man das meistens so:

(Signal ohne Gleichanteil) = (Signal mit Gleichanteil) - 
(Runden(Mittelwert(Signal mit Gleichanteil)))

oder als Matlabcode:

sig = sig - round(mean(sig));

Soweit so gut, funktioniert auch. Jetzt habe ich aber eine Dämpfung auf 
dem Signal, was dazu führt, dass mir der Mittelwert nicht zu 50 sondern 
zu z.B. 50,06 bestimmt wird.

Jetzt zum eigentlichen Problem. Nachdem ich den Gleichanteil vom Signal 
weggenommen habe muss ich dieses im Zuge der weiteren Verarbeitung 
multiplizieren. Jetzt ist es aber leider entscheidend mit welchem 
Vorzeichen ich multipliziere. Ziehe ich jetzt einen etwas zu großen 
Gleichanteil ab führt das demnach zu einem Fehler.

Erster Ansatz war jetzt den Mittelwert nicht über das gesamte, sondern 
nur über die zweite Hälfte des Signals zu bilden um so die krassen 
"Überschwinger" aus der ersten Hälfte herauszubekommen. Leider brachte 
auch das keinen Erfolg. Selbes Problem.

Hat irgendjemand eine Idee wie ich das Abfangen kann bzw den 
Gleichanteil anders entfernen kann ohne dieses Problem zu haben?

Danke für jede Meinung und Hilfe!
#4206871
Lesenswert?
• ▲
▼
Warum denn das Runden? Der DC-Offset ist genau dann weg wenn du genau 
den Mittelwert vom Signal abziehst, quasi per Definition. Wenn du den 
rundest, wird's natürlich falsch ...

Das mit dem Vorzeichen erschließt sich mir auch nicht, das ist nicht 
verständlich ohne zu wissen wie genau dein Signal aussieht und was du 
vor hast.
Gast #4208270
Lesenswert?
• ▲
▼
Hm, eigentlich suchst du nicht nach dem Gleichanteil, sondern nach dem 
Endwert eines Einschwingvorgangs, oder? Beide Werte sind sich zwar 
ähnlich, aber halt nicht gleich (die erste Auslenkung ist halt immer die 
größte).

Was mir so in den Sinn käme:
- Einschwingvorgang anfitten. Entweder den Fitparameter "Endwert" von 
der Messkurve abziehen und dann die korrigierten Messwerte weiter 
verwenden, oder gleich die gefittete Theoriekurve weiter verwenden
- Den Einschwingvorgang vor der Mittelwertbildung und Weiterverarbeitung 
"entdämpfen" (also mit exp. ansteigender Funktion multiplizieren, so 
dass die Extrema der Kurve immer den gleichen Wert erreichen. Nach 
hinten raus wird dann halt auch das Rauschen ziemlich groß, aber so ist 
das halt bei der Kurvenform.

Auf theoretisch-idealen Kurven sollten beide Ansätze dir helfen. Ob es 
bei deinen realen Messkurven auch hilft, ist natürlich nicht sicher.
OP #4208494
Lesenswert?
• ▲
▼
Danke erstmal.

Das mit dem "entdämpfen" versuche ich bereits hier:

Beitrag "Hüllkurve überlagertes Signal"

Grob umschrieben: Maxima finden, Kurve anfitten -> f(x) dann Signal mit 
1/f(x) multiplizieren

Leider bisher ohne großen Erfolg. finde leider auch wenig brauchbares 
dazu auf google.

Das mit dem stationären Endwert muss ich mal anschauen, vielleicht hilft 
das weiter, danke!
Gast #4208833
Lesenswert?
• ▲
▼
Ich könnte mir vorstellen, dass eine ganz klassische Tiefpassfilterung 
1. Ordnung hier weiterhelfen könnte. => Je länger eine starke Abweichung 
her ist, desto weniger wird sie gewichtet.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.