《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于Android的腦電信號無線采集與分析系統(tǒng)設計
基于Android的腦電信號無線采集與分析系統(tǒng)設計
2014年微型機與應用第13期
謝 宏,錢門超
上海海事大學 信息工程學院,上海
摘要: 提出一種基于Android平臺的腦電無線采集與警覺度監(jiān)測終端的設計。采用Wi-Fi作為無線通信方案,以Android手機作為上位機,在手機上設計應用程序,通過手機應用程序可以方便地實現(xiàn)對采集設備的參數(shù)設置、無線連接、數(shù)據(jù)接收、波形顯示、數(shù)據(jù)分析和文件存儲。Android手機端通過Wi-Fi與下位機建立通信,實時接收Wi-Fi模塊發(fā)送的腦電數(shù)據(jù),繪成腦電圖,并能通過手機端向下位機發(fā)送控制命令,再將基于極限學習機的腦電信號分類算法通過Java編碼移植到手機內(nèi)部,分析腦電信號所攜帶的警覺度信息。立足便攜式腦電信號無線采集系統(tǒng),在系統(tǒng)中加入基于Android系統(tǒng)的傳輸控制方法,并植入訓練速度快、分類效果好的算法程序,為便攜式腦電信號采集提供了一個新方案。
關(guān)鍵詞: Android Wi-Fi 腦電采集 無線傳輸
Abstract:
Key words :

  摘  要: 提出一種基于Android平臺的腦電無線采集與警覺度監(jiān)測終端的設計。采用Wi-Fi作為無線通信方案,以Android手機作為上位機,在手機上設計應用程序,通過手機應用程序可以方便地實現(xiàn)對采集設備的參數(shù)設置、無線連接、數(shù)據(jù)接收、波形顯示、數(shù)據(jù)分析和文件存儲。Android手機端通過Wi-Fi與下位機建立通信,實時接收Wi-Fi模塊發(fā)送的腦電數(shù)據(jù),繪成腦電圖,并能通過手機端向下位機發(fā)送控制命令,再將基于極限學習機的腦電信號分類算法通過Java編碼移植到手機內(nèi)部,分析腦電信號所攜帶的警覺度信息。立足便攜式腦電信號無線采集系統(tǒng),在系統(tǒng)中加入基于Android系統(tǒng)的傳輸控制方法,并植入訓練速度快、分類效果好的算法程序,為便攜式腦電信號采集提供了一個新方案。

  關(guān)鍵詞: Android;Wi-Fi;腦電采集;無線傳輸

  腦電信號(EEG)是由腦神經(jīng)活動產(chǎn)生的一種電活動,它含有大量的大腦活動信息,隨著社會的快速進步,交通事故在日常傷亡事件中占有較大比重,為此采集腦電信號并實時監(jiān)測駕駛?cè)藛T偏勞狀態(tài)對于預防由于駕駛員疲勞和警覺度不高造成的交通事故尤為重要。傳統(tǒng)腦電采集設備大部分被應用在醫(yī)院、實驗室等特殊場合,在精度上能夠滿足醫(yī)療和研究的要求,但無法應用到日常生活中,尤其是在駕駛活動當中,并且成本昂貴、體積較大、移動不便。因此設計出一款體積較小、便攜性較好的EEG信號采集與監(jiān)控系統(tǒng)具有重要的意義和價值。

  移動通信等技術(shù)的發(fā)展為臨床診斷和治療帶來了更多的技術(shù)方法[1-2]。Android手機以其成本低、用戶體驗好等優(yōu)點已經(jīng)在智能手機市場占有90%左右的份額,目前以Android為系統(tǒng)的智能手機、平板電腦等已經(jīng)廣泛應用于健康醫(yī)療、遠程控制等領(lǐng)域,如YUNGKOOK J[3-4]等就將智能手機應用到心電信號監(jiān)護系統(tǒng)中,用于對心電信號的實時監(jiān)護、自我診斷等;Song Weibo等[5]設計了基于Android手機的身體監(jiān)護系統(tǒng),用戶可以通過手機屏幕觀察采集到的人體生理數(shù)據(jù)。大部分Android手機都自帶有藍牙、Wi-Fi通信功能,如李高尚等人[6-7]使用藍牙作為無線傳輸方式,取代了傳統(tǒng)有線傳輸方式,實現(xiàn)了無線采集的功能,但存在傳輸速率低和傳輸距離短等缺點,不便于遠距離采集系統(tǒng)的實現(xiàn)。

  本文結(jié)合Android和Wi-Fi兩者的優(yōu)勢,在手機上設計移動應用軟件,通過手機完成對采集前端的控制并接收無線模塊發(fā)送的數(shù)據(jù),最后對數(shù)據(jù)進行算法分析,實現(xiàn)了整個采集過程以及警覺度的監(jiān)控。

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


