算法
步伐參數
數字濾波器:首先,為使圖3所示的信號波形變得平滑,需要一個數字濾波器?梢允褂盟膫寄存器和一個求和單元,如圖4所示。當然,可以使用更多寄存器以使加速度數據更加平滑,但響應時間會變慢。
1.004.jpg (8.77 KB, 下載次數: 144)
下載附件
2017-6-14 19:04 上傳
圖4. 數字濾波器 圖5顯示了來自一名步行者所戴計步器的最活躍軸的濾波數據。對于跑步者,峰峰值會更高。
1.005.jpg (24.88 KB, 下載次數: 143)
下載附件
2017-6-14 19:04 上傳
圖5. 最活躍軸的濾波數據 動態閾值和動態精度:系統持續更新3軸加速度的最大值和最小值,每采樣50次更新一次。平均值(Max + Min)/2稱為“動態閾值”。接下來的50次采樣利用此閾值判斷個體是否邁出步伐。由于此閾值每50次采樣更新一次,因此它是動態的。這種選擇具有自適應性,并且足夠快。除動態閾值外,還利用動態精度來執行進一步濾波,如圖6所示。
1.006.jpg (18.23 KB, 下載次數: 134)
下載附件
2017-6-14 19:04 上傳
圖6. 動態閾值和動態精度 利用一個線性移位寄存器和動態閾值判斷個體是否有效地邁出一步。該線性移位寄存器含有2個寄存器:sample_new寄存器和sample_old寄存器。這些寄存器中的數據分別稱為sample_new和sample_old。當新采樣數據到來時,sample_new無條件移入sample_old寄存器。然而,sample_result是否移入sample_new寄存器取決于下述條件:如果加速度變化大于預定義精度,則最新的采樣結果sample_result移入sample_new寄存器,否則sample_new寄存器保持不變。因此,移位寄存器組可以消除高頻噪聲,從而保證結果更加精確。 步伐邁出的條件定義為:當加速度曲線跨過動態閾值下方時,加速度曲線的斜率為負值(sample_new < sample_old)。 . 峰值檢測:步伐計數器根據x、y、z三軸中加速度變化最大的一個軸計算步數。如果加速度變化太小,步伐計數器將忽略。 步伐計數器利用此算法可以很好地工作,但有時顯得太敏感。當計步器因為步行或跑步之外的原因而非常迅速或非常緩慢地振動時,步伐計數器也會認為它是步伐。為了找到真正的有節奏的步伐,必須排除這種無效振動。利用“時間窗口”和“計數規則”可以解決這個問題。 “時間窗口”用于排除無效振動。假設人們最快的跑步速度為每秒5步,最慢的步行速度為每2秒1步。這樣,兩個有效步伐的時間間隔在時間窗口[0.2 s - 2.0 s]之內,時間間隔超出該時間窗口的所有步伐都應被排除。 ADXL345的用戶可選輸出數據速率特性有助于實現時間窗口。表1列出了TA = 25°C, VS = 2.5 V, and VDD I/O = 1.8 V時的可配置數據速率(以及功耗)。
|