www.mikrocontroller.net

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


Autor: Phelan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Phelan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Phelan (Gast)
Datum:

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

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm einen IIR:

wert_alt = (wert_alt * 5 + wert_neu) / 6

Das passt dann schon.

Autor: Andreas R. (rebirama)
Datum:

Bewertung
0 lesenswert
nicht 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;

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Zwölf Mal Acht (hacky)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.