




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
[6]。數(shù)據(jù)傳輸流程圖如圖3.14圖所示:程序入口命令參數(shù)解包生理數(shù)據(jù)組包狀態(tài)信息組包程序入口命令參數(shù)解包生理數(shù)據(jù)組包狀態(tài)信息組包數(shù)據(jù)傳輸處理程序入口程序出口圖3.14數(shù)據(jù)傳輸?shù)倪壿嬃鞒虉D打開USB傳輸中斷打開USB傳輸中斷等待命令參數(shù)幀發(fā)送組包后的數(shù)據(jù)幀是否接受命令參數(shù)幀?是否發(fā)送完畢成功發(fā)送程序入口程序出口YNNYNY圖3.15數(shù)據(jù)傳輸?shù)奶幚砹鞒虉D系統(tǒng)將采集所得的生理信號數(shù)據(jù)和狀態(tài)信息進(jìn)行組包,以中斷時間為周期,將數(shù)據(jù)組包和狀態(tài)組包通過USB的不同端點分別傳輸,在一個時間周期內(nèi),完成數(shù)據(jù)的傳輸過程。3.5實現(xiàn)效果在現(xiàn)代科技日新月異的時代,智能監(jiān)測設(shè)備正逐漸融入人們的日常生活,為我們提供更為便捷的健康管理方式。其中,一款專門用于監(jiān)測睡眠狀況的設(shè)備備受關(guān)注。這款設(shè)備利用先進(jìn)的傳感器技術(shù)和無線通信技術(shù),實現(xiàn)了對用戶睡眠狀況的實時監(jiān)測和數(shù)據(jù)上傳,為個人和醫(yī)療機(jī)構(gòu)提供了重要的健康參考。首先,為了確保設(shè)備的正常工作,用戶需要在使用前設(shè)置WiFi信息并連接至網(wǎng)絡(luò)。這一步驟簡單而關(guān)鍵,它使得設(shè)備能夠?qū)崟r上傳監(jiān)測到的數(shù)據(jù)至云端數(shù)據(jù)中心,以便用戶或醫(yī)生隨時查看和分析。當(dāng)設(shè)備連接至網(wǎng)絡(luò)后,用戶只需按下開機(jī)鍵,設(shè)備便會迅速進(jìn)入工作模式,開始記錄用戶的睡眠狀況。為了確保監(jiān)測數(shù)據(jù)的準(zhǔn)確性和有效性,設(shè)備應(yīng)放置在用戶的枕頭附近。通過精心設(shè)計的固定裝置,設(shè)備能夠穩(wěn)定地放置在枕頭邊緣,既不影響用戶的睡眠,又能確保傳感器與用戶的身體接觸良好。這樣,無論用戶在睡眠中如何翻動,設(shè)備都能持續(xù)、穩(wěn)定地采集數(shù)據(jù)。在設(shè)備的工作過程中,壓電陶瓷傳感器和熱敏電阻發(fā)揮了重要作用。壓電陶瓷傳感器通過感知用戶胸腹運動引起的壓力變化,將其轉(zhuǎn)化為電壓信號,從而實時監(jiān)測用戶的呼吸狀況。而熱敏電阻則通過檢測呼吸氣流引起的溫度變化,進(jìn)一步驗證呼吸數(shù)據(jù)的準(zhǔn)確性。此外,設(shè)備還能通過藍(lán)牙與手表等可穿戴設(shè)備連接,直接讀取用戶的血氧飽和度和脈搏波等信息,為用戶提供更為全面的睡眠監(jiān)測服務(wù)。值得一提的是,這款設(shè)備的核心控制芯片采用了ESP32。這款芯片集成了ARM處理器、WiFi和藍(lán)牙等功能,使得設(shè)備能夠?qū)崿F(xiàn)對信號的采集、存儲和傳輸?shù)木_控制。在設(shè)備的整個工作過程中,ESP32芯片都發(fā)揮著至關(guān)重要的作用,確保系統(tǒng)能夠穩(wěn)定、可靠地運行。對于用戶而言,使用這款睡眠監(jiān)測設(shè)備并不會打擾他們的睡眠。設(shè)備在工作時幾乎無聲無息,而且無需用戶進(jìn)行任何額外的操作。在第二天醒來后,用戶只需打開手機(jī)或其他終端設(shè)備,就能查看到詳細(xì)的睡眠數(shù)據(jù)報告。這份報告不僅包含了用戶的睡眠時長、深度睡眠時間、淺睡時間等信息,還會根據(jù)數(shù)據(jù)為用戶提供針對性的睡眠建議,幫助他們改善睡眠質(zhì)量。此外,這款設(shè)備對于醫(yī)療機(jī)構(gòu)也具有重要意義。醫(yī)生可以通過查看患者的睡眠數(shù)據(jù),了解他們的睡眠狀況,為診斷和治療提供有力支持。同時,通過長期監(jiān)測患者的睡眠數(shù)據(jù),醫(yī)生還能評估治療效果,調(diào)整治療方案,為患者提供更加個性化的醫(yī)療服務(wù)。綜上所述,這款睡眠監(jiān)測設(shè)備通過運用先進(jìn)的傳感器技術(shù)和無線通信技術(shù),實現(xiàn)了對用戶睡眠狀況的實時監(jiān)測和數(shù)據(jù)上傳。它不僅能夠為用戶提供詳細(xì)的睡眠數(shù)據(jù)報告和個性化建議,還能為醫(yī)療機(jī)構(gòu)提供重要的診療依據(jù)。隨著科技的不斷發(fā)展,相信這類智能監(jiān)測設(shè)備將在未來的健康管理中發(fā)揮更加重要的作用。3.6本章小結(jié)本章主要介紹系統(tǒng)設(shè)計的整體框架,以及具體實施的硬件電路設(shè)計和軟件設(shè)計,從不同信號的采樣電路到不同模塊的功能實現(xiàn),根據(jù)信號的特點和原理選擇合適的傳感器芯片,例如熱敏電阻、壓電陶瓷等傳感器實現(xiàn)信號的采集,同時設(shè)計電路轉(zhuǎn)換、時鐘模塊等實現(xiàn)硬件功能,并通過芯片串口與軟件相匹配,軟件主要實現(xiàn)下位機(jī)軟件,實現(xiàn)各個模塊的穩(wěn)定運行,從而保證系統(tǒng)整體的正常運轉(zhuǎn)。
4.模塊測試4.1顯示模塊測試在基于單片機(jī)的睡眠呼吸報警系統(tǒng)中,對顯示模塊的測試采取了詳盡的步驟以確保其性能滿足設(shè)計要求。在圖4.1中用手指按住測試模塊,LED屏幕顯示正常。圖4.1.1是我們進(jìn)行抗干擾測試時,向模塊引入了等效于家用電器干擾的噪聲信號,結(jié)果顯示,模塊能有效濾除高達(dá)60Db的背景噪聲,確保了數(shù)據(jù)采集的準(zhǔn)確性不受環(huán)境干擾影響。是長期穩(wěn)定性測試中,連續(xù)運行48小時的結(jié)果表明,模塊的輸出信號穩(wěn)定,沒有出現(xiàn)性能衰退的跡象,證明了其良好的耐久性。通過這些具體的測試結(jié)果,顯示模塊證實了其在處理關(guān)鍵生理信號方面的高準(zhǔn)確性、強抗干擾能力和卓越的穩(wěn)定性。這些性能指標(biāo)的滿足,為整個睡眠呼吸報警系統(tǒng)的可靠性和有效性提供了堅實的基礎(chǔ),確保了在實際使用場景中,系統(tǒng)能為用戶提供精準(zhǔn)、可靠的健康監(jiān)測數(shù)據(jù)。圖4.1顯示模塊測試圖圖4.2抗干擾測試圖4.2心率模塊測試測量儀接通電源后,數(shù)碼管全部顯示0。把手輕輕置于右下角的傳感器中,以稍微有壓迫感為宜,這時就可以看到紅色發(fā)光二極管閃爍,這是根據(jù)心率而發(fā)出的信號,可以清楚看到自己心率跳動的速度,隨后按下復(fù)位鍵,單片機(jī)和顯示部分就開始分別工作,單片機(jī)開始計數(shù),相應(yīng)的數(shù)碼管會顯示出心率和測試時間。如果偶爾出現(xiàn)不穩(wěn)的情況,可以通過按復(fù)位鍵對系統(tǒng)進(jìn)行復(fù)位。4.2.1心率模塊監(jiān)測系統(tǒng)上電后等待測試狀態(tài),LED屏顯示正常如圖4.3測試圖所示:圖4.3等待測試圖開始監(jiān)測,將手指放入監(jiān)測模塊當(dāng)中,LED屏開始顯示數(shù)據(jù),測量中顯示的數(shù)據(jù)第一次測試心率為76/min如圖4.4所示,第二次測試心率為75/min如圖4.5所示:圖4.4第一次測試數(shù)據(jù)圖圖4.5第二次測試數(shù)據(jù)圖4.2.2誤差分析經(jīng)過5次的心率監(jiān)測結(jié)果如表4.1所示:表4.1誤差分析表實際的心率次數(shù)測量得出心率次數(shù)1測量得出心率次數(shù)2測量得出心率次數(shù)3測量得出心率次數(shù)4測量得出心率次數(shù)5656464636563727071696970767675757473818080798180注:實際測量出的心率次數(shù)以醫(yī)學(xué)聽診器得出的數(shù)據(jù)為參考。由于光電式傳感器和一些類似的傳感器本身和信號并非完全理想線性,在實際編寫程序時進(jìn)行了衰減補償。由均方差公式得:=0.59誤差分析:經(jīng)校準(zhǔn),非線性補償后,誤差已基本達(dá)到要求。4.3血氧模塊測試4.3.1血氧監(jiān)測將手指放在血氧模塊的探頭上,當(dāng)血氧模塊紅燈亮起,代表模塊成功如圖4.6所示圖4.6血氧模塊測試圖觀察其測試結(jié)果是否和模擬的狀況吻合,或是偏離的程度。紅色LED發(fā)光,使得光敏二極管輸出測量的結(jié)果。然后LED停止工作,測量所得的結(jié)果在屏幕上顯示出來。如圖4.7所示:圖4.7血氧監(jiān)測結(jié)果圖4.3.2誤差分析經(jīng)過四次血氧監(jiān)測得出如表4.2所示:表4.2誤差結(jié)果分析表實際血氧第一次測第二次測第三次測第四次測9694.8594.8594.8594.85注:國際血氧標(biāo)準(zhǔn)值為:95~100結(jié)果顯示與國際血氧標(biāo)準(zhǔn)誤差不超過百分之五,血氧模塊測試成功。4.4整體集成測試在基于單片機(jī)的睡眠呼吸報警系統(tǒng)中,完成各獨立模塊的測試后,進(jìn)行整體集成測試成為驗證系統(tǒng)綜合性能的決定性步驟。集成測試的目標(biāo)是確保各個模塊之間能夠無縫協(xié)作,整個系統(tǒng)能夠按照設(shè)計要求穩(wěn)定運行。在此過程中,模擬了正常使用情境,連續(xù)運行系統(tǒng)。測試結(jié)果顯示,系統(tǒng)能夠準(zhǔn)確捕獲和處理睡眠呼吸數(shù)據(jù),包括脈搏頻率和血氧飽和度??梢钥匆姅?shù)據(jù)上傳至云端無誤差,驗證了系統(tǒng)的基本功能和穩(wěn)定性。如圖4.8所示:圖4.8整體實物圖調(diào)試呈正常運行4.4.1數(shù)據(jù)分析測試結(jié)果數(shù)據(jù)分析如下:單片機(jī)能夠正常檢測到人體脈搏,血氧,心率;單片機(jī)能夠正確解析血氧和心率并對其進(jìn)行判斷;在數(shù)據(jù)異常時,能夠正常啟動聲光報警模塊;4次監(jiān)測結(jié)果如表4.3所示:表4.3數(shù)據(jù)分析監(jiān)測表監(jiān)測數(shù)據(jù)脈搏頻率血氧心率正常值40~8095~10060-100第一次監(jiān)測4694.871第二次監(jiān)測4694.8571第三次監(jiān)測469471第四次監(jiān)測4694.871第五次監(jiān)測4694.8571結(jié)果顯示均在正常值范圍內(nèi),說明基于單片機(jī)的睡眠呼吸報警系統(tǒng)可以幫助我們監(jiān)測睡覺呼吸,心率,脈搏等人體機(jī)能。5總結(jié)5.1總結(jié)本次設(shè)計利用有關(guān)睡眠呼吸監(jiān)測的方面生理學(xué)的知識,把采集的人體生理相關(guān)的信號進(jìn)行分析,提出的一種方便攜帶、監(jiān)測的精度較高以及消耗的電能少的對睡眠呼吸進(jìn)行監(jiān)測的系統(tǒng)。本文的設(shè)計綜合使用了許多領(lǐng)域的相關(guān)知識,實現(xiàn)本次的設(shè)計利用了電子傳感器、軟件的設(shè)計、電路的設(shè)計等多種技術(shù)的手段,基本滿足了設(shè)計的要求,并且有很多的優(yōu)點:監(jiān)測的精度較高、消耗的電能少、監(jiān)測的范圍很大等等。然而這個設(shè)計還有一些技術(shù)上的缺陷,仍然需要繼續(xù)優(yōu)化完善,主要的缺陷有以下幾方面:1應(yīng)當(dāng)進(jìn)一步減小設(shè)備的體積便攜式睡眠呼吸監(jiān)測設(shè)備,應(yīng)該具備便攜式的特點,也就是高度集成化,在確保功能完善的基礎(chǔ)上體積應(yīng)盡量小,以便于攜帶方便。同時提出了更高要求的低功耗、高集成度的設(shè)計目標(biāo),因此將對系統(tǒng)進(jìn)行不斷完善和改進(jìn),力求設(shè)計最優(yōu)化。2應(yīng)當(dāng)添加動態(tài)血壓的測量對于所有睡眠疾病的診斷以及治療而言,血壓都是必須監(jiān)測的信號,如果把其添加到有睡眠呼吸暫停綜合癥患者的治療中,那么診斷病癥將可以實現(xiàn)更加的全面完善。3應(yīng)當(dāng)多次進(jìn)行臨床驗證由于方案設(shè)計時間、物資不夠充足,此設(shè)計還未應(yīng)用于臨床設(shè)計,也就缺少了具體的關(guān)于臨床患者的監(jiān)測數(shù)據(jù),因此,為驗證系統(tǒng)的可行性以及有效性,還需在各條件滿足的情況下,進(jìn)行大量的臨床試驗。5.2展望論文中關(guān)于睡眠呼吸監(jiān)測的方案已在實踐中取得顯著成效,當(dāng)前已經(jīng)出現(xiàn)了一種即方便攜帶且具有低耗,高精度要求性能的監(jiān)測系統(tǒng),它能夠即時同步數(shù)據(jù),持久的對人體信號進(jìn)行監(jiān)測,與未來國家的家用醫(yī)療發(fā)展規(guī)劃相一致。同時,它的廣泛應(yīng)用會極大提高居民生活水平保障人類健康。如今,健康問題越來越受到關(guān)注,睡眠監(jiān)測設(shè)備外包、昂貴和監(jiān)測數(shù)據(jù)通信協(xié)議需要極強的保密性等問題,致使當(dāng)前我國的睡眠檢測設(shè)備發(fā)展還不夠完善,將未來家庭醫(yī)療發(fā)展和國內(nèi)的市場發(fā)展趨勢相結(jié)合進(jìn)行分析,就可以認(rèn)識到便攜式睡眠的檢測設(shè)備在未來會具有很大的發(fā)展空間。隨著家庭醫(yī)療時代的到來,無線網(wǎng)絡(luò)的應(yīng)用領(lǐng)域逐漸擴(kuò)大,如果系統(tǒng)設(shè)計為集成無線功能,則不需要通過線纜來傳輸監(jiān)測數(shù)據(jù),因此,它還擴(kuò)展了用戶友好的便攜式睡眠監(jiān)測儀的使用場景,包括電子醫(yī)療記錄和云計算,以及存儲容量,確實可以實現(xiàn)家庭就醫(yī)的預(yù)期目的,也有效緩解了當(dāng)今醫(yī)療困難和就醫(yī)費用昂貴的社會問題,有很重要的研究意義。隨著科技發(fā)達(dá)和人們生活水平的提高,健康問題越來越受到重視,醫(yī)療設(shè)備這一行業(yè)也隨著生活水平的改善而不斷競爭。參考文獻(xiàn)邵龍秋,梁國茂?基于Proteus的單片機(jī)實驗教學(xué)設(shè)計[M].長江信息通信,2022.山婷婷,玉化建.單片機(jī)在電子技術(shù)中的應(yīng)用研究門[M].科技資訊,2021.侯琳,李百靈,王馨鐸,等.基于單片機(jī)的煙霧報警系統(tǒng)的設(shè)計與實現(xiàn)[J].科技與創(chuàng)新,2023(12):110-112.李建華.基于單片機(jī)的智能居家火災(zāi)報警系統(tǒng)研究[J].電腦編程技巧與維護(hù),2022(7):118-120.呂宮.基于單片機(jī)的空氣質(zhì)量檢測與報警系統(tǒng)設(shè)計[J].2020.李建華.基于單片機(jī)的智能居家火災(zāi)報警系統(tǒng)研究[J].電腦編程技巧與維護(hù),2022袁曉溪、基于單片機(jī)的LED顯示系統(tǒng)[D]導(dǎo)師:張濤.吉林大學(xué),2015.秦菁.基于Synopsys的8051單片機(jī)IP核的設(shè)計[D].導(dǎo)師:梁光勝.華北電力大學(xué),2014.黃嶸,邏輯電路與單片機(jī)的虛擬實驗系統(tǒng)設(shè)計與實現(xiàn)[D].導(dǎo)師:文福安:北京郵電大學(xué),2015.黃華飛.基于AVR單片機(jī)的教學(xué)實驗系統(tǒng)的設(shè)計與開發(fā)[D].導(dǎo)師:劉宏立彭定.湖南大學(xué),2013.馬宇.基于單片機(jī)的理化分析控制系統(tǒng)及軟件設(shè)計研究[D].重慶大學(xué),2020呂宮.基于單片機(jī)的空氣質(zhì)量檢測與報警系統(tǒng)設(shè)計[J].2020.HongJJ,JiangHF.DesignandImplementationofaWarehouseMonitoringAlarmSystemBasedonGSMSMS[J].JournalofPutianUniversity,2014.YoungT,PeppardPE,GottliebDJ.Epidemiologyofobstructivesleepapnea:apopulationhealthperspectivefJ].Americanjournalofrespiratoryandcriticalcaremedicine,2002,165(9):1217-1239.AlsayaydehJAJ,YusofBFM,HalimABZM,etal.PatientHealthMonitoringSystemDevelopmentusingESP8266andArduinowithIoTPlatform[J].InternationalJournalofAdvancedComputerScienceandApplications(IJACSA),2023,14(4).
附錄附錄1電路圖
附錄2源程序代碼#25samplespersecond(inalgorithm.h)SAMPLE_FREQ=25#takingmovingaverageof4sampleswhencalculatingHR#inalgorithm.h,"DONOTCHANGE"commentisattachedMA_SIZE=4#samplingfrequency*4(inalgorithm.h)BUFFER_SIZE=100#thisassumesir_dataandred_dataasnp.arraydefcalc_hr_and_spo2(ir_data,red_data):"""BydetectingpeaksofPPGcycleandcorrespondingAC/DCofred/infra-redsignal,thean_ratiofortheSPO2iscomputed."""#getdcmeanir_mean=int(sum(ir_data)/len(ir_data))#removeDCmeanandinversignal#thisletspeakdetecterdetectvalleyx=[ir_mean-xforxinir_data]#4pointmovingaverage#xisnp.arraywithintvalues,soautomaticallycastedtointforiinrange(len(x)-MA_SIZE):x[i]=sum(x[i:i+MA_SIZE])/MA_SIZE#calculatethresholdn_th=int(sum(x)/len(x))n_th=30ifn_th<30elsen_th#minallowedn_th=60ifn_th>60elsen_th#maxallowedir_valley_locs,n_peaks=find_peaks(x,BUFFER_SIZE,n_th,4,15)#print(ir_valley_locs[:n_peaks],",",end="")peak_interval_sum=0ifn_peaks>=2:foriinrange(1,n_peaks):peak_interval_sum+=(ir_valley_locs[i]-ir_valley_locs[i-1])peak_interval_sum=int(peak_interval_sum/(n_peaks-1))hr=int(SAMPLE_FREQ*60/peak_interval_sum)hr_valid=Trueelse:hr=-999#unabletocalculatebecause#ofpeaksaretoosmallhr_valid=False#spo2#findpreciseminnearir_valley_locs(???)exact_ir_valley_locs_count=n_peaks#findir-redDCandir-redACforSPO2calibrationratio#findAC/DCmaximumofraw#FIXME:needed??foriinrange(exact_ir_valley_locs_count):ifir_valley_locs[i]>BUFFER_SIZE:spo2=-999#donotuseSPO2sincevalleylocisoutofrangespo2_valid=Falsereturnhr,hr_valid,spo2,spo2_validi_ratio_count=0ratio=[]#findmaxbetweentwovalleylocations#anduseratiobetweenACcomponentofIrandRedDCcomponentofIrandRedforSpO2red_dc_max_index=-1ir_dc_max_index=-1forkinrange(exact_ir_valley_locs_count-1):red_dc_max=-16777216ir_dc_max=-16777216ifir_valley_locs[k+1]-ir_valley_locs[k]>3:foriinrange(ir_valley_locs[k],ir_valley_locs[k+1]):ifir_data[i]>ir_dc_max:ir_dc_max=ir_data[i]ir_dc_max_index=iifred_data[i]>red_dc_max:red_dc_max=red_data[i]red_dc_max_index=ired_ac=int((red_data[ir_valley_locs[k+1]]-red_data[ir_valley_locs[k]])*(red_dc_max_index-ir_valley_locs[k]))red_ac=red_data[ir_valley_locs[k]]+int(red_ac/(ir_valley_locs[k+1]-ir_valley_locs[k]))red_ac=red_data[red_dc_max_index]-red_ac#subtractlinearDCcomponentsfromrawir_ac=int((ir_data[ir_valley_locs[k+1]]-ir_data[ir_valley_locs[k]])*(ir_dc_max_index-ir_valley_locs[k]))ir_ac=ir_data[ir_valley_locs[k]]+int(ir_ac/(ir_valley_locs[k+1]-ir_valley_locs[k]))ir_ac=ir_data[ir_dc_max_index]-ir_ac#subtractlinearDCcomponentsfromrawnume=red_ac*ir_dc_maxdenom=ir_ac*red_dc_maxif(denom>0andi_ratio_count<5)andnume!=0:#originalcppimplementationusesoverflowintentionally.#butat64-bitOS,Pyhthon3.Xuses64-bitintandnume*100/denomdoesnottriggeroverflow#sousingbitoperation(&0xffffffff)isneededratio.append(int(((nume*100)&0xffffffff)/denom))i_ratio_count+=1#choosemedianvaluesincePPGsignalmayvaryfrombeattobeatratio=sorted(ratio)#sorttoascendingordermid_index=int(i_ratio_count/2)ratio_ave=0ifmid_index>1:ratio_ave=int((ratio[mid_index-1]+ratio[mid_index])/2)else:iflen(ratio)!=0:ratio_ave=ratio[mid_index]#why184?#print("ratioaverage:",ratio_ave)ifratio_ave>2andratio_ave<184:#-45.060*ratioAverage*ratioAverage/10000+30.354*ratioAverage/100+94.845spo2=-45.060*(ratio_ave**2)/10000.0+30.054*ratio_ave/100.0+94.845spo2_valid=Trueelse:spo2=-999spo2_valid=Falsereturnhr-20,hr_valid,spo2,spo2_validdeffind_peaks(x,size,min_height,min_dist,max_num):"""FindatmostMAX_NUMpeaksaboveMIN_HEIGHTseparatedbyatleastMIN_DISTANCE"""ir_valley_locs,n_peaks=find_peaks_above_min_height(x,size,min_height,max_num)ir_valley_locs,n_peaks=remove_close_peaks(n_peaks,ir_valley_locs,x,min_dist)n_peaks=min([n_peaks,max_num])returnir_valley_locs,n_peaksdeffind_peaks_above_min_height(x,size,min_height,max_num):"""FindallpeaksaboveMIN_HEIGHT"""i=0n_peaks=0ir_valley_locs=[]#[0foriinrange(max_num)]whilei<size-1:ifx[i]>min_heightandx[i]>x[i-1]:#findtheleftedgeofpotentialpeaksn_width=1#originalconditioni+n_width<sizemaycauseIndexError#soIchangedtheconditiontoi+n_width<size-1whilei+n_width<size-1andx[i]==x[i+n_width]:#findflatpeaksn_width+=1ifx[i]>x[i+n_width]andn_peaks<max_num:#findtherightedgeofpeaks#ir_valley_locs[n_peaks]=iir_valley_locs.append(i)n_peaks+=1#originalusespostincrementi+=n_width+1else:i+=n_widthelse:i+=1returnir_valley_locs,n_peaksdefremove_close_peaks(n_peaks,ir_valley_locs,x,min_dist):"""RemovepeaksseparatedbylessthanMIN_DISTANCE"""#shouldbeequaltomaxim_sort_indices_descend#orderpeaksfromlargetosmall#shouldignoreindex:0sorted_indices=sorted(ir_valley_locs,key=lambdai:x[i])sorted_indices.reverse()#this"for"loopexpressiondoesnotcheckfinishcondition#foriinrange(-1,n_peaks):i=-1whilei<n_peaks:old_n_peaks=n_peaksn_peaks=i+1#this"for"loopexpressiondoesnotcheckfinishcondition#forjin(i+1,old_n_peaks):j=i+1whilej<old_n_peaks:n_dist=(sorted_indices[j]-sorted_indices[i])ifi!=-1else(sorted_indices[j]+1)#lag-zeropeakofautocorrisatindex-1ifn_dist>min_distorn_dist<-1*min_dist:sorted_indices[n_peaks]=sorted_indices[j]n_peaks+=1#originalusespostincrementj+=1i+=1sorted_indices[:n_peaks]=sorted(sorted_indices[:n_peaks])returnsorted_indices,n_peaksif__name__=="__main__":hr,hrb,sp,spb=calc_hr_and_spo2([12853,15573,15580,15586,15587,15567,15520,15480,15464,15460,15462,15466,15473,15479,15485,15490,15495,15503,15512,15518,15521,15521,15518,15517,15522,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軌道消防面試題及答案
- 浙江公考試題及答案
- 口腔mba面試題及答案
- 2025年執(zhí)業(yè)藥師試題及答案
- 倉儲管理考試題及答案
- 腹瀉門診考試題及答案
- 2025年飛行器質(zhì)量與可靠性專業(yè)畢業(yè)設(shè)計開題報告
- 2025年人武部民兵考試題目及答案
- 2025年部隊醫(yī)院入職培訓(xùn)考試題及答案
- 2025年代表法考試題庫及答案
- 2025年圣經(jīng)神學(xué)考試試題及答案
- 2025年佳木斯市郊區(qū)招聘公益性崗位人員(37人)筆試備考試題附答案詳解(基礎(chǔ)題)
- 基孔肯雅熱醫(yī)院感染防控
- 2025至2030年中國腳踏板總成市場現(xiàn)狀分析及前景預(yù)測報告
- 船舶吊臂維修方案(3篇)
- 2025年福建省中考?xì)v史試題含答案
- 2025安全生產(chǎn)法考試題及答案
- 老舊城區(qū)改造項目建議書
- 肝癌介入術(shù)術(shù)后護(hù)理
- 2025年高考河南省物理真題(含解析)
- 污泥安全培訓(xùn)課件內(nèi)容
評論
0/150
提交評論