張海峰,衛(wèi) 震
(杭州電子科技大學(xué)電子信息學(xué)院,浙江 杭州 310018)
基于手機加速度傳感器的低頻計步算法研究
張海峰,衛(wèi) 震
(杭州電子科技大學(xué)電子信息學(xué)院,浙江 杭州 310018)
在計步過程中,電路噪聲干擾以及身體抖動產(chǎn)生的偽峰值是計步誤差的主要來源.針對傳統(tǒng)峰值檢測法中存在的偽波峰的問題,提出一種基于峰值檢測的改進計步算法.算法對加速度采樣值進行多次濾波,盡可能地消除偽波峰的影響.經(jīng)初步實驗驗證,低頻勻速1 000步測試條件下,改進的峰值檢測法較傳統(tǒng)的峰值檢測法,其平均計步準(zhǔn)確率由94.43%提高到98.88%;低頻變速1 000步測試條件下,平均計步準(zhǔn)確率由91.50%提高到98.00%.
峰值檢測;偽波峰;多次濾波
計步器作為實時監(jiān)測自身運動狀態(tài)的裝置,越來越受歡迎.受限于手機計算及存儲性能,基于手機加速度傳感器的計步算法在達到高精度同時要兼顧算法的計算量.文獻[1]采用智能手機中的加速度計和陀螺儀,通過時頻域分析提取步態(tài)特征來進行計步,雖然準(zhǔn)確率較高但使用兩個傳感器既增大了計算量,又增大了功耗.文獻[2]在峰值檢測法的基礎(chǔ)上引入校正因子修正峰值檢測的閾值,但在低頻時準(zhǔn)確率明顯降低.文獻[3]提出的自適應(yīng)算法需對多個采樣值進行方差分析及相關(guān)性分析,計算量大.文獻[4]使用雙算法結(jié)構(gòu)來提高精度,算法僅僅在輔助算法中調(diào)整校正因子時才對加速度進行濾波處理,在主計步算法中并沒有對加速度采樣值進行濾波處理,同時雙算法結(jié)構(gòu)實現(xiàn)復(fù)雜.文獻[1-2]在計步判斷時,均采用基于峰值檢測的方法,相較于文獻[3-4]的方法,計算量小,實時性好,且易于實現(xiàn),但對加速度采樣值基本上沒有做濾波處理,因此,在計步過程中容易受到偽波峰的影響.本文從信號處理的角度出發(fā),基于峰值檢測法,同時對加速度采樣值進行多次濾波處理,盡可能地消除偽波峰的影響,以提高計步的精度.
當(dāng)手機放置在手中時,加速度3個坐標(biāo)軸方向X,Y,Z分別對應(yīng)于右側(cè)向、前向、豎直向上.靜止時,X,Y,Z軸向的重力加速度大小分別為0.0 m/s2,0.0 m/s2,9.8 m/s2.人在行走時3個方向上的加速度變化情況如圖1所示.可以發(fā)現(xiàn),Z軸豎直方向加速度有明顯上下波動.前后方向和左右方向的加速度波動周期沒有豎直方向上波動明顯.
1.1 采樣值處理
為降低手機擺放位置對結(jié)果的影響,采用3個軸向加速度的合加速度.
求三軸加速度的合加速度:
(1)
其中,Ax,Ay,Az分別為手機三軸的加速度值,A為合加速度向量.
有研究者通過頻譜分析表明,步態(tài)信號的頻帶范圍主要集中在0.6~18 Hz內(nèi)[1].實驗中加速度計采樣頻率設(shè)為50 Hz.手機平放在手中,采集的加速度值曲線如圖2所示.
圖1 手機平放手掌,步行時加速度變化
圖2 三軸加速度合加速度曲線
本文對原始加速度采樣值進行2次處理,一階低通濾波處理和滑動平均濾波處理.
(2)
(3)
圖3 MATLAB濾波仿真圖
低通濾波處理濾除由于手機加速度傳感器硬件本身產(chǎn)生的一些干擾,滑動平均濾波處理濾除一些偽波峰,可選用FIR濾波器.
圖4 加速度波形變化
濾波器設(shè)計理論已成熟,本文采用窗函數(shù)法設(shè)計FIR濾波器,同時利用MATLAB來輔助設(shè)計.窗函數(shù)采用矩形窗,設(shè)計的濾波器通帶平坦,過渡帶窄,有很好的濾波性能,濾波器仿真如圖3所示.
對步行階段的采樣點進行截取,加速度信號在濾波前后的對比波形如圖4所示.可以發(fā)現(xiàn),經(jīng)過低通濾波和二次濾波后,波形較原始波形更為平滑,同時由于身體抖動產(chǎn)生的偽波峰大為減少.
1.2 基于多次濾波的改進峰值檢測法
峰值檢測法的關(guān)鍵在于準(zhǔn)確地確定一個計步波峰,本文進行多次濾波,使波形變得更平滑,較大的偽波峰大多被濾除掉了.此外,通過設(shè)定波峰閾值以及相鄰峰值的時間差閾值來確定一次計步.正常人行走的頻率為1~2Hz,因此本文中時間差閾值取0.2s.
由式(2)和式(3)得出多次濾波輸出和采樣輸入的最終關(guān)系式:
(4)
(5)
(6)
(7)
2.1 算法實現(xiàn)
算法總體流程如圖5所示,計步判斷流程圖如圖6所示.
圖5 總體流程圖
圖6 計步判定流程圖
2.2 算法驗證及分析
在Android手機上編寫APP來驗證算法的有效性和準(zhǔn)確性,測試手機使用魅藍M1.正常人步行頻率為1~2Hz,步行最快可達到3Hz.本文低頻步行測試中,將步行頻率控制在1~2Hz.測試實驗中,采樣窗口設(shè)為10,采樣頻率為50Hz,閾值更新窗口設(shè)為5,分別進行1 000步,2 000步,3 000步各3次測試并對準(zhǔn)確率求平均值.表1為手機放在口袋中,低頻勻速步行的測試數(shù)據(jù),步頻控制在1Hz.表2為手機放在口袋中,低頻變速步行的測試數(shù)據(jù),步頻控制在1~2Hz.表3為本文算法測試結(jié)果與文獻[4]和文獻[7]的對比,表中測試步數(shù)為50~130一項為從50步起,以10步遞增,直到130步,每一種步數(shù)條件下測試計算準(zhǔn)確率,再求各種步數(shù)準(zhǔn)確率的平均值.
表1 勻速步行測試結(jié)果
表2 變速步行測試結(jié)果
表3 在低頻勻速步行下,3種算法平均準(zhǔn)確率對比
根據(jù)測試結(jié)果分析發(fā)現(xiàn):
1)表1和表2中,在同樣步數(shù)測試條件下,不論是勻速步行還是變速步行,本文改進算法的誤差步數(shù)在每一類測試中均大幅小于傳統(tǒng)的峰值檢測法.因此,改進算法可以更精確地測得計步過程中波峰數(shù),有效消除了一些偽波峰對真實波峰數(shù)目的影響.同時,在不同步數(shù)測試條件下,改進算法的準(zhǔn)確率有所差異,但相較于傳統(tǒng)的峰值檢測法變化幅度較小,算法準(zhǔn)確率更為穩(wěn)定.
2)表3中,在相應(yīng)步數(shù)測試條件下,本文改進算法的平均準(zhǔn)確率均高于文獻[4]和文獻[5]算法的平均準(zhǔn)確率.文獻[4]和文獻[5]算法在計步判斷的過程中并沒有對原始加速度信號進行濾波,造成偽波峰的計數(shù)過多,在一定程度上影響了算法檢測的準(zhǔn)確率.
本文提出了一種基于峰值檢測法的改進計步算法.算法對原始加速度采樣值進行多次濾波,經(jīng)過濾波后得到的波形較為平滑.初步實驗結(jié)果表明,在低頻步行測試條件下,相較于峰值檢測法,計步準(zhǔn)確率有較大的提升,驗證了改進算法能較大程度地消除干擾脈沖和偽波峰對計步結(jié)果的影響.同時本算法計算量不大,易于實現(xiàn),具有一定的應(yīng)用價值.
[1]PANMS,LINHW.Astepcountingalgorithmforsmartphnoneusers:Designandimplementation[J].IEEESensorsJournal, 2015,15(4):2296-2305.
[2]ONERM,PULCIFER-STUMPPJA,SEELINGP,etal.Towardstherunandwalkactivityclassificationthroughstepdetection-Anandroidapplication[C]//2012AnnualInternationalConferenceoftheIEEEEngineeringinMedicineandBiologySociety.IEEE, 2012:1980-1983.
[3]陳國良,李飛,張言哲.一種基于自適應(yīng)波峰檢測的MEMS計步算法.中國慣性技術(shù)學(xué)報,2015(3):315-321.
[4]梁久禎,朱向軍,陳璟.基于手機加速度傳感器的高精低采樣計步算法設(shè)計.西北大學(xué)學(xué)報(自然科學(xué)版),2015,45(5):738-744.
[5]宋輝,張榮,王忠民.低功耗手機計步算法[J].西安郵電大學(xué)學(xué)報,2016,21(1):106-109.
[6]DELROSARIOMB,REDMONDSJ,LOVELLNH.Trackingtheevolutionofsmartphonesensingformonitoringhumanmovement[J].Sensors,2015,15(8):18901-18933.
[7]邢秀玉.基于加速度傳感器的人體步態(tài)模式分類研究[D].太原:中北大學(xué),2013.
Research of Low-frequency Step Counting Algorithm Based on Smartphone Accelerometer
ZHANG Haifeng, WEI Zhen
(SchoolofElectronicInformation,HangzhouDianziUniversity,HangzhouZhejiang310018,China)
In the process of the step counting, the noise of the circuit and the pseudo peak generated by the body jitter is the main source of the error. In view of the problem that there may be many pseudo peaks in the traditional peak detection method, an improved step-counting algorithm is proposed. The improved algorithm is based on the peak detection, and performs multiple filtering on the acceleration samples to eliminate the influence of the pseudo peaks as much as possible. The preliminary experiment shows that compared with the traditional peak detection algorithm, under the condition of low-frequency uniform and 1 000-step walking , the accuracy rate of the improved algorithm is increased from 94.43% to 98.88%; and under the condition of low-frequency uniform and 1 000-step walking, the accuracy rate of the improved algorithm is increased from 91.50% to 98.00%.
peak detection; pseudo peaks; multiple filtering
10.13954/j.cnki.hdu.2017.03.003
2016-07-26
張海峰(1961-),男,浙江臺州人,副教授,數(shù)字控制技術(shù).
TP391.4
A
1001-9146(2017)03-0011-04