低功耗心率檢測儀設計
4.1 心率算法描述
本文引用地址:http://www.104case.com/article/266044.htm計算心率也就是計算每兩個R峰之間的時間,所以找到R峰的準確位置則是關鍵。我們在連續信號通過找到倒數為0的值來找到峰值,而在采樣得到的離散信號理中則通過差分來找到峰值。為了顯示的心電波形更真實,我們的采樣率為100Hz。為了配合手機顯示模塊,每次采樣700個點,而計算的心率則為在這段時間內的平均心率。在顯示結束后再立刻開始采樣,刷新現有數據。然后一直重復執行來獲得相對的實時心率。通過差分求極點的算法較為準確,可以有效地算出心率。首先進行預處理:用簡單的5點平滑濾波法,去除采樣數據的小誤差。為了排除干擾,我們將R峰幅值的70%作為一個閾值,小于這個值的都置為0,不影響后面的判斷。接著進行心率計算:將信號進行兩次差分,將每個值為-2的點(若某個點的值為-2,則表示該點相對于前一個點呈增加趨勢,而后一個點相對于該店呈減少趨勢,可知這個點是我們尋找的峰值)的下標儲存且標記。
心率 = [1÷(RR峰間隔/采樣率)]*60
4.2 手機端 Android 應用
1.使用說明:
(1)點擊開啟藍牙開啟手機藍牙并連接使用的藍牙模塊,點擊波形顯示在中央的白色畫布顯示波形,點擊開始采樣可以向藍牙模塊發送開始信息。
(2)當所連接的藍牙模塊有數據傳輸時,心率會顯示心率數值,如果心率低于50字體變為黃色并閃爍,若高于90字體變為紅色并閃爍以起到報警作用。
(3)若有數據傳入的同時正在顯示波形,則畫布上會顯示經藍牙模塊傳輸的波形。
2.系統設計如圖7。
3.具體實現:
(1)使用Eclipse平臺進行手機端Android程序編寫,使用Android4.2.2系統華為手機進行調試。
(2)藍牙線程:采用輸入輸出流操作,將藍牙模塊傳輸的信號讀取到一個字節(Byte)數組存儲,第一位為心率數值可顯示為0~255,后面數據為波形數據,傳輸到繪圖線程進行波形的繪制。心率數值通過信息句柄傳輸到UI線程,顯示心率并對超限心率進行報警。
(3)繪圖線程:先對背景坐標軸進行繪制,使用打點的方法將讀入的波形數據繪制在畫布上,并且對橫坐標計數,當運行到屏幕最后時再從頭開始逐步刷新波形。
4.3 單片機軟件模塊
4.3.1 AD采樣模塊
因為要將模擬信號轉換為數字信號,再進行數據處理,所以AD采樣十分重要。5529內部有高性能的12位的ADC,轉換速率快,采樣值精確。使用單通道重復采樣模式,我們運用定時器B來觸發采樣,為了波形顯示的完整和信號的準確我們將采樣率設為100Hz。因為手機屏幕一次能顯示700個點,所以我們每次采樣700個點來顯示波形并且計算心率。在中斷中將采樣值存儲到數組中,以采樣次數來控制采樣的結束,到達700個點后,關閉中斷,終止采樣。等待手機接收完數據,再次采樣重復上述步驟。
模擬信號相關文章:什么是模擬信號
高通濾波器相關文章:高通濾波器原理
評論