A/D-Wandlung "Ausreiser" behandeln

Gast #1438104
Hallo,

ich habe eine Frage zu "Ausreisern" bei einer A/D-Wandlung.

D.h. bei manchen Messungen treten hardwareseititg Spannungsspitzen auf, 
welche natürlich nichts mit dem im System real vorhandenen Wert zu tun 
haben.

Meine Frage ist jetzt, wie ich diese Werte am besten behandeln soll.
Ich habe hier schon gelesen das eine Filterung mein Ergebnis nur kaputt 
machen würde, klar der falsche Wert ist ja nur verwaschen.

Es ist nun sinnvoller den gelesen Wert mit dem Vorhergegangenen zu 
vergleichen und wenn er dann um ca 30% größer ist, ihn einfach durch den 
Mittelwert der z.B. 5 vorhergegangenen zu ersetzen?


Außerdem würde mich generell interessieren, ob eine Mittelwertbildung
im Bezug auf Performance einer Filterung vor zu ziehen ist, wenn man 
nicht Frequenzen behandelt.
Z.B. ein Rotorwinkel der von einem Geber gesendet wird.


Danke
Gast
Bei so etwas hat es sich bewährt, Median und Tiefpass (gleitender 
Mittelwert oder ...) zu kombinieren. Also mittels Median vorfiltern und 
danach glätten.
Gast
Ok, ich habe nur ein "Problem"

Bei den Tiefpassfiltern gibt es ja 2 Frequenzen, die Abtastfreuqenz, und 
die Grenzfrequenz. Aber ein A/D-Wert ist ja keine Frequenz, soll ich 
diesen Wert einfach durch probieren rausbekommen oder wie macht man das?
Gast
Auch eine Mittelwertbildung ist nichts als ein schlechtes TP Filter. Die 
Frage nach der besten Fehlerbehandlung hängt von der Anwendung ab. Im 
Fall einer Regelung z.B. würd ich nur den letzten gültigen Wert oder die 
Schätzung aus einem Modell verwenden.

Um was geht es konkret?
Gast
Dann nimm den letzten gültigen Wert oder eine lineare Extrapolation 
(beides sehr einfach) oder eben ein mathematisches Modell der Strecke, 
evtl adaptiv. Wenn die Regelung nicht an der Grenze der Abtastfrequenz 
läuft, sollten die einfachen Methoden gute Ergebnisse bringen.
Wenn der Regler nicht am Anschlag ist(Zeitkonstante des Systems < 10 * 
Abtastzeit) würde ich einen Median aus 3 Werten empfehlen. Damit 
bekommst du genau einen Ausreißer unter 3 werten raus.

@Gerd: das passt wahrscheinlich nicht
a) reichlich Phasenverschiebung
b) Rundungsfehler ohne ende
c) Auf Architekturen ohne Hardwaredivision langsam

wenns schon unbedingt IIR, dann schnell und mit Rundung:

static int filter;
filter -= filter>>4;
filter += input;
output = filter+8 >>4;
Gast
> D.h. bei manchen Messungen treten hardwareseititg Spannungsspitzen
> auf, welche natürlich nichts mit dem im System real vorhandenen
> Wert zu tun haben.

Dann solltest du dich als erstes mal Fragen wo die Ausreisser
herkommen und was du dagegen tun kannst das sie ueberhaubt
entstehen.

Wenn es tatsaechlich echte Ausreisser sind und du deine Hardware
nicht besser hinbekommst dann hilft filtern nicht. Einfach
deshalb weil ein Filter das Problem auf mehrere benachbarte
Samples verteilen wird.
Was allerdings weiterhelfen kann ist Statistik. Ein Beispiel
dafuer ist dies hier:

http://de.wikipedia.org/wiki/Ausreißertest_nach_Grubbs

Olaf

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.