前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >脑电分析系列[MNE-Python-17]| 使用多种滤波器对脑电数据去除伪影

脑电分析系列[MNE-Python-17]| 使用多种滤波器对脑电数据去除伪影

作者头像
脑机接口社区
发布2022-08-17 10:37:28
1.3K0
发布2022-08-17 10:37:28
举报
文章被收录于专栏:脑机接口

一些由电源线造成的伪影具有某些特定范围的频率(比如,由电网产生的电力线噪声,主要由50Hz(或60Hz取决于实验的地理位置)的尖峰组成)。因此可以通过滤波来固定。

本文分别使用陷波滤波器低通滤波高通滤波来对EEG数据去除电源线等噪声。

陷波滤波器(Notch Filter)简介:

陷波滤波器指的是一种可以在某一个频率点迅速衰减输入信号,以达到阻碍此频率信号通过的滤波效果的滤波器。陷波滤波器属于带阻滤波器的一种,其阻带很窄,因此也称点阻滤波器。常常用于去除固定频率分量或阻带很窄的地方。如用于去除直流分量,去除某些特定频率分量.

本案例介绍了如何在MNE-Python中过滤数据。

代码语言:javascript
复制
import numpy as np
import mne
from mne.datasets import sample

data_path = sample.data_path()
raw_fname = data_path + '/MEG/sample/sample_audvis_raw.fif'
proj_fname = data_path + '/MEG/sample/sample_audvis_eog_proj.fif'

"""
提取0秒到20秒之间的数据
"""
tmin, tmax = 0, 20

"""
读取原始数据
通过在加载前剪切原始数据来节省内存
"""
raw = mne.io.read_raw_fif(raw_fname)
raw.crop(tmin, tmax).load_data()
raw.info['bads'] = ['MEG 2443', 'EEG 053']  # bads + 2 more

"""
设置 频率在2Hz到300Hz之间
"""
fmin, fmax = 2, 300
"""
FFT大小为n_fft,在理想情况下为2的幂
"""
n_fft = 2048

# 选择一通道的子集
selection = mne.read_selection('Left-temporal')
picks = mne.pick_types(raw.info, meg='mag', eeg=False, eog=False,
                       stim=False, exclude='bads', selection=selection)
raw.plot_psd(area_mode='range', tmax=10.0, picks=picks, average=False)

用陷波滤波去除电源线噪声

去除电力线噪声可以直接在原始对象上使用陷波滤波器,指定要切断的频率阵列:

代码语言:javascript
复制
raw.notch_filter(np.arange(60, 241, 60), picks=picks, fir_design='firwin')
raw.plot_psd(area_mode='range', tmax=10.0, picks=picks, average=False)

用低通滤波去除电源线噪声

如果只对低频感兴趣,可以在电力线噪声的峰值以下进行低通滤波。

代码语言:javascript
复制
# 50hz以下的低通滤波
raw.filter(None, 50., fir_design='firwin')
raw.plot_psd(area_mode='range', tmax=10.0, picks=picks, average=False)

高通滤波消除缓慢漂移

为了消除缓慢的漂移,可以使用高通滤波。

代码语言:javascript
复制
raw.filter(1., None, fir_design='firwin')
raw.plot_psd(area_mode='range', tmax=10.0, picks=picks, average=False)

如果想要一步完成低通和高通滤波,可以做一个所谓的带通滤波器,如下所示:

代码语言:javascript
复制
# 1 Hz-50 Hz范围内的带通滤波
raw.filter(1, 50., fir_design='firwin')
raw.plot_psd(area_mode='range', tmax=10.0, picks=picks, average=False)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 陷波滤波器(Notch Filter)简介:
  • 用陷波滤波去除电源线噪声
  • 用低通滤波去除电源线噪声
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档