Извлечение альфа, бета, дельта, тета из сигнала ЭЭГ с использованием БПФ в Matlab - PullRequest
1 голос
/ 02 ноября 2019
%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. Компоненты ЭЭГ приведены в следующей таблице:

  1. Дельта - до 4 Гц;
  2. Тета - 4 -> 8 Гц;
  3. Альфа - 8 -> 13Гц;
  4. Бета - 13 -> 30 Гц;

    Я получил помощь от здесь . Но я до сих пор не знаю, почему я не получаю сигнал обратно при выполнении обратного FFT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...