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
Bei so etwas hat es sich bewährt, Median und Tiefpass (gleitender Mittelwert oder ...) zu kombinieren. Also mittels Median vorfiltern und danach glätten.
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?
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?
Ja es geht im einen Regelung, die Behandlung sollte nicht zu viel zeit in anspruch nehmen
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.
Nimm einen IIR: wert_alt = (wert_alt * 5 + wert_neu) / 6 Das passt dann schon.
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;
> 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.