当前位置:   article > 正文

EEG工具库MNE学习笔记(1)_mne 画频谱图

mne 画频谱图

EEG工具库MNE学习笔记(1)

Raw数据结构

Raw对象主要用来存储连续型数据,核心数据为n_channels和times,也包含Info对象。

Raw结构查看:

# 引入python库
import mne
from mne.datasets import sample
import matplotlib.pyplot as plt

# sample的存放地址(可以不使用,直接将要分析的文件的地址用下面的fname表示即可)
# data_path=sample.data_path()

# 该fif文件存放地址(要分析的文件)
fname='E:\Python_Code\BCI_Code\Data\MNE-sample-data\MEG\sample\sample_audvis_raw.fif'

"""
将上述文件数据读成raw结构的数据
"""
raw=mne.io.read_raw_fif(fname)
print(raw)
print(raw.info)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

raw的输出结果为:

在这里插入图片描述
红框中标出的是n_channels x n_times

raw.info的输出结果为:

在这里插入图片描述
bads:不良通道
ch_names:通道名称
sfreq:采样频率

通常raw的数据访问方式如下:

data, times = raw[picks, time_slice]
picks:是根据条件挑选出来的索引;
time_slice:时间切片
想要获取raw中所有数据,以下两种方式均可:
data,times=raw[:]
data,times=raw[:,:]

第一个实例

"""
案例:
获取10-20秒内的良好的MEG数据
"""
# 根据type来选择 那些良好的MEG信号(良好的MEG信号,通过设置exclude="bads") channel,
# 结果为 channels所对应的的索引
picks=mne.pick_types(raw.info,emg=True,exclude='bads')
t_idx=raw.time_as_index([10.,20.])
# raw返回所选信道以及时间段内的数据和时间点,
# 分别赋值给data以及times(即raw对象返回的是两个array)
data,times=raw[picks,t_idx[0]:t_idx[1]]
plt.plot(times,data.T)
plt.title("Sample channels")
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

“print(picks)”的输出结果:

在这里插入图片描述

“print(t_idx)”的输出结果:

在这里插入图片描述
我的理解是第10秒对应的数据的索引和第20秒对应的数据的索引。

所选通道在10-20秒内的电压值的变化:

在这里插入图片描述
注:data的数据格式是[通道个数,数据个数],times的数据格式是[数据个数,]

所选通道在1-3秒内的电压值的变化:

"""
sfreq:采样频率
"""
sfreq=raw.info['sfreq']
#获取1-3秒内通道0,1,2,3,4的MEG数据
data,times=raw[:5,int(sfreq*1):int(sfreq*3)]
plt.plot(times,data.T)
plt.title("Sample channels")
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

绘制SSP矢量图:

"""
绘制SSP矢量图
"""
raw.plot_projs_topomap()
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
注:SSP为信号空间投影

绘制电极位置:

"""
绘制电极位置
"""
raw.plot_sensors()
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

绘制指定通道的功率谱图:

"""
绘制指定通道的功率谱图
"""
picks = ['eeg']
raw.plot_psd(picks=picks)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
注:通道或数据太多会出现电脑内存不够用的情况。

绘制通道频谱图:

"""
绘制通道频谱图作为topography
"""
raw.plot_psd_topo()
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5

出现如下错误:
在这里插入图片描述
网上说是电脑内存不够的原因,还未解决。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/261832
推荐阅读
相关标签
  

闽ICP备14008679号