Thursday 16 November 2017

Exponentiell Gewichtet Gleitender Durchschnitt Filter C Code


Der exponentiell gewichtete gleitende Durchschnitt (EWMA) ist eine Statistik für die Überwachung des Prozesses, die die Daten in einer Weise, die weniger und weniger Gewicht auf Daten, da sie weiter entfernt werden, in der Zeit. Vergleich von Shewhart-Kontrolldiagramm und EWMA-Kontrolltafel-Techniken Für die Shewhart-Diagrammsteuerungstechnik hängt die Entscheidung über den Zustand der Kontrolle des Prozesses zu irgendeinem Zeitpunkt (t) ausschließlich von der letzten Messung aus dem Verfahren ab, Der Grad der Richtigkeit der Schätzungen der Kontrollgrenzen aus historischen Daten. Für die EWMA-Steuerungstechnik hängt die Entscheidung von der EWMA-Statistik ab, die ein exponentiell gewichteter Durchschnitt aller vorherigen Daten ist, einschließlich der letzten Messung. Durch die Wahl des Gewichtungsfaktors (Lambda) kann die EWMA-Steuerprozedur empfindlich auf eine kleine oder allmähliche Drift in dem Prozess eingestellt werden, während die Shewhart-Steuerprozedur nur dann reagieren kann, wenn der letzte Datenpunkt außerhalb einer Kontrollgrenze liegt. Definition von EWMA Die berechnete Statistik ist: mbox t lambda Yt (1-lambda) mbox ,,, mbox ,,, t 1,, 2,, ldots ,, n. Wobei (mbox 0) der Mittelwert der historischen Daten (Ziel) (Yt) ist die Beobachtung zur Zeit (t) (n) die Anzahl der zu überwachenden Beobachtungen einschließlich (mbox 0) (0 Interpretation der EWMA - Dots sind die Rohdaten, die gezackte Linie ist die EWMA-Statistik im Laufe der Zeit. Das Diagramm zeigt uns, dass der Prozess in der Steuerung ist, weil alle (mbox t) zwischen den Kontroll-Grenzen liegen. Allerdings scheint es einen Trend nach oben für die letzten 5 Perioden. Ist es möglich, einen gleitenden Durchschnitt in C ohne die Notwendigkeit für ein Fenster von Proben Ive gefunden, dass ich ein bisschen optimieren kann, indem Sie eine Fenstergröße, die eine Macht von zwei, um Bit-Verschiebung statt der Teilung zu ermöglichen, Nicht brauchen einen Puffer wäre schön. Gibt es eine Möglichkeit, um eine neue gleitende durchschnittliche Ergebnis nur als eine Funktion des alten Ergebnisses und die neue Probe Ausdruck Definieren Sie ein Beispiel gleitenden Durchschnitt, über ein Fenster von 4 Proben zu sein: Neue Probe hinzufügen e : Ein gleitender Durchschnitt kann rekursiv implementiert werden, aber für eine exakte Berechnung des gleitenden Durchschnitts müssen Sie sich an die älteste Eingabemethode in der Summe (d Die a in Ihrem Beispiel). Für einen N-gleitenden Durchschnitt berechnen Sie: wobei yn das Ausgangssignal und xn das Eingangssignal ist. Gl. (1) können rekursiv geschrieben werden, also müssen Sie sich stets an die Stichprobe xn-N erinnern, um (2) zu berechnen. Wie von Conrad Turner angemerkt, können Sie stattdessen ein (unendlich langes) exponentielles Fenster verwenden, mit dem Sie die Ausgabe nur aus dem vergangenen Ausgang und dem aktuellen Eingang berechnen können. Dies ist jedoch kein normaler (ungewichteter) gleitender Durchschnitt, sondern ein exponentieller Wert Gewogenen gleitenden Durchschnitt, wo die Proben in der Vergangenheit ein geringeres Gewicht erhalten, aber (zumindest in der Theorie) man nie etwas vergessen (die Gewichte nur kleiner und kleiner für Proben weit in der Vergangenheit). Ich habe einen gleitenden Durchschnitt ohne einzelnen Element-Speicher für ein GPS-Tracking-Programm, das ich geschrieben habe. Ich beginne mit 1 Probe und dividiere durch 1, um die aktuelle Durchschn. Ich füge dann anothe Probe und dividiere durch 2 zu den aktuellen Durchschn. Das geht so lange weiter, bis ich auf die Länge des Durchschnitts komme. Jedes Mal danach, füge ich in der neuen Probe, erhalten Sie den Durchschnitt und entfernen Sie diesen Durchschnitt aus der Gesamtmenge. Ich bin kein Mathematiker, aber das schien ein guter Weg, es zu tun. Ich dachte, es würde den Magen eines echten Mathematik-Kerl, aber es stellt sich heraus, es ist eine der akzeptierten Möglichkeiten, es zu tun. Und es funktioniert gut. Denken Sie daran, dass je höher Ihre Länge, desto langsamer folgt es, was Sie folgen wollen. Das kann nicht die meiste Zeit, aber wenn folgende Satelliten, wenn Sie langsam sind, könnte die Spur weit von der tatsächlichen Position und es wird schlecht aussehen. Sie könnten eine Lücke zwischen dem Sat und den nachfolgenden Punkten haben. Ich wählte eine Länge von 15 aktualisiert 6 mal pro Minute, um eine ausreichende Glättung und nicht zu weit von der tatsächlichen Sat-Position mit den geglätteten Spur Punkte erhalten. Antwort # 2 am: November 16, 2010, um 23:03 Uhr Initialisierung insgesamt 0, count0 (jedes Mal, wenn ein neuer Wert dann ein Eingang (scanf), ein add totalnewValue, ein Inkrement (count), ein dividieren Durchschnitt (totalcount) Dies wäre ein gleitender Durchschnitt über Alle Eingänge Um den Durchschnitt über nur die letzten 4 Eingänge zu berechnen, benötigen Sie 4 Inputvariablen, vielleicht kopieren Sie jeden Eingang zu einem älteren inputvariable und berechnen dann den neuen gleitenden Durchschnitt als Summe der 4 Inputvariablen, geteilt durch 4 (Rechtsverschiebung 2 wäre Gut, wenn alle Eingänge waren positiv, um die durchschnittliche Berechnung beantwortet werden 3. Februar um 4:06 Das wird tatsächlich berechnen den Gesamtdurchschnitt und nicht den gleitenden Durchschnitt. Wenn Zähler größer wird der Einfluss eines neuen Eingangsprobe wird verschwindend kleiner ndash Hilmar Feb 3 15 um 13:53 Uhr Deine Antwort 2017 Stack Exchange, Inc

No comments:

Post a Comment