Windows95/98環(huán)境下神經(jīng)信號的采集和分析系統(tǒng)
摘要:介紹了神經(jīng)放電信號的一些特征,并介紹了針對Windows95/98操作系統(tǒng)的特點所設(shè)計的一種神經(jīng)信號實時采集和分析硬、軟件系統(tǒng),該系統(tǒng)為分析神經(jīng)信號提供了一種基本的方法。
關(guān)鍵詞:神經(jīng)信號 神經(jīng)信號的甄別 中斷 虛擬設(shè)備驅(qū)動程序
在神經(jīng)生物學(xué)研究中,常常需要把微電極插到腦中神經(jīng)細(xì)胞附近,記錄單個神經(jīng)細(xì)胞的放電(即動作電位)活動,以了解神經(jīng)細(xì)胞的正常功能和異常變化。神經(jīng)細(xì)胞的放電是一種尖峰狀脈沖式數(shù)字信號,波幅約100~150mV,持續(xù)時間約1~2ms,重復(fù)頻率最高可達(dá)數(shù)百赫茲。神經(jīng)細(xì)胞在靜息時存在不規(guī)則的基礎(chǔ)放電活動,在受到刺激后會發(fā)生反應(yīng),表現(xiàn)為其放電頻率在基礎(chǔ)放電背景上的增高或者降低,而這些增高或降低的部分則代表有效的神經(jīng)信息。由于神經(jīng)細(xì)胞對刺激的反應(yīng)會在刺激后某個固定的時間段出現(xiàn),而基礎(chǔ)放電則是隨機(jī)出現(xiàn)的,因而目前常用的處理神經(jīng)信息的辦法是對神經(jīng)細(xì)胞進(jìn)行多次重復(fù)的刺激,同時把某對每次刺激的反應(yīng)結(jié)果疊加起來,做成所謂“刺激后的時間直方圖”和“鋒電位間隔直方圖”,從而將這種有效信息的統(tǒng)計學(xué)規(guī)律顯現(xiàn)出來。根據(jù)研究工作的需要,我們開發(fā)了一套基于Windows95/98系統(tǒng)的神經(jīng)信號采集和分析系統(tǒng)。該系統(tǒng)能夠滿足神經(jīng)生物學(xué)研究的需要,并具有一定的推廣前景。
1 系統(tǒng)構(gòu)成
整個系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩大部分構(gòu)成。硬件系統(tǒng)主要包括微電極放大器、窗口甄別器、數(shù)據(jù)采集卡和微型計算機(jī)。如圖1所示,將玻璃微電極插入動物腦中拾取神經(jīng)細(xì)胞的放電信號,并由微電極放大器將信號放大。經(jīng)放大后的神經(jīng)細(xì)胞放電信號送入窗口甄別器進(jìn)行信號的選取和波形的轉(zhuǎn)換,然后將轉(zhuǎn)換所獲得的與神經(jīng)細(xì)胞放電信號一一對應(yīng)的TTL脈沖信號送入數(shù)據(jù)采集卡,通過卡上的A/D轉(zhuǎn)換器將此信號采集進(jìn)計算機(jī)內(nèi)。計算機(jī)的任務(wù)是對神經(jīng)細(xì)胞的放電信號進(jìn)行分析處理、存儲實驗數(shù)據(jù)、顯示輸出處理結(jié)果。
軟件系統(tǒng)是基于Windows95/98環(huán)境自編的信號采集和分析系統(tǒng),可以做出神經(jīng)細(xì)胞放電信號的刺激后時間直方圖和鋒電位時間時隔直方圖。為了讓系統(tǒng)在Windows95/98下能可靠工作,我們針對數(shù)據(jù)采集卡編寫了虛擬設(shè)備驅(qū)動程序。通過VxD對硬件操作,既可以使程序穩(wěn)定可靠地對硬件設(shè)備進(jìn)行讀寫,又可以滿足實時處理信號的要求。
1.1 系統(tǒng)中各硬件的設(shè)計
1.1.1 窗口甄別器
由于神經(jīng)細(xì)胞在腦內(nèi)是處于容積導(dǎo)體之中,因而被微電極拾取到的往往是不止一個神經(jīng)細(xì)胞的放電信號。窗口甄別器的作用在于可以使實驗者根據(jù)神經(jīng)放電信號的幅度設(shè)置電平窗口,從幾個幅度不一的神經(jīng)細(xì)胞放電中有選擇地獲取某一個細(xì)胞的放電信號并將所選取的信號轉(zhuǎn)換成TTL脈沖,使計算機(jī)能夠準(zhǔn)確地加以識別。窗口甄別器實質(zhì)上是一個施密特觸發(fā)器,但為適應(yīng)于神經(jīng)生物學(xué)實驗的需要而增設(shè)了一附加電路,如窗口線增輝發(fā)生和調(diào)節(jié)電路、刺激偽跡抑制電路和TTL信號輸出的音響電路等。圖2為窗口甄別器作用示意圖。凡進(jìn)入甄別窗口內(nèi)的神經(jīng)細(xì)胞放電信號均可觸發(fā)施密特電路,從而在儀器的輸出端獲得一個與神經(jīng)放電信號時間上相對應(yīng)的TTL脈沖。實驗者可以根據(jù)需要調(diào)節(jié)上、下兩根窗口甄別線的高低來選定欲采集和分析的神經(jīng)放電信號,摒棄其它不需要的放電信號。
1.1.2 數(shù)據(jù)的采集和量化
數(shù)據(jù)的采集通過數(shù)據(jù)采集卡(AC1810型,北京雙諾技術(shù)有限公司)完成。該數(shù)據(jù)采集卡有一個最高采樣率為100kHz的A/D轉(zhuǎn)換器,量化精度為12bits。該卡提供8通道雙端輸入,每通道帶一個采樣保持器,可并行采集8路信號。同時,卡上帶有1K字的FIFO緩存,當(dāng)FIFO緩存半滿時,會發(fā)出中斷信號。
由于本系統(tǒng)除了采集神經(jīng)細(xì)胞放電這種數(shù)字電信號外,還要同時采集其它的模擬電信號(如腦電、心電、肌電和血壓變化等)。為方便起見,在信號采集模塊中把這兩種性質(zhì)不同的輸入信號都通過A/D采樣方式輸入計算機(jī)。另外,由于鋒電位間隔直方圖分析神經(jīng)細(xì)胞放電信號需要有0.1ms的時間間隔分辨率,我們選擇10kHz/通道的采樣率。
1.1.3 微型計算機(jī)
由于普通PC兼容機(jī)價格低廉、支持軟件眾多,我們選用了80x86系列的微型計算機(jī)來處理數(shù)據(jù)和顯示處理結(jié)果。
1.2 軟件編程
由于Windows95/98系統(tǒng)日益普及,我們選擇了Windows95/98系統(tǒng)為軟件的系統(tǒng)平臺。軟件系統(tǒng)由VxD、動態(tài)鏈接庫和應(yīng)用程序三個部分共同構(gòu)成。在Windows95/98操作系統(tǒng)中,應(yīng)用程序運(yùn)行在第3特權(quán)級。如果應(yīng)用程序執(zhí)行了受限制指令,特別是執(zhí)行了任務(wù)轉(zhuǎn)換和中斷處理等指令時,會引發(fā)處理器產(chǎn)生中斷,結(jié)果Windows系統(tǒng)將會給出錯誤信息,并可能終止這一程序。因此,對硬件的操作必須通過運(yùn)行在第0特權(quán)級上的VxD進(jìn)行,與硬件無關(guān)的數(shù)據(jù)分析和處理部分則可以交給應(yīng)用程序完成。Windows95/98是分時多任務(wù)系統(tǒng),為了能及時地將數(shù)據(jù)從A/D轉(zhuǎn)換器的FIFO緩存中取出,避免因線程處于等待狀態(tài)而丟失數(shù)據(jù),信號采集模塊采用了中斷采樣方式采集數(shù)據(jù)。按結(jié)構(gòu)分,可以把軟件系統(tǒng)分為信號采集模塊和數(shù)據(jù)處理模塊兩大部分。信號采集模塊由VxD和數(shù)據(jù)處理模塊兩大部分。信號采集模塊由VxD和DLL構(gòu)成,數(shù)據(jù)處理模塊則放在應(yīng)用程序中。信號采集模塊通過消息機(jī)制向數(shù)據(jù)處理模塊傳遞信息,數(shù)據(jù)處理模塊通過Windows的API函數(shù)DeviceIoControl()完成與信號采集模塊的數(shù)據(jù)通訊。
1.2.1 信號采集模塊
信號采集模塊的流程圖如圖3所示。VxD負(fù)責(zé)進(jìn)行實際的I/O操作,并完成中斷采樣。DLL封裝了應(yīng)用程序與VxD之間進(jìn)行數(shù)據(jù)交換的接口。通過DLL可以使應(yīng)用程序和VxD相對獨立,便于日后軟、硬件的升級和維護(hù)。VxD在初始化的過程中,掛鉤中斷,并向系統(tǒng)申請一塊緩沖區(qū),用于存放中斷采集的數(shù)據(jù)。在工作過程中,當(dāng)操作系統(tǒng)響應(yīng)數(shù)據(jù)采集卡發(fā)出的中斷請求后,即調(diào)用VxD內(nèi)的中斷服務(wù)程序。中斷服務(wù)程序則將數(shù)據(jù)采集卡FIFO內(nèi)的數(shù)據(jù)讀入VxD的緩存區(qū),并向應(yīng)用程序發(fā)送一個消息,然后退出中斷服務(wù)程序。應(yīng)用程序在接收到VxD發(fā)來的消息后,通過消息響應(yīng)函數(shù)把VxD緩存區(qū)內(nèi)的數(shù)據(jù)讀取到應(yīng)用程序的臨時數(shù)據(jù)區(qū),然后將A/D轉(zhuǎn)換器采集的數(shù)據(jù)按照通道來源分配到與各個通道相對應(yīng)的文檔類實例的數(shù)據(jù)區(qū)中。
1.2.2 數(shù)據(jù)處理模塊
如前所述,為了揭示神經(jīng)細(xì)胞對刺激反應(yīng)的統(tǒng)計規(guī)律,所采集的神經(jīng)細(xì)胞放在電信號要被處理成刺激后時間直方圖和鋒電位間隔直方圖,處理過程的流程見圖4.首先根據(jù)信號采集模塊輸入的TTL脈沖信號,計算出每次神經(jīng)細(xì)胞放電所對應(yīng)的時間。對于刺激后時間直方圖,這些時間數(shù)據(jù)被轉(zhuǎn)換成效電時刻與同步起始時間點之間的時間的時間間隔數(shù)據(jù)。根據(jù)這些時間間隔數(shù)據(jù),將直方圖上單位時間內(nèi)的放電次數(shù)加和,得到神經(jīng)細(xì)胞放電頻率隨時間變化的函數(shù)圖,即做成基于單次掃描實驗結(jié)果的刺激后時間直方圖,從而揭示出神經(jīng)細(xì)胞對刺激反應(yīng)的統(tǒng)計學(xué)規(guī)律。在此基礎(chǔ)上,也可以進(jìn)一步做出基于多次掃描實驗結(jié)果的刺激后時間直方圖,即將每一次掃描所得到的單次掃描刺激后時間直方圖從同步起始點開始逐點地疊加起來,繪制成累加的刺激后時間直方圖,以更好地揭示神經(jīng)細(xì)胞對刺激反應(yīng)的統(tǒng)計學(xué)規(guī)律。對于鋒電位電隔直方圖,則根據(jù)每次神經(jīng)細(xì)胞放電對應(yīng)的時間,計算出相鄰兩次放電之間的時間間隔,然后按鋒電位的時間間隔做成鋒電位間隔事件分布直方圖,以揭示神經(jīng)信息編碼的變化情況。與刺激后時間直方圖一樣,也可以將這種直方圖做成多次掃描的累加峰電位間隔直方圖。
應(yīng)用程序是按照文檔-視結(jié)構(gòu)編寫的,每一個通道對應(yīng)于一個文檔類實例,每個通道的數(shù)據(jù)都存放在對應(yīng)于該通道的文檔類實例中。上面所述的數(shù)據(jù)處理方法也放在文檔類中,每個文檔用多個與該文檔相關(guān)聯(lián)的視圖,來顯示對同一數(shù)據(jù)進(jìn)行不同方法的數(shù)據(jù)處理所得到的結(jié)果。通過調(diào)用文檔類的方法,計算出刺激后時間直方圖數(shù)據(jù)和鋒電位間隔直方圖數(shù)據(jù),然后與在該文檔相關(guān)聯(lián)的視類中繪制刺激后時間直方圖和鋒電位間隔直方圖,并由文檔類將每次放電的時刻作為原始數(shù)據(jù)保存。
2 應(yīng)用實例
圖5是本系統(tǒng)實際使用的一個例子。其中圖A為刺激后時間直方圖應(yīng)用實例。直方圖橫座標(biāo)是時間,縱座標(biāo)是神經(jīng)細(xì)胞的放電頻率,實驗記錄的是一個貓小腦浦肯野細(xì)胞對刺激的反應(yīng)。從圖可見細(xì)胞在受到刺激后放電頻率顯著增高,即其對刺激產(chǎn)生了興奮反應(yīng),隨后其放電頻率逐漸恢復(fù)到基礎(chǔ)狀態(tài)。圖B和C分別顯示該細(xì)胞的刺激前和刺激后鋒電位間隔直方圖,兩圖的分析窗口分別顯示于圖A上方。比較B和C兩圖,發(fā)現(xiàn)該細(xì)胞放電的時間間隔峰在受到刺激后左移,提示其在刺激前后編碼的信息發(fā)生了變化。
該系統(tǒng)為神經(jīng)生物學(xué)及其相關(guān)學(xué)科(如生理學(xué)、藥理學(xué)等)的教學(xué)和科研提供了一個有力的數(shù)據(jù)分析手段,具有廣泛的應(yīng)用前景。
評論