001.jpg


  系統(tǒng)總體結(jié)構(gòu)如圖1所示,包括ADS1299采集前端[8]、Wi-Fi處理發(fā)送模塊、Android智能手機終端應用。前端采集模塊選用TI公司的ADS1299作為腦電采集的模/數(shù)轉(zhuǎn)換器,ADS1299以其便攜性、緊湊性、低功耗性被專門用來進行腦電信號采集。無線傳輸模塊采用Gain Span公司的超低功耗無線芯片GS1011[9],GS1011是1個具有超低功耗的Wi-Fi無線片上系統(tǒng),它包含1個802.11射頻前端、媒體控制器和基帶處理器,片上Flash和片上SRAM,2個ARM7處理器。GS1011的APP CPU將ADS1299轉(zhuǎn)換的腦電數(shù)據(jù)、接收到的AP的信號強度的信息進行處理,然后通過WLAN CPU將數(shù)據(jù)打包成符合IEEE 802.11協(xié)議的數(shù)據(jù)無線發(fā)送出去;在接收端,無線接入點AP接收無線載波發(fā)送過來的數(shù)據(jù),然后傳送給手機控制端,手機對接收過來的數(shù)據(jù)解包并作數(shù)據(jù)處理。

  本文主要論述手機移動終端軟件的設計,手機終端的程序主要包括三個功能:(1)控制下位機采集;(2)接收下位機采集數(shù)據(jù)并作數(shù)據(jù)處理;(3)建立警覺度水平的離線和在線分析系統(tǒng)。控制功能的實現(xiàn)過程為:通過手機發(fā)送帶有控制命令的數(shù)據(jù)包到Wi-Fi模塊,Wi-Fi的WLAN CPU接收數(shù)據(jù),解析自定義數(shù)據(jù)格式數(shù)據(jù)包得到命令,將命令通過SPI接口發(fā)送給ADS1299采集前端。手機接收Wi-Fi模塊發(fā)送過來的數(shù)據(jù)包,解析得到反饋的信息或者有用的EEG數(shù)據(jù),實時處理數(shù)據(jù)。

  2 Android終端軟件設計與實現(xiàn)

  Android是一個基于Linux平臺的操作系統(tǒng)[10],主要應用于智能手機、平板電腦等手持設備。Android的架構(gòu)圖如圖2所示,Android的架構(gòu)主要由應用程序?qū)印贸绦蚩蚣軐?、庫、Android運行時庫、Linux內(nèi)核組成。

002.jpg

  Android應用程序以Java為開發(fā)語言,以Eclipse作為開發(fā)環(huán)境,并配合Android SDK、Java JDK和ADT插件完成對軟件的開發(fā)與調(diào)試。Android的SDK提供了可視化的模擬器,同時Android平臺提供了2D的圖形支持,在完成程序代碼的編寫后,可以將程序發(fā)布到模擬器上運行,如果應用程序涉及藍牙、攝像頭等操作,此時需要在真機上進行調(diào)試。

  2.1 通信協(xié)議設計

  通信協(xié)議是通信雙方進行溝通的語言,協(xié)議的設計應該簡單明了,避免增加冗余度,通信協(xié)議的定義與傳輸?shù)臄?shù)據(jù)被編排成字節(jié)數(shù)組的格式。本設計規(guī)定手機端為通信的客戶端,GS1011為通信服務端。表1為定義的數(shù)據(jù)幀格式。

