RoseVorchid

本教程为脑机学习者Rose原创(转载请联系作者授权)发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195

简介

本案例主要介绍如何读取eeglab示例文件.locs文件。为了演示电极位置,所以需要读取.set文件。.set文件的读取详情请看python读取.set文件,这里就直接使用了。

.set文件记录的是采集的信息,主要内容包括通道数,事件数,开始时间与结束时间等。
.locs文件记录的是电极位置信息。

知识点:

利用mne.channels.read_custom_montage()读取.locs文件。

案例

#导入工具库
import mne
import matplotlib.pyplot as plt

1.读取.set文件

"""
通过mne.io.read_raw_eeglab来读取.set文件
得到原始数据对象
"""
raw = mne.io.read_raw_eeglab("Eeglab_data.set",preload=False)

2.读取.locs文件
首先查看原始数据中的通道名称:

"""
打印通道名
"""
print(raw.info[\'ch_names\'])


从上述打印的结果可以看到,原始数据中通道名称并非电极位置的命名,因此需要将其映射成电极位置名称。

mapping = {
    \'EEG 000\': \'FPz\', \'EEG 001\': \'EOG1\', \'EEG 002\': \'F3\', \'EEG 003\': \'Fz\',
    \'EEG 004\': \'F4\', \'EEG 005\': \'EOG2\', \'EEG 006\': \'FC5\', \'EEG 007\': \'FC1\',
    \'EEG 008\': \'FC2\', \'EEG 009\': \'FC6\', \'EEG 010\': \'T7\', \'EEG 011\': \'C3\',
    \'EEG 012\': \'C4\', \'EEG 013\': \'Cz\', \'EEG 014\': \'T8\', \'EEG 015\': \'CP5\',
    \'EEG 016\': \'CP1\', \'EEG 017\': \'CP2\', \'EEG 018\': \'CP6\', \'EEG 019\': \'P7\',
    \'EEG 020\': \'P3\', \'EEG 021\': \'Pz\', \'EEG 022\': \'P4\', \'EEG 023\': \'P8\',
    \'EEG 024\': \'PO7\', \'EEG 025\': \'PO3\', \'EEG 026\': \'POz\', \'EEG 027\': \'PO4\',
    \'EEG 028\': \'PO8\', \'EEG 029\': \'O1\', \'EEG 030\': \'Oz\', \'EEG 031\': \'O2\'
}
# 根据映射名对原始数据中的通道名进行重命名
raw.rename_channels(mapping)
"""
读取.locs文件,.locs文件记录的是电极头皮位置
"""
montage=mne.channels.read_custom_montage("eeglab_chan32.locs")
"""
设置脑电图中传感器配置(电极位置配置)
"""
raw.set_montage(montage,raise_if_subset=False)
"""
打印设置电极位置后的通道名
"""
print(raw.info[\'ch_names\'])

3.绘制电极位置

# 绘制电极位置
raw.plot_sensors()
plt.show()

"""
绘制通道位置图,并对应位置上显示通道名称
"""
layout_from_raw = mne.channels.make_eeg_layout(raw.info)
layout_from_raw.plot()
plt.show()

"""
上述效果也可通过
mne.channels.find_layout(raw.info, ch_type=\'eeg\')
来读取
"""
layout_from_raw =mne.channels.find_layout(raw.info, ch_type=\'eeg\')
layout_from_raw.plot()
plt.show()

4.绘制各通道的功率谱密度

"""
绘制各通道的功率谱密度
"""
raw.plot_psd()
plt.show()

"""
绘制采样频率在30Hz到70Hz之间,且只考虑40s到50s之间的所有通道的PSD
"""
raw.plot_psd(fmin=30, fmax=70, tmin=40,tmax=50.0,spatial_colors=True)
plt.show()

"""
绘制采样频率在30Hz到70Hz之间,且只考虑40s到50s之间的所有通道的平均PSD
"""
raw.plot_psd(fmin=30, fmax=70, tmin=40,tmax=50.0,average=True)
plt.show()

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

分类:

技术点:

相关文章:

  • 2021-10-05
  • 2021-09-07
  • 2021-06-16
  • 2021-07-15
  • 2021-12-30
  • 2021-07-13
猜你喜欢
  • 2021-11-06
  • 2022-02-24
  • 2022-02-19
  • 2021-08-04
  • 2021-03-31
  • 2021-11-16
相关资源
相似解决方案