Sto costruendo un'applicazione Android che registra i dati dell'accelerometro durante il sonno, in modo da analizzare le tendenze del sonno e facoltativamente svegliare l'utente vicino al momento desiderato durante il sonno leggero.
Ho già creato il componente che raccoglie e memorizza i dati, nonché l'allarme. Devo ancora affrontare la bestia della visualizzazione e del salvataggio dei dati sul sonno in un modo davvero significativo e chiaro, uno che preferibilmente si presta anche all'analisi.
Un paio di immagini dicono duemila parole: (posso pubblicare solo un link a causa della bassa reputazione)
Ecco i dati non filtrati, la somma dei movimenti, raccolti a intervalli di 30 secondi
E gli stessi dati, levigati dalla mia stessa manifestazione di livellamento medio mobile
modifica) entrambi i grafici riflettono la calibrazione: esiste un filtro minimo "noise" e un filtro cutoff massimo, nonché un livello di attivazione dell'allarme (la linea bianca)
Sfortunatamente, nessuna di queste è una soluzione ottimale: la prima è un po 'difficile da capire per l'utente medio e la seconda, che è più facile da capire, nasconde molto di ciò che sta realmente accadendo. In particolare la media rimuove il dettaglio dei picchi di movimento, e penso che possano essere significativi.
Quindi perché questi grafici sono così importanti? Queste serie temporali vengono visualizzate per tutta la notte come feedback per l'utente e verranno archiviate per la revisione / analisi in un secondo momento. Il livellamento ridurrà idealmente i costi di memoria (sia RAM che di archiviazione) e renderà più veloce il rendering su questi telefoni / dispositivi affamati di risorse.
Chiaramente c'è un modo migliore per appianare i dati: ho alcune idee vaghe, come usare la regressione lineare per capire cambiamenti "bruschi" nei movimenti e modificare il mio livellamento della media mobile secondo. Ho davvero bisogno di ulteriori indicazioni e input prima di immergermi a fondo in qualcosa che potrebbe essere risolto in modo più ottimale.
Grazie!