Moving Average und andere Filter Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
| Autor |
|
Moving Average und andere Filter |
|
|
|
|
BID = 177791
Benedikt Inventar
      Beiträge: 6241
|
|
Was verwendet ihr so an Filtern, um Messwerte zu glätten ?
Eine Möglichkeit ist der Moving Average Filter, bei dem die Daten in einen Ringpuffer geladen werden und immer aus den letzen n Datenwerten der Mittelwert berechnet und ausgegeben wird.
Eine andere Möglichkeit ist, den aktuellen Wert zu einer Gesamtsumme zu addieren:
Summe = a*Summe+(1-a)*Messwert
Dieser Filter hat einen ähnlichen Verlauf wie ein RC Glied, benötigt also sehr lange bis er sich dem Messwert sehr genau angenähert hat.
Weiß jemand wie sich dieser Filter nennt ? |
|
BID = 177953
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
Ich hatte ja gehofft, jetzt würden alle, die das richtig lernen mußten, laut "hier" schreien, aber offensichtlich ist das nicht der Fall.
Filterdesign ist eine nicht triviale und sehr mathematische Angelegenheit. Das beste Filter gibt es meist nicht, sondern man muß stets Kompromisse eingehen.
Beispielsweise kann es ein Bandfilter mit rechteckiger Durchlaßkurve und gleichzeitig schnellem Ansprechen nicht geben. Das liegt nicht an der Unvollkommenheit der Bauteile, sondern an der Mathematik.
Grundsätzlich unterscheidet man das Verhalten der Filter im Zeitbereich und im Frequenzbereich.
Ein Filter zur Meßwertglättung wird man z.B. unter Vorgabe von Anstiegszeit auf eine bestimmte Genauigkeit und Überschwingen dimensionieren, aber es kann auch sein, daß es noch bestimmte Eigenschaften im Frequenzbereich haben muß, um z.B. Netzbrumm zu unterdrücken.
Bei Filtern im Frequenzbereich wird man zunächst das Verhalten im Durchlaßbereich und Sperrbereich sowie die Welligkeit im Durchlaßbereich spezifizieren. Evtl. kommen dann noch Forderungen nach dem Phasenverhalten bzw. Einschwingverhalten hinzu.
Der "Moving Average" Filter gehört zu den FIR-Filtern (Finite Impulse Response). Ein N-stufiger FIR-Filter ist nach spätestens N-Takten eingeschwungen, da es dan keine Werte aus der Vergangenheit mehr enthält.
Dein anderes Filter ist ein IIR (Infinite Impulse Response) Filter. Das enthält wegen seiner Rückkopplung ebenso wie ein RC-Glied noch Meßwerte seit Martin Luther und stellt sich streng genommen nie ganz genau ein.
IIR-Filter können mit weniger Stufen als FIR-Filter einen bestimmten Effekt erzielen, aber aufgrund ihrer Rückkopplung können sie, insbesondere in der digitalen Ausführung, zu Schwingungen neigen.
FIR-Filter benehmen sich insgesamt kultivierter, benötigen aber mehr Rechenleistung.
Die Berechnungen sind mühsam und wenn du ein konkretes Filter brauchst, dann bemühst du am besten ein Filterdesign Programm. Ich habe hier ein kleines DOS-Programm "Filter" von Mildenberger, das es dereinst für den bescheidenen Beitrag von 48 DM zu seinem Lehrbuch, welches ebenfalls 48 DM kostete auf Diskette gab. Mittlerweile steht das Programm offiziell als Freeware im Netz.
Was mein Bücherregal sonst noch zum Thema enthält:
besagten Otto Mildenberger, Entwurf analoger und digitaler Filter, 379 Seiten, dereinst 48 DM,
Wolfgang Hess, Digitale Filter, 384 Seiten, 39 DM,
Fritz Bening, Z-Transformation für Ingenieure, 248 Seiten, bestimmt auch nicht billiger,
Richard W. Hamming, Digitale Filter, 269 S., 64 DM.
Glaube nur nicht, daß ich das alles durchgearbeitet habe, aber ein bischen Reserve kann ja nicht schaden
Besonders das Buch von Hamming ist ziemlich leserlich, und gibt eine schöne Übersicht, aber ohne Mathe kommt auch das nicht aus.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
[ Diese Nachricht wurde geändert von: perl am 24 Mär 2005 1:12 ] |
|
BID = 178072
Benedikt Inventar
      Beiträge: 6241
|
Danke für die Ausführlicher Erklärung.
Wenn man nur den Filter kennt, aber nicht dessen Bezeichnun bringt google einen nicht weiter.
Eigentlich ging es mir nicht unbedingt um irgendwelche komplexen Filter, sondern eher um irgendwelche einfachev die man leicht in Assembler programmieren kann, um die Messwerte etwas zu glätten.
|
BID = 178121
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
Na, dann assemblier mal schön
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 178197
Henne02 Stammposter
    Beiträge: 493 Wohnort: Aachen
|
sorry für die Monsterdatei - aber es sollte die Antwort auf alle Fragen dieser Art sein...
Hendrik
EDIT: zu groß für den Server - Pech gehabt
[ Diese Nachricht wurde geändert von: Henne02 am 24 Mär 2005 17:58 ]
|
BID = 178217
Ltof Inventar
     
Beiträge: 9386 Wohnort: Hommingberg
|
Zitat :
|
...um irgendwelche einfachev die man leicht in Assembler programmieren kann, um die Messwerte etwas zu glätten...
|
Da ist ja der Moving Average Filter geradezu prädestiniert. Der ist in Assembler meines Erachtens am einfachsten zu handhaben. Ich kannte den übrigens als "gleitende Mittelwertbildung"...
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 18 Beiträge im Durchschnitt pro Tag heute wurden bisher 6 Beiträge verfasst © x sparkkelsputz Besucher : 187882247 Heute : 14578 Gestern : 15438 Online : 424 22.12.2025 18:20 9 Besucher in den letzten 60 Sekunden alle 6.67 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0450031757355
|