脑电信号滤波方式汇总

本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:903290195

各种滤波简介

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

代码案例

Delta波

    [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波结果图像');

Delta波

Theta波

    [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波结果图像');

Theta波

Alpha波

    [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波结果图像');

Alpha波

Beta波

    [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波结果图像');

Beta波

Gamma波

    [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波结果图像');

Gamma波
本文章由脑机学习者Rose笔记分享,QQ交流群:903290195
更多分享,请关注公众号

### 回答1: MATLAB GUI脑电信号滤波有fig文件是指在MATLAB中使用GUI界面进行脑电信号滤波处理时,可以保存和加载fig文件。fig文件是MATLAB中的图形界面设计文件,包含了GUI界面的所有组件和布局信息。 在使用MATLAB GUI进行脑电信号滤波时,可以通过设计GUI界面来进行参数设置、显示信号和结果,并且可以保存和加载这些GUI界面。通过保存GUI界面为fig文件,可以方便地在后续的运行中加载已经设计好的界面,避免每次重新设计界面的麻烦。 当我们需要对脑电信号进行滤波时,可以打开已经保存为fig文件的GUI界面,通过加载界面的方式快速打开之前设计好的滤波界面。然后可以设置滤波所需的参数,加载需要滤波脑电信号数据,然后点击运行按钮进行滤波处理。处理结果可以实时显示在GUI界面上。 总之,MATLAB GUI脑电信号滤波有fig文件是指可以利用已经保存的fig文件,方便地加载和使用之前设计好的GUI界面来进行脑电信号滤波处理。这样可以提高开发效率和操作方便性。 ### 回答2: MATLAB GUI是一种用于构建图形用户界面 (GUI) 的工具,用于处理和可视化数据。在进行脑电信号滤波方面,MATLAB GUI提供了名为figt文件的文件格式。 figt文件是MATLAB GUI中用于保存和加载图形用户界面的文件格式之一。它包含了所有GUI控件的属性和布局信息,包括按钮、文本框、绘图区域等等。在脑电信号滤波的应用中,这些控件可以用于输入信号数据、设置滤波参数和显示滤波结果等。 使用MATLAB GUI进行脑电信号滤波,首先要创建一个GUI窗口,并在窗口中放置各种控件。然后,可以通过代码实现对这些控件的响应,包括读取输入的信号数据,设置滤波器参数,调用滤波算法,并显示滤波结果。之后,可以将所有控件的属性和布局信息保存为figt文件。 figt文件的好处在于,它可以保存GUI的完整状态,包括控件的位置、大小、属性值等。这意味着,将figt文件分享给他人时,对方可以直接加载该文件,获得与原始GUI完全一致的界面,并能够进行进一步的操作和分析。此外,figt文件还可以方便地进行备份、版本控制和迁移等操作。 总之,MATLAB GUI是一种方便实用的工具,可用于创建和操作用于脑电信号滤波的图形界面。通过使用figt文件保存GUI的状态,可以实现界面的共享和迁移,提高工作效率和数据可视化的便捷性。 ### 回答3: MATLAB是一种功能强大的编程工具,可用于开发GUI界面。在脑电信号滤波方面,MATLAB提供了FILT工具箱文件(.figt),用于构建图形用户界面(GUI),方便用户对脑电信号进行滤波处理。 .figt文件是MATLAB中GUI界面的一种保存格式,包含了界面的布局、控件以及与其关联的回调函数等信息。用户可以通过打开.figt文件,在MATLAB的GUIDE(GUI开发环境)中进行编辑和定制。 通过.figt文件,用户可以创建一个直观易用的脑电信号滤波GUI界面。这个界面可以包括滤波算法和参数的选择、信号输入和输出的设置、显示图形界面等功能。用户可以根据自己的需求,对界面进行修改和扩展。 使用MATLAB GUI界面进行脑电信号滤波的好处是操作简便、直观易懂。用户可以通过界面的控件进行参数的调整和信号的加载,实时查看滤波效果。同时,MATLAB提供了丰富的滤波算法和函数库,用户可以根据需要选择合适的滤波方法进行处理。 总之,MATLAB GUI界面可以帮助用户快速构建脑电信号滤波的处理界面,并提供了丰富的滤波算法,方便用户根据需求进行定制和扩展。使用.figt文件可以保存GUI界面的布局和设置,方便用户进行后续的编辑和调整。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑机接口社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值