Thursday 16 February 2017

Labview Exponentiell Gleitender Durchschnitt

Berechnen des gleitenden Durchschnitts Dieses VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Zahl an. Zunächst initialisiert das VI zwei Schieberegister. Das obere Schieberegister wird mit einem Element initialisiert und fügt dann kontinuierlich den vorherigen Wert mit dem neuen Wert hinzu. Dieses Schieberegister hält die Summe der letzten x Messungen. Nach dem Teilen der Ergebnisse der Add-Funktion mit dem vorgewählten Wert berechnet das VI den gleitenden Mittelwert. Das untere Schieberegister enthält ein Array mit der Dimension Average. Dieses Schieberegister hält alle Werte der Messung. Die Ersatzfunktion ersetzt nach jeder Schleife den neuen Wert. Dieses VI ist sehr effizient und schnell, weil es die replace-Element-Funktion innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es die Schleife eintritt. Dieses VI wurde in LabVIEW 6.1 erstellt. Bookmark amp ShareMoving durchschnittliche und exponentielle Glättungsmodelle Als ein erster Schritt beim Überfahren von Mittelwertsmodellen, Zufallswegmodellen und linearen Trendmodellen können nicht-saisonale Muster und Trends mit einem gleitenden Durchschnitt oder Glättungsmodell extrapoliert werden. Die grundlegende Annahme hinter Mittelwertbildung und Glättungsmodellen ist, dass die Zeitreihe lokal stationär mit einem sich langsam verändernden Mittelwert ist. Daher nehmen wir einen bewegten (lokalen) Durchschnitt, um den aktuellen Wert des Mittelwerts abzuschätzen und dann als die Prognose für die nahe Zukunft zu verwenden. Dies kann als Kompromiss zwischen dem mittleren Modell und dem random-walk-ohne-Drift-Modell betrachtet werden. Die gleiche Strategie kann verwendet werden, um einen lokalen Trend abzuschätzen und zu extrapolieren. Ein gleitender Durchschnitt wird oft als "quotsmoothedquot" - Version der ursprünglichen Serie bezeichnet, da die kurzzeitige Mittelung die Wirkung hat, die Stöße in der ursprünglichen Reihe zu glätten. Durch Anpassen des Glättungsgrades (die Breite des gleitenden Durchschnitts) können wir hoffen, eine Art von optimaler Balance zwischen der Leistung des Mittelwerts und der zufälligen Wandermodelle zu erreichen. Die einfachste Art der Mittelung Modell ist die. Einfache (gleichgewichtige) Moving Average: Die Prognose für den Wert von Y zum Zeitpunkt t1, der zum Zeitpunkt t gemacht wird, entspricht dem einfachen Mittelwert der letzten m Beobachtungen: (Hier und anderswo werde ich das Symbol 8220Y-hat8221 stehen lassen Für eine Prognose der Zeitreihe Y, die am frühestmöglichen früheren Zeitpunkt durch ein gegebenes Modell durchgeführt wird.) Dieser Mittelwert wird auf den Zeitraum t (m1) 2 zentriert, was impliziert, daß die Schätzung des lokalen Mittels dazu tendiert, hinter dem wahr zu bleiben Wert des lokalen Mittels um etwa (m1) 2 Perioden. Somit ist das Durchschnittsalter der Daten im einfachen gleitenden Durchschnitt (m1) 2 relativ zu der Periode, für die die Prognose berechnet wird, angegeben: dies ist die Zeitspanne, in der die Prognosen dazu tendieren, hinter den Wendepunkten der Daten zu liegen . Wenn Sie z. B. die letzten 5 Werte mitteln, werden die Prognosen etwa 3 Perioden spät sein, wenn sie auf Wendepunkte reagieren. Beachten Sie, dass, wenn m1, die einfache gleitende Durchschnitt (SMA) - Modell ist gleichbedeutend mit der random walk-Modell (ohne Wachstum). Wenn m sehr groß ist (vergleichbar der Länge des Schätzzeitraums), entspricht das SMA-Modell dem mittleren Modell. Wie bei jedem Parameter eines Prognosemodells ist es üblich, den Wert von k anzupassen, um den besten Quotienten der Daten zu erhalten, d. H. Die kleinsten Prognosefehler im Durchschnitt. Hier ist ein Beispiel einer Reihe, die zufällige Fluktuationen um ein sich langsam veränderndes Mittel zu zeigen scheint. Erstens können wir versuchen, es mit einem zufälligen Weg Modell, das entspricht einem einfachen gleitenden Durchschnitt von 1 Begriff entspricht: Das zufällige Wandermodell reagiert sehr schnell auf Änderungen in der Serie, aber dabei nimmt sie einen Großteil der quotnoisequot in der Daten (die zufälligen Fluktuationen) sowie das Quotsignalquot (das lokale Mittel). Wenn wir stattdessen einen einfachen gleitenden Durchschnitt von 5 Begriffen anwenden, erhalten wir einen glatteren Satz von Prognosen: Der 5-Term-einfache gleitende Durchschnitt liefert in diesem Fall deutlich kleinere Fehler als das zufällige Wegmodell. Das Durchschnittsalter der Daten in dieser Prognose beträgt 3 ((51) 2), so dass es dazu neigt, hinter den Wendepunkten um etwa drei Perioden zu liegen. (Zum Beispiel scheint ein Rückgang in Periode 21 aufgetreten zu sein, aber die Prognosen drehen sich erst um einige Zeit später.) Beachten Sie, dass die Langzeitprognosen des SMA-Modells eine horizontale Gerade sind, genau wie beim zufälligen Weg Modell. Somit geht das SMA-Modell davon aus, dass es keinen Trend in den Daten gibt. Während jedoch die Prognosen aus dem Zufallswegmodell einfach dem letzten beobachteten Wert entsprechen, sind die Prognosen des SMA-Modells gleich einem gewichteten Mittelwert der neueren Werte. Die von Statgraphics berechneten Konfidenzgrenzen für die Langzeitprognosen des einfachen gleitenden Durchschnitts werden nicht breiter, wenn der Prognosehorizont zunimmt. Dies ist offensichtlich nicht richtig Leider gibt es keine zugrunde liegende statistische Theorie, die uns sagt, wie sich die Vertrauensintervalle für dieses Modell erweitern sollten. Allerdings ist es nicht zu schwer, empirische Schätzungen der Konfidenzgrenzen für die längerfristigen Prognosen zu berechnen. Beispielsweise können Sie eine Tabellenkalkulation einrichten, in der das SMA-Modell für die Vorhersage von 2 Schritten im Voraus, 3 Schritten voraus usw. innerhalb der historischen Datenprobe verwendet wird. Sie könnten dann die Stichproben-Standardabweichungen der Fehler bei jedem Prognosehorizont berechnen und dann Konfidenzintervalle für längerfristige Prognosen durch Addieren und Subtrahieren von Vielfachen der geeigneten Standardabweichung konstruieren. Wenn wir einen 9-Term einfach gleitenden Durchschnitt versuchen, erhalten wir sogar noch bessere Prognosen und mehr von einem nacheilenden Effekt: Das Durchschnittsalter beträgt jetzt 5 Perioden ((91) 2). Wenn wir einen 19-term gleitenden Durchschnitt nehmen, steigt das Durchschnittsalter auf 10 an: Beachten Sie, dass die Prognosen tatsächlich hinter den Wendepunkten um etwa 10 Perioden zurückbleiben. Welches Maß an Glättung ist am besten für diese Serie Hier ist eine Tabelle, die ihre Fehlerstatistiken vergleicht, darunter auch einen 3-Term-Durchschnitt: Modell C, der 5-Term-Gleitender Durchschnitt, ergibt den niedrigsten Wert von RMSE mit einer kleinen Marge über die 3 - term und 9-Term-Mittelwerte, und ihre anderen Statistiken sind fast identisch. So können wir bei Modellen mit sehr ähnlichen Fehlerstatistiken wählen, ob wir ein wenig mehr Reaktionsfähigkeit oder ein wenig mehr Glätte in den Prognosen bevorzugen würden. (Rückkehr nach oben.) Browns Einfache Exponentialglättung (exponentiell gewichteter gleitender Durchschnitt) Das oben beschriebene einfache gleitende Durchschnittsmodell hat die unerwünschte Eigenschaft, daß es die letzten k-Beobachtungen gleich und vollständig ignoriert. Intuitiv sollten vergangene Daten in einer allmählicheren Weise diskontiert werden - zum Beispiel sollte die jüngste Beobachtung ein wenig mehr Gewicht als die zweitletzte erhalten, und die 2. jüngsten sollten ein wenig mehr Gewicht als die 3. jüngsten erhalten, und bald. Das einfache exponentielle Glättungsmodell (SES) erfüllt dies. 945 bezeichnen eine quotsmoothing constantquot (eine Zahl zwischen 0 und 1). Eine Möglichkeit, das Modell zu schreiben, besteht darin, eine Serie L zu definieren, die den gegenwärtigen Pegel (d. H. Den lokalen Mittelwert) der Serie, wie er aus Daten bis zu der Zeit geschätzt wird, darstellt. Der Wert von L zur Zeit t wird rekursiv von seinem eigenen vorherigen Wert wie folgt berechnet: Somit ist der aktuelle geglättete Wert eine Interpolation zwischen dem vorher geglätteten Wert und der aktuellen Beobachtung, wobei 945 die Nähe des interpolierten Wertes auf die neueste steuert Überwachung. Die Prognose für die nächste Periode ist einfach der aktuelle geglättete Wert: Äquivalent können wir die nächste Prognose direkt in Form früherer Prognosen und früherer Beobachtungen in einer der folgenden gleichwertigen Versionen ausdrücken. In der ersten Version ist die Prognose eine Interpolation zwischen vorheriger Prognose und vorheriger Beobachtung: In der zweiten Version wird die nächste Prognose durch Anpassung der bisherigen Prognose in Richtung des bisherigen Fehlers um einen Bruchteil 945 erhalten Zeit t. In der dritten Version ist die Prognose ein exponentiell gewichteter (dh diskontierter) gleitender Durchschnitt mit Abzinsungsfaktor 1-945: Die Interpolationsversion der Prognoseformel ist am einfachsten zu verwenden, wenn Sie das Modell in einer Tabellenkalkulation implementieren Einzelne Zelle und enthält Zellverweise, die auf die vorhergehende Prognose, die vorherige Beobachtung und die Zelle mit dem Wert von 945 zeigen. Beachten Sie, dass, wenn 945 1, das SES-Modell entspricht einem zufälligen Weg-Modell (ohne Wachstum). Wenn 945 0 ist, entspricht das SES-Modell dem mittleren Modell, wobei angenommen wird, dass der erste geglättete Wert gleich dem Mittelwert gesetzt ist. (Zurück zum Seitenanfang.) Das Durchschnittsalter der Daten in der Simple-Exponential-Glättungsprognose beträgt 1 945, bezogen auf den Zeitraum, für den die Prognose berechnet wird. (Dies sollte nicht offensichtlich sein, kann aber leicht durch die Auswertung einer unendlichen Reihe gezeigt werden.) Die einfache gleitende Durchschnittsprognose neigt daher zu Verzögerungen hinter den Wendepunkten um etwa 1 945 Perioden. Wenn beispielsweise 945 0,5 die Verzögerung 2 Perioden beträgt, wenn 945 0,2 die Verzögerung 5 Perioden beträgt, wenn 945 0,1 die Verzögerung 10 Perioden und so weiter ist. Für ein gegebenes Durchschnittsalter (d. H. Eine Verzögerung) ist die einfache exponentielle Glättungsprognose (SES) der simplen gleitenden Durchschnittsprognose (SMA) etwas überlegen, weil sie relativ viel mehr Gewicht auf die jüngste Beobachtung - i. e stellt. Es ist etwas mehr quresponsivequot zu Änderungen, die sich in der jüngsten Vergangenheit. Zum Beispiel haben ein SMA - Modell mit 9 Terminen und ein SES - Modell mit 945 0,2 beide ein durchschnittliches Alter von 5 Jahren für die Daten in ihren Prognosen, aber das SES - Modell legt mehr Gewicht auf die letzten 3 Werte als das SMA - Modell und am Gleiches gilt für die Werte von mehr als 9 Perioden, wie in dieser Tabelle gezeigt: 822forget8221. Ein weiterer wichtiger Vorteil des SES-Modells gegenüber dem SMA-Modell ist, dass das SES-Modell einen Glättungsparameter verwendet, der kontinuierlich variabel ist und somit leicht optimiert werden kann Indem ein Quotsolverquot-Algorithmus verwendet wird, um den mittleren quadratischen Fehler zu minimieren. Der optimale Wert von 945 im SES-Modell für diese Serie ergibt sich wie folgt: Das durchschnittliche Alter der Daten in dieser Prognose beträgt 10.2961 3,4 Perioden, was ähnlich wie bei einem 6-term einfachen gleitenden Durchschnitt ist. Die Langzeitprognosen aus dem SES-Modell sind eine horizontale Gerade. Wie im SMA-Modell und dem Random-Walk-Modell ohne Wachstum. Es ist jedoch anzumerken, dass die von Statgraphics berechneten Konfidenzintervalle nun in einer vernünftigen Weise abweichen und dass sie wesentlich schmaler sind als die Konfidenzintervalle für das Zufallswegmodell. Das SES-Modell geht davon aus, dass die Reihe etwas vorhersehbarer ist als das Zufallswandermodell. Ein SES-Modell ist eigentlich ein Spezialfall eines ARIMA-Modells. So dass die statistische Theorie der ARIMA-Modelle eine solide Grundlage für die Berechnung der Konfidenzintervalle für das SES-Modell bildet. Insbesondere ist ein SES-Modell ein ARIMA-Modell mit einer nicht sonderbaren Differenz, einem MA (1) - Term und kein konstanter Term. Ansonsten als quotARIMA (0,1,1) - Modell ohne Konstantquot bekannt. Der MA (1) - Koeffizient im ARIMA-Modell entspricht der Größe 1 - 945 im SES-Modell. Wenn Sie zum Beispiel ein ARIMA-Modell (0,1,1) ohne Konstante an die hier analysierte Serie anpassen, ergibt sich der geschätzte MA (1) - Koeffizient auf 0,7029, was fast genau ein Minus von 0,2961 ist. Es ist möglich, die Annahme eines von Null verschiedenen konstanten linearen Trends zu einem SES-Modell hinzuzufügen. Dazu wird ein ARIMA-Modell mit einer nicht sonderbaren Differenz und einem MA (1) - Term mit konstantem, d. H. Einem ARIMA-Modell (0,1,1) mit konstantem Wert angegeben. Die langfristigen Prognosen haben dann einen Trend, der dem durchschnittlichen Trend über den gesamten Schätzungszeitraum entspricht. Sie können dies nicht in Verbindung mit saisonalen Anpassungen tun, da die saisonalen Anpassungsoptionen deaktiviert sind, wenn der Modelltyp auf ARIMA gesetzt ist. Sie können jedoch einen konstanten langfristigen exponentiellen Trend zu einem einfachen exponentiellen Glättungsmodell (mit oder ohne saisonale Anpassung) hinzufügen, indem Sie die Inflationsanpassungsoption im Prognoseverfahren verwenden. Die prozentuale Zinssatzquote (prozentuale Wachstumsrate) pro Periode kann als der Steigungskoeffizient in einem linearen Trendmodell geschätzt werden, das an die Daten in Verbindung mit einer natürlichen Logarithmuswandlung angepasst ist, oder es kann auf anderen unabhängigen Informationen bezüglich der langfristigen Wachstumsperspektiven beruhen . (Rückkehr nach oben.) Browns Linear (dh doppelt) Exponentielle Glättung Die SMA-Modelle und SES-Modelle gehen davon aus, dass es in den Daten keine Tendenzen gibt (die in der Regel in Ordnung sind oder zumindest nicht zu schlecht für 1- Wenn die Daten relativ verrauscht sind), und sie können modifiziert werden, um einen konstanten linearen Trend, wie oben gezeigt, zu integrieren. Was ist mit kurzfristigen Trends Wenn eine Serie eine unterschiedliche Wachstumsrate oder ein zyklisches Muster zeigt, das sich deutlich gegen das Rauschen auszeichnet, und wenn es notwendig ist, mehr als eine Periode vorher zu prognostizieren, könnte die Schätzung eines lokalen Trends auch sein Ein Problem. Das einfache exponentielle Glättungsmodell kann verallgemeinert werden, um ein lineares exponentielles Glättungsmodell (LES) zu erhalten, das lokale Schätzungen sowohl des Niveaus als auch des Trends berechnet. Das einfachste zeitvariable Trendmodell ist Browns lineares exponentielles Glättungsmodell, das zwei verschiedene geglättete Serien verwendet, die zu verschiedenen Zeitpunkten zentriert sind. Die Prognoseformel basiert auf einer Extrapolation einer Linie durch die beiden Zentren. (Eine weiterentwickelte Version dieses Modells, Holt8217s, wird unten diskutiert.) Die algebraische Form des Brown8217s linearen exponentiellen Glättungsmodells, wie die des einfachen exponentiellen Glättungsmodells, kann in einer Anzahl von unterschiedlichen, aber äquivalenten Formen ausgedrückt werden. Die quadratische quadratische Form dieses Modells wird gewöhnlich wie folgt ausgedrückt: Sei S die einfach geglättete Reihe, die durch Anwendung einfacher exponentieller Glättung auf Reihe Y erhalten wird. Das heißt, der Wert von S in der Periode t ist gegeben durch: (Erinnern wir uns, Exponentielle Glättung, so würde dies die Prognose für Y in der Periode t1 sein.) Dann sei Squot die doppelt geglättete Folge, die man erhält, indem man eine einfache exponentielle Glättung (unter Verwendung desselben 945) auf die Reihe S anwendet: Schließlich die Prognose für Ytk. Für jedes kgt1 ist gegeben durch: Dies ergibt e & sub1; & sub0; (d. h. Cheat ein Bit und die erste Prognose der tatsächlichen ersten Beobachtung gleich) und e & sub2; Y & sub2; 8211 Y & sub1; Nach denen die Prognosen unter Verwendung der obigen Gleichung erzeugt werden. Dies ergibt die gleichen Anpassungswerte wie die Formel auf der Basis von S und S, wenn diese mit S 1 S 1 Y 1 gestartet wurden. Diese Version des Modells wird auf der nächsten Seite verwendet, die eine Kombination von exponentieller Glättung mit saisonaler Anpassung veranschaulicht. Holt8217s Lineares Exponentialglättung Brown8217s LES-Modell berechnet lokale Schätzungen von Pegel und Trend durch Glätten der letzten Daten, aber die Tatsache, dass dies mit einem einzigen Glättungsparameter erfolgt, legt eine Einschränkung für die Datenmuster fest, die es anpassen kann: den Pegel und den Trend Dürfen nicht zu unabhängigen Preisen variieren. Holt8217s LES-Modell adressiert dieses Problem durch zwei Glättungskonstanten, eine für die Ebene und eine für den Trend. Zu jedem Zeitpunkt t, wie in Brown8217s-Modell, gibt es eine Schätzung L t der lokalen Ebene und eine Schätzung T t der lokalen Trend. Hier werden sie rekursiv aus dem zum Zeitpunkt t beobachteten Wert von Y und den vorherigen Schätzungen von Pegel und Trend durch zwei Gleichungen berechnet, die exponentielle Glättung separat anwenden. Wenn der geschätzte Pegel und der Trend zum Zeitpunkt t-1 L t82091 und T t-1 sind. Dann ist die Prognose für Y tshy, die zum Zeitpunkt t-1 gemacht worden wäre, gleich L t-1 T t-1. Wenn der tatsächliche Wert beobachtet wird, wird die aktualisierte Schätzung des Pegels rekursiv berechnet, indem zwischen Y tshy und seiner Prognose L t-1 T t-1 unter Verwendung von Gewichten von 945 und 1- 945 interpoliert wird. Die Änderung des geschätzten Pegels, Nämlich L t 8209 L t82091. Kann als eine verrauschte Messung des Trends zum Zeitpunkt t interpretiert werden. Die aktualisierte Schätzung des Trends wird dann rekursiv berechnet, indem zwischen L t 8209 L t82091 und der vorherigen Schätzung des Trends T t-1 interpoliert wird. Unter Verwendung der Gewichte von 946 und 1-946: Die Interpretation der Trendglättungskonstanten 946 ist analog zu der Pegelglättungskonstante 945. Modelle mit kleinen Werten von 946 nehmen an, dass sich der Trend mit der Zeit nur sehr langsam ändert, während Modelle mit Größere 946 nehmen an, dass sie sich schneller ändert. Ein Modell mit einem großen 946 glaubt, dass die ferne Zukunft sehr unsicher ist, da Fehler in der Trendschätzung bei der Prognose von mehr als einer Periode ganz wichtig werden. (Rückkehr nach oben) Die Glättungskonstanten 945 und 946 können auf übliche Weise geschätzt werden, indem der mittlere quadratische Fehler der 1-Schritt-Voraus-Prognosen minimiert wird. Wenn dies in Statgraphics getan wird, erweisen sich die Schätzungen als 945 0.3048 und 946 0,008. Der sehr geringe Wert von 946 bedeutet, dass das Modell eine sehr geringe Veränderung im Trend von einer Periode zur nächsten annimmt, so dass dieses Modell im Grunde versucht, einen langfristigen Trend abzuschätzen. Analog zur Vorstellung des Durchschnittsalters der Daten, die bei der Schätzung der lokalen Ebene der Reihe verwendet werden, ist das Durchschnittsalter der Daten, die bei der Schätzung des lokalen Trends verwendet werden, proportional zu 1 946, wenn auch nicht exakt gleich . In diesem Fall erweist sich dies als 10.006 125. Dies ist eine sehr genaue Zahl, da die Genauigkeit der Schätzung von 946 nicht wirklich 3 Dezimalstellen beträgt, sondern sie ist von der gleichen Größenordnung wie die Stichprobengröße von 100 Dieses Modell ist Mittelung über eine ziemlich große Geschichte bei der Schätzung der Trend. Das Prognose-Diagramm unten zeigt, dass das LES-Modell einen etwas größeren lokalen Trend am Ende der Serie schätzt als der im SEStrend-Modell geschätzte konstante Trend. Außerdem ist der Schätzwert von 945 fast identisch mit dem, der durch Anpassen des SES-Modells mit oder ohne Trend erhalten wird, so dass dies fast das gleiche Modell ist. Nun, sehen diese aussehen wie vernünftige Prognosen für ein Modell, das soll Schätzung einer lokalen Tendenz Wenn Sie 8220eyeball8221 dieser Handlung, sieht es so aus, als ob der lokale Trend nach unten am Ende der Serie gedreht hat Was ist passiert Die Parameter dieses Modells Wurden durch Minimierung des quadratischen Fehlers von 1-Schritt-Voraus-Prognosen, nicht längerfristigen Prognosen, abgeschätzt, wobei der Trend keinen großen Unterschied macht. Wenn alles, was Sie suchen, 1-Schritt-vor-Fehler sind, sehen Sie nicht das größere Bild der Trends über (sagen) 10 oder 20 Perioden. Um dieses Modell im Einklang mit unserer Augapfel-Extrapolation der Daten zu erhalten, können wir die Trendglättungskonstante manuell anpassen, so dass sie eine kürzere Basislinie für die Trendschätzung verwendet. Wenn wir beispielsweise 946 0,1 setzen, beträgt das durchschnittliche Alter der Daten, die bei der Schätzung des lokalen Trends verwendet werden, 10 Perioden, was bedeutet, dass wir den Trend über die letzten 20 Perioden oder so mitteln. Here8217s, was das Prognose-Plot aussieht, wenn wir 946 0,1 setzen, während 945 0,3 halten. Dies scheint intuitiv vernünftig für diese Serie, obwohl es wahrscheinlich gefährlich, diesen Trend mehr als 10 Perioden in der Zukunft zu extrapolieren. Was ist mit den Fehlerstatistiken Hier ist ein Modellvergleich für die beiden oben gezeigten Modelle sowie drei SES-Modelle. Der optimale Wert von 945 für das SES-Modell beträgt etwa 0,3, aber ähnliche Ergebnisse (mit etwas mehr oder weniger Reaktionsfähigkeit) werden mit 0,5 und 0,2 erhalten. (A) Holts linearer Exp. Glättung mit alpha 0.3048 und beta 0,008 (B) Holts linear exp. Glättung mit alpha 0,3 (E) Einfache exponentielle Glättung mit alpha 0,3 (E) Einfache exponentielle Glättung mit alpha 0,2 Ihre Stats sind nahezu identisch, so dass wir wirklich die Wahl auf der Basis machen können Von 1-Schritt-Vorhersagefehlern innerhalb der Datenprobe. Wir müssen auf andere Überlegungen zurückgreifen. Wenn wir glauben, dass es sinnvoll ist, die aktuelle Trendschätzung auf das, was in den letzten 20 Perioden passiert ist, zugrunde zu legen, können wir für das LES-Modell mit 945 0,3 und 946 0,1 einen Fall machen. Wenn wir agnostisch sein wollen, ob es einen lokalen Trend gibt, dann könnte eines der SES-Modelle leichter zu erklären sein, und würde auch für die nächsten 5 oder 10 Perioden mehr Mittelprognosen geben. (Rückkehr nach oben.) Welche Art von Trend-Extrapolation am besten ist: horizontal oder linear Empirische Evidenz deutet darauf hin, dass es, wenn die Daten bereits für die Inflation angepasst wurden (wenn nötig), unprätent ist, kurzfristige lineare Werte zu extrapolieren Trends sehr weit in die Zukunft. Die heutigen Trends können sich in Zukunft aufgrund unterschiedlicher Ursachen wie Produktveralterung, verstärkte Konkurrenz und konjunkturelle Abschwünge oder Aufschwünge in einer Branche abschwächen. Aus diesem Grund führt eine einfache exponentielle Glättung oft zu einer besseren Out-of-Probe, als ansonsten erwartet werden könnte, trotz ihrer quotnaivequot horizontalen Trend-Extrapolation. Damped Trendmodifikationen des linearen exponentiellen Glättungsmodells werden in der Praxis häufig auch eingesetzt, um in seinen Trendprojektionen eine Note des Konservatismus einzuführen. Das Dämpfungs-Trend-LES-Modell kann als Spezialfall eines ARIMA-Modells, insbesondere eines ARIMA-Modells (1,1,2), implementiert werden. Es ist möglich, Konfidenzintervalle um langfristige Prognosen zu berechnen, die durch exponentielle Glättungsmodelle erzeugt werden, indem man sie als Spezialfälle von ARIMA-Modellen betrachtet. (Achtung: Nicht alle Software berechnet die Konfidenzintervalle für diese Modelle korrekt.) Die Breite der Konfidenzintervalle hängt ab von (i) dem RMS-Fehler des Modells, (ii) der Art der Glättung (einfach oder linear) (iii) dem Wert (S) der Glättungskonstante (n) und (iv) die Anzahl der Perioden vor der Prognose. Im Allgemeinen breiten sich die Intervalle schneller aus, da 945 im SES-Modell größer wird und sich viel schneller ausbreiten, wenn lineare statt einfache Glättung verwendet wird. Dieses Thema wird im Abschnitt "ARIMA-Modelle" weiter erläutert. (Zurück zum Seitenanfang.) Exponentia l gleitender Durchschnitt Sprungantwort fpga Ich habe ein Problem mit meinem Filter, dem exponentiell gewichteten gleitenden Durchschnittsfilter (IIR 1. Ordnung). Aus dem Buch: Verständnis der digitalen Signalverarbeitung (Lyons Richard) Ich habe die folgende Formel Berechnung der 3dB-Frequenz (fc) aus alpha. Alpha ist der Parameter zur Steuerung des Filters. Differentialgleichung des Filters: ynxnalpha (1 - alpha) yn-1 Beziehung zwischen fc und alpha: alpha cos (2fcfs) - 1 sqrtcos (2fcfs) - 4cos (2fcfs) 3 Wenn ich nun eine 3dB-Frequenz von 0,0794Hz wähle (Zeit (Fs94Hz) Bei einem IIR Filter 1. Ordnung ist die Anstiegszeit (ta) der Stepresponse (von 10 bis 90): ta2,2TC, was zu ta 4,4s führt. Aber wenn ich die Schrittantwort zu simulieren, ist meine Anstiegszeit etwa 3 mal von diesem Wert bei 14s. Ich kann nicht erklären, warum die Sprungantwort meines Filters sich so sehr unterscheidet. Für mein Moving Average Filter ist die berechnete und simulierte Anstiegszeit gleich. Ich habe die vi, die auf dem angeschlossenen FPGA durchgeführt wird. Vielleicht kann jemand einen Fehler finden. (Siehe auch Alpha-Filter oder RC-Filter) Ist Ihre Sampling-Frequenz (fs) richtig Wenn die Loop-Timing nicht übereinstimmt, würde das erklären. Ihre Datentypen sehen gut aus (um Alpha innerhalb von 1 zu erhalten). Aber ich würde vorschlagen, eine kleine Änderung in der Umsetzung. Wie es steht, ist es ein wenig anfällig für abgerundeten Driften, weil (1-alpha) wiederholt mit dem yn-1 multipliziert wird. Eine etwas zuverlässigere Methode heißt yn yn-1 (alpha (xn - yn-1)). Der Unterschied ist subtil, aber gibt mir bessere Ergebnisse oft. Und es eliminiert eine Multiplikation. By the way, reinterpret Zahl tut das Gleiche wie Ihre Konvertierung von FXP zu bool und dann zurück. Es ist ein wenig weniger verwirrend, though. Im ein wenig verwirrt durch die zeitgesteuerte Schleife, die nie Schleifen. Tut es inforce Timing so (ich davon ausgegangen, es wäre nicht, so dass nie verwendet es ich den Loop Timer statt.) CLD User seit rev 8.6. Nachricht 2 von 13 (963 Ansichten) Re: Exponentia l Moving Average Schritt Antwort fpga 10-01-2015 02:05 AM - editiert 10-01-2015 02:17 AM Danke für deine Antwort. 1, ich beweisen meine Sampling-Frequenz mit dem Loop-Timer. Meine Eingabe sind 425.532 Ticks, die gleich 94 Hz ist. Diese Tickrate wird durch Ticks EWMA bestätigt. --gt Vielleicht kann jemand den Code testen und mir sagen, 2, fand ich Ihren Ansatz in den Tricks und Tipps Abschnitt von Lyon Buch. Ich werde einen Versuch machen, aber könnten Sie erklären, die runden abtreiben ein wenig bin ich ganz neu in diesem Bereich. Gibt es einen weiteren Vorteil aus der Beseitigung eines Multiplikators außer ressources Sind die Frequenzantwort, Impulsantwort und Schrittantwort die gleichen 3, wenn ich nur bitshift, bin ich Art ein verwendet, um diese Methode nicht sicher, ob die reinterprate Funktion weniger Ressourcen verwendet. Aber danke, dass du es bemerkt hast. 4, Die zeitgesteuerte Schleife iteriert alle 425.532 Zecken einmal. So wird mit einer Frequenz von 94Hz ein Wert durch den Code berechnet, da der Code innerhalb der zeitgesteuerten Schleife nur eine Iteration benötigt. Oder bin ich missunderstanding Ihre Frage Ich bin nicht sicher, welche weiteren Informationen Sie benötigen. Ich versuche, die Sprungantwort eines gleitenden Durchschnitts mit einem exponentiellen gleitenden Durchschnitt (EWMA) zu vergleichen. Eigentlich möchte ich nur die Theorie bestätigen. Wie ich oben erwähnte, um eine Zeitkonstante von 2s bei einer Abtastrate von 94 Hz zu erhalten, muss alpha 0,00169 sein. Die Anstiegszeit der Sprungantwort von 10 bis 90 des Endwertes unterscheidet sich von der Theorie. Aufstiegzeit sollte 4,4s mit Zeitkonstante 2s sein, aber ich erhalte fast 14s, wenn ich meinen Code auf dem FPGA laufe. Ich bestätigte, dass mit dem Alpha 0,00169 mein Code 1297samples von 0,1 bis 0,9 (Endwert 1, Startwert 0) erhält. Wie Sie in meinem Code sehen können, überprüfe ich die Schleifenzeit mit dem Indikator ticks ewma, um die Abtastrate der SCTL zu bestätigen. Kann jemand anderes die 1297samples bestätigen, die bei alpha benötigt werden 0,00169 Ursache Ich denke, dass ich zu viele Samples benötige um den 0,9 Wert zu erreichen. Ich habe bereits die vorgeschlagene EWMA-Version aus der ersten Antwort. Das gleiche Problem hier. Nachricht 5 von 13 (913 Ansichten) Antworten mit Zitat Beitrag editieren / löschen Diesen Beitrag einem Moderator melden Zum Anfang der Seite springen Meine Eingabe sind 425.532 Ticks, die 94 Hz entspricht. Diese Tickrate wird durch Ticks EWMA bestätigt. --gt Vielleicht kann jemand den Code testen und mir sagen, 2, fand ich Ihren Ansatz in den Tricks und Tipps Abschnitt von Lyon Buch. Ich werde einen Versuch machen, aber könnten Sie erklären, die runden abtreiben ein wenig bin ich ganz neu in diesem Bereich. Gibt es einen weiteren Vorteil aus der Beseitigung eines Multiplikators außer ressources Sind die Frequenzantwort, Impulsantwort und Schrittantwort die gleichen 3, wenn ich nur bitshift, bin ich Art ein verwendet, um diese Methode nicht sicher, ob die reinterprate Funktion weniger Ressourcen verwendet. Aber danke, dass du es bemerkt hast. 4, Die zeitgesteuerte Schleife iteriert alle 425.532 Zecken einmal. So wird mit einer Frequenz von 94Hz ein Wert durch den Code berechnet, da der Code innerhalb der zeitgesteuerten Schleife nur eine Iteration benötigt. Oder bin ich missunderstanding Ihre Frage Ich habe eine Kalkulationstabelle zu simulieren, und erhalten fast genau die gleiche Antwort (1299 Zyklen von 0,1 bis 0,9 gehen). Spreadsheets machen ein praktisches Werkzeug für Berechnungen. 1. Okay. Ich habe noch nie die Single-Cycle-Timed-Loop (SCTL) mit der T geschrieben, um die Haltestelle. Es würde dazu führen, dass die mathematischen Funktionen Single-Zyklus, aber Im nicht sicher, ob das ein Vorteil ist. Ich wollte nur sicherstellen, dass die Zeit bestätigt wurde, und es ist. 2. Die Abrundung wird wahrscheinlich nicht angezeigt, es sei denn, Ihre Eingabe ist klein (kleiner als 0,1). Ich sehe jetzt, dass Sie 40 Bits (39 rechts der Dezimalzahl) für die Rückmeldung haben. Das dauert ziemlich viel FPGA zu multiplizieren, aber nicht rund-off Fragen haben. Andere Teile hatten nur 18 Bits (17 rechts der Dezimalzahl), so dass alpha (0.00169 - .000007) mal eine Eingabe von 0,1 wäre 0.000169 - 0,000007 oder 7 Fehler). Aber das Multiplizieren ist auch 40 Bit, also sollten Sie keine Probleme sehen. Typischerweise hat der Ausgang yn weniger Bits und runden das letzte Bit ab. Aber weil es in einer Schleife Multiplikation mit 1-Alpha jedes Mal, die Round-off manchmal akkumuliert jede Schleife, bis es groß genug ist, um die addiert Ergebnisse beeinflussen. Es ist schwer zu erklären, aber meine allgemeine Faustregel ist, dass ich erwarten, dass ein Fehler gleich dem kleinsten Bit geteilt durch alpha, mit der ursprünglichen Methode oder etwa die Hälfte, dass usint die Ein-Multiplikation-Methode. Die Antworten werden fast identisch sein, mit Ausnahme eines kleinen Unterschieds. Der größte Vorteil ist, FPGA Platz zu sparen (und Kompilierzeit). Und Sie können Ihre Anzahl von Bits etwas reduzieren, um noch mehr zu sparen. 3. Sie sind grundsätzlich identisch. Und beide Methoden sind kostenlos in FPGA. Die Bits arent geändert, so dass keine Logik benötigt wird, sie sind einfach umbenannt. 4. Ich glaube, Sie haben es gut beantwortet. In der Regel, an diesem Punkt würde ich einstellen Alpha, bis meine Ergebnisse, was ich wollte, und weitergehen. Ich hasse es nicht verstehen ein Missverhältnis, aber dont haben in der Regel Zeit, um in sie tauchen. Aber, um der Wissenschaft willen, können wir bedenken, dass Ihre Formel fehlerhaft sein kann. Ich denke, Sie können eine Formel für einen kontinuierlichen exponentiellen Zerfall (e-ttau) verwenden, nicht für einen diskreten exponentiellen Zerfall ((1-alpha) i). Es ist einfacher, dies als eine Schrittfunktion von 1 bis 0 zu betrachten. In diesem Fall ist yn (für ngt0) yn (1-alpha) (n). Wir können n für yn 0.9, als nlog1-alpha (0.9) 62 und n für yn 0.1, als 1361, für eine Differenz von 1299 finden. CLD Benutzer seit rev 8.6. Danke für Ihre ausführliche Antwort. Hinsichtlich des Problems mit der Anstiegszeit glaube ich, dass ich den Fehler gefunden habe. Sie könnten Recht haben, dass die Formel nicht korrekt ist, oder was wohl von mir missverstanden wird und im falschen Kontext steht. Als ich von der Arbeit nach Hause fuhr, erinnerte ich mich an eine praktische Funktion von labview: Glättung von Filterkoeffizienten. vi Hier müssen Sie nur tauTC und fs setzen und Nominator und Nenner für exponentiellen gleitenden Durchschnitt und gleitenden Durchschnitt berechnen. Da der Nominator alpha ist, könnte ich das Ergebnis mit der Formel vergleichen, die ich verwendet habe, und es gab einen gewissen Unterschied. Labview verwendet die folgende Formel: alpha1-exp (-1 (fsTC)). Mit dieser Formel ist TC2s gleich alpha0,0053. Und mit diesem Alpha meine Simulation funktioniert Risetime 4,4s Zitieren Sie: In der Regel, an diesem Punkt würde ich einstellen Alpha, bis meine Ergebnisse, was ich wollte, und gehen weiter. Ich würde gerne das gleiche tun, aber da dies meine Masterarbeit ist, muss ich solche Dinge jetzt wieder auf die Rundung Fragen zu lösen. Ich verstehe, dass kleine Werte ein größeres Problem sind. Da dieser Filter in einem Lock-In verwendet wird, werden die Werte WIRKLICH klein sein. Aber ich habe es bereits auf unserem Messgerät getestet und es funktioniert, dafür werde ich deine Version auch testen, aber wenn ich keine Probleme bekomme, schätze ich es bei 40bits. Die Simulation des folgenden Setups verursachte einen Fehler von 2.3. Mit 57 Bits reduzierte den Fehler auf unter 1. Ich denke, 40bits sollte genug sein. Und in Bezug auf die Ressourcen habe ich keine Sorgen. Obwohl mit einem Myrio am Ende habe ich noch eine Menge DSP Slices für die Multiplikation und 10 gratis FlipFlops. Also ich denke, dieses Thema ist gelöst. Dank für Ihre große Hilfe und interessante Gedanken. Cool Im froh, seine Arbeit, jetzt. Ich wuchs in der Ära ohne DSP-Scheiben in FPGAs und kleinere Zellenzahlen, so immer noch dazu neigen, in diesen Begriffen zu denken. Ich bevorzuge immer noch, 25 Minuten Programmierung zu verbringen, um meine Kompilierzeiten nach unten, though. Ive hatte Fälle, in denen ich Schnitt kompilieren Zeit von 90 Minuten bis 45 Minuten durch Optimierung ziemlich viel. Mit einem leistungsfähigen Server für das Kompilieren, das ist weniger wichtig. Eine dieser Optimierungen ist, Bit-Zählungen zu reduzieren, wo ich kann, vor allem für Multiplikationen. Beispielsweise ist alpha 160 und für 0,0053 können Sie auch 12-4 (negative Integerzahl) verwenden. Sie können auch in der Lage, eine Menge von oberen Bits aus Ihrer Eingabe zu beseitigen. 5 Minuten, um die kleinste Bit-Zählung holen kann leicht zu speichern 2-10 Minuten für jedes Kompilieren. Meine zweite Optimierung ist, Multiplikationen zu reduzieren, aber mit einem DSP-Slice, das ist nicht so wichtig. Ich kippe finde gute Dokumentation über die DSP-Scheiben (wenn Sie einige haben, bitte Pfostenverbindungen), aber, wie ich es verstehe, wenn Sie größere Zahlen (Bitzählimpulse) vermehren, benötigt es mehrfache Scheiben und möglicherweise Zeit, die Resultate zu kombinieren. Und ein weiterer Trick: Wählen Sie ein Alpha mit einem einfachen binären Wert, wie 1256 (Sie ausgewählt über 1189), und ändern Sie fs, bis Sie die gewünschte Glättung erhalten. Verwenden Sie dann eine Konstante für alpha. Multiplizieren mit einer konstanten 1256 ist im FPGA frei (es verschiebt nur die Bits). Für diese Angelegenheit, die Herstellung Alpha-Konstante kann optimieren die Multiplikationen ziemlich viel. Abhängig von den Smarts des Optimierers kann es stattdessen zu einem Satz von Addierern geändert werden. Front-Panel-Eingänge sind großartig für die Dinge zu arbeiten, aber Konstanten optimieren viel besser. CLD Benutzer seit rev 8.6. Wenn Sie durchschnittlich 16 mal so viele Samples (fs 16x was es war), sollten Sie 4 weitere Bits in Ihr Feedback. Sie haben bereits pleanty, so dass möglicherweise nicht wichtig, wenn Sie viel schneller gehen. Ansonsten ist die Erhöhung fs wahrscheinlich gut. Wenn der Eingang hat Niederfrequenz-Rauschen, über Sampling nicht helfen, beseitigen, dass überhaupt. Das Hochfrequenzrauschen verringert sich jedoch bei einer Überabtastung. Wenn zum Beispiel das Rauschen über 10Hz -5dB (das ist das 10- .5-fache der Amplitude des Signals, das Sie mögen), und Sie Probe bei 20Ss, werden Sie wahrscheinlich abholen -5dB in Ihrem ersten Lesungen. Wenn Ihr -3dB (fc) ist auch 10Hz, dann youll am Ende mit rund -8dB Rauschen in Ihrem Signal links. Wenn Sie stattdessen 200s nehmen, durchschnittliche Gruppen von 10, dann diese Durchschnitte an den Filter weitergeben, werden Sie nicht helfen, Rauschen bei 10Hz (Sie wurden 10Hz Rauschen ohne Sampling-Effekte messen), sondern reduziert Rauschen über 100Hz um etwa einen Faktor der Nähe (Aber nicht wirklich) 10. Es gibt ganze Semester-lange Klassen, die diskutieren, warum, wie, etc. Die kurze Version ist dies: Jedes Sample ist die Summe aus dem gewünschten Signal und Rauschen. Wenn Sie 10 Samples hinzufügen, erhalten Sie 10x das gewünschte Signal und die Summe von 10 Rauschen. Die Art des Rauschens bestimmt, was Sie erhalten, wenn Sie die 10 Samples von Rauschen hinzufügen. Gauss-Rauschen fügt einen Weg hinzu (so etwa: Wenn 83 von Proben unter X liegen, hat die Summe 83 Summen unter 1.1X oder so ähnlich). Lineares Rauschen fügt einen anderen Weg. Und wiederholen Muster hinzufügen einen anderen Weg. Also, ohne genau zu wissen, was der Lärm ist, kann niemand Sie mit Sicherheit beantworten, außer dass Mittelung mehrere Proben wahrscheinlich hilft, und fast nie weh tut. Es gibt auch die Frage des Aliasing. Wenn Sie eine Sinus-Interferenz von 60Hz haben, bei -3dB, und Sie Probe bei 10.001Ss (immer davon ausgehen, die Uhren passt nicht genau), erhalten Sie etwas wie 0.006Hz bei -3dB hinzugefügt, um Ihr Signal, und Ihr Filter wird es nicht entfernen . Aber stoßen Sie Ihre Sample-Rate auf 100.001Ss, wird die Interferenz auf etwa 40Hz, so dass Ihr Filter sollte es zu beseitigen. Mittelung von 10 Proben zu einem Zeitpunkt ist eine Art von Filter (Feld). Wenn Sie es in einem Frequenzbereich betrachten, können Sie sehen, dass einige höhere Frequenzen zu niedrigeren Frequenzen auf eine ungerade Weise verschoben werden, und nicht alle werden reduziert. Wenn Sie durchschnittlich 4000 Ss, 100 zu einer Zeit, youll erhalten eine durchschnittliche 40 Mal pro Sekunde. Mit 60Hz Interferenz, erhalten Sie etwa 13 so viel Rauschen, verschoben auf 20Hz, die nicht Filter sowie 60Hz haben würde. So wäre es besser, den EWMA-Filter mit der höheren Abtastrate zu verwenden. Als zu durchschnittlichen Blöcken von Eingängen, dann filtern. Und die Mittelung ist (wahrscheinlich) besser als nur eine langsamere Abtastrate. Wenn Sie einen Eingangsadapter mit eingebauten elektronischen Filtern haben, ist das sogar besser, und es gibt keine Notwendigkeit, mehr als 2x die Filterfrequenz zu probieren. CLD Benutzer seit rev 8.6.


No comments:

Post a Comment