計(jì)步器算法是如何實(shí)現(xiàn)的
計(jì)步算法可以分為四大類,一是峰值檢測(cè)算法,二是變換域算法,三是濾波算法,四是模式識(shí)別算法。根據(jù)所設(shè)計(jì)的計(jì)步器在人體上布放的位置不同,如腕部、腰部、鞋底等,可以選擇不同的計(jì)步算法。以應(yīng)用最為廣泛的峰值檢測(cè)算法為例:
1、獲取運(yùn)動(dòng)軌跡
用戶在運(yùn)動(dòng)中,可能把設(shè)備放置于口袋或者包中,亦或拿在手中,所以設(shè)備的放置方向不確定。那么首先,我們通過(guò)計(jì)算三個(gè)加速度的矢量長(zhǎng)度,可以獲得一條步行運(yùn)動(dòng)的正弦曲線軌跡。
2、峰值檢測(cè)
我們記錄了上次矢量長(zhǎng)度和運(yùn)動(dòng)方向,通過(guò)矢量長(zhǎng)度的變化,可以判斷當(dāng)前加速度的方向,并和上一次保存的加速度方向進(jìn)行比較。如果是相反的,即是剛過(guò)峰值狀態(tài),則進(jìn)入計(jì)步邏輯進(jìn)行計(jì)步,否則就舍棄這段。通過(guò)對(duì)峰值次數(shù)的累加,那我們就可得計(jì)算得到用戶步行的步數(shù)。
3、去噪音(干擾)
手機(jī)或智能手表等手持設(shè)備會(huì)有一些低幅度和快速的抽動(dòng)狀態(tài),即我們俗稱的手抖,或者某個(gè)用戶想通過(guò)短時(shí)快速反復(fù)搖動(dòng)設(shè)備來(lái)模擬人走路,這些干擾數(shù)據(jù)如果不剔除,會(huì)影響記步的準(zhǔn)確值,對(duì)于這種干擾,我們可以通過(guò)給檢測(cè)加上閾值和步頻判斷來(lái)過(guò)濾。
目前人類最快的跑步頻率為5HZ(當(dāng)然不排除人類借助其它設(shè)備跑步頻率超過(guò)這個(gè)頻率),也就是說(shuō)相鄰兩步的時(shí)間間隔的至少大于0.2秒,如圖中的計(jì)步時(shí)間,若兩次計(jì)步之間的時(shí)間間隔小于0.2秒,則不計(jì)步。這樣我們就過(guò)濾了高頻噪聲,即步頻過(guò)快的情況。同時(shí)我們通過(guò)和上次加速度大小進(jìn)行比較,設(shè)置一定的閾值Threshold來(lái)判斷運(yùn)動(dòng)是否屬于有效(如圖中的綠線),有效運(yùn)動(dòng)才可進(jìn)行記步。
4、推算運(yùn)動(dòng)狀態(tài)
如果已知步行和跑步的步數(shù),那么再通過(guò)人體身高,體重及性別就可以大致知道此人的步長(zhǎng),改進(jìn)后即可變成一個(gè)測(cè)距離及測(cè)速計(jì)。通過(guò)三軸加速度傳感器,我們可以知道用戶的運(yùn)動(dòng)狀態(tài)。除了計(jì)步,還可以利用加速度傳感器與陀螺儀及磁傳感器融合進(jìn)行步行航跡推算,防止出現(xiàn)誤計(jì)步的現(xiàn)象。
智能計(jì)步器算法思想詳解
1、運(yùn)動(dòng)閾值
運(yùn)動(dòng)加速度一般呈現(xiàn)正弦變化,當(dāng)運(yùn)動(dòng)速度提升,最大值與最小值抬高時(shí)候,平均值也應(yīng)當(dāng)跟著軌跡變化。因此,運(yùn)動(dòng)閾值是一個(gè)動(dòng)態(tài)值,具有自適應(yīng)性,并且足夠快。
加速度計(jì)不斷的更新三軸數(shù)據(jù),采集濾波,判斷最大值與最小值。我們以采樣50次為一組更新一次閾值。平均值(max min)/2做為“運(yùn)動(dòng)閾值”。動(dòng)態(tài)精度由自己劃分,把運(yùn)動(dòng)變化量劃分等級(jí),隨著運(yùn)動(dòng)閾值大小判定當(dāng)前精度值。
2、邁步判斷
(1)步伐邁出的條件定義:當(dāng)加速度曲線跨過(guò)動(dòng)態(tài)閥值上方時(shí)或者當(dāng)加速度曲線跨過(guò)動(dòng)態(tài)閥值下方時(shí)加速度的變化為正值或者為負(fù)值。
(2)利用線性位移寄存器和動(dòng)態(tài)閥值和動(dòng)態(tài)精度一起判斷個(gè)體是否邁出有效的一步。建立兩個(gè)寄存,new寄存器和old寄存器;當(dāng)前數(shù)據(jù)采集到后判斷是否移入new寄存器,滿足移入條件:加速度變化量大于當(dāng)前的動(dòng)態(tài)精度。就把當(dāng)前采集的數(shù)據(jù)移入new寄存器,否則new保持不變。每當(dāng)新數(shù)據(jù)到來(lái)時(shí)候,new寄存器的值無(wú)條件移入old寄存器。這樣,就能夠避免高頻噪聲的影響,提高判斷精度。
(3)三軸加速度同時(shí)檢測(cè),可以但是只要一個(gè)軸的加速度變化最大,可以利用該軸當(dāng)為運(yùn)動(dòng)方向,其他軸忽略不計(jì)。
3、具體程序
(1)采樣濾波,求出3軸的平均值,求出加速度的最大,最小值。
(2)每采樣50次,求出峰值,然后設(shè)置門(mén)限。
(3)計(jì)算精度。
(4)對(duì)采樣濾波的平均值進(jìn)行處理然后將其與精度進(jìn)行比較(通過(guò)移位寄存器來(lái)消除高頻噪聲,使值更精確)。
(5)動(dòng)態(tài)門(mén)限判定,對(duì)數(shù)值進(jìn)行比較,然后將步數(shù)加1。
聲明:以上方法源于程序系統(tǒng)索引或網(wǎng)民分享提供,僅供您參考使用,不代表本網(wǎng)站的研究觀點(diǎn),證明有效,請(qǐng)注意甄別內(nèi)容來(lái)源的真實(shí)性和權(quán)威性。申請(qǐng)刪除>> 糾錯(cuò)>>