為了研究深部大腦電刺激對于癲癇等疾病的治療作用, 本文利用LabVIEW虛擬儀器環境和NI數據采集卡開發了一種閉環式電刺激系統, 用于實現癲癇電信號的自動檢測和刺激信號的輸出。設計了結合場電位的幅值、斜率和海岸線參數3個特征量的癲癇波自動判定新算法。大鼠海馬區癲癇模型的實驗測試結果表明, 該系統判定癲癇發作信號的正確率為91.3%, 誤檢率為8.0%。而且, 實時發生的高頻電刺激展示了其抑制癲癇發作的效果。此外, 系統設計了自動和手動等多種模式, 具有較高的適應性和靈活性。癲癇波判定的簡單時域算法也保證了系統具有較高的實時性, 為電刺激控制癲癇的實驗研究提供了一種簡便易用的設備。
引用本文: 胡振華, 封洲燕, 鄭曉靜, 余穎. 實時癲癇電位檢測與閉環式電刺激系統的設計. 生物醫學工程學雜志, 2015, 32(1): 168-174. doi: 10.7507/1001-5515.20150031 復制
引言
癲癇是大腦神經系統的常見疾病之一,其不可預見性、突發性和反復性常常使癲癇患者的身心受到傷害[1]。約有25%的癲癇患者無法通過藥物或手術治療有效地控制病情[2]。近年來,利用腦深部電刺激技術來控制癲癇發作已成為研究熱點之一[3-4]。這種電刺激有開環和閉環兩種方式。其中,閉環方式能夠實時檢測患者大腦的神經電信號,自動監視癲癇發作的變化狀態,并根據需要施加電刺激,從而可以減小治療的副作用,更適合于癲癇發作這種突發性很強的疾病[5-6]。
然而,現有的腦深部電刺激設備多數是開環系統,沒有神經電信號的實時檢測功能,無法實現閉環刺激[7]。而少數具備閉環刺激功能的癲癇治療系統,其癲癇檢測的實時性不夠高,刺激輸出的延時較長[8-9],可能影響治療效果。此外,癲癇發作時的腦電信號變化多端,給實時檢測造成困難[10]。因此,需要開發實時性較高的閉環刺激系統,能夠正確判斷大腦癲癇信號的實時變化并快速輸出電刺激。
鑒于此,本文設計了一種基于LabVIEW軟件和NI USB-6251數據采集卡的閉環式癲癇信號檢測和電刺激發生系統,并將其用于大鼠癲癇模型。實驗結果顯示,該系統能夠實時監視和分析大鼠大腦海馬區的場電位信號,自動檢測癲癇信號,并控制刺激器發送刺激信號,有效地實現了閉環式電刺激控制癲癇發作的目標,為臨床應用提供了有價值的參考依據。
1 方法
1.1 系統的基本結構
該閉環式控制系統由硬件和軟件兩部分組成。圖 1所示是整個系統的結構示意圖,硬件系統包括信號采集和電刺激輸出兩部分,其組成有:PC機、美國國家儀器公司的NI USB-6251數據采集卡、美國A-M System公司的2100型脈沖刺激器和3600型16通道差分放大器;軟件是自行編寫的LabVIEW程序。其中,PowerLab采集器用于系統的測試。

記錄電極采集的大鼠海馬區的場電位信號,經過放大器濾波、放大后由NI USB-6251數據采集卡完成采樣。采樣后的信號由PC機的LabVIEW程序顯示出來,同時進行數據分析。一旦檢測到癲癇信號,系統就會根據用戶預先的設置,確定是否按照所設定的參數輸出刺激信號。
圖 1中虛線連接的是系統的測試部分。它通過PowerLab多通道記錄系統(ML880,AD Instruments)同步采集大腦場電位信號和NI USB-6251數據采集卡輸出的刺激信號,分析系統檢測癲癇電信號的準確性和電刺激對于癲癇發放的控制效果。
系統使用的NI USB-6251數據采集卡是NI公司的一款帶有USB接口的多功能便攜式數據采集設備。該設備采用直接內存存取(direct memory access,DMA)的數據傳送方式,無需CPU控制,可以讓CPU有足夠的時間處理其他任務,保證了數據的完整性和連續性[11]。該采集卡的A/D轉換分辨率為16位,單通道采樣率最高可達1.25 MHz;24路數字I/O口;2路D/A輸出通道,分辨率為16位[12]。本文設計的系統使用了1路A/D口采集腦電信號(采樣率設為20 kHz),1路數字口產生刺激觸發脈沖,1路D/A口輸出模擬刺激信號。利用LabVIEW自帶的NI-DAQmx可以實現對該采集卡的編程控制。
1.2 系統的軟件設計
圖 2是該閉環式刺激系統的軟件框圖,它主要包括數據采集、癲癇信號檢測(即信號分析)、刺激信號輸出3個模塊,下面介紹程序的設計特點以及3個模塊的實現方法。

