@Florian
sorry, habe nicht mitbekommen, dass du über die "For I = ...." Schleife gestolpert bist.
Die gehört natürlich nicht zur Bildung des fliessenden Mittelwerts, sondern war nur dazu da das Beispiel auf eine bestimmte Anzahl Durchläufe zu begrenzen, um ein buschen herumzuexperimentieren, wie sich die Änderungen der Messwerte auf den fliessenden Mittelwert auswirken.
Ich habe mit dem Beispielcode ja wie ich glaube ich in dem anderen Thread geschrieben habe im Bascom -Simulator herumgespielt.
D.h. ich hatte keinen Sensor der mir Werte gibt und woillte auch nicht unbedingt x-mal 50 Werte manuell per Input eingeben
Die eigentliche Bildung des fliessenden Mittelwerts war in meinem Beispiel nur der folgende Code:
Code:
Const Anzahl = 50 ' Anzahl Messwerte
Dim Mittelwert As Single
Dim Temp As Single
Temp = Mittelwert / Anzahl
Mittelwert = Mittelwert - Temp
Temp = Messwert / Anzahl
Mittelwert = Mittelwert + Temp
Der Wert für Masswert kommt dann vom Sensor. Da man den Werte eines ADCs nicht direkt einer Single Variable zuweisen kann, üsste da aber noch eine zusätzliche Zeile rein, z.B.
Dim Messwert_int as Integer
Messwert_int = getAdc(x): Messwert = Messwert_int
Mit dem Zeilen die mare_crisum in meinem Code als überflüssig bezeichnet hat, hat er natürlich völlig recht.
Die gehören auch nicht zur Bildung des fliessenden Mittelwerts.
Der obere Teil meines Beispielcodes sollte nur veranschaulichen, wieviele Durchläufe man bem fliessenden Mittelwert braucht, bis sich tatsächlich der Mittelwert einstellt.
Wenn du einen Fliessenden Mittelwert über 1000 Werte bildest, wird bei jeder neuen Messung 1/1000 vom bestehenden Mittelwert abgezogen und der neue Messwert/1000 hinzuaddiert.
D.h. wenn das Programm mit einem Mittelwert von 0 anfängt, und bei der 1. Messsung nur 1/1000 des Messwertes hinzuaddiert, ist das ja noch lange nicht der Mittelwert.
Der stellt sich erst nach X*1000 Messungen ein.
D.h, der erste Teil meines Beispielcodes hat erst mal soviele Durchläufe gemacht, dass der fliessende Mittelwert auch tatsächlich dem Mittelwert entspricht und dann als "Zaehler" ausgegeben, wieviel Durchläufe das sind.
Der zweite Teil hat dann berechnet, wie sich der fliessende Mittelwert über 50 Werte ändert, wenn 50 gleiche neue Werte hinzukommen.
Das ganze war wie gesagt nur ein Beispiel um durch "Spielen" im Bascom Simulator ein bischen Gefühl für den fliessenden Mittelwert zu bekommen.
Lesezeichen