İvmeölçer verilerine bakarken ortaya çıkan iki farklı hareketi tespit etmeye ihtiyacım var. İşte tükendiğinde (yapabildiğim kadar kısa):
Diyelim ki bir iPhone yüzü yukarı bakarken ileri geri salınıyor. Kullanıcı herhangi bir süre için bir salınım (bir kez ileri veya geri, bir hareket) veya sürekli bir salınım (iki hareket) yapabilir.
Şu anda kodum, son 50 kareden cihazın ivmeölçer verilerinin (y ekseni) bir listesini tutar. Bu verilerin her karesi bir FFT algoritması (bu http://goo.gl/yi3mn ) aracılığıyla konur ve sonra verilen frekans alanını yorumlamaya çalışırım. Salınımların hızı ile frekans alanının orta ila düşük aralığının gücü arasında güçlü bir ilişki olduğunu fark ettim.
Sorun, sadece bitmiş salınımın tekil mi yoksa ters yönde başka bir salınımla devam eden mi olduğunu (hareketin ekranda bir şeyi canlandırdığı gibi) gerçek zamanlı olarak tespit etmem gerekiyor. Burada ivmeölçerlerin baskı plakaları ile çalıştığını belirtmeliyim. Bir salınım durduğunda, giriş verileri, salınımın yapıldığı zamandaki zıt değeri gösterir. Bu, tek bir ileri hareket ile çift ileri ve geri hareket (her ilk salınımın sonunda) arasında belirgin bir fark görmeyi zorlaştırır.
Herkes, yukarıda açıklanan hareketler arasındaki farkı anlatmak için kullanabileceğim doğru bir büyüklük değerini (veya yararlı başka bir şeyi) deşifre etmek için bir FFT'yi nasıl kullanabileceğimi önerebilir mi?
Kullandığım verileri metin dosyalarına kaydettim. İvmeölçer girişinin y ekseni boyunca ham veridir (g-kuvvet değerleri).
http://pastebin.ca/2108123 , 2 tekil salınım için verileri gösterir (cihazı başlangıçta, sonunda ve iki salınım arasında sabit tutarım).
NOT: 20 salınım içeren yeni ham veriler yüklenmiş, ancak henüz çizilmemiştir. http://pastebin.ca/2108387 20 sürekli salınım için veri gösterir (cihazı başlangıçta ve sonunda tutarım).