1.2.1 程序的設計特點
為了實時檢測和識別癲癇波,本系統使用“生產者/消費者”結構作為程序的總體框架。在數據采集時,生產者負責采集和顯示數據,消費者負責分析和處理數據。通過這樣的設計,使數據采集和數據處理能夠并行執行,確保了系統的實時性[13]。
同時,為了使系統能夠在癲癇波檢測和刺激輸出這兩個狀態之間更好地切換,在LabVIEW程序中也使用了狀態機結構。它通過條件結構對系統當前及下一個狀態進行判斷,以實現各個狀態之間的轉移,也使得程序清晰易讀。
為滿足用戶需求,本系統還設置了自動和手動兩種刺激模式。自動模式下,系統檢測到癲癇波后會直接輸出刺激信號;而在手動模式下,無論系統是否檢測到癲癇波,用戶都可以通過按下手動刺激按鍵輸出刺激信號,保證系統即使在癲癇波被漏檢的情況下也能夠完成電刺激的輸出。
1.2.2 數據采集模塊
系統使用LabVIEW自帶的NI-DAQmx編寫驅動程序來控制NI USB-6251數據采集卡采集信號,參數設置為單通道模擬電壓輸入,模式選為連續讀取,采樣頻率設為20 kHz,數據的更新采用隊列方式。
1.2.3 癲癇信號檢測模塊
如圖 3所示,癲癇發作時的大腦神經場電位呈現為一連串的棘波發放,具有頻率高、幅值大的特性,因此,可以用海岸線參數[14]來檢測癲癇。海岸線參數的定義是給定時間窗內的場電位信號曲線的累積長度,其計算公式為
$ \text{cl}=\sum\limits_{i=1}^{N}{\text{abs}\left({{x}_{i}}-{{x}_{i-1}} \right)}, $ |

