A. 手機計步器不計步了,解決久法!
不一定是手機壞了。
計步演算法可以分為四大類,一是峰值檢測演算法,二是變換域演算法,三是濾波演算法,四是模式識別演算法。根據所設計的計步器在人體上布放的位置不同,如腕部、腰部、鞋底等,可以選擇不同的計步演算法。
峰值檢測類演算法原理簡單,易於實現,應用較為廣泛。這里簡單介紹峰值檢測類演算法。用戶在運動中,可能把設備放置於口袋或者包中,亦或拿在手中。所以設備的放置方向不確定。那麼首先,我們通過計算三個加速度的矢量長度,可以獲得一條步行運動的正弦曲線軌跡。
第二步就是峰值檢測,我們記錄了上次矢量長度和運動方向,通過矢量長度的變化,可以判斷當前加速度的方向,並和上一次保存的加速度方向進行比較。如果是相反的,即是剛過峰值狀態,則進入計步邏輯進行計步,否則就舍棄這段。通過對峰值次數的累加,那我們就可得計算得到用戶步行的步數。
最後,就是去噪音(干擾)。手機或智能手錶等手持設備會有一些低幅度和快速的抽動狀態,即我們俗稱的手抖,或者某個用戶想通過短時快速反復搖動設備來模擬人走路,這些干擾數據如果不剔除,會影響記步的准確值,對於這種干擾,我們可以通過給檢測加上閥值和步頻判斷來過濾。目前人類最快的跑步頻率為5HZ(當然不排除人類藉助其它設備跑步頻率超過這個頻率),也就是說相鄰兩步的時間間隔的至少大於0.2秒,如圖中的計步時間,若兩次計步之間的時間間隔小於0.2秒,則不計步。這樣我們就過濾了高頻雜訊,即步頻過快的情況。同時我們通過和上次加速度大小進行比較,設置一定的閥值Threshold來判斷運動是否屬於有效(如圖中的綠線),有效運動才可進行記步。
如果已知步行和跑步的步數,那麼再通過人體身高,體重及性別就可以大致知道此人的步長,改進後即可變成一個測距離及測速計。通過三軸加速度感測器,我們可以知道用戶的運動狀態。除了計步,還可以利用加速度感測器與陀螺儀及磁感測器融合進行步行航跡推算。