Ist es möglich, einen gleitenden Durchschnitt in C ohne die Notwendigkeit für ein Fenster von Samples zu implementieren. Ich habe festgestellt, dass ich ein bisschen optimieren kann, indem ich eine Fenstergröße, die eine Kraft von zwei, um Bit-Verschiebung statt zu teilen, aber Nicht brauchen einen Puffer wäre nett Gibt es eine Möglichkeit, ein neues gleitendes durchschnittliches Ergebnis nur als eine Funktion des alten Ergebnisses und der neuen Probe auszudrücken. Define ein Beispiel gleitenden Durchschnitt, über ein Fenster von 4 Samples zu sein. Add neue Probe eA Gleitender Durchschnitt kann rekursiv umgesetzt werden, aber für eine genaue Berechnung des gleitenden Mittelpunktes musst du dich an den ältesten Input-Sample in der Summe erinnern, dh der a in deinem Beispiel Für eine Länge N gleitenden Durchschnitt berechnen Sie, wo yn das Ausgangssignal und xn ist Ist das Eingangssignal Eq 1 kann rekursiv geschrieben werden. So müssen Sie sich immer an die Probe x nN erinnern, um zu berechnen 2.As, die von Conrad Turner angezeigt werden, können Sie ein unendlich langes exponentielles Fenster verwenden, das Ihnen erlaubt, zu berechnen Die Ausgabe nur aus der Vergangenheit Ausgang und die aktuelle input. but dies ist nicht ein Standard ungewichtet gleitenden Durchschnitt, sondern ein exponentiell gewichtet gleitenden Durchschnitt, wo Proben weiter in der Vergangenheit erhalten ein kleineres Gewicht, aber zumindest in der Theorie Sie nie vergessen, die Gewichte Nur kleiner und kleiner für Proben weit in der Vergangenheit. Ich habe einen gleitenden Durchschnitt ohne individuellen Element Speicher für ein GPS-Tracking-Programm, das ich schrieb. Ich beginne mit 1 Probe und teilen durch 1, um die aktuelle avg. I dann fügen Sie anothe Probe und Teilen sich mit 2 auf die aktuelle avg. Dies geht weiter, bis ich auf die Länge des durchschnittlichen. Jede Zeit später, füge ich in die neue Probe, bekomm den Durchschnitt und entfernen Sie diesen Durchschnitt aus der total. Ich bin kein Mathematiker aber das Schien wie ein guter Weg, um es zu tun Ich dachte, es würde den Magen eines echten Mathe-Kerl drehen, aber es stellt sich heraus, es ist eine der akzeptierten Möglichkeiten, es zu tun Und es funktioniert gut Nur daran erinnern, dass je höher Ihre Länge, je langsamer es ist Nach dem, was du dir folgen möchtest, das kann die meiste Zeit nicht ausmachen, aber wenn du Satelliten verfolgst, wenn du langsam bist, könnte der Weg weit von der tatsächlichen Position entfernt sein und es wird schlecht aussehen Du könntest eine Lücke zwischen dem Sat und den hinteren Punkten haben Ich wählte eine Länge von 15 aktualisiert 6 mal pro Minute, um ausreichende Glättung und nicht zu weit von der tatsächlichen Sat-Position mit dem geglätteten Pfad dots. answered 16. November 16 um 23 03.initialize insgesamt 0, zählen 0 jedes Mal sehen ein neues Value. Then eine Eingabe scanf, man add add total newValue, eine Inkrementzählung, eine geteilte durchschnittliche Gesamtzählung. Dies wäre ein gleitender Durchschnitt über allen inputs. To, um den Durchschnitt über nur die letzten 4 Eingänge zu berechnen, würde 4 Eingabevariablen erfordern, vielleicht kopieren Jeder Eingang zu einem älteren Eingang variabel, dann die Berechnung der neuen gleitenden Durchschnitt als Summe der 4 inputvariables, geteilt durch 4 richtige Verschiebung 2 wäre gut, wenn alle Eingänge waren positiv, um die durchschnittliche Berechnung. Erwerben 3. Februar 15 um 4 06.That Wird tatsächlich den Gesamtdurchschnitt berechnen und NICHT der gleitende Durchschnitt Wenn der Zählwert größer wird, wird der Einfluss einer neuen Eingabeprobe verschwindend klein Hilmar 3. Februar 15 um 13 53. Ihre Antwort.2017 Stack Exchange, Inc. Ich weiß, dass dies mit Boost erreichbar ist Per. But aber ich möchte wirklich vermeiden, Boost Ich habe gegoogelt und nicht gefunden, alle geeigneten oder lesbaren Beispiele. Basically Ich möchte den gleitenden Durchschnitt eines laufenden Streams von einem Strom von Gleitkommazahlen mit den neuesten 1000 Zahlen als Datenprobe. Was ist der einfachste Weg, dies zu erreichen. Ich experimentierte mit der Verwendung eines kreisförmigen Arrays, exponentiell gleitenden Durchschnitt und ein einfacher gleitender Durchschnitt und festgestellt, dass die Ergebnisse aus dem kreisförmigen Array zu meinen Bedürfnissen am besten gemacht wurde 12. Juni 12 bei 4 38.Wenn Ihre Bedürfnisse einfach sind, können Sie einfach versuchen, einen exponentiellen gleitenden Durchschnitt zu verwenden. Einfach nur, Sie machen eine Akkumulator-Variable, und wie Ihr Code bei jedem Sample sieht, aktualisiert der Code den Akkumulator mit dem neuen Wert Sie wählen eine konstante Alpha, die Ist zwischen 0 und 1, und berechnen dies. Sie müssen nur einen Wert von Alpha, wo die Wirkung einer bestimmten Probe nur für etwa 1000 Proben. Hmm dauern, ich bin nicht wirklich sicher, dass dies für Sie geeignet ist, jetzt, dass ich ve Setzen Sie es hier Das Problem ist, dass 1000 ein ziemlich langes Fenster für einen exponentiellen gleitenden Durchschnitt ist Ich bin mir nicht sicher, dass es ein Alpha gibt, das den Durchschnitt über die letzten 1000 Zahlen verbreiten würde, ohne Unterlauf in der Gleitkomma-Berechnung Aber wenn man einen kleineren wollte Durchschnitt, wie 30 Zahlen oder so, das ist eine sehr einfache und schnelle Art und Weise zu tun it. answered Jun 12 12 bei 4 44. 1 auf deinem Post Der exponentielle gleitende Durchschnitt kann das Alpha variabel sein. So läßt dies auch verwendet werden Berechnen von Zeitbasis-Mittelwerten zB Bytes pro Sekunde Wenn die Zeit seit dem letzten Akkumulator-Update mehr als 1 Sekunde beträgt, lassen Sie alpha 1 1 sein. Andernfalls können Sie alpha be usecs seit letzter Aktualisierung 1000000 jxh Jun 12 12 at 6 21.Basically I Wollen den gleitenden Durchschnitt eines laufenden Stroms eines Stroms von Gleitkommazahlen mit den neuesten 1000 Zahlen als Datenbeispiel verfolgen. Hinweis, dass die unten die Gesamtsumme als Elemente als addiert ersetzt, vermeidet kostspielige ON-Traversal, um die Summe zu berechnen, Benötigt für den Durchschnitt - auf Nachfrage. Total ist ein anderer Parameter von T zu unterstützen, z. B. mit einer langen langen, wenn insgesamt 1000 lange s, ein int für char s oder ein doppeltes zu total float s. This ist ein bisschen fehlerhaft in diesem Numsamples könnten an INTMAX vorbeikommen - wenn Sie sich vorstellen können, dass Sie eine vorzeichenlose lange lange benutzen oder ein zusätzliches bool Datenelement verwenden können, um aufzuzeichnen, wann der Container zum ersten Mal gefüllt wird, während Sie Numsamples um das Array herumfahren, dann umbenannt etwas Unschuldiges wie pos. answered Jun 12 12 at 5 19.in nehme an, dass void Operator T Probe tatsächlich void Operator T Probe oPless Jun 8 14 bei 11 52. oPless ahhh gut gefleckt eigentlich ich bedeutete dafür, dass es void Betreiber T Probe, aber natürlich könnten Sie verwenden, was Notation Sie mochten Will Fix, danke Tony D Juni 8 14 bei 14 27.Embedded C Jobs. Embedded C Job Vacancy Trend. Die Job-Posting-Trend der Arbeitsplätze angeführt zitiert Embedded C als Anteil aller permanenten oder Vertrag IT-Jobs mit einem Spiel in der Kategorie Programmierung Sprachen. Embedded C Gehalt Trend. Dieses Diagramm bietet die 3-Monats-Gleitender Durchschnitt für Gehälter in permanenten IT-Jobs zitiert eingebettet C. Embedded C Gehalt Histogramm. Die Gehaltsverteilung von IT-Jobs zitiert Embedded C über die 3 Monate bis 13. März 2017.Embedded C Top 30 Job Locations. Die untenstehende Tabelle sieht die Nachfrage und bietet einen Leitfaden für die Median Gehälter in IT-Jobs zitiert Embedded C innerhalb des Vereinigten Königreichs über die 3 Monate bis 13. März 2017 Die Rank Change Spalte gibt einen Hinweis auf die Änderung in Nachfrage innerhalb jedes Standorts auf der Grundlage der gleichen 3 Monate Zeitraum im vergangenen Jahr. Rank Änderung auf gleiche Periode Letztes Jahr. Matching Permanent IT Job Ads. Median Gehalt Letzten 3 Monate.
Comments
Post a Comment