首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用matlab中FFT从脑电信号中提取α,Beta,Delta,Theta

利用matlab中FFT从脑电信号中提取α,Beta,Delta,Theta
EN

Stack Overflow用户
提问于 2019-11-01 21:59:59
回答 1查看 779关注 0票数 1
代码语言:javascript
复制
%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赫兹;

  1. Theta -4 -> 8 Hz;

  1. α-8 -> 13 Hz;

  1. β- 13 -> 30 Hz;

我从here那里得到了帮助。但是,我仍然不知道为什么在执行逆快速傅立叶变换时,我没有得到信号。

EN

回答 1

Stack Overflow用户

发布于 2020-09-27 13:30:26

您可以使用这个语法提取著名的波段(Alpha,beta,theta.)

代码语言:javascript
复制
p = bandpower(x,fs,freqrange)

例子:p=bandpower(myEEG_channel,512,[0 4]),在这个例子中,我们用fs=512 Hz从我的脑电信号的一个通道中计算出三角带的功率。

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

https://stackoverflow.com/questions/58666404

复制
相关文章

相似问题

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