楊勇,趙麗
(天津職業技術師范大學天津市信息傳感與智能控制重點實驗室,天津300222)
便攜式腦電撥號系統上位機設計
楊勇,趙麗
(天津職業技術師范大學天津市信息傳感與智能控制重點實驗室,天津300222)
針對腦電撥號系統體積大、可移動性差等特點,設計一款便攜式腦電撥號系統,通過減小腦-機接口系統的體積和重量增加腦-機接口系統的可移動性和便攜性。該系統通過跨平臺C++應用程序開發框架QT來實現上位機界面程序設計,使用TMS320F2812數字信號處理器對腦電信號進行分析和處理,以縮小撥號系統的體積并增加系統的可移動性。仿真實驗表明:界面程序能夠正常工作。
便攜式;腦電撥號系統;上位機;QT;TMS320F2812
腦電撥號系統是基于穩態視覺誘發電位(steadystate visual evoked potentials,SSVEP)設計的,腦電信號的處理大多在PC機上完成,這就增加了腦-機接口系統的體積,降低系統的可移動性。隨著嵌入式處理器的發展,數字信號處理器(digital signal processor,DSP)作為一款具有高速性能和高精度的處理器,可以代替PC機作為處理腦電信號的微處理器[1]。通過采用DSP和低功耗微控制器(advanced RISC machines,ARM)分工合作的方式來取代PC機作為撥號系統的上位機,增加系統的便攜性,降低系統功耗。本文采用DSP對SSVEP進行濾波和特征提取,并對撥號系統上位機進行了設計。
本設計中,腦電信號的處理主要在數字信號處理器TMS320F2812中進行,撥號界面程序在嵌入式微處理器(ARM11)中運行。系統工作流程如圖1所示。DSP主要對腦電信號進行濾波和特征提取處理,處理后的特征信號經過串口通信發送給ARM11。ARM11中運行的QT撥號界面程序對特征信號進行模板匹配并轉化成撥號命令,發送給撥號模塊進行撥號。撥號成功后,下位機反饋給QT界面撥號成功的信號,QT獲得該信號后,相應的按鈕背景色發生變化。經過上述過程,用戶就完成了一個號碼的撥打,撥打其他號碼的工作過程與之相似。

圖1 系統工作流程
腦電信號是一種微弱的生物電信號且成分比較復雜,不能直接用作控制信號。腦電信號需經過濾波和特征提取等處理后,再通過模板匹配轉化成具體的控制命令,才能用于控制下位機硬件電路[2-3]。DSP具有精度高、可靠性高、運算速度快的特點,可用于腦電信號的處理。DSP將提取出來的特征信號發送給上位機,在QT界面程序上通過模板匹配的方式進行模式分類,將每個不同頻率的特征信號轉化為具體的撥號命令。
2.1DSP對腦電信號進行濾波處理
對于固定階數的FIR濾波器,采用等波紋逼近設計法設計的FIR濾波器具有優良的濾波特性。在TMS320F2812上設計濾波器,主要分為3個步驟。
(1)濾波程序的編寫
在DSP上設計FIR濾波器,通常根據計算式來編寫濾波程序,按照實際需要計算濾波系數。FIR的計算公式為:

在DSP中,對SSVEP進行FIR濾波處理,計算程序如下:
//FIR計算
#define N 512
int xn[N];//輸入信號
for(index=0;index<N;index++)
{
input=xn[index]*32768/694;
lpf.input=input;//input()函數處理數據的起始位置
lpf.calc(&lpf);//lpf()函數處理
output=lpf.out;
out1=(float)output/32768;
yn[index]=out1;
out=(int)output;
temp[index]=out;
ipcb[index]=(long)(temp[index]*32768);
}
(2)濾波系數的計算
系統采用FIR數字濾波器對腦電信號進行濾波處理,采用穩態視覺誘發電位的有效頻率為12~18.5Hz。因此,FIR濾波器的設計參數為:通帶頻率12~19 Hz,阻帶頻率為10 Hz和25 Hz,通帶衰減和阻帶衰減為0.5 dB和50 dB。濾波器系數的計算過程比較復雜,可以通過Matlab中的FDATool工具完成數字濾波器的設計與仿真。
(3)調試與分析
TMS320F2812是一款具有高性能、多功能的32位定點DSP芯片。頻率分辨率f0=fs/N,其中fs是采樣頻率,N為采樣點數。頻率分辨率是指頻譜圖中相鄰譜線之間的頻率間隔,頻率分辨率越小,對應的頻率誤差也會比較小。采樣頻率一定時,提高采樣點數可提高頻率的分辨率,考慮到TMS320F2812開發板處理數據的能力,本設計選擇處理的數據點數為512。
2.2DSP對腦電信號進行特征提取
采用經典功率譜估計中的周期圖法直接估計SSVEP的功率譜。功率譜估計算法是先對原始信號x(n)做快速傅里葉變換得到XN(k),然后取其幅值平方的均值作為原始信號的功率譜估計。若用周期圖法估計的功率譜為s(k),則

