Windows95/98环境下神经信号的采集和分析系统
2009-05-08
作者:温云卿1, 王建军1, 黄晓林
摘 要: 介绍了神经放电信号的一些特征,并介绍了针对Windows 95/98操作系统的特点所设计的一种神经信号实时采集和分析硬、软件系统,该系统为分析神经信号提供了一种基本的方法。
关键词: 神经信号 神经信号的甄别 中断 虚拟设备驱动程序
在神经生物学研究中,常常需要把微电极插到脑中神经细胞附近,记录单个神经细胞的放电 (即动作电位) 活动,以了解神经细胞的正常功能和异常变化。神经细胞的放电是一种尖锋状脉冲式数字信号,波幅约100~150mV,持续时间约1~2ms,重复频率最高可达数百赫兹。神经细胞在静息时存在不规则的基础放电活动,在受到刺激后会发生反应,表现为其放电频率在基础放电背景上的增高或者降低,而这些增高或降低的部分则代表了有效的神经信息。由于神经细胞对刺激的反应会在刺激后某个固定的时间段出现,而基础放电则是随机出现的,因而目前常用的处理神经信息的办法是对神经细胞进行多次重复的刺激,同时把其对每次刺激的反应结果叠加起来,做成所谓“刺激后时间直方图”和“锋电位间隔直方图”,从而将这种有效信息的统计学规律显现出来。根据研究工作的需要,我们开发了一套基于Windows95/98系统的神经信号采集和分析系统。该系统能够满足神经生物学研究的需要,并具有一定的推广前景。
1 系统构成
整个系统由硬件系统和软件系统两大部分构成。硬件系统主要包括微电极放大器、窗口甄别器、数据采集卡和微型计算机。如图1所示,将玻璃微电极插入动物脑中拾取神经细胞的放电信号,并由微电极放大器将信号放大。经放大后的神经细胞放电信号送入窗口甄别器进行信号的选取和波形的转换,然后将转换后所获得的与神经细胞放电信号一一对应的TTL脉冲信号送入数据采集卡,通过卡上的A/D转换器将此信号采集进计算机内。计算机的任务是对神经细胞的放电信号进行分析处理、存储实验数据、显示和输出处理结果。
软件系统是基于Windows95/98环境自编的信号采集和分析系统,可以做出神经细胞放电信号的刺激后时间直方图和锋电位时间间隔直方图。为了让系统在Windows95/98下能可靠工作,我们针对数据采集卡编写了虚拟设备驱动程序。通过VxD对硬件操作,既可以使程序稳定可靠地对硬件设备进行读写,又可以满足实时处理信号的要求。
1.1 系统中各硬件的设计
1.1.1 窗口甄别器
由于神经细胞在脑内是处于容积导体之中,因而被微电极拾取到的往往是不止一个神经细胞的放电信号。窗口甄别器的作用在于可以使实验者根据神经放电信号的幅度设置电平窗口,从几个幅度不一的神经细胞放电中有选择地获取某一个细胞的放电信号,并将所选取的信号转换成TTL脉冲,使计算机能够准确地加以识别。窗口甄别器实质上是一个施密特触发器,但为适应于神经生物学实验的需要而增设了一些附加电路,如窗口线增辉发生和调节电路、刺激伪迹抑制电路和TTL信号输出的音响电路等。图2为窗口甄别器作用示意图。凡进入甄别窗口内的神经细胞放电信号均可触发施密特电路,从而在仪器的输出端获得一个与神经放电信号时间上相对应的TTL脉冲。实验者可以根据需要调节上、下两根窗口甄别线的高低来选定欲采集和分析的神经放电信号,摒弃其它不需要的放电信号。
1.1.2 数据的采集和量化
数据的采集通过数据采集卡(AC1810型,北京双诺技术有限公司)完成。该数据采集卡有一个最高采样率为100kHz的A/D转换器,量化精度为12 bits。该卡提供8通道双端输入,每通道带一个采样保持器,可并行采集8路信号。同时,卡上带有1k字的FIFO缓存,当FIFO缓存半满时,会发出中断信号。
由于本系统除了采集神经细胞放电这种数字电信号外,还要同时采集其它的模拟电信号(如脑电、心电、肌电和血压变化等)。为方便起见,在信号采集模块中把这两种性质不同的输入信号都通过A/D采样方式输入计算机。另外,由于锋电位间隔直方图分析神经细胞放电信号需要有0.1ms的时间间隔分辨率,我们选择10kHz/通道的采样率。
1.1.3 微型计算机
由于普通PC兼容机价格低廉、支持软件众多,我们选用了80x86系列的微型计算机来处理数据和显示处理结果。
1.2 软件编程
由于Windows95/98系统日益普及,我们选择了Windows95/98系统为软件的系统平台。软件系统由VxD、动态链接库和应用程序三个部分共同构成。在Windows95/98操作系统中,应用程序运行在第3特权级。如果应用程序执行了受限制指令,特别是执行了任务转换和中断处理等指令时,会引发处理器产生中断,结果Windows系统将会给出错误信息,并可能终止这一程序。因此,对硬件的操作必须通过运行在第0特权级上的VxD进行,与硬件无关的数据分析和处理部分则可以交给应用程序完成。Windows95/98是分时多任务系统,为了能及时地将数据从A/D转换器的FIFO缓存中取出,避免因线程处于等待状态而丢失数据,信号采集模块采用了中断采样方式采集数据。按结构分,可以把软件系统分为信号采集模块和数据处理模块两大部分。信号采集模块由VxD和DLL构成,数据处理模块则放在应用程序中。信号采集模块通过消息机制向数据处理模块传递信息,数据处理模块通过Windows的API函数DeviceIoControl()完成与信号采集模块的数据通讯。
1.2.1 信号采集模块
信号采集模块的流程图如图3所示。VxD负责进行实际的I/O操作,并完成中断采样。DLL封装了应用程序与VxD之间进行数据交换的接口。通过DLL可以使应用程序和VxD相对独立,便于日后软、硬件的升级和维护。VxD在初始化的过程中,挂钩中断,并向系统申请一块缓冲区,用于存放中断采集的数据。在工作过程中,当操作系统响应数据采集卡发出的中断请求后,即调用VxD内的中断服务程序。中断服务程序则将数据采集卡FIFO内的数据读入VxD的缓存区,并向应用程序发送一个消息,然后退出中断服务程序。应用程序在接收到VxD发来的消息后,通过消息响应函数把VxD缓存区内的数据读取到应用程序的临时数据区,然后将A/D转换器采集的数据按照通道来源分配到与各个通道相对应的文档类实例的数据区中。
1.2.2 数据处理模块
如前所述,为了揭示神经细胞对刺激反应的统计规律,所采集的神经细胞放电信号要被处理成刺激后时间直方图和锋电位间隔直方图,处理过程的流程见图4。首先根据信号采集模块输入的TTL脉冲信号,计算出每次神经细胞放电所对应的时间。对于刺激后时间直方图,这些时间数据被转换成放电时刻与同步起始时间点之间的时间间隔数据。根据这些时间间隔数据,将直方图上单位时间内的放电次数加和,得到神经细胞放电频率随时间变化的函数图,即做成基于单次扫描实验结果的刺激后时间直方图,从而揭示出神经细胞对刺激反应的统计学规律。在此基础上,也可以进一步做出基于多次扫描实验结果的刺激后时间直方图,即将每一次扫描所得到的单次扫描刺激后时间直方图从同步起始点开始逐点地叠加起来,绘制成累加的刺激后时间直方图,以更好地揭示神经细胞对刺激反应的统计学规律。对于锋电位间隔直方图,则根据每次神经细胞放电对应的时间,计算出相邻两次放电之间的时间间隔,然后按锋电位的时间间隔做成锋电位间隔事件分布直方图,以揭示神经信息编码的变化情况。与刺激后时间直方图一样,也可以将这种直方图做成多次扫描的累加锋电位间隔直方图。
应用程序是按照文档-视结构编写的,每一个通道对应于一个文档类实例,每个通道的数据都存放在对应于该通道的文档类实例中。上面所述的数据处理方法也放在文档类中,每个文档用多个与该文档相关联的视图,来显示对同一数据进行不同方法的数据处理所得到的结果。通过调用文档类的方法,计算出刺激后时间直方图数据和锋电位间隔直方图数据,然后在与该文档相关联的视类中绘制刺激后时间直方图和锋电位间隔直方图,并由文档类将每次放电的时刻作为原始数据保存。
2 应用实例
图5是本系统实际使用的一个例子。其中图A为刺激后时间直方图应用实例。直方图横座标是时间,纵座标是神经细胞的放电频率,实验记录的是一个猫小脑浦肯野细胞对刺激的反应。从图可见细胞在受到刺激后放电频率显著增高,即其对刺激产生了兴奋反应,随后其放电频率逐渐恢复到基础状态。图B和C分别显示该细胞的刺激前和刺激后锋电位间隔直方图,两图的分析窗口分别显示于图A上方。比较B和C两图,发现该细胞放电的时间间隔峰在受到刺激后左移,提示其在刺激前后编码的信息发生了变化。
该系统为神经生物学及其相关学科(如生理学、药理学等)的教学和科研提供了一个有力的数据分析手段,具有广泛的应用前景。
参考文献
1 陈宜张. 神经系统电生理学.北京:人民卫生出版社,1983
2 韩济生主编. 神经科学原理. 北京:北京医科大学出版社, 1999
3 The Axon Guide for Electrophysiology and Biophysics Laboratory Techniques. Axon Instruments, Inc., Foster City, USA, 1993
4 徐志海等. Win95下利用VxD访问物理地址. 微计算机应用,1998;19(3):129~133