![手環(huán)項(xiàng)目嵌入式軟件需求說(shuō)明書_第1頁(yè)](http://file4.renrendoc.com/view/da7a43e9c6203add6276b24d7f566e56/da7a43e9c6203add6276b24d7f566e561.gif)
![手環(huán)項(xiàng)目嵌入式軟件需求說(shuō)明書_第2頁(yè)](http://file4.renrendoc.com/view/da7a43e9c6203add6276b24d7f566e56/da7a43e9c6203add6276b24d7f566e562.gif)
![手環(huán)項(xiàng)目嵌入式軟件需求說(shuō)明書_第3頁(yè)](http://file4.renrendoc.com/view/da7a43e9c6203add6276b24d7f566e56/da7a43e9c6203add6276b24d7f566e563.gif)
![手環(huán)項(xiàng)目嵌入式軟件需求說(shuō)明書_第4頁(yè)](http://file4.renrendoc.com/view/da7a43e9c6203add6276b24d7f566e56/da7a43e9c6203add6276b24d7f566e564.gif)
![手環(huán)項(xiàng)目嵌入式軟件需求說(shuō)明書_第5頁(yè)](http://file4.renrendoc.com/view/da7a43e9c6203add6276b24d7f566e56/da7a43e9c6203add6276b24d7f566e565.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-慧創(chuàng)科技(北京)有限公司 項(xiàng)目名稱:手環(huán)系統(tǒng)嵌入式軟件實(shí)現(xiàn)方案說(shuō)明書慧創(chuàng)科技(北京)有限公司有關(guān)該文檔:此文檔的內(nèi)容包括手環(huán)系統(tǒng)嵌入式軟件實(shí)現(xiàn)方案說(shuō)明書。文檔所有者:慧創(chuàng)科技(北京)有限公司文檔版本記錄:版本號(hào)負(fù)責(zé)人完成時(shí)間備注1.0石聰2014-12-81.1石聰2014-12-16目錄TOC o 1-5 h z HYPERLINK l bookmark2 系統(tǒng)功能框架4 HYPERLINK l bookmark4 系統(tǒng)分模塊功能實(shí)現(xiàn)方案4 HYPERLINK l bookmark6 計(jì)步功能實(shí)現(xiàn)方案4 HYPERLINK l bookmark8 跌倒功能實(shí)現(xiàn)方案8 HYPERLINK l
2、 bookmark10 心率功能實(shí)現(xiàn)方案131.系統(tǒng)功能框架2.系統(tǒng)分模塊功能實(shí)現(xiàn)方案21計(jì)步功能實(shí)現(xiàn)方案功能:1.能對(duì)用戶運(yùn)動(dòng)時(shí)所走的路程進(jìn)行計(jì)步。算法:慧創(chuàng)科技(北京)有限公司慧創(chuàng)科技(北京)有限公司 (1)算法流程圖開(kāi)始(2)算法的具體實(shí)現(xiàn)方案代碼中需要用到的變量定義與初始化:定義一個(gè)數(shù)組accVals6用來(lái)存儲(chǔ)從傳感器上得到的原始16位加速度值,具體定義如下:externunsignedcharaccVals6;定義一個(gè)結(jié)構(gòu)體StepCtrl用來(lái)存儲(chǔ)代碼中需要用到的變量,具體定義如下:typedefstructunsignedintaccAll_pf;/XYZ方向加速度的平方和unsi
3、gnedcharstateO;unsignedintstate;state0、state用于計(jì)步數(shù)的顯示unsignedintmin;/波形分析中的極小值unsignedintmax;/波形分析中的極大值unsignedintaccValShort3;/用來(lái)存放濾波后的相鄰三個(gè)數(shù)據(jù)unsignedintaccAll_pf_pj;相鄰三個(gè)accAll_p啲平均值unsignedintaccAll_pf_ys;/用來(lái)存放未濾波前相鄰三個(gè)加速度平方的值unsignedintaccAll_pf_lb11;/用來(lái)存放濾波后的值unsignedcharuTemp1“/uTempuTemp1用于16位數(shù)據(jù)轉(zhuǎn)
4、換為無(wú)符號(hào)的8位數(shù)據(jù)unsignedcharbCurFall;unsignedshortnCurMovingPer;當(dāng)前的運(yùn)動(dòng)百分比StepCtrl;定義一個(gè)結(jié)構(gòu)體變量g_StepCtrl用于管理算法中用到的變量externStepCtrlg_StepCtrl;變量初始化函數(shù):Wg_StepCtrl.min初始為20000,其余變量初始為0。具體初始化代碼如下:voidg_Ctrl_Init()bg_memset(unsignedchar*)(&g_StepCtrl),0,sizeof(g_StepCtrl);g_StepCtrl.min=20000;加速度數(shù)據(jù)處理函數(shù)具體初始化代碼如下:增加
5、一幀加速度數(shù)據(jù)函數(shù)voidUpdate_StepFallByAcc(),具體代碼如下voidUpdate_StepFallByAcc()先通過(guò)I2c從mma加速度芯片中獲取當(dāng)前的16位加速度數(shù)據(jù)代碼如下:I2c_readBytes(MMA_I2C_ADDR,1,6,accVals);由于加速度傳感器傳來(lái)的16位數(shù)據(jù)精度太高,我們?cè)趯?shí)際應(yīng)用時(shí)沒(méi)必要那么高的精度,并且16位的數(shù)據(jù)將帶來(lái)很大的計(jì)算量,因此我們將釆集來(lái)的16位原始數(shù)據(jù)簡(jiǎn)化為無(wú)符號(hào)的8位數(shù)據(jù)。采集來(lái)的16位原始數(shù)據(jù)簡(jiǎn)化為無(wú)符號(hào)的8位數(shù)據(jù)的代碼如下:for(uTemp=0;uTemp=0X80)&(accValsg_StepCtrl.uT
6、emp1!=0X7F)accValsg_StepCtrl.uTemp1+;g_StepCtrl.accValShortuTemp=accValsg_StepCtrl.uTemp1;if(g_StepCtrl.accValShortuTemp=0X80)g_StepCtrl.accValShortuTemp-=256;慧創(chuàng)科技(北京)有限公司慧創(chuàng)科技(北京)有限公司 為了減小計(jì)算量,又能準(zhǔn)確可靠的計(jì)步和判斷用戶是否跌倒,程序中采用了XYZ三個(gè)方向加速度平方和這個(gè)特征值,計(jì)算X、Y、Z方向加速度的平方和的代碼如下:g_StepCtrlaccAll_pf=g_StepCtrl.accValShort
7、0*g_StepCtrlaccValShort0+g_StepCtrlaccValShort1*g_StepCtrlaccValShort1+g_StepCtrl.accValShort2*g_StepCtrlaccValShort2;濾波算法采用的是平均值濾波算法,平均值濾波算法如下:g_StepCtrlaccAll_pf_pj=0;for(uTemp=0;uTemp=g_StepCtrlaccAll_pf_lb4)&(g_StepCtrlaccAll_pf_lb5=g_StepCtrlaccAll_pf_lb)&(g_StepCtrlaccAll_pf_lb5=g_StepCtrlaccA
8、ll_pf_lb2)&(g_StepCtrlaccAll_pf_lb5=g_StepCtrlaccAll_pf_lb1)&(g_StepCtrlaccAll_pf_lb5=g_StepCtrlaccAll_pf_lb0)&(g_StepCtrlaccAll_pf_lb5=g_StepCtrlaccAll_pf_lb6)&(g_StepCtrlaccAll_pf_lb5=g_StepCtrlaccAll_pf_lb7)&(g_StepCtrlaccAll_pf_lb5=g_StepCtrlaccAll_pf_lb8)&(g_StepCtrlaccAll_pf_lb5=g_StepCtrlaccA
9、ll_pf_lb9)&(g_StepCtrlaccAll_pf_lb5=g_StepCtrlaccAll_pf_lb10)g_StepCtrlmax=g_StepCtrlaccAll_pf_lb5波峰與其前面最近的一個(gè)波谷數(shù)據(jù)的差值大于500的情況的檢測(cè)代碼如下:if(g_StepCtrlmax-g_StepCtrlmin)=500)g_StepCtrl.state0+;g_StepCtrl.state+;g_StepCtrlmin=g_StepCtrlaccAll_pf_lb5;發(fā)送計(jì)步數(shù)增加信息代碼如下:#ifdefUART_OUT_DEBUG_DATAUart_SendByte(0XBB
10、);Uart_SendBytes(unsignedchar*)&g_StepCtrl.state,2);#endif22跌倒功能實(shí)現(xiàn)方案功能:1.能對(duì)用戶運(yùn)動(dòng)時(shí)所發(fā)生的跌倒事件進(jìn)行實(shí)時(shí)監(jiān)測(cè)。算法:(1)算法流程圖慧創(chuàng)科技(北京)有限公司慧創(chuàng)科技(北京)有限公司慧創(chuàng)科技(北京)有限公司 (2)算法的具體實(shí)現(xiàn)方案代碼中需要用到的變量定義與初始化:定義一個(gè)數(shù)組accVals6用來(lái)存儲(chǔ)從傳感器上得到的原始16位加速度值,具體定義如下:externunsignedcharaccVals6;定義三個(gè)無(wú)符號(hào)的字符型靜態(tài)變量,用于存儲(chǔ)相應(yīng)的狀態(tài)信息具體定義如下staticunsignedcharnCurInF
11、allingTimes=0;/失重狀態(tài)的持續(xù)時(shí)間值存放該改變量中staticunsignedcharnCurNormalTimes=0;未發(fā)生跌倒的正常狀態(tài)的持續(xù)時(shí)間值存放在該變量staticunsignedcharnCurHittingTimes=0;/撞擊狀態(tài)的持續(xù)時(shí)間值存放在該變量中定義一個(gè)結(jié)構(gòu)體StepCtrl用來(lái)存儲(chǔ)代碼中需要用到的變量,具體定義如下:typedefstructunsignedintaccAll_pf;/XYZ方向加速度的平方和unsignedcharstate。;unsignedintstate;/stateO、state用于計(jì)步數(shù)的顯示unsignedintmin
12、;/波形分析中的極小值unsignedintmax;/波形分析中的極大值unsignedintaccValShort3;/用來(lái)存放濾波后的相鄰三個(gè)數(shù)據(jù)unsignedintaccAll_pf_pj;/相鄰三個(gè)accAll_p啲平均值unsignedintaccAll_pf_ys|;3;/用來(lái)存放未濾波前相鄰三個(gè)加速度平方的值unsignedintaccAll_pf_lb11“/用來(lái)存放濾波后的值unsignedcharuTempl;/uTempuTempl用于16位數(shù)據(jù)轉(zhuǎn)換為無(wú)符號(hào)的8位數(shù)據(jù)unsignedcharbCurFall;/該變量用于存放跌倒的次數(shù)unsignedshortnCurM
13、ovingPer;當(dāng)前的運(yùn)動(dòng)百分比StepCtrl;定義一個(gè)結(jié)構(gòu)體變Mg_StepCtrl用于管理算法中用到的變量externStepCtrlg_StepCtrl;變量初始化函數(shù):將g_StepCtrlmin初始為20000,其余變量初始為0具體初始化代碼如下:voidg_Ctrl_Init()bg_memset(unsignedchar*)(&g_StepCtrl),0,sizeof(g_StepCtrl);g_StepCtrl.min=20000;加速度數(shù)據(jù)處理函數(shù)具體初始化代碼如下:增加一幀加速度數(shù)據(jù)函數(shù)voidUpdate_StepFallByAcc(),具體代碼如下voidUpdat
14、e_StepFallByAcc()先通過(guò)I2c從mma加速度芯片中獲取當(dāng)前的16位加速度數(shù)據(jù)代碼如下:I2c_readBytes(MMA_I2C_ADDR,1,6,accVals);由于加速度傳感器傳來(lái)的16位數(shù)據(jù)精度太高,我們?cè)趯?shí)際應(yīng)用時(shí)沒(méi)必要那么高的精度,并且16位的數(shù)據(jù)將帶來(lái)很大的計(jì)算量,因此我們將采集來(lái)的16位原始數(shù)據(jù)簡(jiǎn)化為無(wú)符號(hào)的8位數(shù)據(jù)。釆集來(lái)的16位原始數(shù)據(jù)簡(jiǎn)化為無(wú)符號(hào)的8位數(shù)據(jù)的代碼如下:for(uTemp=0;uTemp=0X80)&(accValsg_StepCtrl.uTemp1!=0X7F)accValsg_StepCtrluTemp1+;g_StepCtrl.accV
15、alShortuTemp=accValsg_StepCtrl.uTemp1;if(g_StepCtrlaccValShortuTemp=0X80)g_StepCtrl.accValShortuTemp-=256;為了減小計(jì)算量,又能準(zhǔn)確可靠的計(jì)步和判斷用戶是否跌倒,程序中采用了XYZ三個(gè)方向加速度平方和這個(gè)特征值,計(jì)算X、Y、Z方向加速度的平方和的代碼如下:g_StepCtrlaccAll_pf=g_StepCtrl.accValShort0*g_StepCtrlaccValShort0+g_StepCtrlaccValShort1*g_StepCtrl.accValShort1+g_Step
16、CtrlaccValShort*g_StepCtrlaccValShort2;濾波算法采用的是平均值濾波算法,平均值濾波算法如下:g_StepCtrl.accAll_pf_pj=0;for(uTemp=0;uTemp2;uTemp+)g_StepCtrlaccAll_pf_ysuTemp=g_StepCtrlaccAll_pf_ysuTemp+1;g_StepCtrlaccAll_pf_pj+=g_StepCtrlaccAll_pf_ysuTemp;g_StepCtrlaccAll_pf_ys=g_StepCtrlaccAll_pf;g_StepCtrlaccAll_pf_pj+=g_Step
17、CtrlaccAll_pf;for(uTemp=0;uTempvIO;uTemp+)g_StepCtrlaccAll_pf_lbuTemp=g_StepCtrlaccAll_pf_lbuTemp+1;g_StepCtrlaccAll_pf_lb1O=g_StepCtrlaccAll_pf_pj/3;跌倒檢測(cè)函數(shù)IsCurFallByAccs()(首先出現(xiàn)失重狀態(tài),然后在短時(shí)間內(nèi)又出現(xiàn)撞擊狀態(tài),此時(shí)判斷用戶發(fā)生了跌倒事件。)具體代碼如下:voidIsCurFallByAccs()當(dāng)加速度平方和值小于200時(shí)認(rèn)為用戶處于失重狀態(tài),當(dāng)判斷出用戶處于失重狀態(tài)時(shí),將nCurInFallingTimes(
18、用戶處于跌倒?fàn)顟B(tài)的時(shí)間)加1,將nCurNormalTimes(用戶處于未跌倒?fàn)顟B(tài)的時(shí)間)清0相應(yīng)的代碼如下:if(g_StepCtrlaccAll_pfv200)nCurInFallingTimes+;nCurNormalTimes=0;當(dāng)加速度平方和值大于200且小于2000時(shí)認(rèn)為用戶處于未跌倒的正常狀態(tài),當(dāng)判用戶處于未跌倒的正常狀態(tài)時(shí),接著判斷用戶處于未跌倒?fàn)顟B(tài)的時(shí)間,如果nCurNormalTimes(用戶處于未跌倒的正常狀態(tài)的時(shí)間)小于10,將nCurNormalTimes(用戶處于未跌倒的正常狀態(tài)的時(shí)間)加1,然后再判斷nCurNormalTimes(用戶處于未跌倒的正常狀態(tài)的時(shí)間
19、)是不是10,如果是10則將nCurInFallingTimes=0(用戶處于失重狀態(tài)的時(shí)間)清0,nCurHittingTimes=0(用戶處于撞擊狀態(tài)的時(shí)間)清0.相應(yīng)的代碼如下:elseif(g_StepCtrlaccAll_pfv2000)if(nCurNormalTimes=2)&(nCurInFallingTimes=2)&(nCurNormalTimesv=3)nCurInFallingTimes=0;nCurHittingTimes=0;g_StepCtrl.bCurFall+;sys_AddFunOper(Deal_FallCatch);當(dāng)判斷出用戶發(fā)生跌倒事件后,告訴主機(jī)已
20、經(jīng)跌倒了相應(yīng)的代碼如下:voidDeal_FallCatch()Uart_SendByte(0XCC);Uart_SendByte(g_StepCtrl.bCurFall);23心率功能實(shí)現(xiàn)方案功能:1.能對(duì)用戶的心率值進(jìn)行監(jiān)測(cè)。算法:算法流程圖慧創(chuàng)科技(北京)有限公司慧創(chuàng)科技(北京)有限公司 開(kāi)啟一次心率測(cè)量ADC采集是否已是否超時(shí).N超時(shí),結(jié)束測(cè)試過(guò)程I/O口配置、ADC配置及其他相關(guān)配置打開(kāi)濾波開(kāi)關(guān)J1,關(guān)閉綠燈N14打開(kāi)濾波開(kāi)關(guān)J1,打開(kāi)綠燈是否超時(shí)1N打開(kāi)濾波開(kāi)關(guān)J1,打開(kāi)綠燈N1ADC采集是否已$超時(shí),結(jié)束測(cè)試過(guò)程ADC采集是否已穩(wěn)定超時(shí),結(jié)束測(cè)試過(guò)Y程-是否超時(shí)/N打開(kāi)濾波開(kāi)關(guān)J
21、1,打開(kāi)綠燈將采集到的數(shù)據(jù)存放到緩沖區(qū)的最大位置濾波獲取極小值獲取極大值區(qū)間獲取有效心跳時(shí)間,并進(jìn)行排序插入是否滿足心率計(jì)算所需要的有效心跳時(shí)間數(shù)據(jù)yr進(jìn)行心率計(jì)算,并發(fā)送心率數(shù)據(jù)(2)算法的具體實(shí)現(xiàn)方案初始化IO口配置初始化(綠燈、J1控制管腳分配和ADC數(shù)據(jù)釆集管腳)相應(yīng)的代碼如下:voidInit_HeartMeas_IOs(void)/PB0綠燈控制PB2-J1控制GPIO_Init(GPIOB,GPIO_Pin_0IGPIO_Pin_2,GPIO_Mode_Out_PP_Low_Fast);ADC相關(guān)初始化代碼如下:voidHeart_ADC_Config(void)CLK_Peri
22、pheralClockConfig(CLK_Peripheral_ADC1,ENABLE);/開(kāi)啟時(shí)鐘ADC_Init(ADC1,ADC_ConversionMode_Single,ADC_Resolution_12Bit,ADC_Prescaler_2);ADC_SamplingTimeConfig(ADC1ADC_Group_SlowChannels,ADC_SamplingTime_384Cydes);ADC_Cmd(ADC1,ENABLE);ADC_ChannelCmd(ADC1,ADC_Channel_2,ENABLE);定義算法中用到的一些變量并初始化,相應(yīng)的代碼如下:typede
23、fstructunsignedchargl_state;測(cè)量燈當(dāng)前的狀態(tài)unsignedcharn_StableTime;/判斷穩(wěn)定需要判斷持續(xù)一段時(shí)間,因此不能直接進(jìn)行unsignedshortnGL_HoldTime;/測(cè)試燈亮的時(shí)間數(shù)量unsignedcharbufRateAnalyHEART_BUF_ANALY_LEN;/心率分析的數(shù)據(jù)緩沖區(qū)unsignedcharanaly_min_pos;/分析過(guò)程中一個(gè)波形的最小值,需要最小值與最大值進(jìn)行對(duì)比unsignedcharn_RateAnalyData;/分析的數(shù)據(jù)個(gè)數(shù)unsignedchars_RateAnaly;/數(shù)據(jù)分析的狀態(tài)。u
24、nsignedcharbufHeartPeroHEART_BUF_PERO_MAX_LEN;/需要檢測(cè)多個(gè)峰值unsignedcharnHeartPeroCnt;unsignedcharnMaxPosTimes;/極大值點(diǎn)到當(dāng)前位置的時(shí)間長(zhǎng)度unsignedcharv_heartrate;/測(cè)試出來(lái)的心率值未測(cè)試值0X00無(wú)心率0XFF其他為正常心率數(shù)據(jù)HeartMeasCtrl;externHeartMeasCtrlgHeartCtrl;濾波開(kāi)關(guān)J1打開(kāi),測(cè)試綠燈關(guān)閉,然后等待輸出穩(wěn)定,穩(wěn)定后打開(kāi)測(cè)試燈開(kāi)關(guān)或者超時(shí)結(jié)束測(cè)試過(guò)程,并直接關(guān)閉并認(rèn)為測(cè)試值為0XFF相應(yīng)的代碼如下:voidhear
25、t_update_wait_nog_stable()HeartMeas_J1_PASS();/確保j1打開(kāi),判斷是否穩(wěn)定。gHeartCtrl.nGL_HoldTime+;Heart_ADC_Start();如果穩(wěn)定了保持J1開(kāi),并打開(kāi)綠燈if(Heart_ADC_IsStable()gHeartCtrl.gl_state=HeartMeasState_J1_GL_ON;pCurHeartRateTest=heart_update_wait_eng_stable;HeartMeas_OUT_H();/打開(kāi)燈gHeartCtrl.nGL_HoldTime=0;如果超時(shí)則結(jié)束測(cè)試過(guò)程,并直接關(guān)閉并
26、認(rèn)為測(cè)試值為0XFFelseif(gHeartCtrl.nGL_HoldTimeHEART_WAIT_STABLE_TIMEOUT)DoWhenHeartTestEnd();gHeartCtrl.v_heartrate=OXFF;/測(cè)試過(guò)程異常綠燈打開(kāi)后,等待ADC輸出穩(wěn)定,相應(yīng)的代碼如下:voidheart_update_wait_eng_stable()gHeartCtrlnGL_HoldTime+;/測(cè)試燈亮的時(shí)間數(shù)量Heart_ADC_Start();/開(kāi)始進(jìn)行ADC數(shù)據(jù)采集如果穩(wěn)定后,關(guān)閉J1開(kāi)關(guān),并將相應(yīng)的變量初始化為相應(yīng)的值,相應(yīng)的代碼如下:if(Heart_ADC_IsStab
27、le()gHeartCtrl.gl_state=HeartMeasState_GL_OON;/綠燈打開(kāi),但是關(guān)閉J1pCurHeartRateTest=heart_update_do_real_test;HeartMeas_J1_BREAK();/關(guān)閉J1開(kāi)關(guān)gHeartCtrl.nGL_HoldTime=0;gHeartCtrl.n_RateAnalyData=0;已經(jīng)濾波的數(shù)據(jù)個(gè)數(shù)為0gHeartCtrl.analy_min_pos=0XFF;/先設(shè)定最小值為一個(gè)極大值如果超時(shí)則結(jié)束測(cè)試過(guò)程,并直接關(guān)閉并認(rèn)為測(cè)試值為0XFFelseif(gHeartCtrl.nGL_HoldTimeHEA
28、RT_WAIT_STABLE_TIMEOUT)gHeartCtrl.v_heartrate=0XFF;/測(cè)試過(guò)程異常DoWhenHeartTestEnd();關(guān)閉J1,并進(jìn)行數(shù)據(jù)分析voidheart_update_do_real_test()gHeartCtrlnGL_HoldTime+;/測(cè)試燈亮的時(shí)間數(shù)量Heart_ADC_Start();/開(kāi)始進(jìn)行ADC數(shù)據(jù)釆集如果超時(shí)則結(jié)束測(cè)試過(guò)程,并直接關(guān)閉并認(rèn)為測(cè)試值為0XFFif(gHeartCtrlnGL_HoldTime500)/大于一定時(shí)間進(jìn)入下一個(gè)狀態(tài)gHeartCtrl.v_heartrate=0XFF;/測(cè)試過(guò)程異常DoWhenHe
29、artTestEnd();完成一次釆集,增加一個(gè)數(shù)據(jù)elseHeart_ADC_FFT_Rate(g_nNewAdcVal4);將新數(shù)據(jù)存放到數(shù)據(jù)緩沖區(qū),并進(jìn)行相應(yīng)的數(shù)據(jù)處理voidHeart_ADC_FFT_Rate(unsignedcharnAdcV)chari;gHeartCtrl.nMaxPosTimes+=2;將新數(shù)據(jù)保存到緩沖區(qū)的最大位置for(i=1;ivHEART_BUF_ANALY_LEN;i+)gHeartCtrl.bufRateAnalyi-1=gHeartCtrl.bufRateAnalyi;gHeartCtrl.bufRateAnalyHEART_BUF_ANALY_
30、LEN-1=nAdcV;濾波處理Heard_adc_lv_deal(&(gHeartCtrlbufRateAnalyHEART_BUF_ANALY_LEN-10);相應(yīng)的濾波算法如下,濾波是為了消除一些影響心率計(jì)算的小波峰,濾波后這些小波峰變?yōu)樾∑脚_(tái),濾波算法在這里實(shí)現(xiàn)。voidHeard_adc_lv_deal(unsignedchar*pForLv)if(pForLv5!=pForLv6)if(pForLv6pForLv5)&(pForLv6pForLv7)if(pForLv5pForLv7)pForLv6=pForLv5;elsepForLv6=pForLv7;return;elsere
31、turn;if(pForLv4!=pForLv6)if(pForLv6pForLv4)&(pForLv6pForLv7)if(pForLv4pForLv7)pForLv6=pForLv;pForLv5=pForLv4;elsepForLv6=pForLv7;pForLv5=pForLv7;return;elsereturn;if(pForLv!=pForLv6)if(pForLv6pForLv)&(pForLv6pForLv7)if(pForLvpForLv7)pForLv6=pForLv;pForLv5=pForLv;pForLv=pForLv;elsepForLv6=pForLv7;pFo
32、rLv5=pForLv7;pForLv4=pForLv7;return;elsereturn;if(pForLv2!=pForLv6)if(pForLv6pForLv)&(pForLv6pForLv7)if(pForLvpForLv7)pForLv6=pForLv;pForLv5=pForLv;pForLv=pForLv;pForLv=pForLv;elsepForLv6=pForLv7;pForLv5=pForLv7;pForLv4=pForLv7;pForLv=pForLv7;return;elsereturn;if(pForLv1!=pForLv6)if(pForLv6pForLv1)&
33、(pForLv6pForLv7)if(pForLv1pForLv7)pForLv6=pForLv1;pForLv5=pForLv1;pForLv=pForLv1;pForLv=pForLv1;pForLv=pForLv1;elsepForLv6=pForLv7;pForLv5=pForLv7;pForLv4=pForLv7;pForLv=pForLv7;pForLv=pForLv7;return;elsereturn;更新數(shù)據(jù)分析中波形的極小值nAdcV=gHeartCtrl.bufRateAnaly5;if(nAdcVgHeartCtrl.analy_min_pos)gHeartCtrl.analy_min_pos=nAdcV;判斷極大值區(qū)間代碼如下:if(gHeartCtrl.bufRateAnaly0gHeartCtrl.bufRateAnaly1)for(i=2;i10)return;if(gHeartCtrl.bufRateAnalyigHeartCtrl.bufRateAnaly1)return;ff_ff=gHeartCtrl.nMaxPosTimes+i;gHeartCtrl.nMaxPosTimes=-i;如果數(shù)據(jù)與最小值比較小于某個(gè)數(shù),貝y表示不是心率測(cè)試的結(jié)果,這樣可以排除部分小
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Mumeose-K-生命科學(xué)試劑-MCE-2774
- 5-Fluoro-THJ-生命科學(xué)試劑-MCE-6389
- 2025年度環(huán)保型空調(diào)拆卸作業(yè)安全協(xié)議書
- 2025年度文化創(chuàng)意產(chǎn)業(yè)居間代理協(xié)議
- 二零二五年度父母出資購(gòu)房子女房產(chǎn)份額分配協(xié)議
- 2025年度無(wú)房產(chǎn)證房屋買賣風(fēng)險(xiǎn)評(píng)估合同
- 二零二五年度砍樹(shù)承包合同及林業(yè)資源管理實(shí)施協(xié)議
- 二零二五年度企業(yè)食堂檔口租賃合同與員工餐飲補(bǔ)貼協(xié)議
- 高標(biāo)準(zhǔn)實(shí)驗(yàn)環(huán)境下的安全防護(hù)措施探討
- 臨時(shí)用電安全合同協(xié)議
- 設(shè)計(jì)單位-質(zhì)量管理體系
- 2024版《供電營(yíng)業(yè)規(guī)則》學(xué)習(xí)考試題庫(kù)500題(含答案)
- 福建省醫(yī)院大全
- GB/T 16659-2024煤中汞的測(cè)定方法
- 閃蒸罐計(jì)算完整版本
- (高清版)DZT 0073-2016 電阻率剖面法技術(shù)規(guī)程
- 完整2024年開(kāi)工第一課課件
- 貨運(yùn)車輛駕駛員安全培訓(xùn)內(nèi)容資料完整
- 高一學(xué)期述職報(bào)告
- 風(fēng)神汽車4S店安全生產(chǎn)培訓(xùn)課件
- ICU患者的體位轉(zhuǎn)換與床旁運(yùn)動(dòng)訓(xùn)練
評(píng)論
0/150
提交評(píng)論