本發(fā)明屬于運(yùn)動(dòng)檢測(cè)技術(shù)領(lǐng)域,更具體地,涉及一種用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法。
背景技術(shù):
三軸加速度傳感器,是一個(gè)基于加速度的基本原理去實(shí)現(xiàn)空間加速度傳感的工具。目前的三軸加速度傳感器大多采用壓阻式、壓電式和電容式工作原理,產(chǎn)生的加速度正比于電阻、電壓和電容的變化,通過(guò)相應(yīng)的放大和濾波電路進(jìn)行采集。
工間操是一種不受場(chǎng)地限制的微運(yùn)動(dòng)。由于其緩解疲勞、調(diào)節(jié)情緒和鍛煉身體的優(yōu)點(diǎn)而日益受到人們的重視,工間操可以即時(shí)卸載身體的負(fù)荷,保持健康的體魄,高效的工作。傳統(tǒng)的做法是,辦公室人員模仿圖片或視頻里的工間操活動(dòng),但是無(wú)法知道姿勢(shì)是否標(biāo)準(zhǔn),如果姿勢(shì)不標(biāo)準(zhǔn),則達(dá)不到良好的運(yùn)動(dòng)效果。基于穿戴于人體肢體的智能設(shè)備或智能手機(jī)中的三軸加速度傳感器可以利用三軸加速度傳感數(shù)據(jù)監(jiān)測(cè)工間操中對(duì)應(yīng)的人類(lèi)肢體運(yùn)動(dòng)軌跡進(jìn)行監(jiān)測(cè)并進(jìn)一步判定工間操的姿勢(shì)是否標(biāo)準(zhǔn)。
人類(lèi)肢體運(yùn)動(dòng)的加速度信號(hào)主要為低頻信號(hào),要求加速度傳感器有較高的靈敏度。但是加速度信號(hào)在激勵(lì)、檢測(cè)和傳輸過(guò)程中會(huì)不同程度地受到環(huán)境高頻噪聲的污染,同時(shí)肢體的抖動(dòng)也會(huì)引入高頻噪聲,因此需要對(duì)人類(lèi)肢體運(yùn)動(dòng)加速度信號(hào)進(jìn)行濾波去噪。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法,其目的在于在運(yùn)動(dòng)檢測(cè)中利用三軸加速度傳感器進(jìn)行數(shù)據(jù)采集時(shí),根據(jù)訓(xùn)練模板的閑置軸向來(lái)開(kāi)關(guān)相應(yīng)軸向的濾波功能,并利用各緩沖器和濾波器對(duì)各軸向數(shù)據(jù)進(jìn)行均值濾波,實(shí)現(xiàn)了運(yùn)動(dòng)檢測(cè)過(guò)程中在較低系統(tǒng)資源消耗的情況下對(duì)低頻運(yùn)動(dòng)信號(hào)中的高頻噪聲的有效濾除,由此解決了現(xiàn)有技術(shù)中無(wú)法有效濾除運(yùn)動(dòng)信號(hào)噪聲以及系統(tǒng)資源消耗較高的技術(shù)問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法,包括:
(1)當(dāng)接收到開(kāi)始三軸加速度數(shù)據(jù)濾波指令時(shí),轉(zhuǎn)入步驟(2)清空各類(lèi)型數(shù)據(jù)緩沖器;
(2)清空x軸鄰域數(shù)據(jù)環(huán)形緩沖器、y軸鄰域數(shù)據(jù)環(huán)形緩沖器和z軸鄰域數(shù)據(jù)環(huán)形緩沖器,并清空x軸數(shù)據(jù)緩存器、y軸數(shù)據(jù)緩存器和z軸數(shù)據(jù)緩存器;
(3)獲取當(dāng)前訓(xùn)練模板的閑置軸向并分別向x軸均值濾波器、y軸均值濾波器和z軸均值濾波器發(fā)送軸向數(shù)據(jù)濾波開(kāi)關(guān)控制指令;
(4)所述x軸均值濾波器、y軸均值濾波器和z軸均值濾波器分別根據(jù)各自收到的數(shù)據(jù)濾波開(kāi)關(guān)控制指令開(kāi)啟或關(guān)閉自身的濾波功能;
(5)通過(guò)加速度傳感數(shù)據(jù)采集器獲取三軸加速度傳感器的加速度采樣點(diǎn)數(shù)據(jù);
(6)判斷三軸加速度數(shù)據(jù)濾波是否被外部事件中斷,如果是則轉(zhuǎn)步驟(10),如果否則轉(zhuǎn)步驟(7);
(7)將采樣點(diǎn)數(shù)據(jù)的x軸、y軸和z軸的加速度分量分別分發(fā)給所述x軸均值濾波器、y軸均值濾波器和z軸均值濾波器;
(8)分別判斷所述x軸均值濾波器、y軸均值濾波器和z軸均值濾波器的濾波功能是否開(kāi)啟,如果開(kāi)啟則由相應(yīng)軸向均值濾波器對(duì)相應(yīng)的軸向加速度分量進(jìn)行均值濾波處理,并將均值濾波處理后的相應(yīng)軸向加速度分量數(shù)值存入相應(yīng)軸向數(shù)據(jù)緩存器;如果關(guān)閉則直接將所述采樣點(diǎn)數(shù)據(jù)的相應(yīng)軸向原始加速度分量直接存入相應(yīng)軸向數(shù)據(jù)緩存器;
(9)判斷是否接收到停止三軸加速度數(shù)據(jù)濾波指令,如果是則轉(zhuǎn)步驟(10),如果否則轉(zhuǎn)步驟(5)繼續(xù)進(jìn)行運(yùn)動(dòng)傳感數(shù)據(jù)采集。
(10)所述加速度傳感數(shù)據(jù)采集器停止數(shù)據(jù)采集,或注銷(xiāo)所述三軸加速度傳感器,停止三軸加速度數(shù)據(jù)濾波。
本發(fā)明的一個(gè)實(shí)施例中,所述步驟(8)具體為:
如果所述x軸均值濾波器的濾波功能開(kāi)啟,則所述x軸均值濾波器對(duì)x軸加速度分量進(jìn)行均值濾波處理,并將均值濾波處理后的x軸加速度分量數(shù)值存入x軸數(shù)據(jù)緩存器,否則直接將所述采樣點(diǎn)數(shù)據(jù)的x軸原始加速度分量直接存入x軸數(shù)據(jù)緩存器;如果所述y軸均值濾波器的濾波功能開(kāi)啟,則所述y軸均值濾波器對(duì)y軸加速度分量進(jìn)行均值濾波處理,并將均值濾波處理后的y軸加速度分量數(shù)值存入y軸數(shù)據(jù)緩存器,否則直接將所述采樣點(diǎn)數(shù)據(jù)的y軸原始加速度分量直接存入y軸數(shù)據(jù)緩存器;如果所述z軸均值濾波器的濾波功能開(kāi)啟,則所述z軸均值濾波器對(duì)z軸加速度分量進(jìn)行均值濾波處理,并將均值濾波處理后的z軸加速度分量數(shù)值存入z軸數(shù)據(jù)緩存器,否則直接將所述采樣點(diǎn)數(shù)據(jù)的z軸原始加速度分量直接存入z軸數(shù)據(jù)緩存器。
本發(fā)明的一個(gè)實(shí)施例中,所述相應(yīng)軸向均值濾波器對(duì)相應(yīng)的軸向加速度分量進(jìn)行均值濾波處理,具體為:
由所述相應(yīng)軸向均值濾波器根據(jù)所述采樣點(diǎn)數(shù)據(jù)的相應(yīng)軸向加速度分量更新相應(yīng)軸向鄰域環(huán)形緩沖器;
所述相應(yīng)軸向均值濾波器從相應(yīng)軸向鄰域環(huán)形緩沖器中獲取更新后的相應(yīng)軸向鄰域數(shù)據(jù)集;
由所述相應(yīng)軸向均值濾波器對(duì)所述相應(yīng)軸向鄰域數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行均值計(jì)算求取平均值,將求取的平均值作為均值濾波處理后的相應(yīng)軸向加速度分量數(shù)值。
本發(fā)明的一個(gè)實(shí)施例中,
所述步驟(2)中還包括:將歷史訓(xùn)練模板閑置軸向設(shè)為空;
所述步驟(3)具體為:當(dāng)歷史訓(xùn)練模板閑置軸向?yàn)榭諘r(shí),獲取當(dāng)前訓(xùn)練模板的閑置軸向并分別向x軸均值濾波器、y軸均值濾波器和z軸均值濾波器發(fā)送軸向數(shù)據(jù)濾波開(kāi)關(guān)控制指令,保存當(dāng)前訓(xùn)練模板的閑置軸向作為歷史訓(xùn)練模板閑置軸向,并轉(zhuǎn)步驟(4);
當(dāng)歷史訓(xùn)練模板閑置軸向不為空時(shí),獲取當(dāng)前訓(xùn)練模板的閑置軸向,將當(dāng)前訓(xùn)練模板的閑置軸向與歷史訓(xùn)練模板閑置軸向?qū)Ρ?,如果相同則轉(zhuǎn)步驟(5),如果不同則根據(jù)當(dāng)前訓(xùn)練模板的閑置軸向分別向x軸均值濾波器、y軸均值濾波器和z軸均值濾波器發(fā)送軸向數(shù)據(jù)濾波開(kāi)關(guān)控制指令,保存當(dāng)前訓(xùn)練模板的閑置軸向作為歷史訓(xùn)練模板閑置軸向,并轉(zhuǎn)步驟(4);
所述步驟(9)為:判斷是否接收到停止運(yùn)動(dòng)檢測(cè)指令,如果是則轉(zhuǎn)步驟(10),如果否則轉(zhuǎn)步驟(3)繼續(xù)進(jìn)行運(yùn)動(dòng)傳感數(shù)據(jù)采集。
本發(fā)明的一個(gè)實(shí)施例中,所述均值計(jì)算為算術(shù)平均,或者幾何平均,或者調(diào)和平均,或者加權(quán)平均,或者平方平均,或者指數(shù)平均,或者中位數(shù)平均。
本發(fā)明的一個(gè)實(shí)施例中,在所述步驟(5)之前還包括:判斷所述三軸加速度傳感器是否開(kāi)啟,如果否則開(kāi)啟所述三軸加速度傳感器。
本發(fā)明的一個(gè)實(shí)施例中,所述x軸鄰域數(shù)據(jù)環(huán)形緩沖器、y軸鄰域數(shù)據(jù)環(huán)形緩沖器和z軸鄰域數(shù)據(jù)環(huán)形緩沖器的長(zhǎng)度根據(jù)所述加速度傳感數(shù)據(jù)采集器的當(dāng)前采樣頻率與噪聲特性確定。
本發(fā)明的一個(gè)實(shí)施例中,所述步驟(6)中判斷是否被外部事件中斷,具體為:當(dāng)接收到來(lái)電請(qǐng)求、視頻或話(huà)音通話(huà)請(qǐng)求、視頻或語(yǔ)音或文本消息或者智能手持設(shè)備的任何用戶(hù)界面操作行為中的一個(gè)或多個(gè),或者切換到其他應(yīng)用程序界面,則確定三軸加速度數(shù)據(jù)濾波被外部事件中斷。
本發(fā)明的一個(gè)實(shí)施例中,所述x軸數(shù)據(jù)緩存器、y軸數(shù)據(jù)緩存器和z軸數(shù)據(jù)緩存器的長(zhǎng)度根據(jù)三軸加速度傳感器的采樣頻率與智能手持設(shè)備的剩余運(yùn)行內(nèi)存容量確定。
本發(fā)明的一個(gè)實(shí)施例中,所述x軸數(shù)據(jù)緩存器、y軸數(shù)據(jù)緩存器和z軸數(shù)據(jù)緩存器的長(zhǎng)度大于200。
總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有如下有益效果:
(1)本發(fā)明提供的用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法,通過(guò)在運(yùn)動(dòng)檢測(cè)中利用三軸加速度傳感器進(jìn)行數(shù)據(jù)采集時(shí),根據(jù)訓(xùn)練模板的閑置軸向來(lái)開(kāi)關(guān)相應(yīng)軸向的濾波功能,并利用各緩沖器和濾波器對(duì)各軸向數(shù)據(jù)進(jìn)行均值濾波,實(shí)現(xiàn)了運(yùn)動(dòng)檢測(cè)過(guò)程中在較低系統(tǒng)資源消耗的情況下對(duì)低頻運(yùn)動(dòng)信號(hào)中的高頻噪聲的有效濾除;
(2)本發(fā)明提供的用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法,利用鄰域數(shù)據(jù)環(huán)形緩沖器緩存三軸加速度原始數(shù)據(jù)用于后續(xù)的均值計(jì)算,從而不需要在均值計(jì)算過(guò)程中發(fā)生內(nèi)存數(shù)據(jù)的拷貝,并且利用求平均值來(lái)平滑信號(hào)中的高頻噪聲可以獲得極小的運(yùn)算部件的占用,濾波方法的速度較高,系統(tǒng)資源消耗較小;
(3)本發(fā)明提供的用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法,通過(guò)獲取當(dāng)前訓(xùn)練模板的閑置軸向,可以對(duì)閑置軸向(例如水平或垂直方向)的肢體運(yùn)動(dòng)數(shù)據(jù)不作濾波運(yùn)算,大幅度降低了本發(fā)明方法的運(yùn)算負(fù)載,從而在水平和垂直方向的肢體運(yùn)動(dòng)加速度數(shù)據(jù)的濾波中具有更小的運(yùn)算部件占用;
(4)本發(fā)明提供的用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法,在工間操運(yùn)動(dòng)檢測(cè)被其他智能手機(jī)應(yīng)用中斷時(shí)可以通過(guò)及時(shí)停止或注銷(xiāo)三軸加速度傳感器設(shè)備資源來(lái)停止三軸加速度傳感器的采集或?yàn)V波操作降低對(duì)智能手機(jī)的計(jì)算資源占用,從而可以隨時(shí)釋放計(jì)算資源保證操作系統(tǒng)或其他應(yīng)用程序?qū)τ?jì)算資源的需求,保證用戶(hù)的良好體驗(yàn)。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例中一種用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法的流程示意圖;
圖2是本發(fā)明實(shí)施例中各軸向?yàn)V波方法的流程示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
由于人類(lèi)肢體運(yùn)動(dòng)的加速度信號(hào)主要為低頻信號(hào),要求加速度傳感器有較高的靈敏度。但是加速度信號(hào)在激勵(lì)、檢測(cè)和傳輸過(guò)程中會(huì)不同程度地受到環(huán)境高頻噪聲的污染,同時(shí)肢體的抖動(dòng)也會(huì)引入高頻噪聲,因此需要對(duì)人類(lèi)肢體運(yùn)動(dòng)加速度信號(hào)進(jìn)行濾波去噪。
為了解決上述技術(shù)問(wèn)題,如圖1所示,本發(fā)明提供了一種用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法,包括:
(1)當(dāng)接收到開(kāi)始三軸加速度數(shù)據(jù)濾波指令時(shí),轉(zhuǎn)入步驟(2)清空各類(lèi)型數(shù)據(jù)緩沖器;
本發(fā)明方法為了對(duì)三軸加速度數(shù)據(jù)進(jìn)行濾波,需要對(duì)三軸加速度傳感器采集的原始數(shù)據(jù)進(jìn)行緩存,對(duì)計(jì)算過(guò)程中的數(shù)據(jù)進(jìn)行緩存,以及對(duì)濾波結(jié)果進(jìn)行緩存。因此本發(fā)明方法中,設(shè)計(jì)了各個(gè)軸向的鄰域數(shù)據(jù)環(huán)形緩沖器,用于存儲(chǔ)相應(yīng)軸向的采樣點(diǎn)數(shù)據(jù)的x軸、y軸和z軸的加速度分量,環(huán)形緩沖器是為了當(dāng)前數(shù)據(jù)和多個(gè)歷史數(shù)據(jù)以進(jìn)行均值計(jì)算實(shí)現(xiàn)濾波;并且設(shè)計(jì)了各個(gè)軸向的數(shù)據(jù)緩存器,用于存儲(chǔ)相應(yīng)軸向的數(shù)據(jù)結(jié)果;
當(dāng)開(kāi)始進(jìn)行新的運(yùn)動(dòng)檢測(cè),或者從暫停狀態(tài)恢復(fù)運(yùn)動(dòng)檢測(cè),從此可通過(guò)運(yùn)動(dòng)檢測(cè)應(yīng)用程序下達(dá)一個(gè)開(kāi)始三軸加速度數(shù)據(jù)濾波的指令,即表明需要開(kāi)始采集數(shù)據(jù)并進(jìn)行均值濾波,此時(shí)轉(zhuǎn)入步驟(2);
(2)清空x軸鄰域數(shù)據(jù)環(huán)形緩沖器、y軸鄰域數(shù)據(jù)環(huán)形緩沖器和z軸鄰域數(shù)據(jù)環(huán)形緩沖器,并清空x軸數(shù)據(jù)緩存器、y軸數(shù)據(jù)緩存器和z軸數(shù)據(jù)緩存器;
由于各緩沖器中可能還存在著歷史數(shù)據(jù),所以在濾波開(kāi)始前需要清空各緩沖器中的歷史數(shù)據(jù);
(3)獲取當(dāng)前訓(xùn)練模板的閑置軸向并分別向x軸均值濾波器、y軸均值濾波器和z軸均值濾波器發(fā)送軸向數(shù)據(jù)濾波開(kāi)關(guān)控制指令;
另外由于人類(lèi)肢體運(yùn)動(dòng)的加速度信號(hào)主要由移動(dòng)手持終端的硬件完成處理,所以需要以較低的系統(tǒng)資源占用來(lái)實(shí)現(xiàn)。同時(shí)人類(lèi)肢體運(yùn)動(dòng)中存在許多水平和垂直方向的規(guī)則運(yùn)動(dòng),這些運(yùn)動(dòng)類(lèi)型中的運(yùn)動(dòng)平面的垂直方向加速度傳感數(shù)據(jù)具有很小的波動(dòng)性。在運(yùn)動(dòng)檢測(cè)時(shí),只需要使用這一方向加速度數(shù)據(jù)的波動(dòng)性衡量結(jié)果即可判定運(yùn)動(dòng)的標(biāo)準(zhǔn)程度,所以不需要對(duì)這一方向的數(shù)據(jù)進(jìn)行濾波處理。
所以在濾波過(guò)程中,可以關(guān)閉閑置軸向的濾波功能;閑置軸向是指在運(yùn)動(dòng)過(guò)程中波動(dòng)輻動(dòng)較小的軸向;在工間操的姿勢(shì)檢測(cè)中是通過(guò)將采集的實(shí)際運(yùn)動(dòng)姿態(tài)將預(yù)先存儲(chǔ)的訓(xùn)練模板相比對(duì),判斷運(yùn)動(dòng)姿態(tài)是否標(biāo)準(zhǔn)。在此,可以在訓(xùn)練模板中保存每個(gè)階段(階段可大可小,例如可以通過(guò)姿態(tài)的變化大小來(lái)設(shè)定)的閑置軸向;
例如,當(dāng)上肢水平運(yùn)動(dòng)時(shí),此時(shí)z軸方向的波動(dòng)基本上為零,而只需獲得xy軸方向的數(shù)據(jù)進(jìn)行姿態(tài)比對(duì)即可,此時(shí)則可不對(duì)z軸的數(shù)據(jù)進(jìn)行濾波處理而僅對(duì)xy軸的數(shù)據(jù)進(jìn)行濾波處理;則在該動(dòng)作的訓(xùn)練模板中可設(shè)置z軸為閑置軸向;
具體的實(shí)現(xiàn)方式可以為,在訓(xùn)練模塊中包含一個(gè)三維矢量[x,y,z],用該三維矢量表示相應(yīng)軸向是否閑置,例如用1表示非閑置用0表示閑置,反之也可以,當(dāng)然還可能用其他數(shù)字或符號(hào)表示閑置或非閑置;例如矢量[1,0,1]表示y軸閑置;
濾波控制器從所述運(yùn)動(dòng)模板數(shù)據(jù)庫(kù)中獲取當(dāng)前訓(xùn)練模板的閑置軸向,并根據(jù)所述閑置軸分別向所述x軸均值濾波器、y軸均值濾波器和z軸均值濾波器發(fā)送軸向數(shù)據(jù)濾波開(kāi)關(guān)控制指令;例如閑置軸向的矢量為[1,0,1],則向y軸均值濾波器發(fā)送數(shù)據(jù)濾波關(guān)閉的控制指令,以關(guān)閉y軸均值濾波器的濾波功能;
(4)所述x軸均值濾波器、y軸均值濾波器和z軸均值濾波器分別根據(jù)各自收到的數(shù)據(jù)濾波開(kāi)關(guān)控制指令開(kāi)啟或關(guān)閉自身的濾波功能;
(5)通過(guò)加速度傳感數(shù)據(jù)采集器獲取三軸加速度傳感器的加速度采樣點(diǎn)數(shù)據(jù);
如果所述三軸加速度傳感器已開(kāi)啟,則直接采集數(shù)據(jù);如果所述三軸加速度傳感器未開(kāi)啟,則開(kāi)啟所述三軸加速度傳感器。
(6)判斷三軸加速度數(shù)據(jù)濾波是否被外部事件中斷,如果是則轉(zhuǎn)步驟(10),如果否則轉(zhuǎn)步驟(7);
利用智能手機(jī)處理加速度傳感數(shù)據(jù)情形下,工間操運(yùn)動(dòng)檢測(cè)可能被電話(huà)、短信以及其他的智能手機(jī)業(yè)務(wù)打斷。這時(shí)為了保證這些業(yè)務(wù)應(yīng)用擁有足夠的手機(jī)資源使用以良好持續(xù),需要立即釋放或降低濾波預(yù)處理活動(dòng)所占用的系統(tǒng)資源。
所以需要在濾波過(guò)程中判斷是否被外部事件中斷,例如當(dāng)接收到來(lái)電請(qǐng)求、視頻或話(huà)音通話(huà)請(qǐng)求、視頻或語(yǔ)音或文本消息或者智能手持設(shè)備的任何用戶(hù)界面操作行為中的一個(gè)或多個(gè),或者切換到其他應(yīng)用程序界面,都可認(rèn)為是三軸加速度數(shù)據(jù)濾波被外部事件中斷。
(7)將采樣點(diǎn)數(shù)據(jù)的x軸、y軸和z軸的加速度分量分別分發(fā)給所述x軸均值濾波器、y軸均值濾波器和z軸均值濾波器;
(8)分別判斷所述x軸均值濾波器、y軸均值濾波器和z軸均值濾波器的濾波功能是否開(kāi)啟,如果開(kāi)啟則由相應(yīng)軸向均值濾波器對(duì)相應(yīng)的軸向加速度分量進(jìn)行均值濾波處理,并將均值濾波處理后的相應(yīng)軸向加速度分量數(shù)值存入相應(yīng)軸向數(shù)據(jù)緩存器;如果關(guān)閉則直接將所述采樣點(diǎn)數(shù)據(jù)的相應(yīng)軸向原始加速度分量直接存入相應(yīng)軸向數(shù)據(jù)緩存器;
具體地,如果所述x軸均值濾波器的濾波功能開(kāi)啟,則所述x軸均值濾波器對(duì)x軸加速度分量進(jìn)行均值濾波處理,并將均值濾波處理后的x軸加速度分量數(shù)值存入x軸數(shù)據(jù)緩存器,否則直接將所述采樣點(diǎn)數(shù)據(jù)的x軸原始加速度分量直接存入x軸數(shù)據(jù)緩存器;如果所述y軸均值濾波器的濾波功能開(kāi)啟,則所述y軸均值濾波器對(duì)y軸加速度分量進(jìn)行均值濾波處理,并將均值濾波處理后的y軸加速度分量數(shù)值存入y軸數(shù)據(jù)緩存器,否則直接將所述采樣點(diǎn)數(shù)據(jù)的y軸原始加速度分量直接存入y軸數(shù)據(jù)緩存器;如果所述z軸均值濾波器的濾波功能開(kāi)啟,則所述z軸均值濾波器對(duì)z軸加速度分量進(jìn)行均值濾波處理,并將均值濾波處理后的z軸加速度分量數(shù)值存入z軸數(shù)據(jù)緩存器,否則直接將所述采樣點(diǎn)數(shù)據(jù)的z軸原始加速度分量直接存入z軸數(shù)據(jù)緩存器。
所述x軸數(shù)據(jù)緩存器、y軸數(shù)據(jù)緩存器和z軸數(shù)據(jù)緩存器的長(zhǎng)度一般可根據(jù)三軸加速度傳感器的采樣頻率與智能手持設(shè)備的剩余運(yùn)行內(nèi)存容量確定。
各軸向數(shù)據(jù)緩存器是用來(lái)存儲(chǔ)濾波(或者存儲(chǔ)保存的原始數(shù)據(jù))的數(shù)據(jù)結(jié)果的,該數(shù)據(jù)結(jié)果應(yīng)用于后續(xù)的運(yùn)動(dòng)檢測(cè);
如果采樣頻率較高,則數(shù)據(jù)緩存器的長(zhǎng)度可設(shè)置較長(zhǎng);如果采樣頻率較低,則數(shù)據(jù)緩存器的長(zhǎng)度可設(shè)置稍短;
另外,數(shù)據(jù)緩存器的長(zhǎng)度也與智能手持設(shè)備的剩余運(yùn)行內(nèi)存容量有關(guān),如果剩余運(yùn)行內(nèi)存容量較大,則數(shù)據(jù)緩存器的長(zhǎng)度可設(shè)置較長(zhǎng);如果剩余運(yùn)行內(nèi)存容量較小,則數(shù)據(jù)緩存器的長(zhǎng)度可設(shè)置較短;
一般地,為了保證數(shù)據(jù)足夠用于后續(xù)運(yùn)動(dòng)檢測(cè),各軸向數(shù)據(jù)緩存器的長(zhǎng)度應(yīng)大于200。例如優(yōu)選可設(shè)置為500。
進(jìn)一步地,對(duì)于各軸向的濾波操作,可以通過(guò)如下步驟實(shí)現(xiàn):
(8.1)由所述相應(yīng)軸向均值濾波器根據(jù)所述采樣點(diǎn)數(shù)據(jù)的相應(yīng)軸向加速度分量更新相應(yīng)軸向鄰域環(huán)形緩沖器;
其中所述環(huán)形緩沖器也稱(chēng)作圓形隊(duì)列(circularqueue),循環(huán)緩沖區(qū)(cyclicbuffer),環(huán)形緩沖區(qū)(ringbuffer),是一種數(shù)據(jù)結(jié)構(gòu)用于表示一個(gè)固定尺寸、頭尾相連的緩沖區(qū),適合緩存數(shù)據(jù)流。更新數(shù)據(jù)的方式是用新的數(shù)據(jù)覆蓋最老的數(shù)據(jù)。由于在環(huán)形緩沖器只需要進(jìn)行指針操作,而不需要進(jìn)行數(shù)據(jù)的內(nèi)存拷貝,所以數(shù)據(jù)存儲(chǔ)速度較快,對(duì)于系統(tǒng)資源的消耗較?。?/p>
所述x軸鄰域數(shù)據(jù)環(huán)形緩沖器、y軸鄰域數(shù)據(jù)環(huán)形緩沖器和z軸鄰域數(shù)據(jù)環(huán)形緩沖器的長(zhǎng)度可以根據(jù)所述加速度傳感數(shù)據(jù)采集器的當(dāng)前采樣頻率與噪聲特性確定。一般地可設(shè)置鄰域數(shù)據(jù)環(huán)形緩沖器的長(zhǎng)度為當(dāng)前采樣頻率的3%至9%。例如,可以將長(zhǎng)度設(shè)置為當(dāng)前采樣頻率的7%,即當(dāng)采樣頻率為100hz時(shí),環(huán)形緩沖器的長(zhǎng)度設(shè)置為7。
另外,如果噪聲頻率較高,則環(huán)形緩沖器的長(zhǎng)度應(yīng)稍長(zhǎng)些;而噪聲頻率較低,則環(huán)形緩沖器的長(zhǎng)度則可稍短些;
(8.2)所述相應(yīng)軸向均值濾波器從相應(yīng)軸向鄰域環(huán)形緩沖器中獲取更新后的相應(yīng)軸向鄰域數(shù)據(jù)集;
(8.3)由所述相應(yīng)軸向均值濾波器對(duì)所述相應(yīng)軸向鄰域數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行均值計(jì)算求取平均值,將求取的平均值作為均值濾波處理后的相應(yīng)軸向加速度分量數(shù)值;
具體地,上述均值計(jì)算可以為算術(shù)平均,或者幾何平均,或者調(diào)和平均,或者加權(quán)平均,或者平方平均,或者指數(shù)平均,或者中位數(shù)平均,下面對(duì)各種均值計(jì)算做一一說(shuō)明:
算術(shù)平均:算術(shù)平均數(shù)是指在一組數(shù)據(jù)中所有數(shù)據(jù)之和再除以數(shù)據(jù)的個(gè)數(shù)。它是反映數(shù)據(jù)集中趨勢(shì)的一項(xiàng)指標(biāo)。把n個(gè)數(shù)的總和除以n,所得的商叫做這n個(gè)數(shù)的算術(shù)平均數(shù)。
公式:
幾何平均:n個(gè)觀察值連乘積的n次方根就是幾何平均數(shù)。
公式:
調(diào)和平均:調(diào)和平均數(shù)是指數(shù)值倒數(shù)的平均數(shù)的倒數(shù),它是加權(quán)算術(shù)平均數(shù)的變形,附屬于算術(shù)平均數(shù),不能單獨(dú)成立體系。且計(jì)算結(jié)果與加權(quán)算術(shù)平均數(shù)完全相等。主要是用來(lái)解決在無(wú)法掌握總體單位數(shù)(頻數(shù))的情況下,只有每組的變量值和相應(yīng)的標(biāo)志總量,而需要求得平均數(shù)的情況下使用的一種數(shù)據(jù)方法。
公式:
加權(quán)平均:加權(quán)平均數(shù)是不同比重?cái)?shù)據(jù)的平均數(shù),加權(quán)平均數(shù)就是把原始數(shù)據(jù)按照合理的比例來(lái)計(jì)算,若n個(gè)數(shù)中,x1出現(xiàn)f1次,x2出現(xiàn)f2次,…,xk出現(xiàn)fk次,那么:
平均數(shù)是加權(quán)平均數(shù)的一種特殊情況,即各項(xiàng)的權(quán)相等時(shí),加權(quán)平均數(shù)就是算術(shù)平均數(shù)。
平方平均:平方平均數(shù)是n個(gè)數(shù)據(jù)的平方的算術(shù)平均數(shù)的算術(shù)平方根。
公式:
指數(shù)平均:指數(shù)平均數(shù)的構(gòu)造原理是對(duì)股票收盤(pán)價(jià)進(jìn)行算術(shù)平均,并根據(jù)計(jì)算結(jié)果來(lái)進(jìn)行分析,用于判斷價(jià)格未來(lái)走勢(shì)得變動(dòng)趨勢(shì)。
中位數(shù)平均:中位數(shù)是刻劃平均水平的統(tǒng)計(jì)量,設(shè)x1,x2,…,xn是來(lái)自總體的樣本,將其從小到大排序?yàn)閤(1),…,x(n),則中位數(shù)定義為:
n為奇數(shù)時(shí):m0.5=x(n+1)/2);
n為偶數(shù)時(shí):
(9)判斷是否接收到停止三軸加速度數(shù)據(jù)濾波指令,如果是則轉(zhuǎn)步驟(10),如果否則轉(zhuǎn)步驟(5)繼續(xù)進(jìn)行運(yùn)動(dòng)傳感數(shù)據(jù)采集。
當(dāng)運(yùn)動(dòng)完成,或者用戶(hù)主動(dòng)需要停止或暫停運(yùn)動(dòng)時(shí),可以通過(guò)運(yùn)動(dòng)檢測(cè)應(yīng)用程序下達(dá)一個(gè)停止三軸加速度數(shù)據(jù)濾波的指令,即表明需要停止采集數(shù)據(jù)并進(jìn)行均值濾波;
(10)所述加速度傳感數(shù)據(jù)采集器停止數(shù)據(jù)采集,或注銷(xiāo)所述三軸加速度傳感器,停止三軸加速度數(shù)據(jù)濾波。
在運(yùn)動(dòng)完成后,或者暫停運(yùn)動(dòng)檢測(cè)時(shí),一般應(yīng)立即釋放或降低濾波預(yù)處理活動(dòng)所占用的系統(tǒng)資源,此時(shí)可讓所述加速度傳感數(shù)據(jù)采集器停止數(shù)據(jù)采集,或注銷(xiāo)所述三軸加速度傳感器。
進(jìn)一步地,本發(fā)明另一實(shí)施例中還提供了一種用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法,在該方法中如果訓(xùn)練模板的閑置軸向不變化,則保持各軸向?yàn)V波器的濾波功能的開(kāi)啟或關(guān)閉狀態(tài);如果訓(xùn)練模板的閑置軸向有變化,則需要更新各軸向?yàn)V波器的濾波功能的開(kāi)啟或關(guān)閉狀態(tài)。
具體地,與圖1所示方法的區(qū)別在于:
所述步驟(2)中還包括:將歷史訓(xùn)練模板閑置軸向設(shè)為空;
在本方法中,設(shè)置一個(gè)存儲(chǔ)變量用于存儲(chǔ)歷史訓(xùn)練模板閑置軸向,即每次獲得當(dāng)前訓(xùn)練模板的閑置軸向后,將其保存到該存儲(chǔ)變量中作為歷史訓(xùn)練模板閑置軸向,用于下次濾波過(guò)程中的閑置軸向比對(duì);
在本步驟中,由于該存儲(chǔ)變量中還可能包含有歷史數(shù)據(jù),所以需要清空;
所述步驟(3)具體為:當(dāng)歷史訓(xùn)練模板閑置軸向?yàn)榭諘r(shí),獲取當(dāng)前訓(xùn)練模板的閑置軸向并分別向x軸均值濾波器、y軸均值濾波器和z軸均值濾波器發(fā)送軸向數(shù)據(jù)濾波開(kāi)關(guān)控制指令,保存當(dāng)前訓(xùn)練模板的閑置軸向作為歷史訓(xùn)練模板閑置軸向,并轉(zhuǎn)步驟(4);
當(dāng)歷史訓(xùn)練模板閑置軸向不為空時(shí),獲取當(dāng)前訓(xùn)練模板的閑置軸向,將當(dāng)前訓(xùn)練模板的閑置軸向與歷史訓(xùn)練模板閑置軸向?qū)Ρ?,如果相同則轉(zhuǎn)步驟(5),如果不同則根據(jù)當(dāng)前訓(xùn)練模板的閑置軸向分別向x軸均值濾波器、y軸均值濾波器和z軸均值濾波器發(fā)送軸向數(shù)據(jù)濾波開(kāi)關(guān)控制指令,保存當(dāng)前訓(xùn)練模板的閑置軸向作為歷史訓(xùn)練模板閑置軸向,并轉(zhuǎn)步驟(4);
所述步驟(9)為:判斷是否接收到停止運(yùn)動(dòng)檢測(cè)指令,如果是則轉(zhuǎn)步驟(10),如果否則轉(zhuǎn)步驟(3)繼續(xù)進(jìn)行運(yùn)動(dòng)傳感數(shù)據(jù)采集。
本發(fā)明提供的用于運(yùn)動(dòng)檢測(cè)的三軸加速度數(shù)據(jù)的均值濾波方法,通過(guò)在運(yùn)動(dòng)檢測(cè)中利用三軸加速度傳感器進(jìn)行數(shù)據(jù)采集時(shí),根據(jù)訓(xùn)練模板的閑置軸向來(lái)開(kāi)關(guān)相應(yīng)軸向的濾波功能,并利用各緩沖器和濾波器對(duì)各軸向數(shù)據(jù)進(jìn)行均值濾波,實(shí)現(xiàn)了運(yùn)動(dòng)檢測(cè)過(guò)程中在較低系統(tǒng)資源消耗的情況下對(duì)低頻運(yùn)動(dòng)信號(hào)中的高頻噪聲的有效濾除,由此解決了現(xiàn)有技術(shù)中無(wú)法有效濾除運(yùn)動(dòng)信號(hào)噪聲以及系統(tǒng)資源消耗較高的技術(shù)問(wèn)題。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。