Friday 17 March 2017

Beweglicher Mittlerer Algorithmus C

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 für Bit-Verschiebung statt zu teilen, aber nicht brauchen zu ermöglichen Ein Puffer wäre schön. Gibt es eine Möglichkeit, ein neues gleitendes Durchschnittsergebnis nur als Funktion des alten Ergebnisses und des neuen Beispiels auszudrücken, definieren Sie einen beispielhaften gleitenden Durchschnitt in einem Fenster von 4 Proben: Add new sample e: Ein gleitender Durchschnitt kann rekursiv implementiert werden , Aber für eine exakte Berechnung des gleitenden Durchschnitts müssen Sie sich an die älteste Eingangsabfrage in der Summe (dh die a in Ihrem Beispiel) erinnern. 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). Initialize total 0, count0 (jedes Mal, wenn ein neuer Wert angezeigt wird) Dann ein Eingang (scanf), ein add totalnewValue, ein Inkrement (count), ein Divide-Durchschnitt (total / count) Dies wäre ein gleitender Durchschnitt über alle Eingänge Als nur die letzten 4 Eingänge, würde 4 Inputvariablen, vielleicht kopieren Sie jeden Eingang zu einer älteren inputvariable, dann die Berechnung der neuen gleitenden Durchschnitt als Summe der 4 Inputvariablen, geteilt durch 4 (rechte Verschiebung 2 wäre gut, wenn alle Eingänge waren Ich bin auf der Suche nach einem effizienten Weg, um seine Zeit gewichteten Durchschnitt über ein Zeitfenster, in real zu berechnen Ich kann es selbst tun, aber es ist schwieriger als ich dachte, die meisten der Ressourcen, die ich über das Internet gefunden habe, berechnen den gleitenden Durchschnitt des periodischen Signals, aber meine Updates zufällig Trick ist die folgende: Sie erhalten Updates zu zufälligen Zeiten über void update (int Zeit, float-Wert). Allerdings müssen Sie auch nachverfolgen, wenn ein Update fällt aus dem Zeitfenster, so dass Sie einen Alarm, der bei der Zeit N, die die vorherige Aktualisierung entfernt wird immer wieder in der Berechnung berücksichtigt. Wenn dies in Echtzeit geschieht, können Sie das Betriebssystem anfordern, einen Aufruf einer Methode void dropoffoldestupdate (int time) aufzurufen, die zum Zeitpunkt N aufgerufen werden soll. Wenn es sich um eine Simulation handelt, können Sie keine Hilfe vom Betriebssystem bekommen und müssen dies tun Tun Sie es manuell. In einer Simulation würden Sie Methoden mit der angegebenen Zeit als Argument aufrufen (was nicht mit der Echtzeit korreliert). Eine vernünftige Annahme ist jedoch, dass die Anrufe so gewartet werden, dass die Zeitargumente zunehmen. In diesem Fall müssen Sie eine sortierte Liste der Alarmzeitwerte pflegen und bei jedem Aktualisierungs - und Leseaufruf überprüfen, ob das Zeitargument größer ist als der Kopf der Alarmliste. Während es größer ist, tun Sie die alarmbezogene Verarbeitung (Drop off der ältesten Aktualisierung), entfernen Sie den Kopf und überprüfen Sie erneut, bis alle Alarme vor der angegebenen Zeit verarbeitet werden. Anschließend den Update-Aufruf durchführen. Ich habe bis jetzt angenommen, dass es offensichtlich ist, was Sie für die tatsächliche Berechnung tun würden, aber ich erarbeiten gerade für den Fall. Ich nehme an, Sie haben eine Methode float read (int Zeit), die Sie verwenden, um die Werte zu lesen. Das Ziel ist, diesen Anruf so effizient wie möglich zu machen. So berechnen Sie den gleitenden Durchschnitt nicht jedes Mal, wenn die Lesemethode aufgerufen wird. Stattdessen müssen Sie den Wert der letzten Aktualisierung oder des letzten Alarms vorberechnen und diesen Wert durch ein paar Gleitkommaoperationen anpassen, um die Zeit seit der letzten Aktualisierung zu berücksichtigen. (D. h. eine konstante Anzahl von Operationen, außer dass möglicherweise eine Liste von aufgestauten Alarmen verarbeitet wird). Hoffentlich ist dies klar - das sollte ein ganz einfacher Algorithmus und sehr effizient sein. Weitere Optimierung. Einer der verbleibenden Probleme ist, wenn eine große Anzahl von Updates innerhalb des Zeitfensters auftreten, dann gibt es eine lange Zeit, für die es weder liest noch Updates, und dann ein Lesen oder Update kommt entlang. In diesem Fall ist der obige Algorithmus ineffizient, wenn der Wert für jedes der Aktualisierungen, die herunterfallen, inkremental aktualisiert wird. Dies ist nicht notwendig, weil wir nur kümmern uns um die letzte Aktualisierung über das Zeitfenster so, wenn es einen Weg, um effizient drop off alle älteren Updates, würde es helfen. Um dies zu tun, können wir den Algorithmus ändern, um eine binäre Suche nach Updates durchzuführen, um das neueste Update vor dem Zeitfenster zu finden. Wenn es relativ wenige Updates gibt, die gelöscht werden müssen, kann man den Wert für jede heruntergelassene Aktualisierung inkremental aktualisieren. Aber, wenn es viele Updates gibt, die gelöscht werden müssen, dann kann man den Wert vom Kratzer neu berechnen, nachdem er weg von den alten Updates. Anhang auf Inkrementelle Berechnung: Ich sollte klären, was ich meine durch inkrementelle Berechnung oben in den Satz zwicken diesen Wert durch ein paar Gleitkomma-Operationen, um für den Ablauf der Zeit seit dem letzten Update. Initiale nicht-inkrementale Berechnung: dann über die relevanten Daten in der Reihenfolge der zunehmenden Zeit iterieren: movingaverage (sum lastupdate timesincelastupdate) / windowlength. Nun, wenn genau ein Update fällt aus dem Fenster, aber keine neuen Aktualisierungen ankommen, stellen Sie die Summe als: (beachten Sie, es ist Priorupdate, deren Timestamp geändert, um den Beginn der letzten Fenster beginnt). Und wenn genau ein Update in das Fenster eintritt, aber keine neuen Updates abfallen, passen Sie die Summe als an: Wie offensichtlich sein sollte, ist dies eine grobe Skizze, aber hoffentlich zeigt es, wie Sie den Durchschnitt so halten können, dass es O (1) Operationen pro Update ist Auf amortisierte Basis. Aber beachten Sie weitere Optimierung im vorherigen Absatz. Beachten Sie auch Stabilitätsprobleme, auf die in einer älteren Antwort hingewiesen wird, was bedeutet, dass Gleitkomma-Fehler über eine große Anzahl derartiger Inkrementierungsoperationen akkumulieren können, so dass es eine Abweichung von dem Ergebnis der Vollberechnung gibt, die für die Anwendung signifikant ist. Wenn eine Annäherung OK und theres eine minimale Zeit zwischen Proben ist, könnten Sie versuchen, Super-Sampling. Sie haben ein Array, das gleichmäßig beabstandete Zeitintervalle repräsentiert, die kürzer als das Minimum sind, und zu jedem Zeitpunkt die letzte empfangene Probe speichern. Je kürzer das Intervall, desto näher ist der Mittelwert auf den wahren Wert. Der Zeitraum sollte nicht größer als die Hälfte des Minimums sein, oder es besteht die Möglichkeit, eine Stichprobe zu fehlen. Antwortete Dec 15 11 at 18:12 antwortete 15 Dez, um 22:38 Uhr Danke für die Antwort. Eine Verbesserung, die erforderlich wäre, um tatsächlich Quotecachequot den Wert des Gesamtdurchschnitts, so dass wir don39t Schleife die ganze Zeit. Auch kann es ein kleiner Punkt sein, aber wäre es nicht effizienter, ein deque oder eine Liste zu verwenden, um den Wert zu speichern, da wir davon ausgehen, dass die Aktualisierung in der richtigen Reihenfolge kommen wird. Einfügen wäre schneller als in der Karte. Ndash Arthur Ja, Sie könnten den Wert der Summe zwischenspeichern. Subtrahieren Sie die Werte der Proben, die Sie löschen, fügen Sie die Werte der Proben, die Sie einfügen. Auch, ja, ein dequeltpairltSample, Dategtgt könnte effizienter sein. Ich wählte Karte für Lesbarkeit, und die Leichtigkeit der Aufruf der Karte :: upperbound. Wie immer, schreiben Sie den richtigen Code zuerst, dann Profil und messen inkrementelle Änderungen. Ndash Rob Dez 16 11 um 15:00 Hinweis: Anscheinend ist dies nicht der Weg, um dies zu nähern. Lassen Sie es hier als Referenz auf, was ist falsch mit diesem Ansatz. Überprüfen Sie die Kommentare. AKTUALISIERT - basierend auf Olis Kommentar. Nicht sicher über die Instabilität, dass er aber reden. Verwenden Sie eine sortierte Karte der Ankunftszeiten gegen Werte. Bei der Ankunft eines Wertes addieren Sie die Ankunftszeit zur sortierten Karte zusammen mit ihrem Wert und aktualisieren Sie den gleitenden Durchschnitt. Warnung dies ist Pseudocode: Dort. Nicht vollständig ausgefuellt, aber Sie bekommen die Idee. Dinge zu beachten. Wie ich schon sagte ist Pseudocode. Youll Notwendigkeit, eine passende Karte zu wählen. Entfernen Sie nicht die Paare, während Sie iterieren, indem Sie den Iterator ungültig machen und müssen wieder neu starten. Siehe Olis Kommentar unten auch. Antwort # 2 am: Dezember 15, 2010, um 12:22 Uhr Dies doesn39t Arbeit: es doesn39t berücksichtigen, welcher Anteil der Fensterlänge jeder Wert für vorhanden ist. Auch dieser Ansatz der Addition und dann Subtraktion ist nur stabil für Ganzzahl-Typen, nicht Floaten. Ndash Oliver Charlesworth OliCharlesworth - sorry Ich habe einige wichtige Punkte in der Beschreibung (doppelt und zeitgewichtet) verpasst. Ich werde aktualisieren. Vielen Dank. Ndash Dennis Dec 15 11 at 12:33 Die Zeitgewichtung ist ein weiteres Problem. Aber das ist nicht das, worüber ich rede. Ich bezog sich auf die Tatsache, dass, wenn ein neuer Wert zuerst das Zeitfenster betritt, sein Beitrag zum Durchschnitt minimal ist. Ihr Beitrag steigt, bis ein neuer Wert eintritt. Ndash Oliver Charlesworth Dez 15 11 um 12: 35Moving Durchschnitt - MA BREAKING DOWN Moving Average - MA Als SMA-Beispiel betrachten Sie eine Sicherheit mit den folgenden Schlusskursen über 15 Tage: Woche 1 (5 Tage) 20, 22, 24, 25, 23 Woche 2 (5 Tage) 26, 28, 26, 29, 27 Woche 3 (5 Tage) 28, 30, 27, 29, 28 Eine 10-tägige MA würde die Schlusskurse für die ersten 10 Tage als erste auswerten Datenpunkt. Der nächste Datenpunkt würde den frühesten Preis senken, den Preis am Tag 11 addieren und den Durchschnitt nehmen, und so weiter, wie unten gezeigt. Wie bereits erwähnt, verzögert MAs die aktuelle Preisaktion, weil sie auf vergangenen Preisen basieren, je länger der Zeitraum für die MA ist, desto größer ist die Verzögerung. So wird ein 200-Tage-MA haben eine viel größere Verzögerung als eine 20-Tage-MA, weil es Preise für die letzten 200 Tage enthält. Die Länge des zu verwendenden MA hängt von den Handelszielen ab, wobei kürzere MAs für den kurzfristigen Handel und längerfristige MAs eher für langfristige Anleger geeignet sind. Die 200-Tage-MA ist weithin gefolgt von Investoren und Händlern, mit Pausen über und unter diesem gleitenden Durchschnitt als wichtige Trading-Signale. MAs auch vermitteln wichtige Handelssignale auf eigene Faust, oder wenn zwei Durchschnitte überqueren. Eine steigende MA zeigt an, dass die Sicherheit in einem Aufwärtstrend liegt. Während eine sinkende MA zeigt, dass es in einem Abwärtstrend ist. In ähnlicher Weise wird das Aufwärtsmoment mit einem bulligen Crossover bestätigt. Die auftritt, wenn eine kurzfristige MA über einem längerfristigen MA kreuzt. Abwärts-Momentum wird mit einem bärischen Übergang bestätigt, der auftritt, wenn ein kurzfristiges MA-Kreuz unter einem längerfristigen MA. Closer Blick auf den erweiterten CODAS Moving Average Algorithmus Vielseitiger gleitender Durchschnitt in Advanced CODAS-Algorithmus filtert Wellenformrauschen, extrahiert Mittelwert und Eliminiert Baseline Drift. Der gleitende Durchschnitt ist eine einfache mathematische Technik, die primär zur Beseitigung von Aberrationen verwendet wird und den tatsächlichen Trend in einer Sammlung von Datenpunkten offenbart. Sie könnten mit ihm aus der Mittelung lärmender Daten in einem Neuling Physik-Experiment oder aus der Verfolgung der Wert einer Investition vertraut sein. Sie wissen vielleicht nicht, dass der gleitende Durchschnitt auch ein Prototyp des endlichen Impulsantwortfilters ist, der häufigste Filtertyp, der in der computerbasierten Instrumentierung verwendet wird. In Fällen, in denen eine gegebene Wellenform mit Rauschen überlagert ist, wo ein Mittel aus einem periodischen Signal extrahiert werden muss oder wenn eine langsam driftende Grundlinie aus einem Signal höherer Frequenz eliminiert werden muss, kann ein gleitender Durchschnittsfilter angewendet werden, um das gewünschte zu erzielen Ergebnis. Der gleitende Durchschnittsalgorithmus von Advanced CODAS bietet diese Art der Wellenformfilterleistung. Advanced CODAS ist ein Analyse-Softwarepaket, das auf vorhandenen Wellenformdateien arbeitet, die von WinDaq oder WinDaq-Datenerfassungspaketen der zweiten Generation erstellt wurden. Zusätzlich zu dem gleitenden durchschnittlichen Algorithmus enthält Advanced CODAS auch ein Berichtsgenerator-Dienstprogramm und Software-Routinen für Wellenformintegration, Differenzierung, Peak - und Tal-Erfassung, Rektifikation und arithmetische Operationen. Moving Average Filter Theorie DATAQ Instruments Moving Average Algorithmus ermöglicht eine große Flexibilität in Wellenform-Filter-Anwendungen. Es kann als Tiefpaßfilter verwendet werden, um das Rauschen, das bei vielen Arten von Wellenformen anliegt, oder als Hochpaßfilter zu dämpfen, um eine Drift-Grundlinie von einem Signal höherer Frequenz zu eliminieren. Das Verfahren, das von dem Algorithmus verwendet wird, um die Filtermenge zu bestimmen, beinhaltet die Verwendung eines Glättungsfaktors. Dieser Glättungsfaktor, der von Ihnen durch die Software gesteuert wird, kann erhöht oder verringert werden, um die Anzahl der tatsächlichen Wellenformdatenpunkte oder Abtastwerte anzugeben, die der gleitende Durchschnitt überspannt. Jede periodische Wellenform kann als eine lange Zeichenkette oder Sammlung von Datenpunkten gedacht werden. Der Algorithmus führt einen gleitenden Durchschnitt durch, indem er zwei oder mehr dieser Datenpunkte aus der erfassten Wellenform abgibt, addiert, ihre Summe durch die Gesamtanzahl der hinzugefügten Datenpunkte dividiert und den ersten Datenpunkt der Wellenform durch den gerade berechneten Durchschnitt ersetzt Wiederholen der Schritte mit den zweiten, dritten und so weiter Datenpunkten, bis das Ende der Daten erreicht ist. Das Ergebnis ist eine zweite oder erzeugte Wellenform, die aus den gemittelten Daten besteht und die gleiche Anzahl von Punkten wie die ursprüngliche Wellenform aufweist. Abbildung 1 8212 Jede periodische Wellenform kann als eine lange Zeichenkette oder Sammlung von Datenpunkten gedacht werden. In der obigen Darstellung werden konsekutive Wellenformdatenpunkte durch quotyquot dargestellt, um zu veranschaulichen, wie der gleitende Durchschnitt berechnet wird. In diesem Fall wurde ein Glättungsfaktor von drei angewandt, was bedeutet, dass drei aufeinander folgende Datenpunkte aus der ursprünglichen Wellenform hinzugefügt werden, wobei ihre Summe durch drei geteilt wird, und dann wird dieser Quotient als der erste Datenpunkt einer erzeugten Wellenform aufgetragen. Der Vorgang wiederholt sich mit den zweiten, dritten und anderen Datenpunkten der ursprünglichen Wellenform, bis das Ende der Daten erreicht ist. Eine spezielle Quotientierquot-Technik misst die Anfangs - und Enddatenpunkte der ursprünglichen Wellenform, um sicherzustellen, dass die erzeugte Wellenform die gleiche Anzahl von Datenpunkten wie die Vorlage enthält. Fig. 1 zeigt, wie der gleitende Mittelalgorithmus auf Wellenformdatenpunkte (die durch y dargestellt werden) angewendet wird. Die Abbildung zeigt einen Glättungsfaktor von 3, was bedeutet, dass der Durchschnittswert (dargestellt durch a) über 3 aufeinanderfolgende Wellenformdatenwerte berechnet wird. Beachten Sie die Überlappung, die in den gleitenden Durchschnittsberechnungen vorhanden ist. Es ist diese überlappende Technik, zusammen mit einer speziellen Anfangs - und Endpunktbehandlung, die die gleiche Anzahl von Datenpunkten in der gemittelten Wellenform erzeugt, wie sie im Original existiert. Die Art und Weise, wie der Algorithmus einen gleitenden Durchschnitt berechnet, verdient einen genaueren Blick und kann an einem Beispiel veranschaulicht werden. Sagen wir haben auf einer Diät für zwei Wochen und wir wollen unser durchschnittliches Gewicht in den letzten 7 Tagen zu berechnen. Wir würden unser Gewicht an Tag 7 mit unserem Gewicht an den Tagen 8, 9, 10, 11, 12 und 13 summieren und dann mit 1/7 multiplizieren. Zur Formalisierung des Prozesses läßt sich dies folgendermaßen ausdrücken: a (7) 1/7 (y (7) y (8) y (9) y (13) Diese Gleichung kann weiter verallgemeinert werden. Der gleitende Mittelwert einer Wellenform kann folgendermaßen berechnet werden: wobei: ein gemittelter Wert n Datenpunktposition s Glättungsfaktor y aktueller Datenpunktwert Bild 2 8212 Die Ausgangswellenform der Kraftmesszelle, die im oberen Kanal als Original und ungefiltert dargestellt ist, und als ein 11-Punkt Gemittelte Wellenform im unteren Kanal. Das Rauschen, das auf der ursprünglichen Wellenform auftritt, war auf die intensiven Vibrationen zurückzuführen, die durch die Presse während des Verpackungsvorgangs erzeugt wurden. Der Schlüssel zu dieser Algorithmenflexibilität ist sein breites Spektrum an auswählbaren Glättungsfaktoren (von 2 - 1.000). Der Glättungsfaktor bestimmt, wie viele tatsächliche Datenpunkte oder Proben gemittelt werden sollen. Das Angeben eines positiven Glättungsfaktors simuliert einen Tiefpaßfilter, während ein negativer Glättungsfaktor ein Hochpassfilter simuliert. Bei dem Absolutwert des Glättungsfaktors gelten bei höheren Werten grßere Glättungsbeschränkungen für die resultierende Wellenform und umgekehrt niedrigere Werte weniger Glättung. Mit der Anwendung des geeigneten Glättungsfaktors kann der Algorithmus auch verwendet werden, um den Mittelwert einer gegebenen periodischen Wellenform zu extrahieren. Ein höherer positiver Glättungsfaktor wird typischerweise angewendet, um mittlere Wellenformwerte zu erzeugen. Anwenden des Moving Average Algorithmus Ein herausragendes Merkmal des gleitenden Durchschnittsalgorithmus ist, dass es viele Male auf die gleiche Wellenform angewendet werden kann, um das gewünschte Filterergebnis zu erhalten. Waveform-Filterung ist eine sehr subjektive Übung. Was möglicherweise eine richtig gefilterte Wellenform zu einem Benutzer sein kann, kann unannehmbar laut zu anderen sein. Nur Sie können beurteilen, ob die Anzahl der gemittelten Punkte zu hoch, zu niedrig oder genau richtig gewählt wurde. Die Flexibilität des Algorithmus ermöglicht es Ihnen, den Glättungsfaktor anzupassen und einen weiteren Durchlauf durch den Algorithmus durchzuführen, wenn mit dem anfänglichen Versuch keine zufriedenstellenden Ergebnisse erzielt werden. Die Anwendung und die Fähigkeiten des gleitenden Durchschnittsalgorithmus können am besten durch die folgenden Beispiele veranschaulicht werden. Abbildung 3 8212 Die EKG-Wellenform, die ursprünglich und ungefiltert im oberen Kanal und als 97-Punkt-gemittelte Wellenform im unteren Kanal angezeigt wurde. Beachten Sie die Abwesenheit von Baseline Drift im unteren Kanal. Beide Wellenformen werden in einem komprimierten Zustand für Präsentationszwecke gezeigt. Eine Rauschunterdrückungsanwendung In Fällen, in denen eine gegebene Wellenform mit Rauschen überladen ist, kann das gleitende Durchschnittsfilter angewendet werden, um das Rauschen zu unterdrücken und ein klareres Bild der Wellenform zu liefern. Zum Beispiel benutzte ein fortgeschrittener CODAS-Kunde eine Presse und eine Wägezelle in einem Verpackungsbetrieb. Ihr Produkt sollte auf ein vorbestimmtes Niveau (überwacht durch die Kraftmesszelle) komprimiert werden, um die Größe der Verpackung zu reduzieren, die erforderlich ist, um das Produkt aufzunehmen. Aus Qualitätskontrollgründen beschlossen sie, den Pressenbetrieb mit Instrumentierung zu überwachen. Ein unerwartetes Problem trat auf, als sie begannen, die Echtzeit-Wägezellenausgabe anzuzeigen. Da die Pressenmaschine während des Betriebs beträchtlich vibrierte, war die Ausgangswellenform der Lastzellen schwierig zu unterscheiden, da sie eine große Menge an Rauschen aufgrund der Schwingung aufwies, wie dies in dem oberen Kanal von Fig. 2 gezeigt ist. Dieses Rauschen wurde eliminiert, indem ein 11-Punkt-gemittelter Kanal erzeugt wurde, wie in dem unteren Kanal von Fig. 2 gezeigt. Das Ergebnis war ein deutlich deutlicheres Bild der Wägezellenausgabe. Eine Anwendung bei der Beseitigung von Baseline Drift In Fällen, in denen eine langsam driftende Grundlinie aus einem Signal mit höherer Frequenz entfernt werden muss, kann das gleitende Durchschnittsfilter angewendet werden, um die Drift-Baseline zu eliminieren. Beispielsweise weist eine EKG-Wellenform typischerweise einen gewissen Grad an Grundlinienwanderung auf, wie in dem oberen Kanal von 3 zu sehen ist. Diese Grundliniendrift kann eliminiert werden, ohne die Eigenschaften der Wellenform zu verändern oder zu stören, wie in dem unteren Kanal von Fig. 3 gezeigt. Dies wird durch Anwenden eines geeigneten negativen Glättungsfaktors während der gleitenden Durchschnittsberechnung erreicht. Der geeignete Glättungsfaktor wird durch Dividieren einer Wellenformperiode (in Sekunden) durch das Abtastintervall der Kanäle bestimmt. Das Abtastintervall der Kanäle ist einfach der Reziprokwert der Abtastrate der Kanäle und wird bequem auf dem gleitenden Durchschnitts-Utility-Menü angezeigt. Die Wellenformperiode wird leicht aus dem Anzeigebildschirm bestimmt, indem der Cursor an einem geeigneten Punkt auf der Wellenform positioniert, eine Zeitmarke eingestellt und dann der Cursor einen vollständigen Zyklus von der angezeigten Zeitmarke weg bewegt wird. Die Zeitdifferenz zwischen Cursor und Zeitmarke ist eine Wellenformperiode und wird am unteren Rand des Bildschirms in Sekunden angezeigt. In unserem EKG-Beispiel besaß die Wellenform ein Kanalabtastintervall von 0,004 Sekunden (erhalten aus dem gleitenden mittleren Utility-Menü) und eine Wellenformperiode wurde gemessen, um 0,388 Sekunden zu überspannen. Das Dividieren der Wellenformperiode durch das Abtastintervall der Kanäle lieferte einen Glättungsfaktor von 97. Da es sich um die Grundliniendrift handelt, die wir an der Eliminierung interessieren, haben wir einen negativen Glättungsfaktor (-97) auf den gleitenden Durchschnittsalgorithmus angewendet. Dies subtrahierte das gleitende Durchschnittsergebnis des ursprünglichen Wellenformsignals, das die Grundliniendrift ohne störende Wellenforminformation eliminierte. Other Waveform Moving Average Issues Unabhängig von der Anwendung ist der universelle Grund für die Anwendung eines gleitenden mittleren Filters auf Quotsmooth outquot die hohen und niedrigen Aberrationen und zeigen einen repräsentativeren Zwischen-Wellenformwert. Dabei sollte die Software bei der Erzeugung einer gleitenden gemittelten Wellenform nicht andere Merkmale der ursprünglichen Wellenform beeinträchtigen. Beispielsweise sollte die Software automatisch die mit der ursprünglichen Datendatei verknüpften Kalibrierungsinformationen einstellen, so daß sich die gleitende gemittelte Wellenform in den geeigneten Entwicklungseinheiten befindet, wenn sie erzeugt wird. Alle Messwerte in den Abbildungen wurden mit WinDaq Data Acquisition softwareMoving Average Dieses Beispiel lehrt, wie Sie den gleitenden Durchschnitt einer Zeitreihe in Excel berechnen. Eine Bewegung wird verwendet, um Unregelmäßigkeiten (Spitzen und Täler) zu glätten, um Trends leicht zu erkennen. 1. Erstens, werfen wir einen Blick auf unsere Zeitreihe. 2. Klicken Sie auf der Registerkarte Daten auf Datenanalyse. Hinweis: Klicken Sie hier, um das Analyse-ToolPak-Add-In zu laden. 3. Wählen Sie Verschiebender Durchschnitt aus, und klicken Sie auf OK. 4. Klicken Sie im Feld Eingabebereich auf den Bereich B2: M2. 5. Klicken Sie in das Feld Intervall und geben Sie 6 ein. 6. Klicken Sie in das Feld Ausgabebereich und wählen Sie Zelle B3 aus. 8. Zeichnen Sie ein Diagramm dieser Werte. Erläuterung: Da wir das Intervall auf 6 setzen, ist der gleitende Durchschnitt der Durchschnitt der letzten 5 Datenpunkte und der aktuelle Datenpunkt. Als Ergebnis werden Spitzen und Täler geglättet. Die Grafik zeigt eine zunehmende Tendenz. Excel kann den gleitenden Durchschnitt für die ersten 5 Datenpunkte nicht berechnen, da nicht genügend frühere Datenpunkte vorhanden sind. 9. Wiederholen Sie die Schritte 2 bis 8 für Intervall 2 und Intervall 4. Fazit: Je größer das Intervall, desto mehr werden die Spitzen und Täler geglättet. Je kleiner das Intervall, desto näher sind die gleitenden Mittelwerte zu den tatsächlichen Datenpunkten. Mögen Sie diese kostenlose Website Bitte teilen Sie diese Seite auf Google


No comments:

Post a Comment