我有一组来自 EEG 设备的数据,我想从中找到 Matlab 中不同脑电波的强度。我尝试使用 EEGLAB 但我不确定如何使用,所以此时我只是使用 Matlab 中的 dsp 工具箱。
背景:我有 15 个 epoch,长度为 4 秒。该设备以 256 Hz 采样,有 264 个传感器,因此每个 epoch 的每个传感器有 1024 个数据点,即我的原始数据是 264 x 1024 x 15。基线被移除。每个 epoch 中的数据最终将用于训练分类器,因此我将单独处理每个 epoch。稍后我会提出更多的数据样本。
无论如何,到目前为止我所做的是将 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.';
感谢您的帮助!