Guten Tag, ich kenne mich mit diesen Dingen wenig aus und habe mal eine Frage an die Profis hier die sicher mehr Ahnung von Datenfilterung usw verstehen als ich. Ich suche eine Möglichkeit einen Moving Average (Gleitender Mittelwert) sich auf beliebigen Datenreihen selbst zu regulieren indem dieser sich möglichst "optimal" an eine beliebige Datenstruktur anpasst. Das Problem ist, dass es beim normalen Moving Average immer einen fixen Parameter gibt und zwar die Wahl der Anzahl der Daten die zur Berechnung gewählt werden. Egal um welche Daten es sich handelt (Wetter oder sonstwas), es wird immer Phasen geben wo eine kleinere Datenspanne dem Verlauf besser folgt als eine größere Datenspanne oder umgekehrt. Ziel ist es also den Parameter der Datenspanne (Anzahl der zu berechnenden rückliegenden Datenpunkte) anhand der Datenstruktur selbst zu regulieren. Als Beispiel: Eine Temperatur steigt im Durchschnitt über ein paar Wochen stetig an und die Tag/Nacht-Differenz liegt bei 5°C. Man probiert verschiedene Datenspannen aus und kommt zB. zum Ergebnis, dass zur Berechnung des MAs 100 Datenpunkte zu einer angemessenen Kurve führt, die die Tag/Nacht-Differenz wegglättet aber trotzdem beim sinken der Durschnittstemperatur nicht zu spät reagiert. Und jetzt wird es spannend: Nun ändert sich das Wetter indem sich plötzlich die Tag/Nacht-Differenz stark erhöht auf zB. 15°C. Der MA 100 versagt durch die stärkere Schwankung und glättet nicht mehr korrekt. Ein höherer MA zb 150 wäre nun angemesser. Und genau diesen Parameter möchte ich automatisieren also selbstregulierend hinbekommen, habe aber keine Idee wie das funktionierten könnte. Ich hoffe ich konnte es einigermaßen Darstellen auf was ich hinaus will und würde mich über Ideen und Tipps freuen. Gruß
Wie du selbst schön beschrieben hast, mittelt der MA gewisse Schwankungen aus. Woher soll der MA den aber wissen auf welche minimale Änderungsgeschwindigkeit du aus bist? Wenn du nur Rauschen filtern möchtest, könntest du das System schätzen bzw. dessen kleinste Zeitkonstante. Die Zeitkonstante des MA muss dann kleiner als diese sein, damit du tatsächliche Änderungen, welche vom Rauschen verschieden sind, noch mitbekommst. Der Glaskugel-Modus funktioniert aber i.A. nicht, du musst die Daten interpretieren, das ist nun mal von Fall zu Fall verschieden...
Ok stimmt irgendein Anhaltspunkt für den Start braucht es. Man könnte erst manuell gucken welcher Wert zur Zeit am besten passt und könnte diesen als Basis für die weitere Berechnung verwenden. Wenn jetzt die Schwankung oder die Struktur stärker wird könnte dies ein Multiplikationsfaktor steuern, der Startwert wird dann zB mit 1.1 multipliziert und somit passt sich das System dynamisch an. Die Frage ist nur welcher Algorythmus oä steuert einen Multiplikationsfaktor? Dieser Algo müsste in der Lage sein die Struktur oder Schwankung als Zahl auszugeben damit man dies wiederrum als Faktor nutzen kann...
Das nennt sich adaptiver Filter, über das Thema wurden schon Dutzende Bücher geschrieben. Wenn man das Filter automatisch abgleichen will, muss man eine Zielfunktion definieren. Damit wird der Filter zur Regelstrecke. Hinter dem Filter muss man messen, ob der Zielparameter (Z.B. Spitze-Spitzte Rasuchen) erreicht wurde oder nicht. Dementsprechend muss dann der Regler die Filterkoeffizienten verändern, im einfachsten Fall die Anzahl der Messwerte zur Mittelwertbildung.
Nehmen wir als Beispiel einen Temperatursensor: Der hat zunächst kurzfristiges Rauschen. Dann schwankt der Wert durch vorbeiziehende Wolken. Dann schwankt er im Tagesverlauf. Dann schwankt er im Jahresverlauf. Dir bleibt hier nichts anderes übrig, als manuell zu entscheiden, welcher dieser Kurven du folgen möchtest. Man kann es drehen und wenden, wie man will, aber das geht nicht automatisch. Man könnte mit einer FFT natürlich wichtige Peridizitäten und Grenzfrequenzen finden und dann anhand derer sich für eine Periodenlänge entscheiden, aber auch dann muss man eine manuelle Entscheidung treffen.
Die vorgeschlagene Mittelung geht in die Richtung : wie bescheisse ich mich selbst mit angenehmen Kurven. Bei Temperaturen wuerde ich erst mal die Physik betrachten, bevor ich mich der Mittelung widme. Der Sensor misst naemlich schon richtig. Dessen Rauschen ist sehr klein. Die Frage ist eher : WAS misst der Sensor ?
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.