使用matlab进行脑电图原始数据带滤波

时间:2013-10-16 13:02:55

标签: matlab signal-processing emokit

我在使用Emotiv EPOC捕获的csv文件中有一些原始EEG数据作为我正在为本科毕业论文做的实验的一部分。我上传了其中一个文件here以供参考。我希望对某些频段的数据进行带通滤波

  • delta(1-4Hz)
  • theta(4-8Hz)
  • alpha(8-13Hz)
  • beta(13-30Hz)
  • 和gamma(36-40Hz)

由于我在Matlab中相对较新,我该怎么做? 我知道类似的问题已经存在,但它们不适用于我的情况,因为我正在使用Emotiv EPOC进行EEG数据采集

1 个答案:

答案 0 :(得分:2)

您可以尝试使用EEGLab,这是一个用matlab进行电生理信号处理的开源环境。此工具箱接受您的文本输入,并具有多种过滤方法,如

function EEGfiltered = eeg_filter(EEGinput,sample_freq,lcf,hcf,order);

% eeg_filter - apply a butterworth polynomial filter
% 
%   Usage : EEGfiltered = eeg_filter(EEGinput,sample_freq,lcf,hcf,order)
%
%   - input arguments 
%       EEGinput    : eeg data - M samples x N channels x P epochs
%       sample_freq : sampling frequency
%       lcf         : low cutoff frequency (highpass, default 0.01)
%       hcf         : high cutoff frequency (lowpass, default 40)
%       order       : butterworth polynomial order (default 2)
%
%   - output argument
%       EEGfiltered : filtered EEGinput;

注意EEG数据处理的特殊性。例如, filtfilt函数基于时间序列的最后一点,因此有必要在过滤后调用eeg_baseline 。遵循EEGLab教程将避免许多缺点。