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