Saya memiliki kebutuhan untuk mendeteksi dua gerakan berbeda yang terjadi ketika melihat data accelerometer. Berikut ini run down (sesingkat yang saya bisa lakukan):
Katakanlah iPhone sedang bolak-balik sambil tetap menghadap ke atas. Pengguna dapat melakukan satu osilasi (sekali maju atau mundur, gerakan satu) atau osilasi terus menerus untuk jumlah waktu berapa pun (gerakan dua).
Saat ini kode saya menyimpan daftar data accelerometer perangkat (sumbu-y) dari 50 frame terakhir. Setiap frame data ini dimasukkan melalui algoritma FFT (ini http://goo.gl/yi3mn ), dan kemudian saya mencoba menginterpretasikan domain frekuensi yang diberikan. Saya telah memperhatikan hubungan yang kuat antara kecepatan osilasi, dan kekuatan rentang frekuensi menengah hingga rendah.
Masalahnya adalah bahwa saya perlu mendeteksi (secara real-time ketika gerakan itu menggerakkan sesuatu di layar) apakah osilasi yang baru saja selesai adalah yang tunggal, atau yang terus berlanjut ke osilasi lain di arah yang berlawanan. Di sini saya harus menunjukkan bahwa accelerometer bekerja dengan pelat tekanan. Ketika osilasi berhenti, data input akan menunjukkan nilai yang berlawanan dari saat osilasi dilakukan. Ini membuatnya sulit untuk melihat perbedaan yang jelas antara gerakan maju tunggal dan ganda maju lalu mundur (pada akhir setiap osilasi pertama).
Adakah yang bisa menyarankan bagaimana saya bisa menggunakan FFT untuk menguraikan nilai besaran yang akurat (atau sesuatu yang berguna lainnya) yang bisa saya gunakan untuk memberi tahu perbedaan antara gerakan yang dijelaskan di atas?
Saya telah mencatat data yang saya gunakan untuk file teks. Ini adalah data mentah (nilai g-force) sepanjang sumbu y dari input accelerometer.
http://pastebin.ca/2108123 menunjukkan data untuk 2 osilasi tunggal (saya memegang perangkat masih di awal, akhir, dan di antara dua osilasi).
CATATAN: data mentah baru dengan 20 osilasi telah diunggah, tetapi belum diplot. http://pastebin.ca/2108387 menunjukkan data untuk 20 osilasi terus menerus (saya memegang perangkat masih di awal dan akhir).