找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于DSP的癫痫脑电信号处理

[复制链接]
admin 发表于 2013-3-23 20:01:52 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  1引 言
     癫痫的诊断主要依靠临床病史,脑电图检查可作为一种极有价值的辅助诊断手段。据统计,80%左右的癫痫病人都具有确定性的脑电异常,而只有5~20%左右的癫痫病人脑电图表现正常。尤其对临床诊断困难的非典型癫痫发作、各种异型癫痫和隐匿型癫痫,脑电图检查的重要性更加突出,甚至起着决定性的作用[1]。
     脑电(EEG)是超高斯或亚高斯信号,通常都含有噪声、伪迹和串扰。通常,脑电活动总体上被划分成4个频带成分(β,α,θ和δ等节律),这些成分的频率都很低(在0.5~40 Hz范围)。而临床分析表明癫痫患者发病时以3 Hz棘慢综合波为多见。换句话说,脑电中有意义的成分基本上都是低频信号。这意味着,我们可以通过小波分解将混迭在脑电中的高频成分滤除后再重构,从而滤除噪声和伪迹。通过研究癫痫病人的脑电信号,有助于药物选择、剂量调整和药物停用的决定,有助于外科手术治疗病例的选定,有助于癫痫和其他发作性疾病的鉴别。
     本文选用基于TI公司的TMS320C54X系列的DSP芯片开发平台。借助DSP快速数据处理的优点,对癫痫脑电信号进行小波变换,然后滤除小尺度(高频)成分,保留大尺寸(低频)成分,最后再对处理后的信号进行重建。实现流程如图1所示。
    20121107051224621371163.jpg
     2离散小波变换算法
     离散小波变换的一个突破性成果是S.Mallat于1989年在多分辨分析的基础上提出的快速算法一一Mallat算法[2]。Mallat算法在小波分析中的作用相当于快速傅里叶变换(FFT)在傅里叶分析中的作用,他标志着小波分析走上了宽阔的应用领域。Mallat算法又称为塔式算法,他由小波滤波器H,G和h,g对信号进行分解和重构[3]。分解算法为:
    20121107051224652621164.jpg
     式中,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,(在高频子带上)。
     重构算法为:
    20121107051224699491165.jpg
     式中,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语言实现。
    20121107051224730741166.jpg
     再利用CCS中的File->Load Data将十六进制的数据导入到DSP的相应内存中去。
     反过来,DSP处理之后的数据利用CCS的数据导出File->Save以文本文件形式保存,再用C语言进行数据逆转化,把两个十六进制数进行转化成十进制的浮点数。
    20121107051224761991167.jpg
     其中的result数组就是十进制的浮点型,origin数组就是十六进制的浮点型。
     3.2核心汇编程序介绍
     以下是以16位定点乘法实现32位浮点乘法的部分汇编程序:
    20121107051224793241168.jpg
     3.3 实验结果与分析
     图2(a)为待处理脑电信号,经小波分解后(b)~(f)依次为各级逼近波形图,(g)~(k)则依次为对应的细节波形图。滤掉j=3的细节波形即图2(i),再进行小波重构后得到图2(1),从中发现,原图2(a)和重构后的图2(1)几乎看不出明显差别。
    20121107051224840121169.jpg      
     4 结 语
     利用小波变换的Mallat算法对癫痫患者的脑电信号进行小波分解,保留脑电的源信号信息,将高频噪声滤除,利于进一步分析[5]。本文利用了DSP快速数据处理的优点,采用性价比高的定点型TMS320C54x DSP进行浮点数据处理,结果表明,处理方法可行,效果明显,文中介绍的方法具有一定的理论和实际应用价值。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-25 00:51 , Processed in 0.058716 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表