為確保估計是漸進無偏的,通過采用改進的周期圖法來減小偏差。當序號序列長度趨于無窮大時,可以得到較好的功率譜值。在DSP中對不同頻率的腦電信號進行濾波和特征提取后,將提取出來的特征頻率發送給上位機進行模板匹配,將特征頻率轉化為具體的控制命令[4-6]。13 Hz的原始腦電信號經過濾波和特征提取處理后的頻譜圖如圖2所示。DSP對13 Hz的SSVEP腦電信號進行FIR濾波和周期圖法的特征提取后,信號的識別效果良好。

圖213 Hz的原始腦電信號經過濾波和特征提取處理后的頻譜圖
本文采用QT的基礎類對撥號界面進行設計,QT是一種具有跨平臺特性的圖形用戶界面程序開發框架[7-8]。本文設計的撥號界面程序具有很好的擴展性,QT的跨平臺特性支持多種操作系統,不僅可以在Windows平臺下做算法的仿真實驗,還可以移植到Linux系統下做便攜式設備的上位機顯示界面。
3.1界面布局
腦電撥號界面主要包括4個模塊:撥號區、腦電波形顯示區、號碼和時間顯示區、參數設置區。撥號區由12個按鈕組成,其中包含10個數字按鈕0~9,2個特殊功能按鈕刪除鍵(DEL)和確認鍵(OK)。腦電波形顯示區顯示每個按鈕對應的腦電信號波形,號碼和時間顯示區主要顯示用戶撥打的號碼及完成撥號所使用的時間,參數設置區包括閾值、計時、延時、采樣等參數。
3.2界面模塊的設計
撥號界面分為4個模塊:腦電撥號模塊、腦電波形顯示模塊、時間和號碼顯示模塊和參數設置模塊。
(1)腦電撥號模塊。撥號模塊主要包括10個撥號按鈕和2個特殊功能按鈕。上位機界面接收到某個按鈕對應的信號,該按鈕函數就可能被執行,實現相應的功能。DEL按鈕修改錯誤的撥號,OK按鈕確認撥號結束,計數器停止計時。
(2)腦電波形顯示模塊。腦電波形顯示模塊顯示每個按鈕對應的腦電波形。QT沒有直接顯示波形的控件,需要自行繪制坐標系來顯示波形,比較繁瑣。波形顯示控件需要使用第三方的控件,主要有QT窗口部件的技術應用控件(QT widgets for technical applications,QWT)和QCustomPlot。考慮整個系統的實時性,采用QWT作為顯示控件,該控件可以解決顯示腦電波形時CPU使用過高的缺陷[4-5]。
(3)號碼和時間顯示模塊。號碼和時間顯示模塊主要功能就是顯示號碼和時間,每個按鈕槽函數被執行之后,按鈕的數字就會被寫入號碼顯示模塊,提醒用戶該號碼已經撥打成功。整個電話號碼撥打結束,計時器停止計時,時間顯示模塊會顯示用戶撥打號碼使用的時間。
(4)參數設置模塊。參數設置模塊包含4個參數,其中用戶可以修改采樣、延時和閾值這3個參數值。在上位機界面中使用的參數只有計時和閾值。采樣和延時則在腦電信號處理過程中使用。
3.3界面整體功能測試
(1)腦電撥號模塊。在UI界面選中按鈕控件,對按鈕控件的外形進行設置。按鈕控件的槽函數與信號的連接已由QT完成,只需編譯按鈕函數,并在需要執行按鈕槽函數的地方發出按鈕信號即可。撥號按鈕1的實現函數如下:
ui->Btn1->setStyleSheet(sBlue);//對界面中按鈕1的背景色進行設置
telNum.append("1");
ui->label->setText(telNum);//按鈕函數執行后,按鈕的號碼被記錄到號碼顯示區
m_curBtn=ui->Btn1;
QTimer:singleShot(200,this,SLOT(updateCaption));//按鈕槽函數執行過程中按鈕的背景色會有200ms的變化,提示用戶該按鈕已經被成功按下
(2)腦電波形顯示模塊。波形顯示模塊可以顯示自定義信號的波形,也可以直接顯示輸入信號的波形。波形顯示模塊采用第三方的QWT控件,因此需要通過QT編譯器對該控件的源碼進行編譯,生成相關的配置文件。QWT的相關文件配置完成后,可以在QT Designer中看到顯示波形的QWT控件。對于坐標系的設置主要是橫、縱坐標軸的范圍及標題。波形顯示控件橫、縱坐標值的范圍和名稱修改代碼如下:
ui->qwtplot->setAxisScale(QwtPlot:xBottom,0,24,0.39);//橫坐標值修改
ui->qwtplot->setAxisScale(QwtPlot:yLeft,-49,49,5.9);//縱坐標值修改
設置坐標軸的名稱
ui->qwtplot->setAxisTitle(QwtPlot:xBottom,tr("頻率"));//橫坐標是頻率
ui->qwtplot->setAxisTitle(QwtPlot:yLeft,tr("幅值"));//縱坐標是幅值。
(3)參數設置模塊。在valueChanged(int)函數中,將變量值賦予特定的變量,通過串口將變量值傳遞給DSP用于處理腦電信號。程序運行時計時器啟動,按下確認按鈕,計時器停止計時。
4.1撥號功能測試
界面程序運行后,界面與下位機之間可通過串口通信,接受下位機的指令。測試時,通過串口發送0~9、A、B等指令,界面接收到數據后會執行相應的槽函數。通過號碼顯示區的內容檢測槽函數是否執行,對于數字按鈕,槽函數執行后,會記錄該按鈕的號碼;DEL按鈕會刪除號碼,OK按鈕停止計時。
進行串口通信時,通過串口助手給界面程序發送控制信號;界面程序收到信號后,按鈕背景色會有200 ms的改變;控制命令發出后,界面程序收到反饋信號,號碼顯示區顯示撥出的號碼。
4.2波形顯示功能測試
QWT是第三方的顯示控件,需要重新編譯和配置。QWT控件配置成功之后,可在QT Designer中找到顯示波形的控件[9-10]。波形顯示測試界面如圖3所示。波形控件的測試分為2步:第一步顯示自定義的信號波形,驗證控件能夠正常顯示波形,如圖3(a)所示;第二步顯示腦電信號的波形,驗證撥號界面程序能夠正常顯示腦電信號波形,如圖3(b)所示。

