關於心電算法(轉)


《轉》關於心電算法談談(Discuss of ECG Analysis Algorithm)

談到心電算法(ECG Analysis Algorithm),許多生物工程技術人員就會關聯到如下這篇文章:

 

Hamilton, Tompkins, W. J., "Quantitative investigation of QRS detection rules using the

MIT/BIH arrhythmia database", IEEE Trans. Biomed. Eng., BME-33,  pp.  1158-1165,

1987.

 

包括現今的許多心電圖分析(ECG Analysis)以及與心電圖相關產品的新技術和方法如小波方法、模式匹配、人工神經網絡等都是以此為參考或以此來佐證更優良的性能。

 

我們這里也是以此來作為參照,一個E.P. Limited機構也是作者Patrick S. Hamilton以開放源代碼的形式闡述並實現了上述方法。可以訪問其網站

http://www.eplimited.com

下載源代碼和說明文檔《Open Source ECG Analysis Software Documentation》或詳見我們對其作部分翻譯。

http://www.math86a.icoc.cc/nd.jsp?id=12&fromColId=4&moduleId=3&m12pageno=1

 

這份代碼歷經幾個版本,2002年完成並發行最近的版本,該機構是屬於美國衛生研究院(NIH)下美國心肺與血液研究所(NHLBI),作者初衷也是希望避免許多企業和研究機構重復的在心拍檢測上面耗費精力,轉而投向新的ECG診斷技術上面。該算法基於MIT/BIH心律失常數據庫(MIT/BIH Arrhythmia Database)用C實現,並在PIC16F877單片機上測試通過了美國醫療儀器促進協會(AAMI)制定的EC13標准要求,達到了較好的敏感度、預測度以及實時性等性能。

 

因此,這套算法也被許多技術人員引用,對其進行的修改版本也在許多心電圖相關產品上可見蹤影。

 

我們這里將其進行參照是作技術探討,不針對任何企業和團體機構,涉及敏感詞匯也不必對號入座。總體來說,一個算法的確立是需要滿足一些假設條件,而該算法中有幾條假設是不夠合理的,當然這也受當時的技術水平所局限,該算法主要分為心拍檢測和心拍分類兩個部分,下面我們來分析幾個問題並作一一詳解:

 

一、該算法文檔中聲明了這個算法沒有在噪聲環境下測試,對噪聲也只是作一些如節律或R-R間期正常的松散假設(詳見原文或參考如下)。

http://www.math86a.icoc.cc/nd.jsp?id=12&fromColId=4&moduleId=3&m12pageno=2

由於MIT/BIH心律失常數據庫是采集兩導聯ECG信號,並且其中受噪聲水平影響較小,因此也提供給許多心電圖相關技術人員和臨床醫生用以算法測試和數據分析(詳見我們的另一篇文字)。

   

做信號處理的同志大多知道,但凡涉及電子器件總是不可避免的要和噪聲打交道,人們和噪聲斗爭了許多年,信號處理的主旨也是消噪以提取重要信息,衡量一個信號處理工程師水平也是以消噪能力來評判。

 

由於這套算法是以心臟監護為原型來設計方案的,而與心電信號有關的干擾有很多(也可詳見我們的另外一篇文字),雖然該算法文檔中也對PDA式心電產品也作了展望,但在現今醫療設備越來越便攜化趨勢的今天,便攜式醫療設備的電生理信號顯然與醫院中專業醫療設備所采集的信號是不同的,可以說是前者的信號處理分析起來更加具有挑戰性。

 

這也是許多做醫療電子的企業所忽視的問題,一般都是盲目的追求醫學准確水平或臨床參考價值,而忽視了最基本的信號分析。因為便攜化醫療設備主要針對家庭以及個人用戶而非醫院或醫療機構,而家庭或個人用戶又不具備醫學或工程技術等專業知識,所以設備的使用環境也多樣化,從而導致抗干擾能力較弱,也難以受顧客青睞。

 

雖然該算法用MIT/BIH心律失常數據庫均為半小時記錄作測試有百分之九十七以上的敏感度和預測度,我們具體測試也的確如此,只有少數記錄的假陽性和假陰性檢測結果較多(如105、108、116、201、203、208、210等),但是我們並不用此為主要依據,我們用一些含噪水平不同的信號通過該算法檢測,檢測結果就表現較差,尤其在遇到電極接觸性干擾簡稱脈沖干擾時最為明顯,有的心拍檢測就缺乏科學依據,當然這也與檢測規則有關,我們后面再作闡述。

 