其中cl為海岸線參數,xi是給定窗內第i點采樣數據的幅值,N是所計算數據窗的長度,abs表示絕對值運算。
當癲癇發作時,場電位的海岸線參數的值較大。因此,可以用閾值法來檢測癲癇。但是,當場電位信號中出現高幅值的慢速波動或者小幅值的高頻快波電位時,其海岸線參數的值也會很大,與癲癇發作時的值非常接近。如果僅憑借海岸線1個參數來進行癲癇檢測,容易造成癲癇的誤檢[15]。因此,本文結合了場電位信號的幅值、斜率和海岸線參數3個特征量來判定癲癇,當這3個特征量都達到所設定的閾值時,才判定癲癇發生,這樣可以避免將其他信號誤檢為癲癇波。圖 2流程圖中“信號分析”的癲癇波檢測算法步驟如下:
(1)置零幅值閾值標志、斜率閾值標志和癲癇波標志,設置每次處理的數據窗長度為40 ms。
(2)讀取新近的40 ms長度的采樣數據,并設此段數據的起始時間記為0 ms。從前往后依次檢查2~39 ms間每個采樣數據點幅值的絕對值,一旦某個數據達到所設定的幅值閾值,就置位幅值閾值標志,并將該采樣點設置為癲癇波的起始點;否則檢查下一個數據點的幅值。
(3)如果幅值閾值標志置位,就以癲癇波的起始點為基準,向前和向后各取1 ms數據,求這2 ms數據中的最大值和最小值。然后,求這兩個數據點之間斜率的絕對值,檢查此斜率是否達到所設定的斜率閾值。如果達到,就置位斜率閾值標志。否則,置零幅值閾值標志。
(4)如果幅值閾值和斜率閾值的標志都被置位,那么,就計算當前40 ms時間窗的海岸線參數值,檢查是否達到所設定的閾值。如果達到閾值,則判定為癲癇發生,置位癲癇波標志。
(5)置零幅值標志和斜率標志,結束“信號分析”。
實現上述癲癇波判定算法的關鍵是設定合適的閾值。為了避免實驗對象個體差異的影響,增強系統的適應性和靈活性,我們設計了人工輸入和自動計算兩種閾值設定模式。人工輸入模式是指用戶直接將各閾值輸入閾值窗內。自動計算模式則需用戶兩次單擊“閾值計算”按鈕,系統將兩次按鍵之間的時間段內所采集的信號作為正常電位信號,根據正常信號的平均值和標準差來估算癲癇波的檢測閾值,并將獲得的閾值顯示在相應3三個閾值窗內。
系統自動計算幅值、斜率和海岸線參數閾值的算法原理如下:
用戶首次單擊“閾值計算”按鈕后,系統就以40 ms數據窗的長度為單位,逐段計算最新采集的數據段的如下3個數值:采樣點幅值絕對值的平均值(定義為數據段的“幅值”)、每2 ms數據中最大值點與最小值點斜率絕對值的平均值(定義為數據段的“斜率”),以及40 ms數據的海岸線參數,并保存這3個值。每結束一段40 ms數據的計算時,就對已計算的所有數據的值求平均值和標準差,分別得到“幅值”平均值(Avalue)和標準差(Svalue)、“斜率”平均值(Aslope)和標準差(Sslope)、以及海岸線參數的平均值(Acl)。于是,癲癇電位檢測的閾值就設為:
幅值閾值:
$ \text{Tvalue=Avalue+Svalue }\!\!\times\!\!\text{ }d $ |
斜率閾值:
$ \text{Tslope=Aslope+Sslope }\!\!\times\!\!\text{ }d $ |
海岸線參數閾值:
$ \text{Tcl=Acl }\!\!\times\!\!\text{ }k, $ |
其中d為整數,表示癲癇信號檢測的幅值和斜率閾值是根據正常信號變異的倍數來設定的。k也為整數,表示海岸線參數的癲癇信號檢測閾值根據正常信號數值的倍數來設定。大鼠癲癇實驗模型的測試結果表明,d=3和k=2時癲癇信號的檢測結果最好(詳見本文2.2)。
用戶首次單擊“閾值計算”按鈕后,系統就按照上述算法不斷計算3個閾值并更新它們的顯示,直到用戶再次單擊“閾值計算”按鈕為止。
1.2.4 刺激輸出模塊
本系統的刺激輸出信號有兩種類型:一是方波、三角波、正弦波、鋸齒波等模擬信號,通過NI USB-6251數據采集卡的D/A口輸出,可用于控制模擬刺激隔離器(如A-M Systems公司的2200型刺激器);二是數字脈沖信號,由NI USB-6251數據采集卡的I/O口輸出,用來觸發脈沖刺激器(如A-M Systems公司的2100型和2300型等通用刺激器)產生恒流或者恒壓刺激信號。
1.3 動物實驗
成年SD大鼠(250~350 g,購自浙江省醫學科學院實驗動物中心),腹腔注射烏拉坦(1.25 g/kg)麻醉之后,固定在大鼠腦立體定位儀上,切開頭部皮膚,打開部分顱骨。將刺激電極植入到海馬CA1區的Schaffer側支上,將記錄電極(美國Neuroneuxus公司生產的微電極陣列)放置在海馬CA1區。通過誘發電位判斷電極植入位置的正確性[16]。穩定記錄CA1區場電位之后,將GABA受體阻斷劑印防己毒素(picrotoxin,PTX)通過微型注射器注入到海馬區誘發癲癇發作。
如圖 1所示,記錄電極采集的CA1區場電位信號經3600型放大器濾波(頻率范圍為0.3~5 000 Hz)和放大100倍之后,輸入至NI USB-6251數據采集卡的A/D接口。采集卡輸出的刺激脈沖信號則連接到2100型刺激器的觸發端,觸發該刺激器產生脈寬為0.1 ms的恒流脈沖,再經刺激電極施加于CA1區的Schaffer側支上。
1.4 系統性能測試和評價
利用大鼠實驗中采集的包含癲癇發作的場電位信號來檢驗和測試系統的性能。方法如下:使用自行編寫的LabVIEW測試程序,將事先采集的場電位信號從NI USB-6251數據采集卡的D/A轉換口輸出,作為實際實驗的模擬信號,連接到采集卡的A/D轉換口。這樣,就可以模擬動物實驗時大鼠大腦場電位信號的采集過程。測試時,將刺激輸出選擇為脈沖方式。如圖 1所示,在被測試的系統程序運行的同時,利用PowerLab將原始場電位信號和系統根據檢測結果自動輸出的脈沖刺激信號同時記錄下來,用于評價系統的性能。本文利用5只大鼠實驗的場電位記錄數據對系統進行了測試,數據總長度約為130 min。
系統的性能通過3個指標來評價:癲癇波檢出率、誤檢率和刺激延時時間。其中,檢出率定義為檢測到的癲癇波個數占記錄信號包含的所有癲癇波個數的百分比;誤檢率定義為誤檢的癲癇波個數占系統檢測到的癲癇波總數的百分比;刺激延時時間為檢測到的癲癇波起始點到刺激脈沖輸出之間的時間間隔。
2 結果
2.1 系統實現及其界面
圖 4所示為系統軟件的虛擬面板界面。上方為信號顯示窗口,用于實時顯示采集的信號,其顯示比例可以調節。下方為系統控制和參數設置區域。其中,左側設有“癲癇檢測”控制按鍵,單擊后系統開始自動檢測癲癇,在檢測到癲癇時會點亮右側的指示燈。左下方為閾值計算與顯示區域,單擊“閾值計算”按鍵后系統開始自動計算3個閾值,再次單擊該按鍵就結束閾值計算,并將計算得到的閾值顯示在右側。用戶也可以根據需要,在癲癇檢測時對閾值進行修改(也就是直接人工輸入各閾值數據);如果修改之后又希望使用系統自動計算的閾值,可以按下“還原閾值”按鍵來還原系統最近一次“閾值計算”所得到的閾值數據。右側是刺激模式選擇區域,設有“自動”和“手動”點擊按鍵用于選擇刺激模式,其右邊還有手動刺激按鍵和刺激指示燈。單擊手動刺激按鍵可以在任意時刻輸出刺激信號。右下方為電刺激參數設置區域,“輸出模式”用于選擇刺激信號的數字輸出或者模擬輸出,其他窗口用于設置輸出刺激信號的參數。數字輸出模式下的參數有:刺激脈沖的頻率、占空比和脈沖個數。模擬輸出模式下可以選擇正弦波、三角波、方波、鋸齒波等刺激波形,以及刺激波的幅值、頻率和刺激波數目。最后,單擊右下角的“退出系統”按鍵可以結束系統的運行。

