最近由于项目需要,因此接触了脑电信号,脑电信号能够比较准确的反映用户的行为以及思想方式,在得到一段脑电信号后,首先需要将脑电信号中所包含的Delta波,Theta波,Alpha波,Beta波以及Gamma波完整的提取出来。
Delta波:0.5-4Hz;
Theta波:4-8Hz;
Alpha波:8-13Hz;
Beta波:13-32Hz;
Gamma波:>32Hz;
由于在脑电信号的采集过程中,会受到周围噪声的干扰以及工频噪声的影响,因此,需要首先对原始信号进行噪声的滤除,通过利用带通滤波器,将0.5Hz - 50Hz频率之间的信号取出。使用
巴特沃斯带通滤波器进行信号的滤波。使用巴特沃斯滤波器,需要设置如下参数:
采样频率fc;采样点数N;
设置频率序列f;设置通带频率Wn;
涉及以下函数:
butter();filtfilt();
代码如下所示:
fc = 2560; %采样频率2048Hz
N = 2048; %采样点数1024
n = 0:N-1;
f = n*fc/N; %频率序列
Wn = [0.5*2 50*2]/fc;%设置通带为0.5-50Hz
[k,l] = butter(2,Wn);%4阶IIR滤波器
result = filtfilt(k,l,User_3_Channel_AF3);
tmp = fft(result);
User_3_Channel_AF3_IFFT = ifft(tmp);
figure,
subplot(211),plot(f(1:N/2),abs(tmp(1:N/2)*2/N));title('滤波后频谱结果,频率:0.5-50Hz');axis([0,100,-inf,inf])
subplot(212),plot(User_3_Channel_AF3_IFFT);title('脑波滤波后结果图像');
原始数据频谱如下所示:
通过以上步骤可以将满足频率需求的信号滤出。结果如下所示:
通过设置不同的通带频率,将指定频率的脑波信号滤出。结果如下所示:
通过以上步骤可以将满足特定频率的脑电信号滤出。