現如今,很多現代人都非常注重自己的日常鍛煉,計步作為一種有效記錄監控鍛煉的監控手段,被廣泛應用在移動終端的應用中。
目前,大部分的計步都是通過GPS信號來測算運動距離,再反推行走步數實現的。這種方法很是有效,但在室內或沒有GPS信號的設備上無法工作。同時,GPS精度對結果的干擾也比較大。
為避免上述問題的出現,我們可以考慮一種新的測步方法,即:通過設備上的加速度傳感器來計算步數,在不支持GPS的設備上也可正常工作。還可以與GPS互相配合測步,這樣可令使用場景變得多樣。
1、先要摸清模型的特征
目前,大部分設備都提供了可以檢測各個方向的加速度傳感器。以iOS設備為例,我們利用了其三軸加速度傳感器(x,y,z軸代表方向如圖)的特性來分析。分別用以檢測人步行中三個方向的加速度變化。


因為用戶在運動中可能用手平持設備,或者將設備置于口袋中。所以,設備的放置方向不定。為此,通過計算三個加速度的矢量長度,我們可以獲得一條步行運動的正弦曲線軌跡。
第二步是峰值檢測,我們記錄了上次矢量長度和運動方向,通過矢量長度的變化,可以判斷目前加速度的方向,并和上一次保存的加速度方向進行比較。如果是相反的,即是剛過峰值狀態,則進入計步邏輯進行計步,否則舍棄。通過對峰值的次數累加,可得到用戶步行的步伐。
最后,就是去干擾。手持設備會有一些低幅度和快速的抽動狀態,或是我們俗稱的手抖,或者某個惡作劇用戶想通過短時快速反復搖動設備來模擬人走路,這些干擾數據如果不剔除,會影響記步的準確值,對于這種干擾,我們可以通過給檢測加上閥值和步頻判斷來過濾。
