首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在EEGLab中提取给定时间的频率?

如何在EEGLab中提取给定时间的频率?
EN

Stack Overflow用户
提问于 2017-01-21 21:50:35
回答 3查看 1.6K关注 0票数 0

我刚接触EEGLab,这是一个用来分析脑电图数据的MATLAB工具。我想知道是否有一种特定的方法来提取给定时间的脑电波的频率,并使用MATLAB将其转换为文本文件。

例如: 1s 11 8Hz,2s 8 8Hz....

EN

回答 3

Stack Overflow用户

发布于 2017-04-05 05:30:00

脑电波的范围从0.5 Hz开始的增量波到典型的40 Hz或更高(甚至100 Hz)的伽马波,这里你可能会考虑的问题是,这些频率一直存在,因为大脑从来没有真正“关闭”某些频率。因此,研究大脑振荡的频率是在特定频率范围内的活动和功率的变化。例如,阿尔法波在闭着眼睛的状态下比睁开的眼睛有更多的能量。要解决您的问题,您可以:

  1. 查看EEGLAB wiki,并按照教程中提供的示例数据进行操作,看看它能为您提供什么。例如,参见chapter 03
  2. 以最简单的方式,查看chapter 03中使用快速傅立叶变换(FFT)的脑电信号在时间间隔内的功率活动,为此,您需要知道您的数据在什么时间间隔被采样,这称为采样频率Ts。如果您有这些信息,只需查找Documents on MATLAB fft()或在网络上搜索即可。
票数 1
EN

Stack Overflow用户

发布于 2017-06-18 09:46:42

从EEG中提取频率信息有两种方法: 1)使用基于快速傅立叶变换(FFT)的方法;2)使用基于小波变换(WT)的方法

当然,您可以使用EEGLAB工具箱执行上述分析,但大多数情况下,您甚至不需要该工具箱来执行此类分析。

例如,如果你想对脑电信号进行基于快速傅立叶变换的频率分析,你可以使用MATLAB中的一些函数,如pmtm

如果你想执行小波变换,你可以使用cwt

这些文档编写得很好,您所需要做的就是将数据作为输入输入,并在每个函数中提供适当的参数。

如果你想了解更多的基础知识,你可以随时访问EEGLAB wiki或其他网络资源。

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2017-09-09 17:25:36

从你的问题看,你似乎想要执行某种时频分析,即你提取一些频率信息,保留时间信息的分析。重要的是,您没有从数据中提取“频率”(这是一个奇怪的请求),但您提取了感兴趣的频率的一些属性(通常是给定频率的能量,表示为"Power")。

通常,在计算脑电图数据的一些基本频率属性(如脑电图的通道频谱(参见here EEGlab教程))时,您会丢失时间信息。

时频分析克服了这一限制,允许获得你想要的那种信息,即频率能量随时间的变化(参见此处的EEGlab totorial on Time-Frequency)。

运行时频分析需要一些注意,而且可能很棘手(您很容易犯几个错误),我建议您查看Mike Cohen的讲座(查看视频教程here)或他的书“分析时间序列数据”(请参阅here)。从这些资源中,您可以完美地了解什么是时频分析,并对如何在MATLAB中存储时频数据有一些想法。

一旦你知道了这一点,你就可以转移到你的实际问题上了,那就是导出你的频率数据(可以说,你在一段时间内对给定频率的功率)。您可以在EEGLAB邮件列表中查看如何检查此thread

下面我编写了一些改编自上面的线程的代码,您可以将其作为起点

代码语言:javascript
复制
%% 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

`

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41780132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档