FFT算法在脑电波信号谱密度分析中的应用于实现
作者:张时超
来源:《电脑知识与技术》2017年第13
        摘要:该文分为四大部分,第一部分介绍了脑电波信号的几种处理方法,包括时频与神经网络等方法。第二部分重点介绍了时频分析中快速傅里叶变换(FFT)的原理及其优点,并阐述了选择其进行脑电波分析的原因。在第三部分中,实现了该文的主要目的,编写了使用FFT方法并基于matlab的程序,用来分析仿真脑电波的数据。包括代码的注释以及实验结果分析截图。第四部分通过了谱分析的结果参照相关文献讨论现象。
        关键词:脑电波信号;时频分析;快速傅里叶变换(FFT);Madab
        中图分类号:TP391 文献标识码:A 文章编号:1009-3044201713-0225-03
        脑电波信号(eeg signals)是一种非常复杂的随机信号,是大脑组织电活动和大脑功能状态的综合反映。由于不同的思维状态和病理情况在大脑的皮层位置的反映不同,我们会得到不同反映的脑电图(EEG)。在医学检测方面,脑电信号的分析结果可以为处理特别的脑系疾
病提供相对应的依据以及针对方案。同时,随着计算机应用技术的成熟,脑与计算机接口技术的发展,我们可以通过计算机来对脑电波进行处理从而分析人们对特定感觉产生的不同的脑电波。脑电波信号是一种非平稳且随机的特殊信号,所以提取脑电波信号中有用处的信息就成为了极为有前途却非常有难度的研究课题。
        1脑电波分析方法概述
        1.1时频分析
        1)时域分析:由于时域分析的直观性非常强而且物理意义明确,所以从这种方法提取特征是早期最为主要的方法。而却有些十分重要的信息在时域上反应明显,比如棘慢波反映了癫痫的信息,还有反映睡眠信息的梭形波等瞬态波形,由此可见,时域分析在目前脑电波定量化分析中占有非常重要的地位。但是时域方法的缺点在于大脑各个区域的脑电波情况并不能得到直接的反映。
        2)频域分析:功率谱分析是频域分析的主要手段。它的主要作用在于把脑电波幅度相对于时间变化的关系转化为脑电波功率相对于频率变化的谱图。时域分析方法对如幅值,波
形的持续时间等脑电波信号波性特征参数进行识别,它没有考虑到信号在频率上的分辨率,而是仅仅给出信号在时间上的分辨率。我们假设脑电波信号的特性是平稳的,只有在这样的假设基础上,我们才可以使用频域分析方法,所以说他的缺点就是只考虑了信号的频域信息而忽略了其在时间上的分辨率。
        3)时频分析(JTFA)即为时频联合域分析(Joint Time-Fre-quency Analysis)的简称。我们知道,脑电波信号是时时变化且非平稳的信号,在不同时刻都有不同的频率成分,所以说单纯的时域和频域都不能准确的表达信号。而且在脑电图(eeg)中许多病变都是以瞬态的形式表现的,那么我们认为,只有把时间和频率结合起来,这样才能取得更为优秀的结果。所以说时频分析方法在时域和频域都同时具有非常良好的局部化分析而且它还具有其他一些很重要的性质,所以在脑电波信号分析中收到了相当的重视。最简单的时频方法就是短时距傅立叶变换(short-time Fourier transformSTFT)。时频分析也有它的缺点,就是必须在时间分辨率和频率分辨率之间进行权衡,本文会在下面简单介绍几种常用的时频分析方法,包括快速傅里叶变换(FFT),连续小波变换,Wigner-Ville分布。
        2快速傅里叶变换(FFT
        FFT是离散傅里叶变换(DFT)的更高效更快速的计算方法。FFF是根据DFT的奇偶虚实等特性,对它的算法进行改进而获得的。FFT在本质上并没有对离散傅里叶变换的理论基础有新的改革,但是它在计算机领域中对于DFT的应用可以说是一个重大的飞跃。当在使用FFT算法时,计算机对离散傅里叶变换所需要进行的乘法次数大大减少,特别是被变换的抽样点数越多,节省的时间复杂度越明显。我们会在下一章中重点介绍FFT算法。
        傅里叶变换在信号处理中具有非常重要的作用,是进行时频分析的主要手段,但是基于离散时间的傅里叶变换的时间复杂度非常大,在傅里叶变换的理论中,对一个有限长度为的离散信号,对其做傅里叶变换,所以说当N很大时它实现时消耗时间的是一个非常大的数量级,所以它的实现难度是非常大的,同时也严重制约了DFT在信号分析中的应用。正是因为DFT算法时间复杂度的考虑,提出了一种快速且有效的算法来实现目的,这就是快速傅里叶变换(FFT)。
        2.1FFT基本思想
        快速傅里叶变换基本思想是把最初的N个采样点的序列,进行相互的组合,变成了一些短序列。由于在离散傅里叶变换计算公式中指数因子的周期性和对称性,我们就分别的求出
了这些短序列的相应的DFT并且我们把他们进行适当的组合,这样就可以减少重复的计算和减少乘法计算的次数从而达到结构优化的目标。
        2.2FFT优点及选用此方法原因
        首先我们知道FFTDFT的快速算法,DFT的时间复杂度为0N*21,经过FFT对原先个采样点的分组后进行DFT在进行组合,达到优化的目的,这样FFT的时间复杂度就是0NlogN)。这样,就从数字角度上解释了为什么采样点越多,FFT在计算机上节省的时间就越多。并且由于其在计算机计算方面的优越性,我们选用此种算法结合matlab来实现此次脑电波谱密度分析程序的研究。
        3基于MATLAB的脑电波谱密度分析程序编写与实现
        3.1数据来源分析
        采集EEG的位置是后脑的0z电极处,采样率600Hz,刺激器频率15Hz
        如图,刺激器每一个小节(trial短时傅里叶变换matlab程序)闪烁3秒,停2秒,之后开始第二小节,总共30个小节。
        以数据集load ssvep_fatigue_1_sl为例,在MATLABload数据集后我们可以得到一个名叫savedata的矩阵2*54000,其中第一行就是0zEEG,第二行就是同步信号,采样率600,所以54000/600=90 sec=30trials*3 sec,之间没有任何无用数据。