《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于Android的麻醉深度檢測儀設(shè)計與實現(xiàn)
基于Android的麻醉深度檢測儀設(shè)計與實現(xiàn)
2016年微型機(jī)與應(yīng)用第23期
王琪,徐駿,鄭烇
中國科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,安徽 合肥 230026
摘要: 麻醉深度監(jiān)測在手術(shù)室和重癥監(jiān)護(hù)病房起著非常重要的作用。為了方便醫(yī)護(hù)人員在手術(shù)或重癥監(jiān)護(hù)過程中對患者的意識狀態(tài)進(jìn)行準(zhǔn)確的評估,設(shè)計了一種簡易的基于Android的麻醉深度檢測系統(tǒng)。該系統(tǒng)主要包含三個部分:對前端采集的EEG信號進(jìn)行放大濾波;對采集到的信號進(jìn)行排列熵算法處理;Android人機(jī)接口界面的設(shè)計。在完成整體方案設(shè)計后,對整個系統(tǒng)進(jìn)行了測試,并利用麻省理工學(xué)院的生理信號數(shù)據(jù)庫的多導(dǎo)睡眠EEG數(shù)據(jù)進(jìn)行測試,實驗結(jié)果說明該系統(tǒng)能夠反映病人的腦電意識狀態(tài)。
Abstract:
Key words :

  王琪,徐駿,鄭烇

 ?。ㄖ袊茖W(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,安徽 合肥 230026)

       摘要:麻醉深度監(jiān)測在手術(shù)室和重癥監(jiān)護(hù)病房起著非常重要的作用。為了方便醫(yī)護(hù)人員在手術(shù)或重癥監(jiān)護(hù)過程中對患者的意識狀態(tài)進(jìn)行準(zhǔn)確的評估,設(shè)計了一種簡易的基于Android的麻醉深度檢測系統(tǒng)。該系統(tǒng)主要包含三個部分:對前端采集的EEG信號進(jìn)行放大濾波;對采集到的信號進(jìn)行排列熵算法處理;Android人機(jī)接口界面的設(shè)計。在完成整體方案設(shè)計后,對整個系統(tǒng)進(jìn)行了測試,并利用麻省理工學(xué)院的生理信號數(shù)據(jù)庫的多導(dǎo)睡眠EEG數(shù)據(jù)進(jìn)行測試,實驗結(jié)果說明該系統(tǒng)能夠反映病人的腦電意識狀態(tài)。

  關(guān)鍵詞:腦電信號;麻醉深度;排列熵;Android

  中圖分類號:R318;TP399文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.16747720.2016.23.022

  引用格式:王琪,徐駿,鄭烇. 基于Android的麻醉深度檢測儀設(shè)計與實現(xiàn)[J].微型機(jī)與應(yīng)用,2016,35(23):76-79,82.

0引言

  適當(dāng)?shù)穆樽砩疃仁潜WC患者生命安全、創(chuàng)造良好手術(shù)條件的關(guān)鍵因素之一[1]。如何有效、準(zhǔn)確地檢測病患的腦電意識狀態(tài),使患者可以在沒有痛苦的環(huán)境下進(jìn)行手術(shù),已經(jīng)成為各種臨床手術(shù)的基礎(chǔ)。目前生產(chǎn)的麻醉深度監(jiān)測儀主要是通過監(jiān)測腦電雙頻譜指數(shù)(BIS)[2]、腦狀態(tài)指數(shù)(CSI)、聽覺誘發(fā)電位(AEP)、熵(Entropy)[3]等指標(biāo)來監(jiān)測病人的意識狀態(tài)。而目前醫(yī)院使用的設(shè)備基本都是國外進(jìn)口,價格昂貴且實行技術(shù)保密,國內(nèi)的產(chǎn)品在精度和可靠性上始終難以達(dá)到國外同類產(chǎn)品標(biāo)準(zhǔn)。

  本文以熵為最終顯示指標(biāo),通過前端電路設(shè)計、算法處理、界面顯示三部分,設(shè)計了一整套軟硬件結(jié)合的麻醉深度檢測系統(tǒng)。

