Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 频谱求和_Matlab_Spectrum_Frequency Analysis_Eeglab - Fatal编程技术网

Matlab 频谱求和

Matlab 频谱求和,matlab,spectrum,frequency-analysis,eeglab,Matlab,Spectrum,Frequency Analysis,Eeglab,我有一组来自脑电设备的数据,我想从中找出Matlab中不同脑电波的强度。我尝试使用EEGLAB,但我不确定如何使用,所以在这一点上,我只是使用Matlab中的dsp工具箱 背景:我有15个纪元,4秒长。设备以256 Hz采样,有264个传感器,因此每个历元的每个传感器有1024个数据点,即我的原始数据是264 x 1024 x 15。基线将被删除。每个历元中的数据最终将用于训练分类器,因此我将分别处理每个历元。稍后我会提供更多的数据样本 无论如何,到目前为止我所做的是对数据应用Hann滤波器,然

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

背景:我有15个纪元,4秒长。设备以256 Hz采样,有264个传感器,因此每个历元的每个传感器有1024个数据点,即我的原始数据是264 x 1024 x 15。基线将被删除。每个历元中的数据最终将用于训练分类器,因此我将分别处理每个历元。稍后我会提供更多的数据样本

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

我知道答案应该是直截了当的,但我似乎无法在网上找到我想要的答案,而且某些消息来源建议使用小波变换,这进一步造成了混淆?这是我到目前为止的一小段代码,输入的“数据”是一个历元,即264 x 1024

% 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.';

谢谢你的帮助

如果我正确理解了您的问题,您希望缩放FFT输出以获得正确的功率。为此,您需要除以FFT使用的样本数

X_mag = abs(X)/length(hann_data); % This gives the correct power.
有关更多信息,请参见此


一旦内容被正确缩放,您就可以通过从频带的开始到结束对内容进行积分来找到频带中的功率(例如8-13 Hz)。因为您处理的是离散值,所以这是一个非常复杂的问题。从长远来看,这相当于更改频谱分析仪的分辨率带宽。

如果我正确理解了您的问题,您希望缩放FFT输出以获得正确的功率。为此,您需要除以FFT使用的样本数

X_mag = abs(X)/length(hann_data); % This gives the correct power.
有关更多信息,请参见此


一旦内容被正确缩放,您就可以通过从频带的开始到结束对内容进行积分来找到频带中的功率(例如8-13 Hz)。因为您处理的是离散值,所以这是一个非常复杂的问题。从长远来看,这相当于更改频谱分析仪的分辨率带宽。

感谢您的响应。这是我需要做的事情,但这并不是我在最初的帖子中的意思。现在我把所有的信息都储存在频率箱里。我想得到某个频段的综合功率(比如说,8Hz-13Hz)。我如何从前者进入后者?我的一部分想说的是简单地将对应于范围的容器中的值相加;我只是不能100%确定这样做是否正确。@anon你基本上是正确的,只需将内容整合到带中(求和并乘以箱子的宽度)。我会更新我的答案。啊,谢谢你的回复。因为所有的箱子都有相同的宽度,所以我认为它们的总和几乎是相等的(我将它们输入到一个NN中,所以在预处理过程中,箱子宽度的任何缩放都将被忽略)。再次感谢!谢谢你的回复。这是我需要做的事情,但这并不是我在最初的帖子中的意思。现在我把所有的信息都储存在频率箱里。我想得到某个频段的综合功率(比如说,8Hz-13Hz)。我如何从前者进入后者?我的一部分想说的是简单地将对应于范围的容器中的值相加;我只是不能100%确定这样做是否正确。@anon你基本上是正确的,只需将内容整合到带中(求和并乘以箱子的宽度)。我会更新我的答案。啊,谢谢你的回复。因为所有的箱子都有相同的宽度,所以我认为它们的总和几乎是相等的(我将它们输入到一个NN中,所以在预处理过程中,箱子宽度的任何缩放都将被忽略)。再次感谢!