【发布时间】:2017-09-09 18:53:08
【问题描述】:
我是 EEGLab 的新手,这是一个用于分析 EEG 数据的 MATLAB 工具。我想知道是否有一种特定的方法可以在给定的时间将 EEG 波的频率提取到使用 MATLAB 的文本文件中。
例如:1s 11Hz, 2s 8Hz....
【问题讨论】:
我是 EEGLab 的新手,这是一个用于分析 EEG 数据的 MATLAB 工具。我想知道是否有一种特定的方法可以在给定的时间将 EEG 波的频率提取到使用 MATLAB 的文本文件中。
例如:1s 11Hz, 2s 8Hz....
【问题讨论】:
EEG 波的范围从从 0.5 Hz 开始的 delta 波到通常为 40 Hz 甚至更高(甚至高达 100Hz)的伽马波,您可能在这里考虑的问题是这些频率始终存在,因为大脑从来没有真正“关闭”某些频率。因此,在大脑振荡频率中研究的是某些频率范围的活动和 功率 的变化。例如,阿尔法波在闭眼状态下比睁眼状态具有更大的能量。 要解决您的问题,您可以:
请参阅EEGLAB wiki 并按照教程进行操作,其中还提供了示例数据,看看它可以为您提供什么。例如,请参阅chapter 03。
如果您愿意,可以在 MATLAB 中使用快速傅里叶变换 (FFT) 以最简单的方式查看 EEG 信号的功率活动,您需要了解您的时间间隔数据被采样,这称为采样频率Ts。如果您有这些信息,只需查找Documents on MATLAB fft() 或在网上搜索。
【讨论】:
从您的问题来看,您似乎想要执行某种时频分析,即提取一些频率信息并保留时间信息的分析。重要的是,您不会从数据中提取“频率”(这是一个奇怪的请求),而是提取感兴趣频率的一些属性(通常是给定频率的能量,表示为“功率”)。
通常,在计算 EEG 数据的一些基本频率属性时(作为 EEG 的通道频谱(参见 here EEGlab 教程),您会丢失时间信息。
时频分析克服了这个限制,可以得到你想要的信息,即频率能量随时间的变化(见这里EEGlab totorial on Time-Frequency)。
运行时频分析需要一些注意并且可能很棘手(您很容易犯一些错误),我建议您查看 Mike Cohen 的讲座(查看视频教程here)或他的书“分析时间序列数据”(参见here)。从这些资源中,您可以完美地了解什么是时频分析,并对时频数据如何在 MATLAB 中存储有所了解。
一旦您知道了这一点,您就可以着手解决实际问题,即导出您的频率数据(可以说是在给定时间给定频率上的电源)。您可以在 EEGLAB 邮件列表中查看如何检查此 thread。
下面我写了一些从上面的线程改编的代码,你可以作为起点
%% first you run a time frequency analysis.
% Check the help of 'pop_timef' function for further information
[ersp itc powbase times freqs] = pop_timef( EEG, 1, 1, [-1000 2000] , [3 0.5] ,'type', ...
'phasecoher', 'topovec', 1, 'elocs', EEG.chanlocs, 'chaninfo', EEG.chaninfo, 'title',...
'Channel FPz power', 'padratio', 1, 'plotphase','off');
% select the ordinal number of the frequency you want to export
% NOTE: this means that you are selecting the 1st frequency (by default settings 6 Hz)
% and NOT the 1Hz frequency.
my_freq_n = 1
% to check the frequency selected
freqs(my_freq_n)
% my_time specifies the timepoint you want to export
my_time = 1500
% my_ersp stores the ersp value (that is the result of a specific kind of
% Time-Frequency analysis) for your selected time and your selected frequency.
my_ersp = ersp(my_freq_n, dsearchn(times', my_time))
% export the my_ersp object as a .txt file
save -ascii my_ersp.txt my_ersp
`
【讨论】: