在單片機(jī)上用模糊邏輯檢測室性早搏
現(xiàn)代多參數(shù)監(jiān)護(hù)儀普遍采用模塊化結(jié)構(gòu),每個模塊都是能完成單一功能的獨(dú)立微處理機(jī)系統(tǒng),多個模塊通過串行口接收主控制器命令,送出測量結(jié)果。心電監(jiān)護(hù)模塊是其中的關(guān)鍵部件,其在單片機(jī)控制下拾取心電信號,放大、預(yù)處理,并傳送給主控模塊。
本文引用地址:http://www.ex-cimer.com/article/199407.htm室性早博(PVC)是一種最常見的心律失常,它的實(shí)時、正確檢測是心電圖自動分析中的一項(xiàng)重要技術(shù)。在心電監(jiān)護(hù)的基礎(chǔ)上,加入心搏和節(jié)律分類功能,便可進(jìn)行心律失常監(jiān)護(hù)。室性早博檢測一般在高端的心律失常分析模塊中進(jìn)行。目前單片機(jī)的功能不斷增強(qiáng),過去主要用作控制器的單片機(jī),在完成原來的任務(wù)后,尚剩余不少CPU時間和控制功能,完全有可能實(shí)現(xiàn)一些過去只能在PC機(jī)上運(yùn)行的復(fù)雜算法,而且用匯編語言編程提高運(yùn)行速度。
模糊系統(tǒng)是模糊集合論和模糊邏輯的具體應(yīng)用,它模擬人腦思維決策的能力,特別適用于數(shù)學(xué)模型難以精確表示的不確定系統(tǒng)。醫(yī)學(xué)決策系統(tǒng)中的許多信息都是不確定的,例如心電信號中的大量特征信息,適合用模糊推理的方法進(jìn)行處理。筆者的實(shí)驗(yàn)室采用模糊邏輯識別室性早博,效果較好。
筆者在基于8051的心電模塊中移植上述算法,實(shí)現(xiàn)室性早博檢測。在模糊單片機(jī)上進(jìn)行模糊控制或推理非常方便。在數(shù)字單片機(jī)上實(shí)現(xiàn),關(guān)鍵是怎樣存儲表達(dá)隸屬度函數(shù)和模糊規(guī)則,以及怎樣實(shí)現(xiàn)推理。
1 隸屬度函數(shù)、模糊規(guī)則和模糊推理方法
使用RR間期、R波寬度和面積、T波的面積和峰值這五個形態(tài)參數(shù)描述一個QRS波。室性早博的典型形態(tài)特征表現(xiàn)為RR間期較小,R波寬度大、面積大,T波寬度大、峰值大。經(jīng)過統(tǒng)計和實(shí)驗(yàn)確定的隸屬度函數(shù)如圖1所示。
圖1中橫軸表示論域,縱軸表示隸屬度。每個輸入語言變量定義小(S)、中(M)、大(L)、特大(XL)四個語言變量值。隸屬度函數(shù)為三角形或半梯形。
模糊規(guī)則共有32條,部分規(guī)則如表1所示。其中17條判決是 PVC,15條判決可能是 PVC,--表示不考慮該參數(shù)的影響。
在數(shù)字單片機(jī)上實(shí)現(xiàn)模糊控制一般采用三種方式:強(qiáng)度轉(zhuǎn)移方式、直接查表方式和公式計算方式。直接查表方式通過事先的離線計算,得到一張模糊控制表,將控制表存放在計算機(jī)內(nèi)存中;控制過程中,根據(jù)輸入變量查找表中對應(yīng)的控制量。在一般的控制應(yīng)用中,這種方法速度最快。但本系統(tǒng)中輸入變量較多(5個),模糊控制表維數(shù)高,存儲、查表均不方便。強(qiáng)度轉(zhuǎn)移方式是按模糊控制的極大-極小法進(jìn)行推理。每個輸入?yún)?shù)映射為多個隸屬度,每組輸入會激活多條規(guī)則,可能對應(yīng)不同的結(jié)果。用取小的原則計算各組合對應(yīng)規(guī)則的輸出強(qiáng)度,然后按最大隸屬度原則得出對應(yīng)于各結(jié)論的可信度。這樣,對于每一個輸入,都可得出與各結(jié)論相對應(yīng)的輸出強(qiáng)度,稱為輸出隸屬度,取輸出強(qiáng)度最大的那個隸屬度作為輸出。實(shí)驗(yàn)結(jié)果表明,這種方法對本系統(tǒng)最為合適。
2 強(qiáng)度轉(zhuǎn)移法在單片機(jī)8051上的實(shí)現(xiàn)
2.1 隸屬度函數(shù)的存放
由于數(shù)字單片機(jī)只能存儲和處理數(shù)字信息,且單片機(jī)的內(nèi)存容量有限,如果要對系統(tǒng)輸入輸出論域的所有隸屬函數(shù)的連續(xù)曲線進(jìn)行存儲,是根本不可能的。對于三角形隸屬函數(shù),采用三點(diǎn)法,存儲三角形的三個頂點(diǎn);對于兩邊的半梯形,也存儲腰和頂?shù)娜c(diǎn)。隸屬度函數(shù)存放在ROM中,如表2所示(僅列出RR,其余類推)。
2.2 輸入模糊化
提取的特征參數(shù)是精確值,將它們與隸屬函數(shù)進(jìn)行比較組合,求出相應(yīng)的模糊輸入量。隸屬度范圍為0~1,在8位機(jī)上可表示為00H~FFH。對本系統(tǒng)而言,每個精確輸入值最多只對應(yīng)兩個模糊輸入量大于零,其余的模糊輸入量則為零。例如:假設(shè)RR=1.1,從表2可知它落在中(M)和大(L)兩個區(qū)間上,因此對于中(M)和大(L)的隸屬度為:
μm(1.1)=(1.4-1.1)/(1.4-1.0)×FFH=BFH
μl(1.1)=(1.1-1.0)/(1.4-1.0)×FFH=3FH
在RAM中開辟一塊區(qū)域,存放各模糊輸入量如表3所示。
2.3 模糊規(guī)則的存放
模糊規(guī)則表示為:IF A and B and C and D and E THEN Y(or Z)
其中IF后緊接著的詞稱前件,THEN后面的詞稱后件。首先將輸入的模糊值S、M、L、XL分別與數(shù)字0、1、2、3相對應(yīng),即:
RR、RA、RW、TA、TH:S=0,M=1,L=2,XL=3
每條規(guī)則用三字節(jié)表示。第一字節(jié)高四位表示第一前件的模糊值,低四位表示第二前件的模糊值;第二字節(jié)高四位表示第三前件,低四位表示第四前件;第三字節(jié)高四位表示第五前件,低四位表示后件。其中,F表示不考慮該前件,A表示是 PVC,B表示可能是 PVC。以第一條規(guī)則(存放在ROM中)為例,如表4。
2.4 模糊推理和輸出
對于一組模糊輸入,遍歷每一條模糊規(guī)則。取第一條規(guī)則第一前件(3H)作為地址偏移量,加上模糊輸入RR在RAM中存放的首地址(40H),則可從RAM內(nèi)RR存放區(qū)域中查找出XL的隸屬度A1;取第一條規(guī)則第二前件(3H)作為地址偏移量,加上模糊輸入RA在RAM中存放的首地址(44H),則可從RAM內(nèi)RA存放區(qū)域中查找出XL的隸屬度B1;依此類推得隸屬度C1、D1、E1。根據(jù)強(qiáng)度轉(zhuǎn)移法,?。粒?、B1、C1、D1、E1中最小值作為該規(guī)則后件所取的語言變?quot;是PVC的隸屬度Y1。當(dāng)所有規(guī)則都遍歷后得到:是PVC的隸屬度Y1 Y2~Ym,可能是 PVC的隸屬度Z1 Z2~Zn。?。伲?Y2~Ym的最大值作為是 PVC的隸屬度Y,?。冢?Z2~Zn的最大值作為可能是 PVC的隸屬度Z。如果Y<7FH且Z〈7FH,則輸出正常;如果Y>Z,輸出是 PVC;如果Z〉Y,輸出可能是 PVC。
本文討論了在數(shù)字單片機(jī)中進(jìn)行模糊推理的方法,實(shí)現(xiàn)在心電監(jiān)護(hù)模塊中用模糊邏輯檢測室性早博,使心電監(jiān)護(hù)模塊功能得到擴(kuò)展。室性早博檢測結(jié)果和心電波形數(shù)據(jù)一起傳給上位機(jī),進(jìn)行心律失常的進(jìn)一步分析。
評論