脑电信号特征分析一脑电信号的概念已经研究意义脑电信号(Electroencephalograph,EEG)中包含了大量的生理与病理信息,是进行神经系统疾病和症状,特别是癫痫病诊断的主要依据。从20世纪初,人们就开始研究人的脑电信号,多年以来,人们已经积累了一系列脑电信号处理的理论和方法,但是进展不是很快。这主要是因为人们目前对脑电信号产生的机理认识还不够,另外脑电信号的非平稳性和背景噪声等都很强,因此脑电信号的分析与处理一直是非常吸引人但又极其困难的研究课题。近年来,电子技术以及非线形分析理论的快速发展为我们提供了脑电信号处理的新手段。本文将利用快速傅立叶变换(FFT)理论来分析脑电序列信号的频谱和功率谱。脑电图是脑神经细胞电生理活动在大脑皮层或头皮表面的总体反映。临床实践表明,脑电信号中包含了大量生理与疾病信息,所以我们通过对脑电信号的处理,不仅可以为医生提供临床诊断依据,而且可以为某些脑疾病(比如癫痫、脑肿瘤、智力状况等)提供有效的治疗手段。二脑电信号特征提取的内容研究脑电图信号(EEG)在时域、频域方面所具有的特征,计算出人的大脑在不同状态下的功率频特征。就是利用快速傅立叶变换(FFT)来研究脑电序列信号的谱值。脑电信号可以视作为一组时间序列,时间序列的时域是指是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。若考虑离散时间,时域中的函数或信号,在各个离散时间点的数值均为已知。若考虑连续时间,则函数或信号在任意时间的数值均为已知。而其对应的频谱是是描述信号在频率方面特性时用到的一种坐标系。对任何一个事物的描述都需要从多个方面进行,每一方面的描述仅为我们认识这个事物提供部分的信息。功率谱是功率谱密度函数的简称,它定义为单位频带内的信号功率。它表示了信号功率随着频率的变化情况,即信号功率在频域的分布状况。常用于功率信号(区别于能量信号)的表述与分析,其曲线(即功率谱曲线)一般横坐标为频率,纵坐标为功率。三特征分析的软件实现及结果分析通过信号的时域波形,可以得出信号的幅值变换范围,信号的波动情况以及可以求出信号的均值方程等特征值。基于MATLAB实现数据的提取,采样load函数提取采集后的脑电信号数据,绘制脑电信号时域波形如图1所示:01000200030004000500060007000-2500-2000-1500-1000-500050010001500原始脑电信号时域图time幅值图1脑电信号的时域波形从图1看出,数据量有6400个,选取的脑电信号幅值在0附件范围段波动。但信号并不平稳,会出现较大的尖峰信号。需要对信号进行频谱转换。对原始脑电信号进行快速傅里叶变换,如图2所示,经过傅里叶变换后,数据呈现出随频率变换的曲线如图2所示。050100150200250300350400450500024681012141618脑电信号频域图Frequre频谱值图2脑电信号的频谱图从图中可以看出,脑电信号存在较多的高频信号,说明原始信号中存在较多的外界干扰信号,因此,在实际应用时,一般情况下,首先需要对信号进行预处理,滤除信号的噪声干扰已经信号的尖峰误差,进而可以得出较实用的脑电信号。050100150200250300350400450500-20-15-10-50510152025脑电信号功率域图Frequre功率谱值图3脑电信号的功率谱图该图说明了脑电功率随频率的变化规律,可以直观的看出脑电节律的分布与变换情况。四基于MATLAB的代码程序%脑电信号的特征分析functionNaoDian_Analysisclc;closeall;data0=load('Competition_test');A=data0.X;B=A(:,:,1);%size(B)C=zeros(6400,1);fori=1:100forj=1:64C(i*j)=B(i,j,1);%提取脑电信号endendplot(C);title('原始脑电信号时域图');xlabel('time');ylabel('幅值');%求频谱fs=1000;%自己设置采样频率N=3000;%自己设置采样点数NFFT=2^nextpow2(N);%转化为2的基数倍f=fs/2*linspace(0,1,NFFT/2);%求出FFT转化频率E_change=fft(C,NFFT)/N;%进行FFT变换figureplot(f,2*abs(E_change(1:NFFT/2)));title('脑电信号频域图');xlabel('Frequre');ylabel('频谱值');%求功率谱window=boxcar(length(C));%矩形窗nfft=1024;[Pxx,f]=periodogram(C,window,nfft,fs);%直接法figureplot(f,10*log10(Pxx));title('脑电信号功率域图');xlabel('Frequre');ylabel('功率谱值');