Python-EEG工具库MNE中文教程(9)-参考电极应用

目录

  • MNE-Python中的参考
  • 引用简介
    • 无需重新引用(No re-referencing)
    • 平均参考(Average reference)
    • 单电极(A single electrode)
    • 多个电极的平均值(The mean of multiple electrodes)
  • Python案例

@(目录)

本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195

MNE-Python中的参考

MNE-Python中的平均参考设置

set_eeg_reference(self,
                  ref_channels='average',
                  projection=False,
                  ch_type='auto',
                  verbose=None)

指定用于EEG信号的参考。

默认情况下,MNE-Python将自动重新参考EEG信号,以使用平均参考(请参见下文)。 这个函数可以显示指定所需的EEG参考。这可以是现有电极或新的虚拟通道。 此函数将根据所需参考重新参考数据,并防止MNE-Python自动添加平均参考投影。

引用简介

一些常见的参考方案以及ref_channels参数的相应值如下:

无需重新引用(No re-referencing)

如果EEG数据已经在使用正确的参考信号,则设置ref_channels = []。这将阻止MNE-Python自动添加平均参考投影。

平均参考(Average reference)

通过设置ref_channels =‘average‘来对当前EEG信号进行平均,创建一个新的虚拟参考电极。
如果在info[‘bads‘]中设置了错误的EEG通道,则会自动排除它们。

单电极(A single electrode)

将ref_channels设置为包含将用作新参考的通道名称的列表,例如ref_channels = [‘Cz‘]。

多个电极的平均值(The mean of multiple electrodes)

通过计算从两个或多个选定通道记录的当前EEG信号的平均值,可以创建一个新的虚拟参考电极。
将ref_channels设置为通道名称列表,指定要使用的通道。
例如,要使用平均乳突参考,在使用10-20命名方案时,请设置ref_channels = [‘M1‘,‘M2‘]。

Python案例

import mne
from mne.datasets import sample
from matplotlib import pyplot as plt

# 数据文件存放地址
data_path = sample.data_path()
raw_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw.fif'
event_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw-eve.fif'
event_id, tmin, tmax = 1, -0.2, 0.5

# 读取fif文件,并生成raw对象
raw = mne.io.read_raw_fif(raw_fname, preload=True)
events = mne.read_events(event_fname)

# 将绘制脑电通道,以可视化参考方案中的差异。
picks = mne.pick_types(raw.info,
                       meg=False,
                       eeg=True,
                       eog=True,
                       exclude='bads')

下面将应用不同的EEG参考方案,并绘制所产生的诱发电位。
注意,当使用mne.Epochs构造epochs时,这里提供proj = True参数。这意味着将自动应用所有可用的projector(投影)。
具体来说,如果存在由raw.set_eeg_reference(‘average‘,projection = True)设置的平均参考投影机,则MNE在创建epochs(时间片段)时会应用此projector(投影)。

reject = dict(eog=150e-6)
epochs_params = dict(events=events,
                     event_id=event_id,
                     tmin=tmin, tmax=tmax,
                     picks=picks,
                     reject=reject, proj=True)

fig, (ax1, ax2, ax3) = plt.subplots(nrows=3, ncols=1, sharex=True)

"""
设置为 没有参考。
这里假定EEG是由正确的参考得到的。
这明确阻止MNE添加默认的EEG参考。
任何普通的参考projector(投影)都会被自动删除。
"""
raw.set_eeg_reference([])
evoked_no_ref = mne.Epochs(raw, **epochs_params).average()

evoked_no_ref.plot(axes=ax1,
                   titles=dict(eeg='Original reference'),
                   show=False,
                   time_unit='s')
"""
平均参考 默认情况下就是平均参考,但也可以显式添加。
"""
raw.set_eeg_reference('average', projection=True)
evoked_car = mne.Epochs(raw, **epochs_params).average()

evoked_car.plot(axes=ax2,
                titles=dict(eeg='Average reference'),
                show=False,
                time_unit='s')
"""
从平均参考重新参考EEG 001和EEG 002通道的平均值。
"""
raw.set_eeg_reference(['EEG 001', 'EEG 002'])
evoked_custom = mne.Epochs(raw, **epochs_params).average()

evoked_custom.plot(axes=ax3,
                   titles=dict(eeg='Custom reference'),
                   time_unit='s')
plt.show()

"""
绘制raw对象中所有通道的曲线图
"""
raw.plot(n_channels=len(raw))
plt.show()

