J'ai besoin de détecter deux gestes différents qui se produisent lorsque l'on regarde les données de l'accéléromètre. Voici un aperçu (aussi bref que possible):
Disons qu'un iPhone oscille d'avant en arrière tout en restant face visible. L'utilisateur peut soit faire une oscillation (une fois en avant ou en arrière, un geste) ou une oscillation continue pour n'importe quelle durée (geste deux).
Actuellement, mon code conserve une liste des données de l'accéléromètre de l'appareil (axe y) des 50 dernières images. Chaque trame de ces données est soumise à un algorithme FFT (celui-ci http://goo.gl/yi3mn ), puis j'essaie d'interpréter le domaine de fréquence donné. J'ai remarqué une forte relation entre la vitesse des oscillations et la puissance de la gamme moyenne à basse de l'espace des fréquences.
Le problème est que je dois détecter (en temps réel lorsque le mouvement anime quelque chose à l'écran) si l'oscillation qui vient de se terminer est singulière, ou si elle continue dans une autre oscillation dans la direction opposée. Ici, je dois souligner que les accéléromètres fonctionnent avec des plaques de pression. Lorsqu'une oscillation s'arrête, les données d'entrée affichent la valeur opposée à celle de l'oscillation. Il est donc difficile de voir une différence évidente entre un simple mouvement vers l'avant et un double mouvement vers l'avant puis vers l'arrière (à la fin de chaque première oscillation).
Quelqu'un peut-il suggérer comment je pourrais utiliser une FFT pour déchiffrer une valeur de magnitude précise (ou autre chose utile) que je peux utiliser pour faire la différence entre les gestes décrits ci-dessus?
J'ai enregistré les données que j'utilise dans des fichiers texte. Il s'agit des données brutes (valeurs de force g) le long de l'axe y de l'entrée de l'accéléromètre.
http://pastebin.ca/2108123 montre les données de 2 oscillations singulières (je tiens l'appareil toujours au début, à la fin et entre les deux oscillations).
REMARQUE: de nouvelles données brutes avec 20 oscillations ont été téléchargées, mais pas encore tracées. http://pastebin.ca/2108387 montre des données pour 20 oscillations continues (je tiens l'appareil toujours au début et à la fin).
Réponses:
En regardant les données, je ne vois pas pourquoi vous voudriez utiliser la FFT à cette fin (je peux me tromper cependant). Supposons que vous souhaitiez détecter un ou plusieurs mouvements en fonction de cet ensemble de données (que vous avez joint), les méthodes que j'examinerais seraient
Si la seule chose que vous voulez détecter est une oscillation simple vs multiple, alors la FFT n'est pas, à mon avis, un très bon choix pour l'analyse.
la source