Forum: Digitale Signalverarbeitung / DSP / Machine Learning A/D-Wandlung "Ausreiser" behandeln


von Phelan (Gast)


Lesenswert?

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

von Alex (Gast)


Lesenswert?

Bei so etwas hat es sich bewährt, Median und Tiefpass (gleitender 
Mittelwert oder ...) zu kombinieren. Also mittels Median vorfiltern und 
danach glätten.

von Phelan (Gast)


Lesenswert?

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?

von Karl (Gast)


Lesenswert?

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?

von Phelan (Gast)


Lesenswert?

Ja es geht im einen Regelung, die Behandlung sollte nicht zu viel zeit 
in anspruch nehmen

von Karl (Gast)


Lesenswert?

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.

von Gerd (Gast)


Lesenswert?

Nimm einen IIR:

wert_alt = (wert_alt * 5 + wert_neu) / 6

Das passt dann schon.

von Andreas R. (rebirama)


Lesenswert?

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;

von Olaf (Gast)


Lesenswert?

> 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

von Purzel H. (hacky)


Lesenswert?

EMV mit Software loesen zu wollen ist ein schlechter Ansatz. Was, wenn 
bei einem anderen Schaltnetzteil alle Werte Ausreisser sind ?

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
Noch kein Account? Hier anmelden.