"""
使用所有通道的平均值作为参考
"""
raw_avg_ref = raw.copy().set_eeg_reference(ref_channels='average')
raw_avg_ref.plot(n_channels=len(raw))
plt.show()

参考
MNE-Python 参考电极
脑机学习者Rose笔记分享,QQ交流群:903290195
更多分享,请关注公众号

原文地址:https://www.cnblogs.com/RoseVorchid/p/12037294.html

时间: 2024-11-05 06:13:01

Python-EEG工具库MNE中文教程(9)-参考电极应用的相关文章

Python-EEG工具库MNE中文教程(10)-信号空间投影SSP数学原理

目录 projector(投影)和投影背景 案例解释投影原理 导入工具库 什么是projector(投影)? 计算正交平面 使用SVD计算投影矩阵 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195 projector(投影)和投影背景 projector(投影)(简称proj),也称为信号空间投影(SSP),定义了应用于空间上的EEG或MEG数据的线性操作. 可以将该操作看做是一个矩阵乘法,通过将数据投影到较低维度的

Apple Swift 中文教程 快速参考 基本语法 更新中...

总的来说,语法有java的味道,也有python的味道,还有swift自己的味道. 有些语法还是挺不伦不类的,不太好理解,即使你有几年的java或python经验,也不见得有些语法你能很轻松的看明白. 有些语法特性很好,很个性,但有些语法个人感觉乱,特性多,注意点多,还不太好理解. 慢慢学习吧... ================================================================= 值类型 Int Double Bool String 用双引号"&

python私有工具库小结

1.一些试用py工具清单 https://www.zhihu.com/question/60402355/answer/752917744?utm_source=wechat_session&utm_medium=social&utm_oi=1081669345989529600&from=singlemessage 原文地址:https://www.cnblogs.com/andy9468/p/11865305.html

Vue-router中文教程-Vue-router参考手册.CHM

下载地址http://download.csdn.net/detail/shouce_ren/9689243 百度云下载地址

1001种玩法 | Python Prompt Toolkit:构建强大交互式命令行的 Python 工具库

Python Prompt Toolkit:构建强大交互式命令行的 Python 工具库 prompt_toolkit 是一个用于构建强大交互式命令行的 Python 工具库. 你是不是在找交互式的 Python shell 工具 ptpython 呢?我们把 ptpython 的源码转移到了一个独立的仓库.如此一来,我们确信  prompt_toolkit 库不会被其他 ptpython 东西"污染",并且 ptpython 也可以独立开发.现在必须用下面这个命令安装 ptpytho

Python 标准库 BaseHTTPServer 中文翻译

Python 标准库 BaseHTTPServer 中文翻译. 注意: BaseHTTPServer模块在Python3中已被合并到http.server,当转换你的资源为 Python3 时 2to3 工具将自己主动适配导入. 源代码:Lib/BaseHTTPServer.py 此模块定义了两个类用于实现HTTP服务器(Web servers).通常,此模块不被直接使用.可是它用来作为基类创建功能性的Web servers. 查看 SimpleHTTPServer 和 CGIHTTPServe

Python Kivy 中文教程:安装(Windows)

Kivy 是一套用于跨平台快速应用开发的开源框架,只需编写一套代码,便可运行于各大桌面及移动平台上(包括 Linux, Windows, OS X, Android, iOS, 以及 Raspberry Pi) Kivy 采用 Python 和 Cython  编写,在国外已经十分火爆,受关注程度甚至一度超越了老牌的 Python GUI 工具 PyQt.可惜 Kivy 在国内还鲜为人知,咪博士将会陆续推出一系列 Kivy 中文教程.这一篇先教大家,在 Windows 上 安装 Kivy. 零.

Python 日志工具(logging) 基础教程

什么是 logging ? 日志是跟踪软件运行时发生的事件,软件的开发人员可以通过日志快速的定位问题的位置.事件也分重要性即事件的严重程度. 什么时候使用日志? logging 提供了一组方便操作日志记录的功能,这些是 debug(), info(),warning(),error(),critical(). 通过想要执行的任务确定使用日志记录的方法. 你想要执行的任务 日志记录的最佳方法 一个脚本或程序显示在终端上 print() 程序正常运行过程中发生的事件 logging.info() o

Python 必备好库 - 好工具收藏

apscheduler collections collections.OrderDict collections.defaultdict Python 标准库提供了 collections 模块.这个方便的附加组件可以为你提供更多数据类型. from collections import OrderedDict, Counter # Remembers the order the keys are added! x = OrderedDict(a=1, b=2, c=3) # Counts t