【问题标题】:Alpha, Beta, Delta, Theta Extraction from EEG signal using FFT in matlab在 matlab 中使用 FFT 从 EEG 信号中提取 Alpha、Beta、Delta、Theta
【发布时间】:2020-02-28 04:11:08
【问题描述】:
%Convert data from EDF to MATLAB form
[header1, data1]=edfread('Subject00_1.edf');

%Sampling rate
Fs=500;

%Channel wise data extraction
data_ch1=data1(1,:);
data_ch1=data_ch1(1:length(data_ch1));

%Fourier Transform
fCoefsF=fft(data_ch1);

amplitude =abs(fCoefsF);

mirror_freq=length(amplitude)/2;

figure(1)
plot(amplitude)

%Manual Removal of higher Frequency
for i=1:length(fCoefsF)  
    
    if ((Fs/mirror_freq*i/2)>4)     %While extracting the Delta signal(upto 4hz)
        fCoefsF(i)=0;
        if length(fCoefsF)-i == 0
            break;
        end       
        fCoefsF(length(fCoefsF)-i)=0;
          
    else
        fCoefsF(i)=fCoefsF(i);
    end

end
amplitude=abs(fCoefsF);
figure(2)
plot(amplitude)

%Reconstruct the components of the EEG Signal
%Inverse fourier transform
component_recon=ifft(fCoefsF);
figure(3)
plot(component_recon)

我想从 EDF 文件中提取 EEG 组件。脑电图成分如下表:

  1. Delta - 高达 4 Hz;

  2. Theta - 4 -> 8 赫兹;

  3. 阿尔法 - 8 -> 13 赫兹;

  4. 测试版 - 13 -> 30 赫兹;

    我得到了here 的帮助。但我仍然不知道为什么我在执行反向 fft 时没有收到信号。

【问题讨论】:

  • 请正确格式化您的代码
  • 格式化完成。

标签: matlab


【解决方案1】:

您可以使用此语法来提取著名的波段(Alpha、beta、theta...)

p = bandpower(x,fs,freqrange)

示例:p=bandpower(myEEG_channel,512,[0 4]) 在这个例子中,我们从我的脑电信号通道计算 Delta 波段功率,fs=512 Hz。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-19
    • 2012-05-18
    • 2015-05-21
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    相关资源
    最近更新 更多