便攜式醫療設備顯然與專業醫療設備的信號采集環境是不同的,例如上述的電極接觸性干擾具有持續時間短、振幅變化大、能量強的特點,雖不影響整體信號,但凌亂的數據會對算法檢測造成較大影響甚至有的導致數據異常,所以還是會影響算法的性能,諸如上述測試的結果均不佳。

 

因該算法本身是是時域算法,也是與受當時技術局限性有關。同時,家庭或個人用戶在使用便攜設備時也不太可能自行塗抹電極膏,因此抗干擾性能必須是我們要考慮的,同時一些醫療標准也要求了經模數轉換的信號其共模抑制比達到89分貝以上。

 

我們用我們自己的算法,對一些噪聲來源進行模型估計,並從譜和統計模型的角度去區分ECG信號和噪聲(這些都是現代信號處理的重要內容,在處理器芯片日新月異的今天,處理這些計算真是綽綽有余),並得到了較好的表現。

 

二、該算法中只是用數字濾波器來完成消噪的:

首先,經采集到的信號數據通過一個強高通濾波器濾除基線位移等干擾,接着是一個強低通濾波器濾除一些高頻噪聲,這樣余下成分主要包含是在心電信號中能量最為集中和明顯的QRS波群,也就是R波,對於室性期前收縮(PVC)等異位性心拍也與之相同。

 

這里強高通和強低通數字濾波器都會對心電信號波形造成失真,對於心拍檢測來說這個是可以接受的,因為主成分是QRS波,而波形失真對於作心律失常分析來說也就喪失了分析價值,這個算法只作心拍檢測和分類,因此我們這里不對心律失常分析進行討論。

 

接下來,會將濾波之后的數據通過一個一階差分並求其絕對值,然后用一個移動窗口進行積分求平均。這里所有操作在其PIC版本中均作了優化並予以實現。(詳見源代碼或可從我們主頁下載,並且他這個PIC版本可單獨實現心拍檢測功能)

picqrs.c下載:

http://798.fc21.faidns.com/728798/0/ABUIABAAGAAgr-m4hAUo1PPn0Qc?f=picqrs.c&v=1351498929

該算法這里有一條假設是不合理的,他們認為在移動窗口積分后,所得到數據呈一個一個峰狀,他們稱為塊(lump),問題是他們認為一般T波所產生的塊要比QRS波產生的塊要小(詳見原文或參考如下)。

http://www.math86a.icoc.cc/nd.jsp?id=12&fromColId=4&moduleId=3&m12pageno=4

 

在一般或主導節律為正常的心電圖中的確是這樣的,也就是說R波振幅是高於T波的,但的確有R波振幅低於T波一半水平的,而且T波還在QRS不應期之外,我就見過一例心電信號,這個人就只是身體瘦弱些,但節律都正常,用該算法檢測就會得出兩個心拍,也就是不但檢測到R波也檢測到之后的T波,活蹦亂跳的正常人總不能說成是心動過速,這是不應該的。

 

PIC16F877是16位單片機,工作頻率為3.6864MHz,原文說是板載有368字節RAM。綜上所述,在單片機處理芯片日新月異的今天,我們完全可以用新的技術和新的方法來取代這個10年前基於有限的技術手段和局限的消噪方法,而且原文也作了此類反問延伸,如果處理器能力不是問題,是否有更好的濾波器和濾波系數,當然這還是局限在了數字濾波器的范圍之內。

 

顯而易見,作者本人也是沒有預見到10年后的技術發展程度,但相信目前很大一部分心電設備中的心拍檢測解決方案采用的正是該算法。同時,每年也有很多與ECG相關的學術文章都在論述着新的方法,二進小波、最佳估計、EMD、主成分分析、形態分類、神經網絡等等,但把學術探討用以實現科技創新卻又有很長的發展之路,也是我們這個國家提高生產力發展科技水平所面臨的趨勢,需要與此有關的技術人員和研究人員的不斷努力。

 

三、心拍檢測規則設置簡易,不夠合理:

該算法中,用移動窗口積分后得到的數據,然后檢測峰高和峰到峰的間隔時間,以此來作為檢測依據,(詳見原文或參考如下)。

http://www.math86a.icoc.cc/nd.jsp?id=12&fromColId=4&moduleId=3&m12pageno=5

 

可以看到,該算法認為可以通過設置類似於高低杠的閾值,來作為判定QRS波、噪聲或其它的依據,另外在檢測到的候選QRS波中再用R-R間隔來判定真正的QRS波。

 

顯然,這是不合理的。如果單純假設為節律正常的心電信號,這樣做是問題不大的,但是心電圖信號因人而異,而且更不用說需要考慮心律失常或心臟性疾病所引起的異常心電圖,雖然便攜式醫療設備不是專業醫療設備,但也是需要起到一定參考意義的,在關注健康和預防疾病方面能起到一定作用。

 