006.jpg

 ?。?)報頭:固定為55AD兩個字節(jié),表示一個幀的開始。

 ?。?)操作指令:是用來區(qū)分控制命令,它與ack組合用來表示各種操作和具體類型?!癓”代表連接服務器;“C”代表配置ADS1299相關(guān)寄存器;“A”代表采集操作,如開始、停止等。協(xié)議的具體內(nèi)容如表2所示。

007.jpg

 ?。?)數(shù)據(jù)包長度:從報頭到數(shù)據(jù)段的最后一個字節(jié)的總和。

 ?。?)數(shù)據(jù):代表操作的具體數(shù)據(jù),如往寄存器里寫入的數(shù)據(jù)、采集到的數(shù)據(jù)等,如果沒有數(shù)據(jù)設為0。

  服務端使用C語言開發(fā),采用結(jié)構(gòu)體封裝數(shù)據(jù),對于Android客戶端,由于Java語言沒有結(jié)構(gòu)體這種類型,因此可以先將各種類型的數(shù)據(jù)進行轉(zhuǎn)換,模擬結(jié)構(gòu)體,然后將數(shù)據(jù)打包發(fā)送。

  2.2 界面顯示模塊

  界面顯示模塊主要通過Activity嵌套Fragement實現(xiàn)。根據(jù)功能的需求,手持終端應用程序設置了4個主要功能界面:波形顯示界面、Wi-Fi管理界面、ADS1299配置界面、算法分析界面和文件列表界面。(1)主界面主要嵌套了用于波形顯示的SurfaceView以及一些功能按鈕,由于采集頻率較高,一般的ImageView很難滿足實時顯示波形的需求,SurfaceView采用雙緩沖模式,在高速刷新界面方面較其他View有較大優(yōu)勢;(2)采集配置界面用來設置ADS1299的參數(shù);(3)為了提高系統(tǒng)的集成性,將Wi-Fi管理模塊從手機內(nèi)部集成到采集終端軟件中來,方便對Wi-Fi網(wǎng)絡的管理;(4)算法分析界面中,第一個Spinner選擇控件用來選擇模擬實時或者實時模式,另一個Spinner控件用來選擇算法,本文中暫時集成了極限學習機的分類算法,文件界面用于顯示保存的歷史數(shù)據(jù),主要使用ListView分條展示。整個界面由1個Activity嵌套了4個Fragement來實現(xiàn),使用中可以通過屏幕左右滑動選擇要使用的界面,布局由XML文件完成。

  2.3 網(wǎng)絡通信模塊

  本系統(tǒng)采用UDP傳輸協(xié)議,UDP(User Datagram Protocol)是一種無連接的傳輸層協(xié)議,通信流程圖如圖3所示,它不保證數(shù)據(jù)傳送的可靠性[11],也正是由于它的這一特點,使得UDP協(xié)議有著快速、簡單、便捷的優(yōu)點,適于進行實時性要求高、數(shù)據(jù)量大的數(shù)據(jù)傳輸。本文利用UDP協(xié)議傳輸速率快、實時性高的特性,將采集到的腦電數(shù)據(jù)傳輸?shù)缴衔粰C進行數(shù)據(jù)處理。