2.2 癲癇信號的自動檢測
為了考察閾值計算式(2)~(4)中參數d和k的取值對于癲癇信號檢測的影響,我們利用5只大鼠癲癇模型實驗的場電位記錄數據對系統進行了測試。如表 1所示。當k取相同值,設d=0時,癲癇波的檢出率較高,但是誤檢率也很高。增加d值,誤檢率迅速降低。當d=3時,與d=2相比,其癲癇的檢出率變化不大,但是誤檢率顯著降低。這是因為癲癇發作時的場電位信號的幅值和斜率都很大,d值取2或3時對檢出率影響不大,但d值較大時可以更好地避免將高幅值的慢速波動或者小幅值的高頻快波電位等其他信號誤檢為癲癇波。因此,本文取d=3。

當d取相同值時,增大k值會使癲癇波的誤檢率減小,但是,同時也大大降低了檢出率。這是因為海岸線參數計算的是給定時間窗內場電位信號曲線的累積長度,k值太大容易造成較小的癲癇信號的漏檢。因此,本文取k=2。
當d=3、k=2時,系統有較高的檢出率(91.3%)和較低的誤檢率(8.0%),可以較好地檢測癲癇波。
此外,通過軟件測試發現,系統的刺激輸出延時時間為(0.122±0.003)s,且最大值不超過0.14 s。可見系統穩定性強,反應速度快,實時性高。
2.3 實時閉環刺激控制大鼠海馬CA1區癲癇的發作
圖 5所示是系統實時檢測大鼠海馬CA1區癲癇波并發出刺激脈沖控制癲癇發放的示例。記錄信號為CA1區胞體層的寬頻帶(0.3 Hz~5 kHz)信號。電刺激為施加于CA1區輸入通道(即Schaffer側支)的5 s時長串脈沖,刺激頻率為130 Hz,強度為0.5 mA,脈寬為0.1 ms。用插值法去除刺激偽跡后[17],清晰可見刺激期間的癇樣發放情況(見放大圖)。比較刺激前和刺激中,可見:在施加電刺激之前,信號中不斷出現大幅值癇樣棘波串,每串發放中包含許多棘波,串的長度為(0.25±0.04)s(n=27)。進入閉環電刺激模式后,癇樣棘波觸發的電刺激將串發放的長度縮短為(0.09±0.03)s(n=20),棘波個數顯著減少,表明閉環電刺激對于癇樣發放具有明顯的抑制作用。