1系統(tǒng)結(jié)構(gòu)

  整個系統(tǒng)工作流程如下:3個前端電極分別貼在病人的前額中間、左邊和左側(cè)乳突部位,一路接地作參考電極,其他兩路做差分輸入。差分輸入信號經(jīng)過多級放大、濾波得到1~100 Hz波段可檢測的信號,再經(jīng)過STM32單片機(jī)的AD采集,把數(shù)據(jù)經(jīng)過串口或藍(lán)牙發(fā)送給上端Android接口,通過排列熵算法處理后,最終Android的APP實時顯示當(dāng)前EEG、熵趨勢、熵值的變換情況。其系統(tǒng)結(jié)構(gòu)如圖1所示。

圖像 001.png

2設(shè)計與實現(xiàn)

  整個系統(tǒng)的實現(xiàn)包含前端采集模塊設(shè)計和后端數(shù)據(jù)處理軟件設(shè)計。前端采用STM32單片機(jī)為采集核心,后端是由S5PV210為核心的Android系統(tǒng)。

  2.1硬件設(shè)計

  2.1.1前置放大器

  由于人類的腦電信號非常微弱,在μV級別,而且此處所關(guān)心的頻段是1~100 Hz。要想得到理想的EEG信號,首先要克服大量噪聲干擾,所以要求該前置電路具有高輸入阻抗、高共模抑制比、噪聲干擾低等特點(diǎn)[4]。本文采用的儀表放大器結(jié)構(gòu)如圖2所示。

圖像 002.png

  2.1.2其他放大器

  其他兩級放大器比較簡單,其中多了一個切換放大倍數(shù)的控制端,如圖3所示。

圖像 003.png

  2.1.3過壓報警電路

  由于人體是良好的導(dǎo)體,會隨機(jī)產(chǎn)生比較高的電壓,對后面的采集數(shù)據(jù)產(chǎn)生干擾。因此不僅要防止過壓的情況,同時也要檢測出過壓的線路及時調(diào)整,電路如圖4所示。

圖像 004.png

  2.1.4AD采集電路

  本文采用STM32為AD采集芯片,它擁有3個12位逐次逼近型的ADC,最大轉(zhuǎn)換速率為1 MHz,完全滿足采樣需求[5],部分電路如圖5所示。

圖像 005.png

  2.2軟件設(shè)計

  2.2.1算法設(shè)計

  Christoph Bandt等人提出了一種衡量一維時間序列復(fù)雜度的指數(shù)——排列熵(Permutation Entropy,PE)[6],它在反映一維時間序列復(fù)雜度的性能方面與LyaPulloy指數(shù)相似,并且與LyaPulloy指數(shù)、分形維數(shù)等復(fù)雜度參數(shù)相比具有計算簡單、抗噪聲干擾能力強(qiáng)等特點(diǎn)[7]。其基本過程如圖6所示。

