<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 醫(yī)療電子 > 設(shè)計(jì)應(yīng)用 > 半年,1萬(wàn)行代碼,1447個(gè)焊盤(pán),做了一個(gè)心電儀,開(kāi)源了

          半年,1萬(wàn)行代碼,1447個(gè)焊盤(pán),做了一個(gè)心電儀,開(kāi)源了

          作者: 時(shí)間:2024-12-12 來(lái)源:嘉立創(chuàng) 收藏

          半年,1萬(wàn)行代碼,1447個(gè)焊盤(pán),做了一個(gè),開(kāi)源了

          我想,優(yōu)秀的心電監(jiān)護(hù)儀,一定能一邊進(jìn)行高精度檢測(cè),一邊直接打印檢測(cè)數(shù)據(jù)!

          本文引用地址:http://www.ex-cimer.com/article/202412/465451.htm

          抱著這樣的想法,我做了這個(gè),順便被電視臺(tái)報(bào)導(dǎo)了……

          圖片.png

          這個(gè)厲害在哪里?

          下面,就介紹一下我做的心電監(jiān)護(hù)儀,順便分享一下——功能亮點(diǎn)、硬件設(shè)計(jì)、數(shù)據(jù)處理原理、軟件說(shuō)明、成本說(shuō)明。

          參考開(kāi)源資料:
          https://oshwhub.com/lmppbba/ecg-monitoring-defibrillator-with-12-leads

          項(xiàng)目簡(jiǎn)介

          這是一個(gè)擁有12導(dǎo)聯(lián)的心電監(jiān)護(hù)儀

           圖片.png

          作者用半年時(shí)間,寫(xiě)出一萬(wàn)行代碼,放置1447個(gè)焊盤(pán),連3310條導(dǎo)線,最終開(kāi)源出來(lái)了這個(gè)項(xiàng)目!

          一、功能/亮點(diǎn)

          1.心電監(jiān)護(hù)功能

          • 一鍵10s快照功能

          • 一鍵凍結(jié)

          • 血壓測(cè)量

          • 實(shí)時(shí)分析計(jì)算

          • 實(shí)時(shí)時(shí)鐘顯示

          2.十二導(dǎo)聯(lián)心電圖功能

          • 實(shí)時(shí)快速心律分析

          • 一鍵凍結(jié)

          • 一鍵10s記錄

          • 自動(dòng)分析標(biāo)注

          • 一鍵快速打印

          3.5個(gè)巧思

          • 將心電監(jiān)護(hù)儀與十二導(dǎo)聯(lián)心電圖相結(jié)合, 功能強(qiáng)大

          • 減輕了整機(jī)重量,整機(jī)A4紙大小,若運(yùn)用于急救系統(tǒng),可減輕急救人員負(fù)重壓力,可讓急救員輕松穿過(guò)狹窄區(qū)域

          • 集成8寸(A4)熱敏打印機(jī)芯,可隨時(shí)快速打印長(zhǎng)度固定為30cm的記錄

          • 記錄紙打印裝訂參考線,內(nèi)置RTC時(shí)鐘同步時(shí)間,便于快速整理數(shù)據(jù),提高工作效率

          • 打印模板數(shù)據(jù)欄簡(jiǎn)潔易懂,排列整齊,可快速查找重要數(shù)據(jù)

          4.7個(gè)亮點(diǎn)

          • 全站首個(gè)12導(dǎo)聯(lián)心電圖采集電路

          • 全站首套心電圖基線修正與心電圖(實(shí)時(shí))詳細(xì)分析標(biāo)定算法

          • 全站首套完整基礎(chǔ)患者監(jiān)護(hù)系統(tǒng)

          • 全站首套呼吸波分析算法

          • 全站首套血壓計(jì)系統(tǒng)(首套血壓計(jì)示波法算法)

          • 全站首次熱敏打印機(jī)控制器實(shí)際專(zhuān)項(xiàng)應(yīng)用項(xiàng)目,數(shù)組合并,實(shí)時(shí)計(jì)算算法

          • 全站首個(gè)應(yīng)用CLUT低RAM點(diǎn)亮大屏項(xiàng)目

          二、硬件設(shè)計(jì)

          1.電路設(shè)計(jì)

          圖片.png

          主控部分

          圖片.png

          電源部分

          圖片.png

          12導(dǎo)聯(lián)模塊

          圖片.png

          心電監(jiān)護(hù)及PANDLE

          圖片.png

          除顫器部分

          圖片.png

          控制面板

          圖片.png

          參考資料頁(yè)

          圖片.png

          PCB圖

          2.硬件說(shuō)明

          • 設(shè)計(jì)軟件:嘉立創(chuàng)EDA

          • 主控芯片:GD32F470ZIT6

          • 生物電采集前端設(shè)計(jì)使用:TI ads129x

          • 電池管理:IP5310(英集芯)

          • 心電圖前端:ADS1298(TI)

          • 呼吸測(cè)量前端:ADS1292R (TI) ADS1294R缺貨被迫選擇

          • 電壓基準(zhǔn)源:REF3433IDBVR(TI)95uA低功耗

          • 打印頭機(jī)芯:JX-8R-LXS(QJ) 目前搜到成本最低

          • 參加開(kāi)源活動(dòng):星火計(jì)劃

          [星火計(jì)劃]提供了:PCB-550;SMT-3000;元器件-200;3D外殼-400等開(kāi)發(fā)耗材;具體心電儀成本見(jiàn)【第5章】

          三、數(shù)據(jù)處理原理

          1.血氧飽和度脈搏波的獲取

          怎么獲取更精準(zhǔn)的數(shù)值?原理是什么?

          下面圖示是需要獲取的PPG數(shù)據(jù)(類(lèi)似)。

          如果我們單純?cè)O(shè)置一個(gè)閾值來(lái)“一刀切”,那么不在范圍內(nèi)的信號(hào)就會(huì)被斬于馬下,呈在屏幕上呈現(xiàn)出滿(mǎn)量程的假象。每一個(gè)人的脈搏波測(cè)量后所反饋所得數(shù)值都不一樣,且該波形易受到意外影響,如:亂動(dòng)血氧夾子,二度房室傳導(dǎo)阻滯,窒息或其他原因的血氧跌落,肢體活動(dòng)等導(dǎo)致血流受阻。

          因此,我們必須使用特殊算法來(lái)適應(yīng)。思路如下:

          讀取窗:

          圖片.png

          我們?cè)O(shè)置顯示窗為0~1000范圍,要在顯示窗內(nèi)顯示完整圖形,首先要標(biāo)記出數(shù)值的最值,標(biāo)記出最大值和最小值就為將圖形全部放到顯示窗內(nèi)提供了可能。

          但,傳感器所反饋回來(lái)的數(shù)值非常大,并不能直接放到顯示窗內(nèi),所以我們要進(jìn)行下一步的必要處理。

          處理窗:

          圖片.png

          脈搏波所反饋的信息很多,我們?yōu)榱吮A裘}搏波跌落,上升,以及圖形更多細(xì)節(jié),采用分段取最值的方式,并沒(méi)有采用中值濾波,現(xiàn)在設(shè)置一個(gè)周期,每1000周期取一次最值(紅線標(biāo)記相關(guān)代碼,下同)

          圖片.png

          然后,我們將數(shù)值減去最小值,我們將小于最小值的數(shù)字直接略去,但分段取值的缺點(diǎn)因此顯現(xiàn),所以我們?cè)诼匀サ耐瑫r(shí)告訴取值部分需要重新取值(最大值同理)

          這樣不是又出現(xiàn)了滿(mǎn)量程現(xiàn)象嗎?

          其實(shí),這是對(duì)于顯示趨勢(shì)時(shí)的必要犧牲,在下一周期會(huì)重新被感應(yīng),而且一個(gè)周期持續(xù)只有2秒

          處理窗:

          圖片.png

          然后,我們截取數(shù)據(jù),將圖形繪制到顯示窗上,為了減少超量程現(xiàn)象,我們?yōu)樽钪翟黾?00的寬限

          圖片.png

          PPG顯示窗:

          圖片.png

          但是,在調(diào)光后幾秒,脈搏波的最值取值不正確,或者患者發(fā)生心律失常時(shí)脈搏減弱,這個(gè)過(guò)程中,脈搏數(shù)據(jù)均未突破最值,但是波形異常小,難以閱讀 甚至為一條直線不能閱讀。

          出現(xiàn)波形 “難以閱讀 ”的現(xiàn)象,怎么破?

          此時(shí),我們要檢測(cè)波形振幅,當(dāng)振幅低于設(shè)定值,發(fā)送需要重新取最值請(qǐng)求

          PPG顯示窗(異常):

          圖片.png

          圖片.png

          這樣,當(dāng)PPG信號(hào)出現(xiàn)振幅異常時(shí),程序才會(huì)將波形”伸開(kāi)“,至此,解決了PPG的搜索,以及意外處理

          PPG顯示窗(運(yùn)行時(shí)):

          圖片.png

          PPG顯示窗(實(shí)際運(yùn)行),可以很清楚看到各個(gè)周期的處理:

          圖片.png

          *PPG與ECG不同,不能代替ECG診斷復(fù)雜情況,但PPG也有自己的用武之地,如:發(fā)現(xiàn)房顫,早搏或傳導(dǎo)阻滯,過(guò)速或過(guò)緩,但只起到發(fā)現(xiàn)作用,還需要ECG確認(rèn)和定性

          2.心電信號(hào)解算

          如何基于ADS1298讀取心電信號(hào)解算?如何實(shí)時(shí)基線修正呢?

          首先吐槽一下ADS1298的奇葩輸出方式,在0到正滿(mǎn)量程時(shí)輸出值位0 - 0x7FFFFF,但是在負(fù)滿(mǎn)量程到0時(shí)卻跟在了0x7FFFFF之后,為0x800000 - 0xFFFFFF

          圖片.png

          所以,畫(huà)出的數(shù)軸是這樣子的,需要進(jìn)一步處理將兩者連到一起,否則當(dāng)數(shù)據(jù)卡在正負(fù)中間時(shí),解算的數(shù)據(jù)上上下下無(wú)法分析

          圖片.png

          怎么將兩者連到一起呢?

          現(xiàn)在紅色為一組,藍(lán)色為一組,按照uint來(lái)看,藍(lán)色在前,紅色在后,現(xiàn)在我們把藍(lán)色放到后面,剩下的交給基線修正邏輯

          為了把藍(lán)色放到后面,且防止溢出,我們分為三步走。

          第一步,判斷數(shù)據(jù)應(yīng)屬于0以上還是0以下

          第二步,如果是0以下,讓數(shù)據(jù)減去0x800000,使得負(fù)滿(mǎn)量程為0

          第三步,如果數(shù)據(jù)是0以上(含0),讓數(shù)據(jù)加上0x8000

          圖片.png

          這樣,讀取數(shù)據(jù)的時(shí)候就不會(huì)抽風(fēng)了,可以安心丟給基線修正邏輯

          舊的問(wèn)題解決,新的問(wèn)題油然而生。

          在用”12陣法“鎮(zhèn)住數(shù)據(jù)之后,我們發(fā)現(xiàn)數(shù)據(jù)上出現(xiàn)了很多毛刺,非常影響判讀和分析……

          我們需要清理這些 “數(shù)據(jù)毛刺”!

          圖片.png

          我們發(fā)現(xiàn),比較突兀的毛刺電壓為8mV,那么QRS電壓有可能超過(guò)8mV嗎?

          正??隙ú粫?huì)的,但是情景是多變的,我開(kāi)始搜索病態(tài)心電圖查找線索。在搜索的病案中,QRS電壓在3mV左右, 沒(méi)有超過(guò)3.5mV的,保險(xiǎn)起見(jiàn)我們將超過(guò)6mV的信號(hào)定為毛刺信號(hào)去除(最終最高QRS電壓為患有心力衰竭左心室擴(kuò)張的親戚,R波電壓5mV)

          現(xiàn)在,我們就和大毛刺say good bye了,小毛刺還需在電源努力。

          怎么清除 “小毛刺?”

          圖片.png

          接下來(lái),就該處理喝醉酒一樣的基線了,我們可以看到基線一直在上下傾斜,這就是基線漂移現(xiàn)象。

          基線漂移如何處理呢?

          基線漂移的重中之重就是找到基線信號(hào),緊接著將原始數(shù)據(jù)減去基線信號(hào)就可以得到修正后的波形了。

          要得到基線信號(hào),我們需要去除QRS波,P波和T波。QRS波是最好去除的,只需要沿用毛刺去除代碼,將QRS判定為毛刺即可。

          圖片.png

          說(shuō)明一下,在定義的時(shí)候,I導(dǎo)聯(lián),aVR aVL aVF不做定義,因?yàn)檫@些導(dǎo)聯(lián)是算法推算的,后算即可(bsxx 即basexx為基線變量)

          圖片.png

          想象很美好,現(xiàn)實(shí)是殘酷的,因?yàn)楦卟蓸勇实木壒?,QRS有上升時(shí)間,得到的基線標(biāo)本(紫色)和原始數(shù)據(jù)(紅色)是差不多一樣的!解決這個(gè)僵局很簡(jiǎn)單,我們使用抽樣調(diào)查之后,再進(jìn)行接下來(lái)的處理:

          圖片.png

          就這樣,我們得到了抽樣調(diào)查后去掉QRS波的樣本,雖然采樣率被極致壓縮,但是這對(duì)于解算基線已經(jīng)綽綽有余了

          圖片.png

          聽(tīng)說(shuō)你要直接拿數(shù)據(jù)減去這個(gè)?不!這里面還有未除凈的p波和T波,有時(shí)候s波也混在其中!

          此時(shí),請(qǐng)出我們的中值濾波器。

          圖片.png

          這樣我們?cè)谟谩霸紨?shù)據(jù)”減去“基線數(shù)據(jù)”就能得到“基線”和“最終波形”。

          圖片.png

          測(cè)試對(duì)象2:

          圖片.png

          *相關(guān)代碼存在變更,測(cè)試圖并不能反映最終結(jié)果

          然后推算其他肢體導(dǎo)聯(lián)。

          圖片.png

          3.NIBP無(wú)創(chuàng)血壓數(shù)據(jù)處理

          無(wú)創(chuàng)血壓(同NIBP)?怎么測(cè)量這個(gè)數(shù)據(jù)?

          怎么獲取NIBP數(shù)值?一般是給袖帶充氣,當(dāng)超過(guò)人體最高血壓值一定數(shù)值,再緩慢放氣,讀取放氣過(guò)程中袖帶壓(或管路壓力)的變化,并處理,得出NIBP數(shù)值。具體原理如下:

          當(dāng)袖帶充氣超過(guò)收縮壓之后,血流被阻斷,不會(huì)對(duì)袖帶產(chǎn)生作用力,在放氣時(shí),袖帶壓降低到收縮壓之后血流重新流通并產(chǎn)生波動(dòng),對(duì)袖帶產(chǎn)生作用力,引起袖帶內(nèi)壓力值增高或暫時(shí)不變。繼續(xù)放氣低于舒張壓之后,有壓強(qiáng)差可得,袖帶對(duì)血管產(chǎn)生壓力與所受血管的支持力相等,合力為0,不產(chǎn)生形變,袖帶內(nèi)壓強(qiáng)不再受血流沖擊變化,壓力值正常下降。

          了解了原理,讓我們將目光放回本項(xiàng)目!

          實(shí)際操作中,如何實(shí)現(xiàn)精準(zhǔn)的NIBP數(shù)值測(cè)量呢?

          首先,看一下理想情況下袖帶壓力變化。

          圖片.png

          圖表來(lái)自https://www.bilibili.com/video/BV1JV4y167AJ

          然而,事實(shí)上,沒(méi)有什么事情是理想的,在實(shí)際對(duì)*0.1kPa數(shù)據(jù)前處理之后,讀出的波形成了這副模樣:

          全貌:

          圖片.png

          泄氣部分:

          圖片.png

          如何處理這種 “波形泄氣 ”的情況?

          由于之前處理運(yùn)算轉(zhuǎn)換為mmHg int值時(shí),在*0.75過(guò)程中丟失了波形細(xì)節(jié),所以我們?cè)谶@個(gè)失真的波形上意外的讀出了(87/45)的奇怪NIBP值。

          我們將int換為float得到以下圖形:

          圖片.png

          所蘊(yùn)含的信息在哪里呢?我?guī)湍阒敢幌拢?/p>

          圖片.png

          這里可以找到四個(gè)心搏點(diǎn),但是黃色標(biāo)記的心搏太淺,單片機(jī)可能無(wú)法正常識(shí)別到,所以,可以認(rèn)為僅存在三個(gè)有效點(diǎn)

          接著,就要讓單片機(jī)認(rèn)識(shí)這幾個(gè)心搏點(diǎn)

          直接讓單片機(jī)處理是不可能的,因?yàn)榍昂蠖加衅街本€段,而且我們也不能標(biāo)定閾值,由于數(shù)據(jù)讀取的特殊性,只要讀錯(cuò)一個(gè),所得數(shù)據(jù)會(huì)造成極大誤差。

          根據(jù)唐老師將電賽-電子血壓計(jì)電路指導(dǎo),我使用一個(gè)0.3~3.5帶通濾波器協(xié)助調(diào)整。但在實(shí)際操作中,發(fā)現(xiàn)需要使用一個(gè)頻率為<3Hz的低通濾波器,不斷調(diào)整數(shù)值到最佳頻率。

          圖片.png

          億頓操作猛如虎,經(jīng)過(guò)濾波,提取,再濾波之后得到這樣的數(shù)據(jù),可以輕松找到五個(gè)搏動(dòng)點(diǎn),但是仍然存在許多噪聲,無(wú)法滿(mǎn)足單片機(jī)的處理需要,單片機(jī)還是看不懂。

          并且,左邊的大豎線需要在以后匯總時(shí)屏蔽掉。

          怎么削弱 “波形噪聲 ”?

          這里可使用閾值法。

          圖片.png

          首先,通過(guò)間隔取中值濾波,將圖形稍做優(yōu)化,看起來(lái)不那么雜亂無(wú)章了,就不為難單片機(jī)了。

          v2-2b60e746287bd7a366bab583627ba146_r.jpg

          通過(guò)平方削弱雜波成分后,再通過(guò)下降枝閾值法和干擾值排除確定出搏動(dòng)。

          如圖,這是提取出來(lái)的脈搏點(diǎn)(未經(jīng)過(guò)排除),可以看到,重博波與過(guò)遠(yuǎn)的無(wú)效波。

          v2-0ec36637c5655dc31ddbee6bec3d7276_r.jpg

          然后,再經(jīng)過(guò)隔值法與直接法處理并比較有效點(diǎn)個(gè)數(shù),多者勝出,運(yùn)用其方案計(jì)算

          隔值法原理:

          現(xiàn)有的數(shù)據(jù): N N N N N N N(直接法算法)

          第一次處理: N N N N N N(嘗試計(jì)算)

          第二次處理: N N N N N N(嘗試計(jì)算)

          第三次處理: N N N N N N(嘗試計(jì)算)

          第四次處理: N N N N N N(嘗試計(jì)算)

          第五次處理: N N N N N N(嘗試計(jì)算)

          沒(méi)有第六次啦!不然比較不了間隔值!

          排除干擾所得數(shù)據(jù)如圖,可以看到“原理數(shù)據(jù)”的值和兩個(gè)有效數(shù)據(jù)之間的“干擾值”被濾去:

          v2-86e441fc1dbad9085dc406f8f4ee442a_r.jpg

          第二次試驗(yàn):

          圖片.png

          看到先出現(xiàn)對(duì)應(yīng)收縮壓,后出現(xiàn)對(duì)應(yīng)舒張壓,就完畢啦!

          圖片.png

          4.呼吸波數(shù)據(jù)解析

          首先要讀取到呼吸波形

          我們使用了0.1 - 4 Hz低通濾波器,以及一個(gè)中值濾波進(jìn)行處理,得到初步波形,將其存入數(shù)組。

          為保證分析和快照實(shí)時(shí)性,我們采取將數(shù)組左移,最后追加的方式存儲(chǔ)數(shù)據(jù)。

          我們使用memmove方法安全且快速的移動(dòng)數(shù)據(jù)。

          圖片.png

          這是讀取出來(lái)的原始呼吸波性,被載入到緩存數(shù)組中,但是仍然有很多毛刺,雖然在顯示時(shí)無(wú)影響,但是對(duì)于數(shù)據(jù)處理是致命的

          圖片.png

          怎么處理這些毛刺?

          于是我們對(duì)其進(jìn)行了一次帶通濾波(0.2 ~ 4 Hz)和寬窗中值濾波,讓波形變平滑,最后進(jìn)行下降沿檢測(cè)即可。

          在實(shí)驗(yàn)時(shí)發(fā)現(xiàn)總會(huì)有1的重復(fù)值,進(jìn)行矯正即可:

          圖片.png

          最后我們把識(shí)別呼吸波的個(gè)數(shù)乘以三 即可。

          因?yàn)椴蓸勇适?0ms一次,傳入數(shù)組體量為2000,含20s數(shù)據(jù),乘以三即可獲得60s數(shù)據(jù)。

          5.多導(dǎo)聯(lián)心電圖聯(lián)合解析算法

          這是一項(xiàng)艱巨的任務(wù),也是各個(gè)數(shù)字心電圖機(jī)開(kāi)發(fā)所面臨的挑戰(zhàn)。

          R波識(shí)別

          處理第一步,通過(guò)Pan-Tompkins算法濾波+平方運(yùn)算削弱p、T等小波,提高R波斜率。

          所得結(jié)果1:

          圖片.png

          所得結(jié)果2:

          圖片.png

          然后就可以通過(guò)“斜率識(shí)別”把R波的索引提取出來(lái)。

          對(duì)于低電壓的情況,識(shí)別到無(wú)任何波形,可以降低閾值繼續(xù)檢測(cè)。

          但是如結(jié)果1所示,II導(dǎo)聯(lián)處理的數(shù)據(jù)中間存在若干干擾,還需要引入III導(dǎo)聯(lián)進(jìn)行雙重校驗(yàn),得出純凈的數(shù)據(jù)。然后再將索引根據(jù)采樣率計(jì)算出RR間期以及心率。

          圖片.png

          緊接著計(jì)算出QRS數(shù)據(jù)與QT數(shù)據(jù)。

          QRS起點(diǎn)尋找

          我們通過(guò)以上算法尋找的R波可能超過(guò)R波,也可能在Q與R之間,我們需要進(jìn)一步向左尋找QRS波起點(diǎn)。

          對(duì)于起點(diǎn)尋找,就需要考慮多種情況了。

          圖片.png

          我們總結(jié)出這幾種情況:

          1.無(wú)Q波,直接平直

          2.有Q波,即存在轉(zhuǎn)折關(guān)系

          這些是可能的情況,部分情況可以合并(正向波和負(fù)向波的同類(lèi)型情況可以合并,根據(jù)Q波的情況可以合并)

          我們針對(duì)第一種情況設(shè)置低于4單位即為平直(別看很多,其實(shí)整個(gè)圖拉的很大),遇到平直數(shù)值停止查找,定義其對(duì)應(yīng)索引值為起點(diǎn)。

          斜率符號(hào)改變視為掉頭,針對(duì)第二種掉頭情況。我們?cè)O(shè)置掉頭次數(shù)不能超過(guò)三次(抵消干擾),并且遇到操作索引的前一個(gè)和后一個(gè)的差值不能小于3,否則立即停止查找,定義其對(duì)應(yīng)索引值為起點(diǎn)。

          在尋找起點(diǎn)的同時(shí),定義起點(diǎn)索引前 2單位的數(shù)值為零電位(要取平均值的)。接著進(jìn)入下一步,心電軸計(jì)算。

          QRS電軸計(jì)算

          電軸也稱(chēng)平均電軸,是心臟電活動(dòng)的平均方向(向量),是心電圖檢測(cè)指標(biāo)之一,指心臟除極和復(fù)極時(shí)額面最大綜合向量與水平軸形成的角度。

          我們已經(jīng)記錄了QRS波,想要讓機(jī)器識(shí)別心電軸,就必須推導(dǎo)出計(jì)算方法。

          圖片.png

          想必學(xué)過(guò)心電圖的醫(yī)學(xué)生們一定對(duì)這張圖非常熟悉,這張是使用I,III導(dǎo)聯(lián)代數(shù)和進(jìn)行計(jì)算的,但是,這種方法對(duì)于機(jī)器來(lái)說(shuō)比較復(fù)雜,我們采取另一種方式,面積積分法。

          這個(gè)方法因?yàn)槿斯び?jì)算麻煩而被拋棄,但是面積積分法是測(cè)量心電軸最標(biāo)準(zhǔn)的方法,也是機(jī)器計(jì)算最簡(jiǎn)單的方法。

          圖片.png

          在這幅圖中,顯示了振幅法和面積法的差距。

          面積積分法是把I,III導(dǎo)聯(lián)相對(duì)于等電位線正向和負(fù)向面積代數(shù)和做圖在一個(gè)特殊坐標(biāo)系上,其中-III與+I的夾角度數(shù)為60deg。

          在計(jì)算時(shí)有四種情況:

          SI <0 SIII<0 電軸不確定

          SI <0 SIII>0 電軸左偏

          SI >0 SIII<0 電軸右偏

          SI >0 SIII>0 電軸不偏

          我們選取有代表性的兩種做出幾何推理:

          • 紅線:SI SIII

          • 黑線:反向延長(zhǎng)線

          • 綠線:相交點(diǎn)與電偶中心連線

          定義點(diǎn)I為A;點(diǎn)III為B。

          情況A:電軸不偏

          v2-6f09b6aaff5422387fee5ed8b4cf6c57_r.jpg

          延長(zhǎng)P III 交直線I O 與點(diǎn)N

          ∵PB⊥ OB,∠NOB = ∠ = 60 deg

          ∴∠ONB = 30 deg

          又∵∠NBO= 90 deg

          ∴NO = 2SIII

          ∴NA = 2SIII+SI

          ∵∠NAP = 90 deg,∠ONB = 30 deg

          ∴PA =

          圖片.png

          ∵∠NAP = 90 deg

          ∴心電軸=

          圖片.png

          情況B:電軸左偏

          圖片.png

          延長(zhǎng)BP交支線I與點(diǎn)N

          ∵∠BON = 60 deg,∠OBN = 90 deg

          ∴∠BNO = 30 deg

          ∴在△NBN中 ON = 2SIII

          在△PAN中 PA =NA/√3

          ∵NA = ON - OA = 2SIII-SI

          ∴PA=

          圖片.png

          ∴在Rt△PAO中,∠PAO = 90 deg

          心電軸=

          圖片.png

          對(duì)于另外兩種可情況,可以將兩個(gè)面積和取相反數(shù),根據(jù)對(duì)頂角相等的數(shù)學(xué)思維即可轉(zhuǎn)化為以上兩種情況,是不是很有趣呢。

          所對(duì)應(yīng)的計(jì)算是這樣子的:

          圖片.png

          T波尋找與QTc計(jì)算

          T波屬于小波成分,斜率較小,我們使用新的帶通濾波器(8-22.5Hz)提取出T波。

          這樣P,T的成分就明顯了。

          圖片.png

          緊接著把索引內(nèi)小于100與大于1800的索引編號(hào)去除,防止搜索時(shí)越界。

          圖片.png

          然后計(jì)算出最大的QT間期(QTc按550ms記,再高就不可能了,就會(huì)有尖端扭轉(zhuǎn)室速)

          圖片.png

          然后跳過(guò)QRS波,并向后30s到最長(zhǎng)QT間期尋找最大最小值,最大最小值對(duì)應(yīng)T波終點(diǎn)(對(duì)于這個(gè)濾波器處理后的數(shù)據(jù))

          圖片.png

          然后求平均值算出QT間期:

          圖片.png

          然后根據(jù)QTc矯正公式算出QTc,在用QT-QRS算出T波時(shí)限:

          圖片.png

          胸導(dǎo)聯(lián)R/S波電壓分析

          胸導(dǎo)聯(lián)R/S波電壓RV5+SV1和RV1+SV5是心電圖分析時(shí)重要的工具??梢苑治鲎笫液陀沂译妷旱拇笮?,對(duì)心肌梗死,高血壓心臟病,心室擴(kuò)張,心室肥大,肺動(dòng)脈高壓的診斷有指導(dǎo)意義。

          首先,根據(jù)QRS起點(diǎn)向左兩個(gè)單位算出等電位求平均值

          圖片.png

          然后求與等電位相對(duì)值的最大最小值:

          圖片.png

          最后求電壓值的平均值,然后取絕對(duì)值,將記錄的值(單位)轉(zhuǎn)化為電壓值(mV):

          圖片.png

          結(jié)束解算代碼。

          四、軟件說(shuō)明

          由于單片機(jī)片上資源極度有限,我們放棄了占用資源多的FreeRTOS與LVGL,使用裸機(jī)+LCD繪圖庫(kù)完成設(shè)計(jì)

          軟件部分主要說(shuō)明什么呢?

          已知,心電儀的應(yīng)用設(shè)計(jì),是兩個(gè)App以及多個(gè)界面切換。

          那要如何保證切換不出錯(cuò)??jī)x器按鍵不出錯(cuò)?

          我使用了將App或界面返回值代入決策的方式實(shí)現(xiàn)切換。

          這樣,只需要在App函數(shù)返回一串特征代碼,管理器即可切換到指定App或界面。

          圖片.png

          圖片.png

          我們使用一個(gè)旋轉(zhuǎn)開(kāi)關(guān)來(lái)作為App切換,我們通過(guò)讀取開(kāi)關(guān),累計(jì)標(biāo)識(shí)的方式銷(xiāo)毀當(dāng)前App切換。

          在讀取到App不一致時(shí)開(kāi)啟累計(jì)標(biāo)識(shí),達(dá)到一定數(shù)值后銷(xiāo)毀并切換,標(biāo)識(shí)歸零。若檔位開(kāi)關(guān)回到當(dāng)前App,標(biāo)識(shí)歸零。

          圖片.png

          復(fù)雜的系統(tǒng),機(jī)械按鍵是不允許出半點(diǎn)差錯(cuò)的,我們對(duì)于機(jī)械按鍵處理,使用中斷調(diào)用管理器中的按鍵功能決策函數(shù),根據(jù)App和頁(yè)面標(biāo)識(shí)決策功能。

          v2-f6e12fed3665ef8dfecd9e18dfb7402b_r.jpg

          當(dāng)然在App/頁(yè)面被調(diào)用時(shí),需要設(shè)置標(biāo)識(shí):

          圖片.png

          圖片.png

          這樣,整個(gè)調(diào)度系統(tǒng)才能有條不紊的運(yùn)作下去,長(zhǎng)期保持穩(wěn)定。而且,裸機(jī)相比于RTOS大幅提升了系統(tǒng)穩(wěn)定性,保留更多資源。

          五、成本說(shuō)明

          個(gè)人制作一個(gè)心電監(jiān)護(hù)儀的總成本約3100元。

          v2-5f0209fa5750575fabfced8bbb42b377_r.jpg

          你覺(jué)得這個(gè)儀器做得怎么樣呢?

          參考開(kāi)源資料:
          https://oshwhub.com/lmppbba/ecg-monitoring-defibrillator-with-12-leads





          關(guān)鍵詞: 心電儀 DIY

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();