Je construis une application Android qui enregistre les données de l'accéléromètre pendant le sommeil, afin d'analyser les tendances du sommeil et éventuellement de réveiller l'utilisateur à une heure souhaitée pendant le sommeil léger.
J'ai déjà construit le composant qui collecte et stocke les données, ainsi que l'alarme. Je dois encore aborder la bête de l'affichage et de la sauvegarde des données de sommeil d'une manière vraiment significative et claire, qui se prête de préférence également à l'analyse.
Quelques images disent deux mille mots: (Je ne peux publier qu'un seul lien en raison d'une faible représentation)
Voici les données non filtrées, la somme des mouvements, collectées à des intervalles de 30 secondes
Et les mêmes données, lissées par ma propre manifestation de lissage de la moyenne mobile
modifier) les deux graphiques reflètent l'étalonnage - il y a un filtre `` bruit '' minimum et un filtre de coupure maximum, ainsi qu'un niveau de déclenchement d'alarme (la ligne blanche)
Malheureusement, aucune de ces solutions n'est optimale - la première est un peu difficile à comprendre pour l'utilisateur moyen, et la seconde, qui est plus facile à comprendre, cache une grande partie de ce qui se passe réellement. En particulier, la moyenne supprime le détail des pointes de mouvement - et je pense que cela peut être significatif.
Alors pourquoi ces graphiques sont-ils si importants? Ces séries chronologiques sont affichées tout au long de la nuit en tant que rétroaction à l'utilisateur et seront stockées pour examen / analyse plus tard. Le lissage réduira idéalement le coût de la mémoire (RAM et stockage) et accélérera le rendu sur ces téléphones / appareils privés de ressources.
De toute évidence, il existe un meilleur moyen de lisser les données - j'ai quelques idées vagues, telles que l'utilisation de la régression linéaire pour comprendre les changements «brusques» de mouvement et la modification de mon lissage de la moyenne mobile en fonction. J'ai vraiment besoin de plus de conseils et de commentaires avant de plonger tête première dans quelque chose qui pourrait être résolu de manière plus optimale.
Merci!