前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >脑电信号滤波方式汇总

脑电信号滤波方式汇总

作者头像
脑机接口社区
发布2020-06-30 14:56:14
9170
发布2020-06-30 14:56:14
举报
文章被收录于专栏:脑机接口

可以通过对脑电信号进行分析得到较为准确反映用户的行为以及思想方式,在进行分析前需要提取脑电信号中的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;

滤波案例

1.Delta波

代码语言:javascript
复制
    [header,data] = edfread('Affaf Ikram 20121020 1839.L1.edf');
    fp_data=data(1,:);
    fp_data=resample(fp_data,100,500); %降采样率为100hz
    fc = 600;          %采样频率600Hz
    N = 30000;           %采样点数
    n = 0:N-1;          
    f = n*fc/N;         %频率序列
    Wn = [0.5*2 4*2]/fc;%设置通带为0.5-4Hz Delta波
    [k,l] = butter(2,Wn);%4阶IIR滤波器
    result = filtfilt(k,l,fp_data);
    tmp = fft(result);
    fp1_Delta= ifft(tmp);
    figure,
    subplot(211),plot(f(1:N/2),abs(tmp(1:N/2)*2/N));
    title('滤波后频谱结果,频率:0.5-4Hz');
    axis([0,100,-inf,inf])
    subplot(212),plot(fp1_Delta);
    title('脑波滤波后Delta波结果图像');

2.Theta波

代码语言:javascript
复制
    [header,data] = edfread('Affaf Ikram 20121020 1839.L1.edf');
    fp_data=data(1,:);
    fp_data=resample(fp_data,100,500); %降采样率为100hz
    fc = 600;          %采样频率600Hz
    N = 30000;           %采样点数
    n = 0:N-1;          
    f = n*fc/N;         %频率序列
    Wn = [4*2 8*2]/fc;%设置通带为4-8Hz Theta波
    [k,l] = butter(2,Wn);%4阶IIR滤波器
    result = filtfilt(k,l,fp_data);
    tmp = fft(result);
    fp1_Delta= ifft(tmp);
    figure,
    subplot(211),plot(f(1:N/2),abs(tmp(1:N/2)*2/N));
    title('滤波后频谱结果,频率:4-8Hz');
    axis([0,100,-inf,inf])
    subplot(212),plot(fp1_Delta);
    title('脑波滤波后Theta波结果图像');

3.Alpha波

代码语言:javascript
复制
    [header,data] = edfread('Affaf Ikram 20121020 1839.L1.edf');
    fp_data=data(1,:);
    fp_data=resample(fp_data,100,500); %降采样率为100hz
    fc = 600;          %采样频率600Hz
    N = 30000;           %采样点数
    n = 0:N-1;          
    f = n*fc/N;         %频率序列
    Wn = [8*2 13*2]/fc;%设置通带为8-13Hz Alpha波
    [k,l] = butter(2,Wn);%4阶IIR滤波器
    result = filtfilt(k,l,fp_data);
    tmp = fft(result);
    fp1_Delta= ifft(tmp);
    figure,
    subplot(211),plot(f(1:N/2),abs(tmp(1:N/2)*2/N));
    title('滤波后频谱结果,频率:8-13Hz');
    axis([0,100,-inf,inf])
    subplot(212),plot(fp1_Delta);
    title('脑波滤波后Alpha波结果图像');

4.Beta波

代码语言:javascript
复制
    [header,data] = edfread('Affaf Ikram 20121020 1839.L1.edf');
    fp_data=data(1,:);
    fp_data=resample(fp_data,100,500); %降采样率为100hz
    fc = 600;          %采样频率600Hz
    N = 30000;           %采样点数
    n = 0:N-1;          
    f = n*fc/N;         %频率序列
    Wn = [13*2 32*2]/fc;%设置通带为13-32Hz Beta波
    [k,l] = butter(2,Wn);%4阶IIR滤波器
    result = filtfilt(k,l,fp_data);
    tmp = fft(result);
    fp1_Delta= ifft(tmp);
    figure,
    subplot(211),plot(f(1:N/2),abs(tmp(1:N/2)*2/N));
    title('滤波后频谱结果,频率:13-32Hz');
    axis([0,100,-inf,inf])
    subplot(212),plot(fp1_Delta);
    title('脑波滤波后 Beta波结果图像');

5.Gamma波

代码语言:javascript
复制
    [header,data] = edfread('Affaf Ikram 20121020 1839.L1.edf');
    fp_data=data(1,:);
    fp_data=resample(fp_data,100,500); %降采样率为100hz
    fc = 600;          %采样频率600Hz
    N = 30000;           %采样点数
    n = 0:N-1;          
    f = n*fc/N;         %频率序列
    Wn = [32*2 40*2]/fc;%设置通带为32-50Hz Gamma波
    [k,l] = butter(2,Wn);%4阶IIR滤波器
    result = filtfilt(k,l,fp_data);
    tmp = fft(result);
    fp1_Delta= ifft(tmp);
    figure,
    subplot(211),plot(f(1:N/2),abs(tmp(1:N/2)*2/N));
    title('滤波后频谱结果,频率:32-50Hz');
    axis([0,100,-inf,inf])
    subplot(212),plot(fp1_Delta);
    title('脑波滤波后Gamma波结果图像');
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 脑机接口社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档