圖像 006.png

  算法的基本原理如下:

  如果對一個原始信號進(jìn)行離散采集得到數(shù)據(jù)序列,將其分成長度相等的子信號段。把其中的任何一子信號段定義為{x(i),i = 1,2,3,…N},N為數(shù)據(jù)的長度。按照下面的方法計算這個子信號段的排列熵:

  (1)把序列按照順序進(jìn)行m維相空間重構(gòu),其中m為嵌入的維數(shù),L為遲滯時間:

  QQ圖片20170106133346.png

  (2)對重構(gòu)后序列(式(1))中的元素按照遞增順序進(jìn)行排列:

  QQ圖片20170106133350.png

  其中,當(dāng)遇到兩個元素相等時,即當(dāng)x(i+(ji1 -1)L)=x(i+(ji2 -1) L)時,有:

  QQ圖片20170106133353.png

  那么x 就按照j的大小來排序,即當(dāng)ji1< ji2時,則x(i+( ji1 -L))≤x(i+(ji2-L))。

  故任意一個向量Xi重構(gòu)后得到一組符號序列:

  QQ圖片20170106133357.png

  (3)對于m維相空間,總共有m!種不同的排列,也就是說有m! 種不同的符號, F(g)只是其中的一種排列。把所有排列順序相同的F(g)分到一組,在N-m+1 組序列中比較得出它的概率Pk, 每組序列的個數(shù)分別為NUM1, NUM2,NUM3,…, NUMk,其中,j≤m!。

  QQ圖片20170106133400.png

  (4)按照Shannon熵的形式,計算排列熵:

  QQ圖片20170106133404.png

  Hp反映時間序列的隨機(jī)程度。Hp值越小,時間序列越規(guī)律,換句話說就是Hp越小麻醉程度越深。為了使算法具有統(tǒng)計學(xué)的意義,N的大小要合適,一般N取1 000~10 000;m取3~15。為了保證仿真盡可能地減小誤差,遲滯時間L一般取1或2。

  2.2.2算法JNI設(shè)計

  由于本文算法要在Android平臺下實現(xiàn),而其APP開發(fā)是以Java為基礎(chǔ)。Java語言很容易被反匯編后拿到源代碼文件,為了保證核心參數(shù)不被竊取,可以在重要的交互功能使用C代碼代替[8],而且C比起Java來說效率要高出很多。

  排列熵的算法實現(xiàn)是通過調(diào)用 JNI[9]函數(shù)來訪問底層C代碼。JNI 函數(shù)是通過接口指針來獲得。接口的指針指向JNI函數(shù)指針數(shù)組,而且指針數(shù)組中的每個元素又指向一個定義好的接口函數(shù)。圖7說明了接口指針的組織結(jié)構(gòu)。

圖像 007.png

  本文自定義的算法接口函數(shù)如下:

  private native double permutationEntropyJNI(int data[],int lenth,int per_len);

  它的實現(xiàn)為:

  JNIEXPORT jdouble JNICALL Java_com_wqeeg_MainActivity_permutationEntropyJNI(JNIEnv *env, jobject obj, jintArray intArray, jint lenth , jint per_len){…};

  其具體實現(xiàn)流程如圖8所示。

圖像 008.png

  最后生成一個PermuationEntropyJni.so文件,在程序開始時用System.1oadLibrary()方法加載需要的動態(tài)鏈接庫。

  2.2.3顯示界面設(shè)計

  為了有一個良好的人機(jī)接口,本文采用安卓圖表引擎AChartEngine進(jìn)行設(shè)計。AChartEngine是專為Android系統(tǒng)設(shè)計的圖形庫,可以用于繪制多種圖表。

  本文要設(shè)計兩個圖表和一個數(shù)值顯示窗口,圖表窗口采用AChartEngine 設(shè)計,數(shù)值采用TextView控件顯示。每個圖表都需要一個數(shù)據(jù)集(Dataset)和渲染器集合 (Renderer)。結(jié)構(gòu)如圖9所示。

圖像 009.png

  其中AChartEngine 相關(guān)類說明如下 :

  ChartFactory : 圖表生成工廠類,傳入數(shù)據(jù)集和渲染器,生成 GraphicalView 或者GraphicalActivity;

  XYMultipleSeriesDataset :封裝圖表所需的數(shù)據(jù);

  XYSeries : 屬于圖表數(shù)據(jù)集的一部分,每個都代表了一個數(shù)據(jù)集合;

  XYMultipleSeriesRenderer :圖表中多個曲線的渲染器;

  XYSeriesRenderer :圖表中可能會有多條曲線或柱狀圖等,所有渲染器放在一起就是渲染器集合。

  Android中使用TextView控件比較簡單:首先在XML布局,初始化時采用text = (TextView)findView ById(R.id.income_data)獲得text對象;最后用text.set Text(""+f1)方法顯示所需要的熵值f1(當(dāng)然要經(jīng)過一些處理,比如非法值檢測,保留固定位小數(shù)等)。

3實驗測試

  分別通過MATLAB仿真和實際數(shù)據(jù)測試與已有結(jié)果對比來驗證本文提出的麻醉深度設(shè)計的有效性。其中對正弦信號、隨機(jī)信號、睡眠EEG信號三種信號分別做了MATLAB測試。正弦信號是幅度為100 mV,頻率為100 Hz的信號;隨機(jī)信號的最大值也為100 mV;真實的睡眠EEG數(shù)據(jù)采用麻省理工學(xué)院的生理信號數(shù)據(jù)庫(MITBIH)中實驗對象一天腦電的數(shù)據(jù)。具體實驗結(jié)果如表1所示。

