Der Wikipedia-Eintrag von Moogs ist ein guter Ausgangspunkt für die Glättung der Daten. Aber es hilft dir nicht, eine Entscheidung zu treffen.
Es hängt alles von Ihren Daten und der benötigten Verarbeitungsgeschwindigkeit ab.
Gleitender Durchschnitt Verflacht die oberen Werte. Wenn Sie an dem minimalen und maximalen Wert interessiert sind, verwenden Sie diesen nicht. Ich denke auch, dass die Verwendung des gleitenden Durchschnitts die Messung der Beschleunigung beeinflusst, da sie Ihre Daten (ein bisschen) abflacht, wodurch die Beschleunigung kleiner erscheint. Es kommt auf die nötige Genauigkeit an.
Savitzky-Golay Schneller Algorithmus. So schnell wie der gleitende Durchschnitt. Das wird die Höhen von Spitzen beibehalten. Etwas schwieriger zu implementieren. Und Sie brauchen die richtigen Koeffizienten. Ich würde dieses auswählen.
Kalman Filter Wenn Sie die Verteilung kennen, kann dies Ihnen gute Ergebnisse liefern (es wird in GPS-Navigationssystemen verwendet). Vielleicht etwas schwieriger zu implementieren. Ich erwähne das, weil ich sie in der Vergangenheit benutzt habe. Aber sie sind wahrscheinlich keine gute Wahl für einen Starter in dieser Art von Sachen.
Das oben genannte reduziert das Rauschen Ihres Signals.
Als nächstes müssen Sie den Start- und Endpunkt der "Beschleunigung" erkennen. Sie können dies tun, indem Sie ein Derivative des ursprünglichen Signals erstellen. Die Punkte, an denen die Ableitung die Y-Achse (Null) kreuzt, sind wahrscheinlich die Spitzen in Ihrem Signal und können den Beginn und das Ende der Beschleunigung anzeigen.
Sie können dann eine Ableitung zweiten Grades erstellen, um die minimale und maximale Beschleunigung selbst zu erhalten.
Wenn Sie die Dinge richtig modellieren, gibt der Kalman Filter Ihnen Geschwindigkeit und Beschleunigung direkt. –
ein gutes Codebeispiel für Savitzky-Golay finden Sie auf http://www.procoders.net/?p=11 – Wouter
SG ist trivial zu implementieren, sobald Sie die Koeffizienten haben. Benutze einfach R's Kommando, um sie zu finden. – Paul