首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求和频谱

求和频谱
EN

Stack Overflow用户
提问于 2015-07-08 00:31:54
回答 1查看 587关注 0票数 1

我有一组来自脑电图设备的数据,我想从Matlab中找到不同脑电波的强度。我试着使用EEGLAB,但我不确定如何使用,所以现在我只是使用Matlab中的dsp工具箱。

背景:我有15个周期,4秒长。该装置采样频率为256 Hz,有264个传感器,因此每个时期每个传感器都有1024个数据点,即我的原始数据为264x1024x15。基线被删除。每个时代的数据最终都会被用来训练分类器,所以我要单独处理每一个时代。稍后我会提供更多的数据样本。

无论如何,到目前为止,我所做的是对数据应用一个Hann过滤器,然后对过滤后的数据运行fft。所以现在我得到了频域的信息。然而,我不太确定如何从fft桶的功率到某些频带的功率(例如alpha 8-13),来得到我所寻求的值。

我知道答案应该是直截了当的,但我似乎无法在网上找到我想要的答案,然后一些消息来源进一步混淆了使用小波变换的建议?下面是我到目前为止的一些代码,输入“数据”是一个时代,即264x1024。

代码语言:javascript
复制
% apply a hann window
siz = size(data);
hann_window = hann(siz(2));
hann_window = repmat(hann_window.', siz(1), 1);
hann_data = data.' * hann_window; 

% run fft
X = fft(hann_data, [], 2);
X_mag = abs(X);
X_mag = X_mag.';

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-08 02:49:05

如果我正确地理解了你的问题,你想要放大FFT的输出,以获得正确的功率。要做到这一点,您需要除以用于FFT的样本数。

代码语言:javascript
复制
X_mag = abs(X)/length(hann_data); % This gives the correct power.

有关更多信息,请参见此问题

一旦内容被正确地缩放,你就可以通过将内容从开始到停止来找到一个频带中的能量(例如8-13赫兹)。由于您处理的是离散值,所以它是一个离散积分。就透视而言,这相当于改变频谱分析仪的分辨率带宽。

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

https://stackoverflow.com/questions/31281633

复制
相关文章

相似问题

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