2017-05-16 2 views

Antwort

0

muss der Hochpassfilter verwendet werden. Wenn wir die langsam wechselnden Kräfte wie die Schwerkraft mit einem Hochpassfilter ausfiltern, sind die verbleibenden Kräfte die schnell wechselnden wie die Kräfte, die auf das Telefon in vertikaler Richtung wirken .

Dies ist, wie die Komponenten der Beschleunigung in jeder Achse brechen: die Richtung zu finden, die Schwerkraft arbeitet in dann zersetzen, dass in seine Bestandteile

values[0] //acceleration on x axis 
values[1] //acceleration on y axis 
values[2] //acceleration on z axis 

Sie benötigen. Die Größe der Schwerkraft wird immer 9,8 betragen, aber die Richtung und somit die Art und Weise, wie sie in die Komponenten zerfällt, wird sich ändern. Unter der Annahme, dass wir den Wert der Schwerkraft und Speicherung dieses Vektors in einem Array wie die Schwerkraft bekommen konnten [3]:

gravity[0] //gravity x axis 
gravity[1] //gravity y axis 
gravity[2] //gravity z axis 

The total acceleration, T, on the phone is T = g + a. To get just a we would need a = T - g: 

linear_acceleration[0] = event.values[0] - gravity[0]; 
linear_acceleration[1] = event.values[1] - gravity[1]; 
linear_acceleration[2] = event.values[2] - gravity[2]; 

Beachten Sie, wie das alles Element für Element berechnet, weil es eine Vektoroperation ist. Nach dem Extrahieren aller Werte müssen wir einen Hochpassfilter anwenden und linear_acceleration [2] mit einem Schwellenwert vergleichen (vielleicht kann man ihn um 9 herum halten).