003.jpg

  當手機與GS1011處在同一個局域網(wǎng)之后,開始進行數(shù)據(jù)交互。系統(tǒng)利用基于C/S工作模式的Socket通信接口來實現(xiàn)上下位機之間的通信,手機作為客戶端,無線采集設備作為服務端,客戶端連接到服務端至少需要服務端的IP和端口號,建立UDP Socket連接主要用到兩個類:DatagramSocket(端到端通信的類)和DatagramPacket(通信數(shù)據(jù)的數(shù)據(jù)報類)。DatagramSocket是Android系統(tǒng)提供的一個公共類,它可以和任何可用或者指定的端口進行連接。在兩個端點的通信中需要用到的方法有Receive(DatagramPacket packet)、send(DatagramPacket pack)和close()。在接收和發(fā)送數(shù)據(jù)時,需要構(gòu)造一個DatagramPacket對象,它有幾種構(gòu)造方法,這里用于接收數(shù)據(jù)的DatagramPacket帶有byte[]和int length兩個參數(shù),發(fā)送數(shù)據(jù)時DatagramPacket帶有4個參數(shù):byte[]sendbuff、int length、InetAddress serverAddr和int serverPort。

  發(fā)送數(shù)據(jù)主要代碼為:

  DatagramPaeket packrSend=new DatagramPacket(sendbuff,

  Sendbuff.length,serverAddr,portNumber);

  ds.send(packetSend);

  接收數(shù)據(jù)主要代碼:

  DatagramPacket packRec=new DatagramPacket(recbuffer,recbuffer.length);

  ds.receive(packRec);

  2.4 算法分析模塊

  對于算法模塊,考慮到移動平臺警覺度分析的特殊性,尤其是手機資源和配置還很有限,并且考慮到最終需要實現(xiàn)算法分析和數(shù)據(jù)采集的同步性和實時性,希望算法的運算過程較快速,占有資源較少。為此,本文提出基于極限學習機的腦電信號警覺度的分類算法,并將算法進行了Java編碼,移植到手機內(nèi)部,用于對采集到的數(shù)據(jù)進行實時和模擬實時分析。極限學習機是根據(jù)單隱含層前饋神經(jīng)網(wǎng)絡(SLFN)提出的一個新算法[12-13],極限學習機令隱含層的激活函數(shù)為無限可微函數(shù),可以隨機選擇和調(diào)整隱含層節(jié)點的參數(shù),使SLFN從復雜的非線性系統(tǒng)變成簡單的線性系統(tǒng)[14],較好地解決傳統(tǒng)神經(jīng)網(wǎng)絡訓練時間長、參數(shù)難確定等問題。

  給定訓練樣本:

  P={(xi,y)|xi∈Rd,y∈R,i=1,2,…,n}(1)

  xi=[xi1,xi2,…,xim]∈R,y=[y1,y2,…,ym]∈R

  極限學習機分類模型的網(wǎng)絡結(jié)構(gòu)由輸入層、隱含層和輸出層三部分組成:輸入層的n個神經(jīng)元對應n個輸入變量;隱含層p個節(jié)點;本文為單輸出問題,令輸出層為1個輸出變量,輸入輸出變量均有m組數(shù)據(jù),圖4為極限學習機網(wǎng)絡結(jié)構(gòu)圖。

