首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Matlab FFT实现脑电信号的频率提取

利用Matlab FFT实现脑电信号的频率提取
EN

Stack Overflow用户
提问于 2012-05-09 21:19:32
回答 3查看 17.2K关注 0票数 5

我是BCI的新手。我有一个来自Neurosky的思维定势脑电图设备,我将来自该设备的原始数据值记录在csv文件中。我可以读取csv中的数据并将其提取到Matlab中,然后应用FFT。我现在需要从FFT中提取特定的频率(Alpha,Beta,Theta,Gamma)。

其中,增量= 1-3 Hz

Theta= 4-7 Hz

Alpha = 8-12 Hz

Beta = 13-30 Hz

Gamma = 31-40 Hz

这就是我到目前为止所做的:

代码语言:javascript
复制
f = (0:N-1)*(Fs/N);
plot(rawDouble);
title ('Raw Signal');
p = abs(fft(rawDouble));
figure,plot (f,p);
title('Magnitude of FFT of Raw Signal');

谁能告诉我如何从信号中提取这些特定的频率范围??非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-09 21:37:34

为方便使用MatLab分析脑电图数据,您可以考虑使用EEGLAB工具箱(http://sccn.ucsd.edu/eeglab/)或fieldtrip工具箱(http://fieldtrip.fcdonders.nl/start)。

这两个工具箱都有很好的教程:

http://sccn.ucsd.edu/eeglab/eeglabtut.html

http://fieldtrip.fcdonders.nl/tutorial

票数 4
EN

Stack Overflow用户

发布于 2012-05-09 21:25:14

您可能会发现,使用MATLAB的periodogram函数比直接使用FFT更容易。它负责为您设置数据窗口以及各种其他实现细节。

票数 1
EN

Stack Overflow用户

发布于 2012-05-24 12:20:03

我认为最简单的方法是在加载数据后在这些范围内过滤信号。例如。

band=30 100 eeglocal.lowpass(带(2)).highpass(带(1));

然后,您可以使用选择要处理的时间。

这应该就是您需要的全部内容。

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

https://stackoverflow.com/questions/10516980

复制
相关文章

相似问题

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