脑电信号特征分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
脑电信号特征分析
一脑电信号的概念已经研究意义
脑电信号(Electroencephalograph, EEG)中包含了大量的生理与病理信息,是进行神经系统疾病和症状,特别是癫痫病诊断的主要依据。从20世纪初,人们就开始研究人的脑电信号,多年以来,人们已经积累了一系列脑电信号处理的理论和方法,但是进展不是很快。这主要是因为人们目前对脑电信号产生的机理认识还不够,另外脑电信号的非平稳性和背景噪声等都很强,因此脑电信号的分析与处理一直是非常吸引人但又极其困难的研究课题。近年来,电子技术以及非线形分析理论的快速发展为我们提供了脑电信号处理的新手段。本文将利用快速傅立叶变换(F F T)理论来分析脑电序列信号的频谱和功率谱。
脑电图是脑神经细胞电生理活动在大脑皮层或头皮表面的总体反映。临床实践表明,脑电信号中包含了大量生理与疾病信息,所以我们通过对脑电信号的处理,不仅可以为医生提供临床诊断依据,而且可以为某些脑疾病(比如癫痫、脑肿瘤、智力状况等)提供有效的治疗手段。
二脑电信号特征提取的内容
研究脑电图信号(EEG)在时域、频域方面所具有的特征,计算出人的大脑在不同状态下的功率频特征。就是利用快速傅立叶变换(FFT)来研究脑电序列信号的谱值。脑电信号可以视作为一组时间序列,时间序列的时域是指是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。若考虑离散时间,时域中的函数或信号,在各个离散时间点的数值均为已知。若考虑连续时间,则函数或信号在任意时间的数值均为已知。而其对应的频谱是是描述信号在频率方面特性时用到的一种坐标系。对任何一个事物的描述都需要从多个方面进行,每一方面的描述仅为我们认识这个事物提供部分的信息。功率谱是功率谱密度函数的简称,它定义为单位频带内的信号功率。它表示了信号功率随着频率的变化情况,即信号功率在频域的分布状况。常用于功率信号(区别于能量信号)的表述与分析,其曲线(即功率谱曲线)一般横坐标为频率,纵坐标为功率。
三特征分析的软件实现及结果分析
通过信号的时域波形,可以得出信号的幅值变换范围,信号的波动情况以及可以求出信号的均值方程等特征值。基于MATLAB实现数据的提取,采样load函数提取采集后的脑电信号数据,绘制脑电信号时域波形如图1所示:
0100020003000
4000500060007000
原始脑电信号时域图
time 幅值
图1 脑电信号的时域波形
从图1看出,数据量有6400个,选取的脑电信号幅值在0附件范围段波动。但信号并不平稳,会出现较大的尖峰信号。需要对信号进行频谱转换。
对原始脑电信号进行快速傅里叶变换,如图2所示,经过傅里叶变换后,数据呈现出随频率变换的曲线如图2所示。
050100150200250300
350400450500
脑电信号频域图
Frequre 频谱值
图2 脑电信号的频谱图
从图中可以看出,脑电信号存在较多的高频信号,说明原始信号中存在较多的外界干扰信号,因此,在实际应用时,一般情况下,首先需要对信号进行预处理,滤除信号的噪声干扰已经信号的尖峰误差,进而可以得出较实用的脑电信号。
脑电信号功率域图
Frequre 功率谱值
图3 脑电信号的功率谱图
该图说明了脑电功率随频率的变化规律,可以直观的看出脑电节律的分布与变换情况。
四 基于MATLAB 的代码程序
% 脑电信号的特征分析
function NaoDian_Analysis
clc;
close all ;
data0 = load('Competition_test');
A = data0.X;
B = A(:,:,1);
% size(B)
C = zeros(6400,1);
for i = 1:100
for j = 1:64
C(i*j) = B(i,j,1); % 提取脑电信号
end
end
plot(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变换
figure
plot(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); %直接法
figure
plot(f,10*log10(Pxx));title('脑电信号功率域图');xlabel('Frequre');ylabel('功率谱值');