圖3 波形顯示測試界面
4.3界面整體功能測試
撥號系統啟動后,上位機會彈出如圖3(b)所示的界面。上位機界面主要完成顯示功能、腦電信號的處理及撥號控制命令的發送。撥號區的12個按鈕對應12個不同特征頻率的腦電信號,13 Hz對應按鈕1,13.5 Hz對應按鈕2,以此類推,18.5 Hz對應按鈕12。腦電波形顯示區顯示撥號過程中產生的腦電信號的頻譜圖。
測試時,實驗人員通過觀察LED刺激器產生特定頻率的腦電信號。DSP對人眼受到刺激產生的特定頻率的腦電信號進行處理,處理后的腦電數據通過串口通信發送給ARM11處理器,該處理器將顯示處理后的腦電數據并給下位機發送撥號命令。若撥打號碼1,腦電波形區中的按鈕1會有200 ms的背景色變化,通過按鈕背景色的變化知道該撥號控制命令已成功發送給下位機。波形顯示區會顯示該腦電信號的特征頻率,以此類推撥打其他號碼。撥號系統啟動后,參數區的計時器開始計時,延長的系統工作時間通過延時參數來校正計時結果。
本文對便攜式腦電撥號系統的上位機進行了設計。通過DSP和ARM的分工合作代替PC機等大型處理器作為上位機,減小了系統體積,增加了腦-機接口系統的便攜性。上位機通過離線實驗,驗證了其可行性,為腦-機接口系統的便攜式設計提供了技術支持。參考文獻:
[1]丁超.便攜式腦電采集系統設計[D].成都:電子科技大學,2013.
[2]趙麗,孫永,郭旭宏,等.基于穩態視覺誘發電位的手機撥號系統研究[J].中國生物醫學工程學報,2013,32(2):253-256.
[3]邢蕭.基于便攜式腦-機接口的智能家電控制系統研究[D].天津:天津職業技術師范大學,2015.
[4]趙麗,郭旭宏.基于運動想象的腦電信號功率譜估計[J].電子測量技術,2012,35(6):81-83.
[5]CHEN X G,WANG Y J,NAKANISHI M,et al.High-speed spelling with a noninvasive brain-computer interface[J]. Proceedings of the National Academy of Sciences,2015,112(44):6058-6067.
[6]WU Z H.Studying modulation on simultaneously activated SSVEP neural networks by a cognition task[J].Journal of Biological Physics,2014,40(1):55-77.
[7]韓少云.基于嵌入式Linux的Qt圖形程序實戰開發[M].北京:北京航空航天大學出版社,2012.
[8]陳曦,劉增強.基于Qt/Embedded嵌入式控制界面的設計[J].化工自動化及儀表,2011,38(9):1131-1132.
[9]何建倉,何澤民.嵌入式Qt環境下繪圖軟件的設計與實現[J].軟件,2014,35(5):45-47.
[10]吳賀猛.基于Qt/E的嵌入式圖形用戶界面的研究與應用[D].南京:南京郵電大學,2013.
Design of the upper machine for portable EEG dialing system
YANG Yong,ZHAO Li
(Tianjin Key Laboratory of Information Sensing and Intelligent Control,Tianjin University of Technology and Education,Tianjin 300222,China)
For electrical volume and poor mobility characteristics of dialing system,a portable EEG dialing system is designed in this paper.By reducing the volume and weight of the brain-computer interface(BCI)system,its mobility and portability is increased.Based on the QT cross-platform C++application development framework for the design of the upper machine interface program,by applying TMS320F2812 digital signal processor to brain electrical signal analysis and processing,the volume of dialing system is reduced and the mobility of the system is increased.The simulation experiments show that the interface program can work properly.
portable;electrical dialing system;upper machine;QT;TMS320F2812
TP273.5
A
2095-0926(2016)02-0036-04
2015-12-28
楊勇(1988—),男,碩士研究生;趙麗(1962—),女,教授,博士,研究方向為生物醫學工程.