%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成分。脑电成分见下表:
我从here那里得到了帮助。但是,我仍然不知道为什么在执行逆快速傅立叶变换时,我没有得到信号。
发布于 2020-09-27 13:30:26
您可以使用这个语法提取著名的波段(Alpha,beta,theta.)
p = bandpower(x,fs,freqrange)例子:p=bandpower(myEEG_channel,512,[0 4]),在这个例子中,我们用fs=512 Hz从我的脑电信号的一个通道中计算出三角带的功率。
https://stackoverflow.com/questions/58666404
复制相似问题