雖然該算法測試的MIT/BIH心律失常數據庫統計的是整體敏感度和預測度,統計結果總體都超過百分之九十七以上的水平,但是具體到每一拍,還是在測試有些數據記錄上出現明顯的漏拍或錯判,如室速漏拍、含有切跡的QRS波被判定成了噪聲等等現象。

 

因為異常心電圖本身有時並不容易發覺,所以這也正是用動態心電圖(Holter)設備來記錄更長時間段的心電信號並加以分析。MIT/BIH心律失常數據庫中多有異常形態的心電圖,但對每一條記錄來說,都有其主導節律,也就是說主導節律大多是正常形態,那么病變異常就是形態發生改變的心電信號,那些漏拍和錯判的也均是指這些異常心電圖波形。

 

因此,在算法檢測所錯漏的心拍中,並不都是不需要我們提請用戶需要注意的信息。

四、該算法也聲明了不能識別室顫和室撲。

http://www.math86a.icoc.cc/nd.jsp?id=12&fromColId=4&moduleId=3&m12pageno=2

 

的確,室顫和室撲也並不是容易檢測的,因為這些形態有些類似於凌亂的正弦波。許多文獻也提出了一些方法,他們的網站上好像就有一篇文章就是說這個的,具體我們沒有看,掃了一眼,仿佛是有的。

 

但這種波形還有房顫的檢測卻並沒有引起我們國內該行業領域內的重視,而是大家把重點精力花在比肩前沿的,如何尋找P波等等上面。這個又說到前面那個問題上面,例如大家盲目的要求ST分析水平達到多少多少,鑒於ST分析在臨床診斷上面有重要依據作用,這個不假。

 

因為畢竟國內專業臨床心電圖機是被國外技術壟斷,國內的技術水平顯然是不足以與其抗衡,況且現階段,先進的計算機診斷技術也是遠沒有達到臨床醫生滿足的要求,自動診斷技術在目前還是不能替代醫生判讀。

 

所以,基本功沒有夯實,趕超先進技術水平,也是沒有多大實際意義的。

 

我們這里講便攜式醫療設備,因此,我們也應把着眼點放在盡可能的發揮出便攜式設備的優勢,並在性能上做到能提供醫學參考價值,預防控制疾病的作用上面。

 

五、該算法的閾值檢測方法,對弱信號是失效的。

文檔中也說明了,為了避免在只有噪聲而沒有病人心跳而ECG監護報告心拍檢測結果的情況,該算法作了一些閾值的調整,(詳見原文或參考如下)。

http://www.math86a.icoc.cc/nd.jsp?id=12&fromColId=4&moduleId=3&m12pageno=9

 

但是實際情況中,便攜式設備采集信號環境和采集方式與ECG監護以及心電圖機的采集環境和采集方式是明顯不同的,也就是說,便攜式設備的確會采集到這種只有噪聲而沒有心拍的信號。

 

這還不算什么,與此同時,心電信號因人而異,也的確能采集到小於0.5mV的淹沒在隨機噪聲中的心電信號,這種心拍很難與噪聲區分開來,專業上講,需要作噪聲估計、假設檢驗,也就是這種情況下即使檢測到的心拍也是需要作統計檢驗的(關於弱信號淹沒在隨機噪聲中可以詳見我們的另外一篇文字)。

 

該算法在檢測這種弱信號時,檢測結果表現很不好。若我們假設一般正常人的主導節律為正常,但是該算法卻會檢測為過速的結果,而且的確是有女人的I導聯心電信號是微弱的。

 

六、關於心拍分類。

該算法的心拍分類,只作了三種分類,正常、室早(PVC)、未知,而且幾乎也是用峰高、閾值以及R-R間期來作的判定規則,(詳見原文,我們還未將其翻譯,后續會添加)。

 

顯然這也是不夠的,在MIT/BIH心律失常數據庫中,有大量的心拍分類注釋類型,上述三種分類是遠遠不夠的。

 

當然,考慮到當時的技術局限性,這套算法做的也是出類拔萃的。

 

我們的算法最近也在做分類工作,由於心律失常分類的內容太過龐雜,我們搞工程技術的人員也欠缺醫學專業知識等因素,所以我們也歡迎與此有關的團體機構或企業組織和相關人員一起來做好心電算法的技術工作。

 

另外,因為我們的關注重點為便攜式心電產品,所以我們的算法也會在后續不斷完善。由於知識水平有限,文中錯誤之處,歡迎大家批評指正。

 

詳情請登錄我們的主頁:

http://www.math86a.icoc.cc/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM