参考电极

安置在头皮上的电极为作用电极(active electrode)。放置在身体相对零电位点的电极即为参考电极(reference electrode),也称为参考电极或标准电极。

记录到的脑电信号即是作用电极与参考电极的差值(电位差)。

如果身体上有一个零电位点,那么将参考电极放置于这个点,头皮上其它部位与该点的电极之间的电位差就等于后者的电位变化的绝对值。但这种零电位点理论上指的是机体位于电解质液中时,距离机体无限远的点,而实际上我们能够利用到的点是距离脑尽可能远的身体上的某一个点。因此,如果选躯干或四肢,脑电中就会混进波幅比脑电大的多的心电,这也是脑电记录使用耳垂、鼻尖、锁骨或乳突部作为参考电极的原因。但鼻尖参考电极由于易出汗而产生基线不稳的伪迹,乳突部、下颌部等参考电极也可引起心电图、血管波动等伪迹,比如,耳垂电极可能很容易移动,信号与头部同侧的电极更相似。也可采用Cz附近的记录点作为参考电极,将M1和M2两个乳突位置也作为脑电记录点,这样有助于系统观察乳突部的脑电特征。

即使在没有专门指定电极为参考的情况下,EEG记录硬件仍将头皮电极之一作为参考,并且记录软件可能会或可能不会显示这样的参考电极(它可能显示为完全平坦的通道,否则软件可能会在显示之前减去所有信号的平均值,使其看起来好像没有参考)。

设置脑电图参考

本教程描述了如何在MNE-Python中设置或更改EEG参考。

set_eeg_reference(self, ref_channels='average',projection=False, ch_type='auto', verbose=None)
指定用于EEG信号的参考。参数
ref_channels: list of str | str
用于构造参考的通道名称。如果要应用平均参考,就在此处指定"average"(默认情况就是使用average)。
如果指定了空列表,则表示您已假定该数据已经具有正确的引用,并且MNE将不会尝试对该数据进行任何重新参考。
默认为平均参考。projection:bool
如果ref_channels ='average',则此参数指定是否应将平均参考计算为projection(True)或不作为projection(False;默认)。
如果projection = True,则将平均参考作为projection添加,并且不应用于数据(后面可以使用apply_proj方法应用)。
如果projection = False,则将平均参考直接应用于数据。
如果ref_channels不是'average',则projection必须设置为False。
默认情况为False.ch_type:'auto' | 'eeg' | 'ecog' | 'seeg'
要应用参考的通道类型的名称。如果选择'auto',则会选择(按此顺序)找到的第一个eeg,egg或seeg的通道类型。返回值
Raw对象实例 | Epochs对象实例| Evoked对象实例注:
1.如果请求的参考不是平均参考,则此函数将移除任何预先存在的平均参考投影。
2.在源定位期间,EEG信号应具有平均参考值。
3.为了应用参考,必须预先加载数据。如果ref_channels ='average'且projection = True,则无需执行此操作。
4.对于一般参考,如果在info['bads']中设置了错误的EEG频道,则会自动排除这它们。

案例-参考电极

import os
import mne
import matplotlib.pyplot as plt
%matplotlib auto"""
设置原始数据地址
"""
sample_data_folder = mne.datasets.sample.data_path()
sample_data_raw_file = os.path.join(sample_data_folder, 'MEG', 'sample','sample_audvis_raw.fif')
"""
读取数据生成raw对象实例
"""
raw = mne.io.read_raw_fif(sample_data_raw_file, verbose=False)
raw.crop(tmax=60).load_data()
raw.pick(['EEG 0{:02}'.format(n) for n in range(41, 60)])

设置或更改参考通道

如果想要重新计算数据(就是不使用原来已经记录或保存数据时使用的参考电极计算),则MNE-Python中为Raw对象提供了set_eeg_reference()方法以及mne.add_reference_channels()方法。

如果使用头皮电极作为参考,但未与原始数据一起保存(通常不使用参考通道),则您可能希望在重新参考之前将其重新添加到数据集中。

例如,如果您的EEG系统使用通道Fp1作为参考记录,但在数据文件中没有包含Fp1,则使用set_eeg_reference()进行设置。

例如,将Cz设置为新参考,然后将在Cz处的信号减去,而不恢复Fp1处的信号。在这种情况下,可以使用add_reference_channels()在重新引用之前将Fp1添加回平面通道。

(由于这里的示例数据没有使用10-20电极命名系统,因此以下示例将EEG 999添加为缺少的参考,然后将该参考设置为EEG 050)

这是数据在其原始状态下的显示方式:

raw.plot()
plt.show()

默认情况下,add_reference_channels()返回一个副本,因此稍后我们可以返回到原始对象。

如果想要更改现有的Raw对象,则可以指定copy = False。

# 添加一个新的参考通道(新添的参考通道中的所有值均为0)
raw_new_ref = mne.add_reference_channels(raw, ref_channels=['EEG 999'])
raw_new_ref.plot()
plt.show()

如上图,刚添加的EEG 999通道作为参考电极,是一个平坦的效果。

# 设置 `EEG 050` 作为参考电极
raw_new_ref.set_eeg_reference(ref_channels=['EEG 050'])
raw_new_ref.plot()
plt.show()

如上效果图,新的参考通道(EEG 050)现在是平坦的,而我们添加回数据中的原始参考通道(EEG 999)具有非零信号。

还要注意,EEG 053是一个坏的信号(在raw.info['bads']中标记为"bad")不受重新参考的影响。

设定平均参考 

想要设置一个"虚拟参考",即所有通道平均值,可以使用set_eeg_reference()与ref_channels ='average'。

如上面所讲的,这不会影响任何标记为"bad"的频道,也不会在计算平均值时包含不良频道。

但是,它确实就地修改Raw对象,因此我们将首先创建一个副本,以便稍后仍可以返回未修改的Raw对象:

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

创建平均参考作为projector(投影)具有以下优点:

在绘图时可以打开或关闭projector(投影),因此很容易可视化平均参考对数据的影响。

如果将附加通道标记为"bad",或者以后选择了通道的子集,则将重新计算projector(投影)以考虑这些变化(从而确保信号为零均值)。

如果还有其他未使用的projector(投影)影响EEG通道(例如用于消除心跳或眨眼伪像的SSP projector(投影)),则在应用或移除这些projector(投影)之前,无法执行EEG重新参考;将EEG参考添加为projector(投影)不受此限制。

for title, proj in zip(['Original', 'Average'], [False, True]):fig = raw.plot(proj=proj, n_channels=len(raw))# make room for titlefig.subplots_adjust(top=0.9)fig.suptitle('{} reference'.format(title), size='xx-large', weight='bold')

不用于商业行为,转载请联系后台

若有侵权,请后台留言,管理员即时删侵!

更多阅读

脑疾病的“希望之光”,中国脑机接口技术将有新突破

使用CNN-LSTM混合深度学习分类基于MUSE采集的运动想象EEG信号

[Python-1]| MNE-Python详细安装与使用

[Python-2]| MNE中数据结构Raw及其用法简介

[Python-3]| MNE中数据结构Epoch及其创建方法

[Python-5]| 机器学习算法随机森林判断睡眠类型

猴子意念打字,有可能敲出莎士比亚全集

Nature子刊:利用闭环脑机接口缓解疼痛感

利用脑机接口从鸟的脑电波中重现鸟唱歌声

投稿通道

如何让你的工作让更多人知晓和受益?

脑机接口社区就是这样一个连接学界、

企业界和爱好者的平台渠道。

社区鼓励高校实验室、企业或个人在我们平台上分享优质内容。

稿件要求

稿件系个人原创作品,若已在其他平台发表,请明确标注。

稿件一经录取,便提供稿费!

投稿通道

微信扫码,备注:投稿+姓名+单位

微信交流群,请扫码上方微信

(备注:姓名+单位+专业/领域行业)

QQ交流群:913607986

你的每一次在看,我都很在意!

