其思想是将386.936s长的连续脑电数据划时代到大小为20s的不重叠的划时代窗口中。在采样频率为250hz的情况下,理论上每个划时代应包含5000个数据点。你知道吗
为了实现这一目标,采用了以下准则:
epochs = mne.Epochs(raw, events=events, event_id=event_id, baseline=None, verbose=True) MneApproach=epochs.to_data_frame()
确认值是否从新纪元不管正确与否,我已经创建了一个可以手动执行epoching的脚本。脚本的输出已经过可视化验证,并按预期工作。 但是,我注意到脚本输出和dataframe方法的值之间存在差异。除了不同的值,该方法每个历元只包含176个数据集。你知道吗
我可以知道我在输入数据时做错了什么吗新纪元功能。你知道吗
上面的问题可以通过googlecolab从下面的ipynb或下面的代码中重现
非常感谢您的反馈和帮助。你知道吗
import urllib.request
print('Beginning file download with urllib2...')
url = 'http://bnci-horizon-2020.eu/database/data-sets/001-2014/A01T.mat'
urllib.request.urlretrieve(url, '/content/A01T.mat')
mat = loadmat("/content/A01T.mat")
# eeg = mat["data"][0, 3]["X"][0, 0] * 10e-6
eeg = mat["data"][0, 3]["X"][0, 0]
ch_names = ["Fz", "FC3", "FC1", "FCz", "FC2", "FC4", "C5", "C3", "C1", "Cz",
"C2", "C4", "C6", "CP3", "CP1", "CPz", "CP2", "CP4", "P1", "Pz",
"P2", "POz", "EOG1", "EOG2", "EOG3"]
info = mne.create_info(ch_names, 250, ch_types=["eeg"] * 22 + ["eog"] * 3)
raw = mne.io.RawArray(eeg.T, info)
raw.set_montage("standard_1020")
人工进近
raw_b = raw.copy()
values = raw_b.get_data()
# values = numpy.zeros(20, dtype=dtype)
index = ['Row'+str(i) for i in range(1, len(values)+1)]
df = pd.DataFrame(values, index=index).transpose()
df.columns = raw_b.ch_names[:]
# df.head()
event_id = 1 # This is used to identify the events.
duration = 20. # Unit in second
# create a fixed size events array
# start=0 and stop=None by default
events = mne.make_fixed_length_events(raw_b, event_id,duration=duration)
print(events)
NoEpochs=len(events)-1
Epoch = range(0, len(events)-1, 1)
NameEpochs = pd.DataFrame(NoEpochs*(np.ones((df.shape[0], 1))), columns=['Epochs'])
for f in Epoch:
NameEpochs.Epochs.iloc[events[f][0]:events[f+1][0]] = Epoch[f]
df = pd.concat([df, NameEpochs], axis = 1)
df.reset_index(drop=True, inplace=True)
df.set_index([df.Epochs, df.index], inplace=True)
del df['Epochs'] ## Delete extra column
df.loc[0.0] # Extrach only epoch 0
MNE方法
epochs = mne.Epochs(raw, events=events, event_id=event_id, baseline=None, verbose=True)
MneApproach=epochs.to_data_frame()
MneApproach
MneApproach.xs(0, level='epoch') # Extrach epoch 0
目前没有回答
相关问题 更多 >
编程相关推荐