3 討論
本文利用LabVIEW虛擬儀器環境、NI USB-6251數據采集卡、刺激隔離器和前置放大器等,開發了一種閉環式電刺激系統,用于實現癲癇波的自動檢測和刺激信號輸出。其特點分析如下。
癲癇檢測算法很多,常見的有小波變換法[18]、非線性動力學法[19]、人工神經網絡方法[20]等,但這些算法都涉及到復雜的計算,不適合實時性要求較高的閉環電刺激系統。本文根據癲癇波的特點,選用了斜率、幅值和海岸線參數來檢測癲癇。這種方法具有計算簡單、直觀、速度快等優點,比較適合于閉環電刺激。實驗結果表明,本系統具有較高的癲癇波檢出率和較低的誤檢率,并且發出刺激脈沖的延時只有0.12 s左右,實時性較好。
系統軟件結構的設計結合了“生產者/消費者”模式和狀態機模式,可以在數據采集的同時進行數據分析和處理,保證了系統的實時性;同時系統各個狀態之間也能夠根據需求方便地進行切換。
本系統的閉環刺激模式克服了開環模式的弱點,能夠根據患者腦電變化的情況來按需輸出電刺激,避免了患者長時間過度接受電刺激可能產生的副作用。而且,在癲癇尚未完全發展之前及時輸出電刺激,更有利于抑制癲癇發作[21],且能夠降低刺激器的功耗,同時也減少電刺激對于腦組織的損傷。
此外,本系統具有較好的通用性。LabVIEW程序可以很好地控制NI數據采集卡,再與實驗室通用的常規放大器和刺激器連接起來,就可以構成這種閉環式電刺激系統。除了用于電刺激治療癲癇方面的研究之外,還可以通過調節系統運行的模式和參數來進行電刺激的其他應用研究,如帕金森病等其他腦部疾病,或者外周神經系統疾病。而且,除了用于植入式電極的信號測量之外,該系統也可以用于非侵入式的神經電信號測量方式。
4 結論
本文利用LabVIEW虛擬儀器開發環境和NI USB-6251數據采集卡,開發了一種閉環式電刺激系統,實現了癲癇的自動檢測和刺激信號的輸出,具有較高的實時性和靈活性,為閉環式電刺激治療癲癇的實驗研究提供了簡便易用的設備。
引言
癲癇是大腦神經系統的常見疾病之一,其不可預見性、突發性和反復性常常使癲癇患者的身心受到傷害[1]。約有25%的癲癇患者無法通過藥物或手術治療有效地控制病情[2]。近年來,利用腦深部電刺激技術來控制癲癇發作已成為研究熱點之一[3-4]。這種電刺激有開環和閉環兩種方式。其中,閉環方式能夠實時檢測患者大腦的神經電信號,自動監視癲癇發作的變化狀態,并根據需要施加電刺激,從而可以減小治療的副作用,更適合于癲癇發作這種突發性很強的疾病[5-6]。
然而,現有的腦深部電刺激設備多數是開環系統,沒有神經電信號的實時檢測功能,無法實現閉環刺激[7]。而少數具備閉環刺激功能的癲癇治療系統,其癲癇檢測的實時性不夠高,刺激輸出的延時較長[8-9],可能影響治療效果。此外,癲癇發作時的腦電信號變化多端,給實時檢測造成困難[10]。因此,需要開發實時性較高的閉環刺激系統,能夠正確判斷大腦癲癇信號的實時變化并快速輸出電刺激。
鑒于此,本文設計了一種基于LabVIEW軟件和NI USB-6251數據采集卡的閉環式癲癇信號檢測和電刺激發生系統,并將其用于大鼠癲癇模型。實驗結果顯示,該系統能夠實時監視和分析大鼠大腦海馬區的場電位信號,自動檢測癲癇信號,并控制刺激器發送刺激信號,有效地實現了閉環式電刺激控制癲癇發作的目標,為臨床應用提供了有價值的參考依據。
1 方法
1.1 系統的基本結構
該閉環式控制系統由硬件和軟件兩部分組成。圖 1所示是整個系統的結構示意圖,硬件系統包括信號采集和電刺激輸出兩部分,其組成有:PC機、美國國家儀器公司的NI USB-6251數據采集卡、美國A-M System公司的2100型脈沖刺激器和3600型16通道差分放大器;軟件是自行編寫的LabVIEW程序。其中,PowerLab采集器用于系統的測試。

記錄電極采集的大鼠海馬區的場電位信號,經過放大器濾波、放大后由NI USB-6251數據采集卡完成采樣。采樣后的信號由PC機的LabVIEW程序顯示出來,同時進行數據分析。一旦檢測到癲癇信號,系統就會根據用戶預先的設置,確定是否按照所設定的參數輸出刺激信號。
圖 1中虛線連接的是系統的測試部分。它通過PowerLab多通道記錄系統(ML880,AD Instruments)同步采集大腦場電位信號和NI USB-6251數據采集卡輸出的刺激信號,分析系統檢測癲癇電信號的準確性和電刺激對于癲癇發放的控制效果。
系統使用的NI USB-6251數據采集卡是NI公司的一款帶有USB接口的多功能便攜式數據采集設備。該設備采用直接內存存取(direct memory access,DMA)的數據傳送方式,無需CPU控制,可以讓CPU有足夠的時間處理其他任務,保證了數據的完整性和連續性[11]。該采集卡的A/D轉換分辨率為16位,單通道采樣率最高可達1.25 MHz;24路數字I/O口;2路D/A輸出通道,分辨率為16位[12]。本文設計的系統使用了1路A/D口采集腦電信號(采樣率設為20 kHz),1路數字口產生刺激觸發脈沖,1路D/A口輸出模擬刺激信號。利用LabVIEW自帶的NI-DAQmx可以實現對該采集卡的編程控制。
1.2 系統的軟件設計
圖 2是該閉環式刺激系統的軟件框圖,它主要包括數據采集、癲癇信號檢測(即信號分析)、刺激信號輸出3個模塊,下面介紹程序的設計特點以及3個模塊的實現方法。

