Ich muss zwei verschiedene Gesten erkennen, die beim Betrachten von Beschleunigungsmesserdaten auftreten. Hier ist ein Run Down (so kurz ich es machen kann):
Nehmen wir an, ein iPhone pendelt hin und her, während es offen bleibt. Der Benutzer kann entweder eine Schwingung (einmal vorwärts oder rückwärts, Geste eins) oder eine kontinuierliche Schwingung für eine beliebige Zeitdauer (Geste zwei) ausführen.
Derzeit enthält mein Code eine Liste der Beschleunigungsmesserdaten (y-Achse) des Geräts aus den letzten 50 Bildern. Jeder Frame dieser Daten wird einem FFT-Algorithmus unterzogen (dieser http://goo.gl/yi3mn ), und dann versuche ich, den angegebenen Frequenzbereich zu interpretieren. Ich habe eine starke Beziehung zwischen der Geschwindigkeit der Schwingungen und der Leistung des mittleren bis niedrigen Bereichs des Frequenzraums festgestellt.
Das Problem ist, dass ich (in Echtzeit, wenn die Bewegung etwas auf dem Bildschirm animiert) erkennen muss, ob die gerade beendete Schwingung eine singuläre Schwingung ist oder eine, die sich in die entgegengesetzte Richtung in eine andere Schwingung fortsetzt. Hier sollte ich darauf hinweisen, dass Beschleunigungsmesser mit Druckplatten arbeiten. Wenn eine Schwingung stoppt, zeigen die Eingangsdaten den entgegengesetzten Wert wie zu dem Zeitpunkt, als die Schwingung durchgeführt wurde. Dies macht es schwierig, einen offensichtlichen Unterschied zwischen einer einzelnen Vorwärtsbewegung und einer doppelten Vorwärts- und Rückwärtsbewegung (am Ende jeder ersten Schwingung) zu erkennen.
Kann jemand vorschlagen, wie ich eine FFT verwenden könnte, um einen genauen Größenwert (oder etwas anderes Nützliches) zu entschlüsseln, mit dem ich den Unterschied zwischen den oben beschriebenen Gesten erkennen kann?
Ich habe die Daten, die ich verwende, in Textdateien aufgezeichnet. Dies sind die Rohdaten (g-Kraftwerte) entlang der y-Achse des Beschleunigungsmessereingangs.
http://pastebin.ca/2108123 zeigt Daten für 2 einzelne Schwingungen (ich halte das Gerät noch am Anfang, Ende und zwischen den beiden Schwingungen).
HINWEIS: Neue Rohdaten mit 20 Schwingungen wurden hochgeladen, aber noch nicht geplottet. http://pastebin.ca/2108387 zeigt Daten für 20 kontinuierliche Schwingungen (ich halte das Gerät noch am Anfang und Ende).
Antworten:
Wenn ich mir die Daten ansehe, kann ich nicht erkennen, warum Sie FFT für diesen Zweck verwenden möchten (ich kann mich jedoch irren). Nehmen wir an, Sie möchten einzelne oder mehrere Bewegungen basierend auf diesem Datensatz (den Sie angehängt haben) als Methoden erkennen, nach denen ich suchen würde
Wenn Sie nur Einzel- oder Mehrfachschwingungen erkennen möchten, ist FFT meiner Meinung nach keine sehr gute Wahl für die Analyse.
quelle