我为这个主题的模糊性道歉。这反映了我对 tfr_morlet 图形输出的行为缺乏了解。
要指定。我正在处理 64 通道 EEG 数据。我有一个刺激事件,它是我时代的开始标记。我将我的 epoch 分成 4 个较小的 epoch,每个 1 秒,其中“Epoch1”的 1 秒持续时间内包含刺激事件和非刺激 EEG 数据。
我的工作流程如下:
- 加载 .vhdr 文件
- 应用过滤器
- 应用脑电图帽蒙太奇
- 创建事件从刺激标记开始的纪元(Epoch0)
- 制作另一个从 Epoch0 裁剪的 epoch (Epoch1) (tmin=0, tmax=1, include_tmax=True)。这给出了我有兴趣用于 tfr_morlet 函数的纪元。
- Epoch1 上的 ICA
- Epoch1 上的 tfr_morlet(后 ICA)
我一直在阅读 tfr_morlet 函数并修改参数以查看它如何影响结果图。我的工作流程的每个其他步骤似乎都在正常工作,包括,最重要的是,通过 ICA 成功删除了刺激事件。
以下是我调用 tfr_morlet 函数时的代码片段:(您会注意到我在片段中对基线参数的一些修补工作)
#TF-POWER ANALYSIS
#settings for tf graph
mode = 'percent'
title = file[:-5] + " TF-Power Analysis"
name_save = file[:-5]
freqs = np.linspace(start=1, stop=100, num=100)
cycles = 4
n_cycles = freqs / cycles
vmin_max=0.075
decim = 1
base_1, base_2 = None, None
base_1, base_2 = epoch_1_ica.tmax-0.01, epoch_1_ica.tmax
base_1, base_2 = 0, None
#plot tf graph
power = tfr_morlet(inst=epoch_1_ica, freqs=freqs, n_cycles=n_cycles, use_fft=True, decim=decim, n_jobs=1, average=False, return_itc=False, zero_mean=False, output='complex')
#if tfr_morlet(average=False)
avgpower=power.average()
tf_plot=avgpower.plot(picks=None, baseline=(base_1, base_2), mode=mode, title=title, vmin=-vmin_max, vmax=vmin_max, cmap='RdBu_r')
#else:
#tf_plot = power.plot(picks=None, baseline=(base_1, base_2), mode=mode, title=title, vmin=-vmin_max, vmax=vmin_max, cmap='RdBu_r')
#save tf graph
tf_plot.savefig(fname="EEG Data\\Graphs\\tfPower\\simple_version\\" + name_save +
"_decim" + str(decim) +
"_mode" + str(mode) +
"_vmin" + str(vmin_max) +
"_base" + str(base_1) +
"-" + str(base_2) +
"_" + "tf_power.png",
facecolor="white")
根据实际数据,在 epoch 的开始和结束时没有大的信号。这仅出现在 tfr_morlet 图中。我调整了 tfr_morlet 基线参数值,它似乎影响了这些奇怪的信号,但它也完全修改了所有其他信号。此外,应该有更多的信号出现在较低的频率范围内,但它们基本上不存在。有可能是数据的原因,但开头和结尾的大信号肯定不是数据的反映。
简而言之,我有点卡住了,在网上找不到太多帮助。如果有人对您的 tf 图中出现的此类问题有类似的经历,请让我知道您对如何解决此问题的想法。
如果可以在不共享我的其余代码的情况下解决此问题会更好。我相当有信心问题出在我上面提供的片段上。
感谢大家为此付出的时间和专业知识。我非常期待您的评论。当然,如果我同时解决这个问题,我也会发布我的解决方案。