1.2.1 程序的設計特點
為了實時檢測和識別癲癇波,本系統使用“生產者/消費者”結構作為程序的總體框架。在數據采集時,生產者負責采集和顯示數據,消費者負責分析和處理數據。通過這樣的設計,使數據采集和數據處理能夠并行執行,確保了系統的實時性[13]。
同時,為了使系統能夠在癲癇波檢測和刺激輸出這兩個狀態之間更好地切換,在LabVIEW程序中也使用了狀態機結構。它通過條件結構對系統當前及下一個狀態進行判斷,以實現各個狀態之間的轉移,也使得程序清晰易讀。
為滿足用戶需求,本系統還設置了自動和手動兩種刺激模式。自動模式下,系統檢測到癲癇波后會直接輸出刺激信號;而在手動模式下,無論系統是否檢測到癲癇波,用戶都可以通過按下手動刺激按鍵輸出刺激信號,保證系統即使在癲癇波被漏檢的情況下也能夠完成電刺激的輸出。
1.2.2 數據采集模塊
系統使用LabVIEW自帶的NI-DAQmx編寫驅動程序來控制NI USB-6251數據采集卡采集信號,參數設置為單通道模擬電壓輸入,模式選為連續讀取,采樣頻率設為20 kHz,數據的更新采用隊列方式。
1.2.3 癲癇信號檢測模塊
如圖 3所示,癲癇發作時的大腦神經場電位呈現為一連串的棘波發放,具有頻率高、幅值大的特性,因此,可以用海岸線參數[14]來檢測癲癇。海岸線參數的定義是給定時間窗內的場電位信號曲線的累積長度,其計算公式為
$ \text{cl}=\sum\limits_{i=1}^{N}{\text{abs}\left({{x}_{i}}-{{x}_{i-1}} \right)}, $ |

