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