Ich erstelle eine Android-Anwendung, die Beschleunigungsmesserdaten während des Schlafes aufzeichnet, um Schlaf-Trends zu analysieren und den Benutzer während des leichten Schlafes optional in der Nähe einer gewünschten Zeit aufzuwecken.
Ich habe bereits die Komponente erstellt, die Daten sammelt und speichert, sowie den Alarm. Ich muss mich immer noch mit der Bestie befassen, Schlafdaten wirklich aussagekräftig und übersichtlich anzuzeigen und zu speichern, was sich vorzugsweise auch für Analysen eignet.
Ein paar Bilder sagen zweitausend Worte: (Ich kann wegen geringer Wiederholungszahlen nur einen Link posten)
Hier sind die ungefilterten Daten, die Summe der Bewegungen, die alle 30 Sekunden erfasst werden
Und dieselben Daten, geglättet durch meine eigene Manifestation der Glättung des gleitenden Durchschnitts
Bearbeiten) Beide Diagramme spiegeln die Kalibrierung wider. Es gibt ein Minimum-Rausch- und ein Maximum-Grenzfilter sowie einen Alarmauslösungspegel (die weiße Linie).
Leider ist keine dieser Lösungen optimal - die erste ist für den Durchschnittsbenutzer etwas schwer zu verstehen, und die zweite, die einfacher zu verstehen ist, verbirgt viel von dem, was wirklich vor sich geht. Insbesondere die Mittelung entfernt die Details von Bewegungsspitzen - und ich denke, dass diese aussagekräftig sein können.
Warum sind diese Diagramme so wichtig? Diese Zeitreihen werden die ganze Nacht über als Rückmeldung an den Benutzer angezeigt und zur späteren Überprüfung / Analyse gespeichert. Die Glättung senkt idealerweise die Speicherkosten (sowohl RAM als auch Speicher) und beschleunigt das Rendern auf diesen ressourcenarmen Telefonen / Geräten.
Es gibt eindeutig einen besseren Weg, die Daten zu glätten. Ich habe einige vage Vorstellungen, z. Ich brauche wirklich mehr Anleitung und Input, bevor ich mich kopfüber auf etwas einlasse, das sich besser lösen lässt.
Vielen Dank!