其中cl為海岸線參數,xi是給定窗內第i點采樣數據的幅值,N是所計算數據窗的長度,abs表示絕對值運算。
當癲癇發作時,場電位的海岸線參數的值較大。因此,可以用閾值法來檢測癲癇。但是,當場電位信號中出現高幅值的慢速波動或者小幅值的高頻快波電位時,其海岸線參數的值也會很大,與癲癇發作時的值非常接近。如果僅憑借海岸線1個參數來進行癲癇檢測,容易造成癲癇的誤檢[15]。因此,本文結合了場電位信號的幅值、斜率和海岸線參數3個特征量來判定癲癇,當這3個特征量都達到所設定的閾值時,才判定癲癇發生,這樣可以避免將其他信號誤檢為癲癇波。圖 2流程圖中“信號分析”的癲癇波檢測算法步驟如下:
(1)置零幅值閾值標志、斜率閾值標志和癲癇波標志,設置每次處理的數據窗長度為40 ms。
(2)讀取新近的40 ms長度的采樣數據,并設此段數據的起始時間記為0 ms。從前往后依次檢查2~39 ms間每個采樣數據點幅值的絕對值,一旦某個數據達到所設定的幅值閾值,就置位幅值閾值標志,并將該采樣點設置為癲癇波的起始點;否則檢查下一個數據點的幅值。
(3)如果幅值閾值標志置位,就以癲癇波的起始點為基準,向前和向后各取1 ms數據,求這2 ms數據中的最大值和最小值。然后,求這兩個數據點之間斜率的絕對值,檢查此斜率是否達到所設定的斜率閾值。如果達到,就置位斜率閾值標志。否則,置零幅值閾值標志。
(4)如果幅值閾值和斜率閾值的標志都被置位,那么,就計算當前40 ms時間窗的海岸線參數值,檢查是否達到所設定的閾值。如果達到閾值,則判定為癲癇發生,置位癲癇波標志。
(5)置零幅值標志和斜率標志,結束“信號分析”。
實現上述癲癇波判定算法的關鍵是設定合適的閾值。為了避免實驗對象個體差異的影響,增強系統的適應性和靈活性,我們設計了人工輸入和自動計算兩種閾值設定模式。人工輸入模式是指用戶直接將各閾值輸入閾值窗內。自動計算模式則需用戶兩次單擊“閾值計算”按鈕,系統將兩次按鍵之間的時間段內所采集的信號作為正常電位信號,根據正常信號的平均值和標準差來估算癲癇波的檢測閾值,并將獲得的閾值顯示在相應3三個閾值窗內。
系統自動計算幅值、斜率和海岸線參數閾值的算法原理如下:
用戶首次單擊“閾值計算”按鈕后,系統就以40 ms數據窗的長度為單位,逐段計算最新采集的數據段的如下3個數值:采樣點幅值絕對值的平均值(定義為數據段的“幅值”)、每2 ms數據中最大值點與最小值點斜率絕對值的平均值(定義為數據段的“斜率”),以及40 ms數據的海岸線參數,并保存這3個值。每結束一段40 ms數據的計算時,就對已計算的所有數據的值求平均值和標準差,分別得到“幅值”平均值(Avalue)和標準差(Svalue)、“斜率”平均值(Aslope)和標準差(Sslope)、以及海岸線參數的平均值(Acl)。于是,癲癇電位檢測的閾值就設為:
幅值閾值:
$ \text{Tvalue=Avalue+Svalue }\!\!\times\!\!\text{ }d $ |
斜率閾值:
$ \text{Tslope=Aslope+Sslope }\!\!\times\!\!\text{ }d $ |
海岸線參數閾值:
$ \text{Tcl=Acl }\!\!\times\!\!\text{ }k, $ |
其中d為整數,表示癲癇信號檢測的幅值和斜率閾值是根據正常信號變異的倍數來設定的。k也為整數,表示海岸線參數的癲癇信號檢測閾值根據正常信號數值的倍數來設定。大鼠癲癇實驗模型的測試結果表明,d=3和k=2時癲癇信號的檢測結果最好(詳見本文2.2)。
用戶首次單擊“閾值計算”按鈕后,系統就按照上述算法不斷計算3個閾值并更新它們的顯示,直到用戶再次單擊“閾值計算”按鈕為止。
1.2.4 刺激輸出模塊
本系統的刺激輸出信號有兩種類型:一是方波、三角波、正弦波、鋸齒波等模擬信號,通過NI USB-6251數據采集卡的D/A口輸出,可用于控制模擬刺激隔離器(如A-M Systems公司的2200型刺激器);二是數字脈沖信號,由NI USB-6251數據采集卡的I/O口輸出,用來觸發脈沖刺激器(如A-M Systems公司的2100型和2300型等通用刺激器)產生恒流或者恒壓刺激信號。
1.3 動物實驗
成年SD大鼠(250~350 g,購自浙江省醫學科學院實驗動物中心),腹腔注射烏拉坦(1.25 g/kg)麻醉之后,固定在大鼠腦立體定位儀上,切開頭部皮膚,打開部分顱骨。將刺激電極植入到海馬CA1區的Schaffer側支上,將記錄電極(美國Neuroneuxus公司生產的微電極陣列)放置在海馬CA1區。通過誘發電位判斷電極植入位置的正確性[16]。穩定記錄CA1區場電位之后,將GABA受體阻斷劑印防己毒素(picrotoxin,PTX)通過微型注射器注入到海馬區誘發癲癇發作。
如圖 1所示,記錄電極采集的CA1區場電位信號經3600型放大器濾波(頻率范圍為0.3~5 000 Hz)和放大100倍之后,輸入至NI USB-6251數據采集卡的A/D接口。采集卡輸出的刺激脈沖信號則連接到2100型刺激器的觸發端,觸發該刺激器產生脈寬為0.1 ms的恒流脈沖,再經刺激電極施加于CA1區的Schaffer側支上。
1.4 系統性能測試和評價
利用大鼠實驗中采集的包含癲癇發作的場電位信號來檢驗和測試系統的性能。方法如下:使用自行編寫的LabVIEW測試程序,將事先采集的場電位信號從NI USB-6251數據采集卡的D/A轉換口輸出,作為實際實驗的模擬信號,連接到采集卡的A/D轉換口。這樣,就可以模擬動物實驗時大鼠大腦場電位信號的采集過程。測試時,將刺激輸出選擇為脈沖方式。如圖 1所示,在被測試的系統程序運行的同時,利用PowerLab將原始場電位信號和系統根據檢測結果自動輸出的脈沖刺激信號同時記錄下來,用于評價系統的性能。本文利用5只大鼠實驗的場電位記錄數據對系統進行了測試,數據總長度約為130 min。
系統的性能通過3個指標來評價:癲癇波檢出率、誤檢率和刺激延時時間。其中,檢出率定義為檢測到的癲癇波個數占記錄信號包含的所有癲癇波個數的百分比;誤檢率定義為誤檢的癲癇波個數占系統檢測到的癲癇波總數的百分比;刺激延時時間為檢測到的癲癇波起始點到刺激脈沖輸出之間的時間間隔。
2 結果
2.1 系統實現及其界面
圖 4所示為系統軟件的虛擬面板界面。上方為信號顯示窗口,用于實時顯示采集的信號,其顯示比例可以調節。下方為系統控制和參數設置區域。其中,左側設有“癲癇檢測”控制按鍵,單擊后系統開始自動檢測癲癇,在檢測到癲癇時會點亮右側的指示燈。左下方為閾值計算與顯示區域,單擊“閾值計算”按鍵后系統開始自動計算3個閾值,再次單擊該按鍵就結束閾值計算,并將計算得到的閾值顯示在右側。用戶也可以根據需要,在癲癇檢測時對閾值進行修改(也就是直接人工輸入各閾值數據);如果修改之后又希望使用系統自動計算的閾值,可以按下“還原閾值”按鍵來還原系統最近一次“閾值計算”所得到的閾值數據。右側是刺激模式選擇區域,設有“自動”和“手動”點擊按鍵用于選擇刺激模式,其右邊還有手動刺激按鍵和刺激指示燈。單擊手動刺激按鍵可以在任意時刻輸出刺激信號。右下方為電刺激參數設置區域,“輸出模式”用于選擇刺激信號的數字輸出或者模擬輸出,其他窗口用于設置輸出刺激信號的參數。數字輸出模式下的參數有:刺激脈沖的頻率、占空比和脈沖個數。模擬輸出模式下可以選擇正弦波、三角波、方波、鋸齒波等刺激波形,以及刺激波的幅值、頻率和刺激波數目。最后,單擊右下角的“退出系統”按鍵可以結束系統的運行。

