本發(fā)明涉及電子應(yīng)用技術(shù)領(lǐng)域,具體涉及一種軟件計步方法。
背景技術(shù):
隨著社會的進步和人們生活水平的提高,越來越多的人花時間投入到運動當(dāng)中。尤其是行走、跑步運動,因為不需要運動器械和特定的運動場景,成為近年來興起的一種運動熱潮,提高了人們的身體素質(zhì)。
智能手機發(fā)展至今,功能越來越豐富,已經(jīng)成為人們生活中不可缺少的一部分。用戶隨時隨地打開手機計步功能,以總步數(shù)的形式實時監(jiān)測每天行走、跑步等場景下的運動量。隨著使用量的不斷增長,用戶對計步的精度(準(zhǔn)確度)要求也越來越高。
目前大部分計步軟件都是通過分析三軸加速度傳感器的數(shù)據(jù)來實現(xiàn)計步的,其分析方法包括峰值檢測和閥值檢測這兩類。峰值檢測方法是檢測合加速度波形的波峰和波谷,一對連續(xù)的波峰和波谷代表一步;閥值檢測方法是合加速度下降區(qū)間越過閥值則計為一步。而現(xiàn)實生活中,用戶使用手機計步時,存在很多干擾信號,容易造成計步干擾。具體包括:1、手機拿在手上時人體手腕動作,手機容易晃動,相對干擾較大;2、手機放在口袋,手機與口袋之間的位置相對固定,相對干擾較小;3、坐公交、乘車、故意晃動手機等一些非計步場景的干擾。因此,現(xiàn)有手機計步方法在人體手持手機計步時的精度不高,在坐公交、乘車等非計步場景下容易造成誤計步數(shù)。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有手機計步方法在人體手持手機計步時精度偏低的問題和對坐公交、乘車等一些非計步場景易誤計步數(shù)的問題,提出一種改進的軟件計步方法。不同于傳統(tǒng)計步方法只使用加速度傳感器數(shù)據(jù),本計步方法融合了加速度和距離傳感器數(shù)據(jù),使用加速度傳感器數(shù)據(jù)分析人體步態(tài)特征,使用距離傳感器判斷手機放置位置。
本發(fā)明考慮到手機計步輸出步數(shù)的實時性和快捷性,沒有采用復(fù)雜的軟件濾波方式,以濾除計步波形偽波峰來達到濾波的效果。因為經(jīng)過對各個場景下計步信號分析發(fā)現(xiàn):人體前進一步時對應(yīng)唯一一個峰值最大的波峰,稱為有效波峰,一個有效波峰代表前進一步;有效波峰周邊會出現(xiàn)許多峰值小于有效波峰峰值的波峰,稱為偽波峰。干擾越大,偽波峰越多,與有效波峰越相像。濾波的關(guān)鍵是將偽波峰標(biāo)記并濾除,從而得到有效波峰,剩余有效波峰數(shù)即是計步數(shù)。利用該發(fā)現(xiàn),本發(fā)明提出一種峰值閥值和時間閥值濾除偽波峰方法,該方法濾波效果簡單明顯,算法復(fù)雜度低,能夠?qū)崟r地輸出計步數(shù)。
附圖說明
圖1為本發(fā)明提出的軟件計步方法流程圖;
圖2為本發(fā)明提出的濾除偽波峰方法流程圖;
圖3為本發(fā)明時間窗口設(shè)置示意圖;
圖4為人體行走時手機放口袋計步波形圖;
圖5為人體跑步時手機放口袋計步波形圖;
圖6為人體手持手機計步波形圖。
具體實施方式
為使本發(fā)明更加清楚明白,下面結(jié)合附圖和優(yōu)選實例進一步說明。
如圖1所示,不同于常用手機計步方法,本發(fā)明在計算有效波峰數(shù)之前通過濾除偽波峰方法濾除大部分偽波峰,減少偽波峰的干擾。由圖可知,首先從緩存區(qū)讀取一個時間窗口的三軸加速度數(shù)據(jù),然后進行預(yù)處理。預(yù)處理完成后,查找時間窗口內(nèi)所有波峰和波谷,并計算出所有抽樣值中的最大值和最小值。檢測波峰、波谷時,查找波形斜率正負(fù)轉(zhuǎn)換的轉(zhuǎn)折點。根據(jù)前后兩次采樣數(shù)據(jù)的差,判斷此時波形是處于上升區(qū)還是下降區(qū),當(dāng)從上升區(qū)轉(zhuǎn)為下降區(qū)時則出現(xiàn)一次波峰,當(dāng)從下降區(qū)轉(zhuǎn)為上升區(qū)時則出現(xiàn)一次波谷。為了預(yù)防非正常行走的情況,當(dāng)沒有出現(xiàn)一對波峰波谷的時候,說明此時人體并不在行走,所以計步數(shù)據(jù)加0。波峰查找完成后,通過濾除偽波峰方法進行濾波。濾波完成后,引入距離傳感器數(shù)據(jù)判斷手機位置。如果判斷手機拿在手上,則通過最大波谷值這個動態(tài)閥值進一步濾除偽波峰。
所述時間窗口的設(shè)置,將采集的加速度數(shù)據(jù)以n個采樣點為時間單位,進行步伐檢測分析。人體在行走、跑步等運動中步頻最快不超過5step/s,最慢不小于1step/s,因此人體前進一步時間范圍為[0.2s,1s]。本發(fā)明設(shè)置20ms為一個采樣點,由此計算出一步的抽樣點數(shù)量最多達50個。對于跑步場景,前進一步時的采樣點會更少。綜上考慮,本發(fā)明以50個抽樣點作為一個抽樣片段逐一抽樣,這50個采樣點稱為滑動時間窗口。理論上對時間窗口的設(shè)置越小越好,因為時間窗口內(nèi)包含的有效波峰數(shù)越少,計步精度越高。如圖3所示,人體在行走、跑步、上下樓梯時一個時間窗口內(nèi)最少包含一個有效波峰。跑步時由于步頻快,一個時間窗口包含多個有效波峰,進一步說明設(shè)置50個采樣點為一個時間窗口的合理性,不會出現(xiàn)丟失有效波峰的情況。
所述三軸加速度數(shù)據(jù)預(yù)處理方法,將三軸加速度數(shù)據(jù)取模后再進行數(shù)據(jù)分析。計算公式如(1)所示。x、y、z為加速度傳感器三軸的加速度數(shù)據(jù),|v|為取模后的數(shù)據(jù),稱為合加速度。式中采用2-范數(shù)處理數(shù)據(jù)方法,克服了因有效軸變化而帶來的影響。
圖2所示為具體的濾除偽波峰方法。該方法通過峰值閥值和時間閥值快速濾波的方式來濾除偽波峰。所述峰值閥值設(shè)置,根據(jù)各個場景有效波峰峰值范圍進行濾波。因為人體運動幅度與加速度波峰峰值呈正對應(yīng)關(guān)系。通過對人體在行走、下樓梯、慢跑和快跑場景下進行大量數(shù)據(jù)采集工作,然后進行有效波峰峰值統(tǒng)計。統(tǒng)計結(jié)果發(fā)現(xiàn),人體在行走時有效波峰峰值范圍為[1.2g,2g](g=9.8m/s2),上下樓梯峰值范圍為[2g,4g],跑步峰值范圍為[3g,7g]。因此,利用有效波峰峰值范圍,設(shè)1.2g為一個固定峰值閥值,標(biāo)記峰值小于1.2g的波峰為偽波峰。而對于跑步、上下樓梯等運動幅度較大的場景,其大部分波峰峰值遠大于1.2g,通過該固定閥值對上下樓梯和跑步場景下的計步信號進行濾波,效果不理想。因此本發(fā)明將一個時間窗口內(nèi)最大值與最小值的均值,即
所述時間閥值設(shè)置,根據(jù)人體運動步頻進行濾波。本發(fā)明加速度數(shù)據(jù)采集頻率為50hz,采樣時間為20ms。人體行走一步極限時間范圍為[0.2s,1s],因此前進一步最快為10個采樣點,最慢為50個采樣點。由于一個有效波峰代表一個有效步數(shù),推算出前后兩個有效波峰之間大于10個抽樣點且小于50個抽樣點。根據(jù)這個特性,本發(fā)明設(shè)定一個規(guī)則:從時間窗口內(nèi)第一個波峰開始,比較與下一個波峰的時間差,若前后兩波峰時間差小于10個抽樣點則判定峰值較小的波峰為偽波峰;若前后兩波峰時間差大于50個抽樣點,則將兩波峰標(biāo)記為偽波峰。按照該規(guī)則,遍歷時間窗口內(nèi)所有峰值。通過時間閥值可以提高對坐公交、故意搖晃手機等非計步場景下的抗干擾能力,因為坐公交時前后有效波峰時間差大于50個抽樣點。
圖4是人體步行時手機放口袋計步波形圖。實際行走為4步,由圖可知a1、a2、a3、a4即要尋找的有效波峰,b1、b2為偽波峰。通過固定幅值1.2g進行峰值閥值濾波,剩余b1、b2、a1、a2、a3、a4共6個波峰,然后再通過時間閥值可以濾除b1、b2兩個偽波峰,因此剩余4個有效波峰,計步數(shù)加4。
圖5是人體跑步時手機放口袋計步波形圖。手機放口袋跑步時,得到的加速度信號受干擾強度比步行時稍大。圖中共有3個時間窗口,實際前進9步。此種情景下,運動幅度較大,固定閥值1.2g濾除偽波峰效果不佳。繼續(xù)使用第二個峰值閥值
圖6所示為人體手持手機行走時的計步波形圖。圖中第二個時間窗口內(nèi),共有a1、a2、b1、b2、b3五個波峰。經(jīng)過上述濾除偽波峰方法后,剩下a1、a2、b2三個波峰。由圖可知,只有a1、a2為有效波峰,仍需進一步濾除b2這個偽波峰,否則將造成多計一步。此時通過dmax就可以濾除b2這個偽波峰。