脑电分析系列[MNE-Python-8]| 参考电极简介相关推荐

  1. 脑电分析系列[MNE-Python-5]| Python机器学习算法随机森林判断睡眠类型

    案例介绍 本案例通过对多导睡眠图(Polysomnography,PSG)数据进行睡眠阶段的分类来判断睡眠类型. 训练:对Alice的睡眠数据进行训练: 测试:利用训练结果对Bob的睡眠数据进行测试, ...

  2. 脑电分析系列[MNE-Python-21]| Python协方差矩阵处理脑电数据

    今天主要介绍一下MNE中如何用协方差矩阵来处理脑电数据的. MNE中的许多方法,包括源估计和一些分类算法,都需要根据记录进行协方差估计. 在本教程中,我们将介绍传感器协方差计算的基础知识,并构建一个噪 ...

  3. 脑电分析系列[MNE-Python-6]| Python读取.set文件和.locs文件

    本案例主要介绍如何读取eeglab示例文件.set以及.locs文件. .set文件记录的是采集的信息,主要内容包括通道数,事件数,开始时间与结束时间等. .locs文件记录的是电极位置信息. 知识点 ...

  4. 脑电分析系列[MNE-Python-2]| MNE中数据结构Raw及其用法简介(更新)

    Raw对象主要用来存储连续型数据,核心数据为n_channels和times,也包含Info对象. 下面可以通过几个案例来说明Raw对象和相关用法. Raw结构查看: # 引入python库 impo ...

  5. 脑电分析系列 | MNE-Python汇总

    1 脑电分析系列MNE-Python教程 [MNE-1]| MNE-Python详细安装与使用(更新) [MNE-2]| MNE中数据结构Raw及其用法简介(更新) [MNE-3]| MNE中数据结构 ...

  6. 脑电分析系列[MNE-Python-11]| 信号空间投影SSP 应用

    信号空间投影(SSP) 在前面一篇分享(脑电分析系列[MNE-Python-10]| 信号空间投影SSP数学原理)中提到,投影矩阵将根据您试图投射出的噪声种类而变化.信号空间投影(SSP)是一种通过比 ...

  7. 脑电分析系列[MNE-Python-19]| 可视化Evoked数据

    在前面我们介绍过Evoked的数据结构以及如何创建Evoked对象: 脑电分析系列[MNE-Python-4]| MNE中数据结构Evoked及其对象创建 Evoked potential(EP)诱发 ...

  8. 脑电分析工具MNE教程

    资料来源:脑电分析系列 | MNE-Python汇总 目录 1.安装与使用 2.数据结构Raw 3.Epoch 4.Evoked 5.案例 (1)导入工具库 (2)加载数据 (3)测试数据 (4)提取 ...

  9. 脑电分析系列 | eeglab汇总

    1 脑电分析系列eeglab教程 eeglab教程系列(1)-安装教程 eeglab教程系列(2)-加载.显示数据 eeglab教程系列(3)-绘制脑电头皮图 eeglab教程系列(4)-绘制通道光谱 ...

  10. 脑电分析系列[MNE-Python-9]| 参考电极应用

    参考电极 MNE-Python中的平均参考设置 set_eeg_reference(self, ref_channels='average',projection=False, ch_type='au ...

最新文章

  1. 刚入行的软件测试工程师如何自学软件测试?0 基础该怎么学习软件测试
  2. 使用jQuery将表单数据转换为JavaScript对象
  3. 如何加速云原生数据应用?这个开源项目备受关注
  4. Arrays和Collection之间的转换
  5. C++ const成员和引用成员
  6. EF Core查询标签TagWith
  7. 2012年7月份第4周51Aspx源码发布详情
  8. 软件项目管理第二课—项目投标准备工作及投标函
  9. 机器学习线性回归_机器学习实例--线性回归
  10. 555定时器的应用——多谐振荡器
  11. 部分iPhone13 系统有bug
  12. 第三届网络安全冬训营“朔雪飞扬”在哈尔滨开幕
  13. 2021-07-26
  14. 计算机维护测试工作,(人才测评)桌面运维工程师的招聘入职测评方案
  15. WebIM Vue Demo 使用文档
  16. c语言程序图像抠图,Opencv使用鼠标任意形状的抠图
  17. widows快捷键大全
  18. 南京市城乡地籍信息一体化管理的几点思考
  19. 淘宝新店刚开如何测款?
  20. Windows命令行查看文件的MD5

热门文章

  1. Visual Studio中没有为此解决方案配置选中要生成的项目
  2. eclipse部署的web项目没有添加到Tomcat的webapps目录下解决方法
  3. hbase或hadoop错误及解决方法
  4. Weblogic反序列化漏洞补丁更新解决方案
  5. Java的异常:Error与Exception
  6. 如何创建可变数量的变量?
  7. 将JavaScript字符串全部转换为小写吗?
  8. Python情感分析:鹿晗的粉丝们究竟原谅他了吗?
  9. 第14章 SpringBoot静态资源处理
  10. ThreadLocal模式的一点小理解