本發(fā)明屬于生物醫(yī)學(xué)與計(jì)算技術(shù)領(lǐng)域,具體涉及一種基于安卓系統(tǒng)的心電圖機(jī)的實(shí)時(shí)心率計(jì)算系統(tǒng)及其方法。
背景技術(shù):
心率是指正常人安靜狀態(tài)下心臟每分鐘心跳的次數(shù),也叫安靜心率,是心電圖中最易解讀的指標(biāo)。正常心率為60~100次/分鐘,可因年齡、性別或其他生理因素產(chǎn)生個(gè)體差異。一般來(lái)說(shuō),年齡越小,心率越快,老年人心跳比年輕人慢,女性的心率比同齡男性快,運(yùn)動(dòng)員的心率較普通成人偏慢,一般為50次/分鐘左右,這些都是正常的生理現(xiàn)象。心率是機(jī)體功能狀態(tài)的一個(gè)窗口,心率變化與心臟疾病密切相關(guān),因此,本發(fā)明提供一種基于安卓系統(tǒng)的實(shí)時(shí)心率計(jì)算方法是有重要意義的。
目前大多數(shù)成熟的心率計(jì)算方法要么選用專用硬件芯片實(shí)現(xiàn),功能單一,成本比較高;要么采用傳統(tǒng)方法實(shí)現(xiàn),算法復(fù)雜,實(shí)時(shí)性不高。隨著科技和互聯(lián)網(wǎng)迅猛發(fā)展,所有面向終端的操作都要提高用戶體驗(yàn)感。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是針對(duì)現(xiàn)有技術(shù)的缺陷,提供一種基于安卓系統(tǒng)的心電圖機(jī)的實(shí)時(shí)心率計(jì)算系統(tǒng)及其方法,能夠利用現(xiàn)有的數(shù)據(jù)通過(guò)軟件算法得出實(shí)時(shí)心率,減少額外的軟硬件開(kāi)銷。
本發(fā)明提供了一種基于安卓系統(tǒng)的心電圖機(jī)的實(shí)時(shí)心率計(jì)算系統(tǒng),其特征在于包括用于采集人體實(shí)時(shí)心率信號(hào)的前端數(shù)據(jù)采集模塊、顯示模塊和主控制板,主控制板設(shè)置有中央處理模塊、信號(hào)轉(zhuǎn)換模塊、濾波模塊、I導(dǎo)聯(lián)數(shù)據(jù)模塊、心率計(jì)算模塊和內(nèi)部接口模塊;前端數(shù)據(jù)采集模塊通過(guò)USB線與主控板的內(nèi)部接口模塊電連接,中央處理模塊和內(nèi)部接口模塊電連接,中央處理模塊通過(guò)內(nèi)部接口模塊實(shí)現(xiàn)和前端數(shù)據(jù)采集模塊之間進(jìn)行心率數(shù)據(jù)的交互;中央處理模塊傳遞心率數(shù)據(jù)至信號(hào)轉(zhuǎn)換模塊,信號(hào)轉(zhuǎn)換模塊實(shí)現(xiàn)數(shù)據(jù)的拼接和電壓的轉(zhuǎn)換;信號(hào)轉(zhuǎn)換模塊將處理后的數(shù)據(jù)傳遞至濾波模塊電連接,濾波模塊實(shí)現(xiàn)數(shù)據(jù)的濾波操作,消除雜波信號(hào);濾波模塊將處理后的信號(hào)傳遞至I導(dǎo)聯(lián)數(shù)據(jù)模塊,I導(dǎo)聯(lián)數(shù)據(jù)模塊從導(dǎo)聯(lián)心電數(shù)據(jù)中提取導(dǎo)聯(lián)數(shù)據(jù);導(dǎo)聯(lián)模塊將導(dǎo)聯(lián)數(shù)據(jù)傳遞至心率計(jì)算模塊,心率計(jì)算模塊接收導(dǎo)聯(lián)數(shù)據(jù)并實(shí)現(xiàn)心率計(jì)算,心率計(jì)算模塊將計(jì)算結(jié)果通過(guò)內(nèi)部接口模塊傳遞至顯示模塊顯示。
本發(fā)明提供了一種基于安卓系統(tǒng)的心電圖機(jī)的實(shí)時(shí)心率計(jì)算方法,其特征在于:它包括以下步驟:
第一步,心電計(jì)算模塊從導(dǎo)聯(lián)模塊發(fā)送的導(dǎo)聯(lián)數(shù)據(jù)中獲取R波;
第二步,心電計(jì)算模塊找出R波的峰值及其閥值;
第三步,將R波的值與計(jì)算所得的閥值相比較,若大于閥值,則標(biāo)記為最大值并記錄其索引位置;
第四步,利用下列公式計(jì)算心率:HR=60*1000*2/(Index_R[N]-Index_R[0]),其中,HR指心率,Index_R[0]指第一個(gè)最大值的索引位置,Index_R[N]指最后一個(gè)最大值的索引位置,N為2。
上述技術(shù)方案中,第二步中R波的峰值是從2.2s的導(dǎo)聯(lián)數(shù)據(jù)中尋找。
上述技術(shù)方案中,所述R波閥值是通過(guò)峰值乘以閥值系數(shù)0.707計(jì)算得出。
上述技術(shù)方案中,第三步,從DataLen長(zhǎng)度的(DataLen=timesecend*fs/down)導(dǎo)聯(lián)數(shù)據(jù)中找出R波最大值及其索引位置;所述DataLen是指每次用來(lái)計(jì)算心率數(shù)據(jù)的個(gè)數(shù);所述timesecend是指用來(lái)計(jì)算N個(gè)R波的時(shí)間長(zhǎng)度(秒);所述fs是指數(shù)據(jù)采樣頻率,即每秒鐘采集到的數(shù)據(jù)個(gè)數(shù);所述down是指降采樣率。
上述技術(shù)方案中,還包括從當(dāng)前數(shù)據(jù)點(diǎn)后50個(gè)數(shù)據(jù)點(diǎn)中尋找R波最大值,如果找到R波最大值,則R波計(jì)數(shù)加1并記錄當(dāng)前R波的索引位置,再?gòu)漠?dāng)前R波最大值位置向后跳過(guò)200個(gè)數(shù)據(jù)點(diǎn)尋找下一個(gè)R波最大值;如果沒(méi)有找到R波最大值,數(shù)據(jù)點(diǎn)往后移一個(gè),再以50個(gè)數(shù)據(jù)點(diǎn)為一個(gè)區(qū)間繼續(xù)尋找R波最大值,直到找到3個(gè)R波及其對(duì)應(yīng)的索引位置Index_R[0]、Index_R[1]和Index_R[2]。
上述技術(shù)方案中,數(shù)據(jù)采樣頻率fs為1000Hz;降采樣率down為1。
本發(fā)明案例經(jīng)過(guò)在基于安卓系統(tǒng)的心電圖機(jī)上測(cè)試,準(zhǔn)確計(jì)算出正常人的心率一般都在2s以內(nèi),相比傳統(tǒng)模式,運(yùn)算量和計(jì)算時(shí)間大大縮短,為心率的變化提供了實(shí)時(shí)的保證。
本發(fā)明基于安卓系統(tǒng)的實(shí)時(shí)心率計(jì)算方法與傳統(tǒng)方法相比,具有快速、準(zhǔn)確、不增加額外硬件,軟件算法精簡(jiǎn)等特點(diǎn)。本發(fā)明在心率計(jì)算的實(shí)時(shí)性和準(zhǔn)確性方面做了很大提升,特別適用在安卓、Linux等嵌入式、手持式的移動(dòng)終端上應(yīng)用,使得實(shí)時(shí)心率的易用性和實(shí)用性大大提高。
附圖說(shuō)明
圖1是為本發(fā)明專利結(jié)構(gòu)示意圖;
圖2是為本發(fā)明專利的電氣接線圖。
圖3是為本發(fā)明專利的軟件流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明,便于清楚地了解本發(fā)明,但它們不對(duì)本發(fā)明構(gòu)成限定。
本發(fā)明下面結(jié)合具體事例對(duì)發(fā)明做詳細(xì)介紹:
如圖1所示,基于安卓系統(tǒng)的心電圖機(jī)的實(shí)時(shí)心率計(jì)算方法是在安卓系統(tǒng)的心電圖機(jī)上實(shí)現(xiàn)的,包括主控制板、顯示模塊和前端數(shù)據(jù)采集模塊等。本實(shí)施例主控制板中央處理模塊所用中央處理器(CPU)采用Fresscale i.MX6Q四核工業(yè)級(jí)處理器,具有極高的性能、優(yōu)越的功耗表現(xiàn)、極高的性價(jià)比和穩(wěn)定性。本發(fā)明包括用于采集人體實(shí)時(shí)心率信號(hào)的前端數(shù)據(jù)采集模塊、顯示模塊和主控制板,主控制板設(shè)置有中央處理模塊、信號(hào)轉(zhuǎn)換模塊、濾波模塊、I導(dǎo)聯(lián)數(shù)據(jù)模塊、心率計(jì)算模塊和內(nèi)部接口模塊;前端數(shù)據(jù)采集模塊通過(guò)USB線與主控板的內(nèi)部接口模塊電連接,中央處理模塊和內(nèi)部接口模塊電連接,中央處理模塊通過(guò)內(nèi)部接口模塊實(shí)現(xiàn)和前端數(shù)據(jù)采集模塊之間進(jìn)行心率數(shù)據(jù)的交互;中央處理模塊傳遞心率數(shù)據(jù)至信號(hào)轉(zhuǎn)換模塊,信號(hào)轉(zhuǎn)換模塊實(shí)現(xiàn)數(shù)據(jù)的拼接和電壓的轉(zhuǎn)換;信號(hào)轉(zhuǎn)換模塊將處理后的數(shù)據(jù)傳遞至濾波模塊電連接,濾波模塊實(shí)現(xiàn)數(shù)據(jù)的濾波操作,消除雜波信號(hào);濾波模塊將處理后的信號(hào)傳遞至I導(dǎo)聯(lián)數(shù)據(jù)模塊,I導(dǎo)聯(lián)數(shù)據(jù)模塊從導(dǎo)聯(lián)心電數(shù)據(jù)中提取導(dǎo)聯(lián)數(shù)據(jù);導(dǎo)聯(lián)模塊將導(dǎo)聯(lián)數(shù)據(jù)傳遞至心率計(jì)算模塊,心率計(jì)算模塊接收導(dǎo)聯(lián)數(shù)據(jù)并實(shí)現(xiàn)心率計(jì)算,心率計(jì)算模塊將計(jì)算結(jié)果通過(guò)內(nèi)部接口模塊傳遞至顯示模塊顯示。
如圖2所示,是本實(shí)施例基于安卓系統(tǒng)的心電圖機(jī)的電氣接線圖。
如圖3所示,是本實(shí)施例基于安卓系統(tǒng)的心電圖機(jī)的實(shí)時(shí)心率計(jì)算方法的軟件流程圖。下面結(jié)合具體事例對(duì)發(fā)明做詳細(xì)介紹:
通過(guò)定位和統(tǒng)計(jì)R波快速準(zhǔn)確地計(jì)算出心率,其特征在于,包括:基于安卓系統(tǒng)實(shí)現(xiàn)的實(shí)時(shí)心率的一種計(jì)算方法。
將本發(fā)明的程序做成一個(gè)線程,每DataLen個(gè)點(diǎn)執(zhí)行一次。對(duì)系統(tǒng)性能不產(chǎn)生干涉且不影響系統(tǒng)其它功能。
上述DataLen表示每次用來(lái)計(jì)算心率數(shù)據(jù)的個(gè)數(shù),在本發(fā)明當(dāng)中DataLen的定義是:DataLen=statesecend*fs/down;
其中,
down=1;//降采樣率;
fs=1000;//采樣頻率Hz;
statesecend=4;//用來(lái)計(jì)算3個(gè)R波的時(shí)間長(zhǎng)度(秒)。
本發(fā)明是采用濾波后的I導(dǎo)聯(lián)數(shù)據(jù)為例來(lái)講述在安卓系統(tǒng)下實(shí)時(shí)心率計(jì)算的方法。也可以選擇信號(hào)最強(qiáng)的一條胸導(dǎo)來(lái)計(jì)算心率,或者用幾個(gè)導(dǎo)聯(lián)的數(shù)據(jù)同時(shí)計(jì)算,只需調(diào)整各導(dǎo)聯(lián)R波閥值系數(shù),選擇最大的那個(gè)數(shù)字作為當(dāng)前心率,其方法都是一樣的。具體步驟為:
(1)求R波的最大值及其閥值
因?yàn)檎H说男奶秶炔粦?yīng)該低于30次/分鐘,也不應(yīng)該高于300次/分鐘,經(jīng)測(cè)試,選擇從2.2秒的數(shù)據(jù)即2200個(gè)數(shù)據(jù)點(diǎn)中找到R波的最大值(峰值)。函數(shù)為:
[R_value,R_index]=max(dx);//R_value是指R波的幅值,R_index是指R波的索引位置。
其中,max()函數(shù)要實(shí)現(xiàn)的功能是:輸入濾波后的I導(dǎo)聯(lián)數(shù)據(jù),通過(guò)R波幅值的大小比較,輸出找到的R波最大值(峰值)及其位置的索引號(hào)。
根據(jù)調(diào)用max函數(shù)輸出結(jié)果,計(jì)算R波的閥值。
公式為:
thres=Th*R_value;//R波閾值
其中,thres代表閥值,Th=0.707為R波閥值系數(shù)。
(2)找到3個(gè)R波及其索引位置
選擇從4秒的數(shù)據(jù)即4000個(gè)數(shù)據(jù)點(diǎn)中找出3個(gè)R波。
從當(dāng)前數(shù)據(jù)點(diǎn)后50個(gè)數(shù)據(jù)點(diǎn)中尋找R波最大值,如果找到R波最大值,則R波計(jì)數(shù)加1并記錄當(dāng)前R波的索引位置,再?gòu)漠?dāng)前R波最大值位置向后跳過(guò)200個(gè)數(shù)據(jù)點(diǎn)尋找下一個(gè)R波最大值(;如果沒(méi)有找到R波最大值,數(shù)據(jù)點(diǎn)往后移一個(gè),再以50個(gè)數(shù)據(jù)點(diǎn)為一個(gè)區(qū)間繼續(xù)尋找R波最大值,直到找到3個(gè)R波最大值及其對(duì)應(yīng)的索引位置Index_R[0]、Index_R[1]和Index_R[2]。每執(zhí)行完4秒數(shù)據(jù)后,再進(jìn)入循環(huán),執(zhí)行清零操作。
(3)得到心率
經(jīng)過(guò)以上計(jì)算結(jié)果,代入下面公式中:
HR=60*1000*2/(Index_R[2]-Index_R[0]);
其中,Index_R[2]是指第3個(gè)R波最大值的索引位置;Index_R[0])是指第1個(gè)R波最大值的索引位置。
即可以得到心率。
本說(shuō)明書未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。