004.jpg

  設輸入層第i個變量與隱含層各個節(jié)點間的連接權(quán)值為wi=[wi1,wi2,…,xia]T,隱含層神經(jīng)元的閾值為b=[b1,b2,…,ba]T,隱含層節(jié)點與輸出變量的連接權(quán)值為,隱含層神經(jīng)元的激活函數(shù)為g(x)。則具有p個隱含層節(jié)點的ELM模型的決策函數(shù)可以表示為:

  XB@_F8~1~Z~F9RPT$`~PXXU.png

  式(2)還可以表示為:H?茁=T′,H為神經(jīng)網(wǎng)絡隱含層的輸出矩陣。ELM模型的輸入權(quán)重w和隱含層神經(jīng)元的閾值b可隨機選擇,并且激活函數(shù)g(x)無限可微時,ELM的參數(shù)無需全部調(diào)整。隱含層節(jié)點與輸出節(jié)點的連接權(quán)值β可通過求解以下線性方程組的最小二乘解來獲得:

  3.png

  其中,解β具有唯一性,可使網(wǎng)絡的訓練誤差最小。

  2.5 數(shù)據(jù)存儲模塊

  采集到的腦電數(shù)據(jù)量比較大,此時可以將腦電數(shù)據(jù)存儲到手機的存儲卡中。點擊保存按鈕,首先使用new File(file)創(chuàng)建一個File對象,形參file指定了文件夾的路徑,再調(diào)用對象的exist()方法判斷文件夾是否存在,如果不存在會調(diào)用File對象的mkdirs()方法在SD卡內(nèi)建立一個文件夾,最后調(diào)用系統(tǒng)的日歷類Calendar類獲取當前的時間,以時間作為保存文件的文件名,將接收到的字節(jié)數(shù)據(jù)保存到txt文件中。

  2.6 權(quán)限設置

  Android應用程序?qū)κ謾C的重要組件的訪問有著嚴格的限制,當涉及如Wi-Fi操作、訪問網(wǎng)絡、SD卡操作時,必須在Android開發(fā)目錄下的AndroidManifest.xml文件中加入權(quán)限申請。AndroidManifest是Android工程目錄下都有的一個清單文件,它包含了應用程序的基本信息,這些信息包括應用程序需要的許可、程序運行需要的API級別、程序運行所需要的硬件支持和函數(shù)庫等。由于本文要用到Wi-Fi、網(wǎng)絡、SD卡的操作,因此要在AndroidManifest.xml文件中加入以下權(quán)限:Wi-Fi、網(wǎng)絡訪問和外部存儲卡訪問。運行程序,界面如圖5所示。


  本文介紹了基于Android平臺下的無線腦電采集與監(jiān)測終端的設計和關(guān)鍵技術(shù),包括Android系統(tǒng)的架構(gòu),腦電信號采集系統(tǒng)的整體結(jié)構(gòu),應用層幀格式的定義,傳輸協(xié)議的設計,算法模塊的集成,以及軟件的設計。系統(tǒng)可以克服傳統(tǒng)腦電采集設備的缺點,應用小巧靈活、性能優(yōu)越的手機終端作為上位機,配合PC完成腦電信號的實時采集,并在手機系統(tǒng)中加入極限學習機智能分類算法來進行腦電信號警覺度的分析,這個系統(tǒng)的設計為提高腦電采集設備的便攜性、可操作性以及未來疲勞駕駛預測提供了一套可行的方案。

  參考文獻

  [1] 張嘯飛,胡大一,丁榮晶,等.中國心腦血管疾病死亡現(xiàn)狀及流行趨勢[J].中華心血管病雜志,2012,40(3):179-185.

  [2] 薛青.智慧醫(yī)療:物聯(lián)網(wǎng)在醫(yī)療衛(wèi)生領(lǐng)域的應用[J].信息化博覽,2010(5):56-57.

  [3] 張志軍,王娟,何輝.基于Android的心電監(jiān)護終端的設計與實現(xiàn)[J].自動化與儀器儀表,2013(5):183-185.

  [4] JEON Y, LEE J D, CHOI J. Design and Implementation of a Wearable ECG System[J]. International Journal of Smart Home, 2013,7(2):61-69.

  [5] Song Weibo, Yu Hong, Liang Ce, et al. Body monitoring system design based on Android smartphone[C]. 2012 World Congress, Trivandrum: Information and Communication Technologies, 2012:1147-1151.

  [6] 李高尚,沈巍.一種應用于移動健康醫(yī)療的Android客戶端的研究[J].電子測試,2012(2):64-67.

  [7] 張莉,周子龍.基于Android智能手機平臺的便攜式心電監(jiān)護儀的設計[J].中南民族大學學報(科學版),2012,31(4):88-92.

  [8] TI.ADS1299Datasheet[EB/OL].[2013-01].http://www.ti.com.cn/cn/lit/ds/symlink/ads1299.pdf.

  [9] 謝宏,董洋洋,姚楠,等.基于ADS1298與WIFI的腦電信號采集與傳輸系統(tǒng)設計[J].現(xiàn)代電子技術(shù),2013,36(6):150-153.

  [10] 朱桂英.Android實例開發(fā)完全手冊[M].北京:人民郵電出版社,2012.

  [11] 周麗娟.基于UDP協(xié)議的Socket網(wǎng)絡編程[J].計算機工程應用技術(shù),2008(34):1867-1868.

  [12] Andrés Bueno-Crespo, Pedro J. García-Laencin, José-Luis Sancho-Gómez. Neural architecture design based on extreme learning machine[J]. Neural Networks, 2013, 48:19-24.

  [13] HORATA P, CHIEW CHANWATTANA S, SUNAT K. Robust extreme learning machine[J]. Neurocomputing, 2013,102(15):31-44.

  [14] Fre′nay Beno′t, Mark van Heeswijk, et al. Feature selection for nonlinear models with extreme learning machines[J]. Neurocomputing, 2013, 102:111-124.


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