2.2 癲癇信號的自動檢測
為了考察閾值計算式(2)~(4)中參數d和k的取值對于癲癇信號檢測的影響,我們利用5只大鼠癲癇模型實驗的場電位記錄數據對系統進行了測試。如表 1所示。當k取相同值,設d=0時,癲癇波的檢出率較高,但是誤檢率也很高。增加d值,誤檢率迅速降低。當d=3時,與d=2相比,其癲癇的檢出率變化不大,但是誤檢率顯著降低。這是因為癲癇發作時的場電位信號的幅值和斜率都很大,d值取2或3時對檢出率影響不大,但d值較大時可以更好地避免將高幅值的慢速波動或者小幅值的高頻快波電位等其他信號誤檢為癲癇波。因此,本文取d=3。

當d取相同值時,增大k值會使癲癇波的誤檢率減小,但是,同時也大大降低了檢出率。這是因為海岸線參數計算的是給定時間窗內場電位信號曲線的累積長度,k值太大容易造成較小的癲癇信號的漏檢。因此,本文取k=2。
當d=3、k=2時,系統有較高的檢出率(91.3%)和較低的誤檢率(8.0%),可以較好地檢測癲癇波。
此外,通過軟件測試發現,系統的刺激輸出延時時間為(0.122±0.003)s,且最大值不超過0.14 s。可見系統穩定性強,反應速度快,實時性高。
2.3 實時閉環刺激控制大鼠海馬CA1區癲癇的發作
圖 5所示是系統實時檢測大鼠海馬CA1區癲癇波并發出刺激脈沖控制癲癇發放的示例。記錄信號為CA1區胞體層的寬頻帶(0.3 Hz~5 kHz)信號。電刺激為施加于CA1區輸入通道(即Schaffer側支)的5 s時長串脈沖,刺激頻率為130 Hz,強度為0.5 mA,脈寬為0.1 ms。用插值法去除刺激偽跡后[17],清晰可見刺激期間的癇樣發放情況(見放大圖)。比較刺激前和刺激中,可見:在施加電刺激之前,信號中不斷出現大幅值癇樣棘波串,每串發放中包含許多棘波,串的長度為(0.25±0.04)s(n=27)。進入閉環電刺激模式后,癇樣棘波觸發的電刺激將串發放的長度縮短為(0.09±0.03)s(n=20),棘波個數顯著減少,表明閉環電刺激對于癇樣發放具有明顯的抑制作用。

3 討論
本文利用LabVIEW虛擬儀器環境、NI USB-6251數據采集卡、刺激隔離器和前置放大器等,開發了一種閉環式電刺激系統,用于實現癲癇波的自動檢測和刺激信號輸出。其特點分析如下。
癲癇檢測算法很多,常見的有小波變換法[18]、非線性動力學法[19]、人工神經網絡方法[20]等,但這些算法都涉及到復雜的計算,不適合實時性要求較高的閉環電刺激系統。本文根據癲癇波的特點,選用了斜率、幅值和海岸線參數來檢測癲癇。這種方法具有計算簡單、直觀、速度快等優點,比較適合于閉環電刺激。實驗結果表明,本系統具有較高的癲癇波檢出率和較低的誤檢率,并且發出刺激脈沖的延時只有0.12 s左右,實時性較好。
系統軟件結構的設計結合了“生產者/消費者”模式和狀態機模式,可以在數據采集的同時進行數據分析和處理,保證了系統的實時性;同時系統各個狀態之間也能夠根據需求方便地進行切換。
本系統的閉環刺激模式克服了開環模式的弱點,能夠根據患者腦電變化的情況來按需輸出電刺激,避免了患者長時間過度接受電刺激可能產生的副作用。而且,在癲癇尚未完全發展之前及時輸出電刺激,更有利于抑制癲癇發作[21],且能夠降低刺激器的功耗,同時也減少電刺激對于腦組織的損傷。
此外,本系統具有較好的通用性。LabVIEW程序可以很好地控制NI數據采集卡,再與實驗室通用的常規放大器和刺激器連接起來,就可以構成這種閉環式電刺激系統。除了用于電刺激治療癲癇方面的研究之外,還可以通過調節系統運行的模式和參數來進行電刺激的其他應用研究,如帕金森病等其他腦部疾病,或者外周神經系統疾病。而且,除了用于植入式電極的信號測量之外,該系統也可以用于非侵入式的神經電信號測量方式。
4 結論
本文利用LabVIEW虛擬儀器開發環境和NI USB-6251數據采集卡,開發了一種閉環式電刺激系統,實現了癲癇的自動檢測和刺激信號的輸出,具有較高的實時性和靈活性,為閉環式電刺激治療癲癇的實驗研究提供了簡便易用的設備。