圖像 013.png

  其中EEG信號如圖10~11所示。

圖像 010.png

圖像 011.png

  由實驗結(jié)果可以看出,當(dāng)加載正弦信號時,熵值穩(wěn)定在1.37左右,表明當(dāng)腦電信號越有規(guī)律時,熵值越小。當(dāng)加載隨機(jī)信號時,熵值穩(wěn)定在4.75左右,表明當(dāng)腦電信號越?jīng)]有規(guī)律時,熵值越大。圖10是加載了一個人從12:00開始24 h內(nèi)的腦電信號,表明當(dāng)人在覺醒時熵值始終在4.6左右,當(dāng)人逐漸進(jìn)入睡眠狀態(tài)時,熵值明顯低于4.6,如圖11所示。

  為了在實際產(chǎn)品中明確、及時地反映患者的覺醒狀態(tài),需要設(shè)計一個良好的人機(jī)交互界面。其包括EEG顯示窗口、熵值變化趨勢顯示窗口、熵值顯示窗口。本文的人機(jī)交互界面如圖12所示。

圖像 012.png

4結(jié)論

  人在覺醒和睡眠或麻醉狀態(tài)下的腦電信號是有明顯區(qū)別的,當(dāng)人越清醒,腦電信號越活躍,而且顯得雜亂無章;當(dāng)人在睡眠或麻醉狀態(tài)下,其腦電信號越是顯得有序。本文正是基于這種基本區(qū)別,采用排列熵算法對腦電信號進(jìn)行分析處理,并對其進(jìn)行仿真實驗,驗證了腦電信號的特性,進(jìn)一步說明采用排序熵算法對患者進(jìn)行麻醉監(jiān)測是可行的。

  為了更好地監(jiān)測患者的麻醉狀態(tài),本文還要作進(jìn)一步的研究,比如算法參數(shù)的自適應(yīng)選擇問題,因為不同階段的EEG數(shù)據(jù),參數(shù)選擇對最終結(jié)果有一定的影響;其次由于信號中存在較大隨機(jī)性,且受噪聲干擾,直接采用排序熵可能會影響檢測效果。未來可以采用遺傳算法等優(yōu)化算法對參數(shù)進(jìn)行自適應(yīng)確定,采用小波降噪、神經(jīng)網(wǎng)絡(luò)等排除異常信號的干擾。

  參考文獻(xiàn)

  [1] MYLES P S. Prevention of awareness during anaesthesia[J].  Best Practical & Research Clinical Anaesthesiology, 2007, 21(3): 345-355.

  [2] 沈民奮,沈鳳麟,許崇濤,等. 不同狀態(tài)下的腦電信號的雙譜分析[J].生物物理學(xué)報, 1998, 14(1): 51-56.

 ?。?] 梁振虎. EEG熵算法及麻醉狀態(tài)監(jiān)測應(yīng)用研究[D]. 秦皇島:燕山大學(xué), 2012.

  [4] 陳丹, 文宇橋, 譚希,等. 基于排序熵算法的麻醉深度檢測系統(tǒng)設(shè)計[J]. 電子器件, 2015(2):429-435.

  [5] 鐘文華. 基于ARM的腦電信號采集系統(tǒng)[J]. 電子設(shè)計工程, 2008(2):13-15.

  [6] BANDT C,POMPE B.Pemutation entropy:a  natural  complexity measure for time series[J]. Phys. Rev. Lett.,2002,17(88):21-24.

 ?。?] PINCUS S M, SINGER B H. Randomness and degree of irregularity[J]. Proceedings of the National Academy of Sciences,1996,93(5):2083-2088.

 ?。?] 李寧.Android 深度探索(HAL與驅(qū)動開發(fā))[M].北京:人民郵電出版社, 2013.

    [9] 任俊偉,林東岱.JNI技術(shù)實現(xiàn)跨平臺開發(fā)的研究[J].計算機(jī)應(yīng)用研究,2005,22(7):180-184.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。