基于DSP TMS320C54X的癫痫脑电信号处理
扫描二维码
随时随地手机看文章
1引 言
癫痫的诊断主要依靠临床病史,脑电图检查可作为一种极有价值的辅助诊断手段。据统计,80%左右的癫痫病人都具有确定性的脑电异常,而只有5~20%左右的癫痫病人脑电图表现正常。尤其对临床诊断困难的非典型癫痫发作、各种异型癫痫和隐匿型癫痫,脑电图检查的重要性更加突出,甚至起着决定性的作用[1]。
脑电(EEG)是超高斯或亚高斯信号,通常都含有噪声、伪迹和串扰。通常,脑电活动总体上被划分成4个频带成分(β,α,θ和δ等节律),这些成分的频率都很低(在0.5~40 Hz范围)。而临床分析表明癫痫患者发病时以3 Hz棘慢综合波为多见。换句话说,脑电中有意义的成分基本上都是低频信号。这意味着,我们可以通过小波分解将混迭在脑电中的高频成分滤除后再重构,从而滤除噪声和伪迹。通过研究癫痫病人的脑电信号,有助于药物选择、剂量调整和药物停用的决定,有助于外科手术治疗病例的选定,有助于癫痫和其他发作性疾病的鉴别。
本文选用基于TI公司的TMS320C54X系列的DSP芯片开发平台。借助DSP快速数据处理的优点,对癫痫脑电信号进行小波变换,然后滤除小尺度(高频)成分,保留大尺寸(低频)成分,最后再对处理后的信号进行重建。实现流程如图1所示。
2离散小波变换算法
离散小波变换的一个突破性成果是S.Mallat于1989年在多分辨分析的基础上提出的快速算法一一Mallat算法[2]。Mallat算法在小波分析中的作用相当于快速傅里叶变换(FFT)在傅里叶分析中的作用,他标志着小波分析走上了宽阔的应用领域。Mallat算法又称为塔式算法,他由小波滤波器H,G和h,g对信号进行分解和重构[3]。分解算法为:
式中,t为离散时间序列号,t=1,2,…,N;f(t)为原始信号;j为层数或小波尺度,j=1,2,…,J,J=log2N;H,G
为时域中的小波分解滤波器,实际上是滤波器系数;Aj为信号f(t)在第j层的逼近部分(即低频成分)的小波系数;Dj为信号f(t)在第j层的细节部分(即高频部分)的小波系数。
式(1)的含义是:假定所检测的离散信号f(t)为A。信号,信号f(t)在第2j尺度(第j层)的近似部分,即低频部分的小波系数Aj是通过第2j-1尺度(第j-1层)的逼近部分的小波系数Aj-1与滤波器H卷积,然后将卷积的结果隔点采样得到的;而信号f(t)在第2j尺度(第j层)的细节部分,即高频部分的小波系数Dj是通过第2j-1尺度(第j-1层)的逼似部分的小波系数与分解滤波器G卷积,然后将卷积的结果隔点采样得到的。
通过式(1)的分解,在每一尺度2j上(或第j层上)信号f(t)被分解为近似部分的小波系数Aj(在低频子带上)和细节部分的小波系数D,(在高频子带上)。
重构算法为:
式中,j为分解的层数,若分解的最高层即分解的深度为J,则j=J-1,J-2,…,1,0;h,g为时域中的小波重构滤波器,实际上是滤波器系数。
式(2)的含义是:信号f(t)在第2j尺度(第j层)的近似部分的小波系数,即低频部分的小波系数Aj是通过第2j+1尺度(第j+1层)的逼近部分的小波系数Aj+1隔点插零后与重构滤波器h卷积以及第2j+1尺度(第j+1层)的细节部分的小波系数Dj+1隔点插零后与重构滤波器g卷积,然后求和得到的。不断重复这一过程,直到第2°尺度,得到重构信号。
3小波变换的DSP实现
3.1 脑电信号在CCS 2.2上的输入与输出
CCS 2.2(Code Composer Studio)是由TI公司推出的一种针对标准TMS320调试接口的集成开发环境(IDE),利用CCS集成开发环境,用户可以完成工程定义、程序编辑、编译链接、调试和数据分析等工作环节[4]。我们把十进制的浮点数用两个十六进制数进行表示,采用C语言实现。
再利用CCS中的File->Load Data将十六进制的数据导入到DSP的相应内存中去。
反过来,DSP处理之后的数据利用CCS的数据导出File->Save以文本文件形式保存,再用C语言进行数据逆转化,把两个十六进制数进行转化成十进制的浮点数。
其中的result数组就是十进制的浮点型,origin数组就是十六进制的浮点型。
3.2核心汇编程序介绍
以下是以16位定点乘法实现32位浮点乘法的部分汇编程序: