我刚接触EEGLab,这是一个用来分析脑电图数据的MATLAB工具。我想知道是否有一种特定的方法来提取给定时间的脑电波的频率,并使用MATLAB将其转换为文本文件。
例如: 1s 11 8Hz,2s 8 8Hz....
发布于 2017-04-05 05:30:00
脑电波的范围从0.5 Hz开始的增量波到典型的40 Hz或更高(甚至100 Hz)的伽马波,这里你可能会考虑的问题是,这些频率一直存在,因为大脑从来没有真正“关闭”某些频率。因此,研究大脑振荡的频率是在特定频率范围内的活动和功率的变化。例如,阿尔法波在闭着眼睛的状态下比睁开的眼睛有更多的能量。要解决您的问题,您可以:
发布于 2017-06-18 09:46:42
发布于 2017-09-09 17:25:36
从你的问题看,你似乎想要执行某种时频分析,即你提取一些频率信息,保留时间信息的分析。重要的是,您没有从数据中提取“频率”(这是一个奇怪的请求),但您提取了感兴趣的频率的一些属性(通常是给定频率的能量,表示为"Power")。
通常,在计算脑电图数据的一些基本频率属性(如脑电图的通道频谱(参见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`
https://stackoverflow.com/questions/41780132
复制相似问题