%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. Компоненты ЭЭГ приведены в следующей таблице:
- Дельта - до 4 Гц;
- Тета - 4 -> 8 Гц;
- Альфа - 8 -> 13Гц;
Бета - 13 -> 30 Гц;
Я получил помощь от здесь . Но я до сих пор не знаю, почему я не получаю сигнал обратно при выполнении обратного FFT.