From: angelo on
hi mathword!!!
I've a serious problem, I've an eeg signal for 10 seconds.My Problem is that the eeg machine work on 128 Hz and when i come to do my fft i see only five different steps ad i don't know why.
J=xlsread('avg0-2 secondi.xlsx');%leggiamo i primi due secondi del tracciato eeg in referenza media
J1=(J(:,1));
l=0;
j=wextend('1','zpd',J1,l);%estensione del segnale con matrice di zeri, meglio noto come processo di zero-padding
NFFT=2^nextpow2(L);%indichiamo la lunghezza della fft, puo' essere maggiore
%o uguale al numero dei dati forniti, si sceglie una potenza di due per l'efficienza dell'algoritmo
T=abs(max(j));
t=abs(min(j));
if (t<=T)
NORM=T;
else NORM=t;
end
K=fft(j,NFFT)/NORM;%eseguiamo la trasformata di Fourier nei primi due secondi del tracciato eeg in modo da ottenere una somma infinita di sinusoidi
%con frequenze,ampiezze e fasi diverse in cui l'insieme dei valori in
%funzione delle frequenze è detto spettro
f=Fs/2*linspace(0,1,NFFT/2);%il range definito è quello di twosided, per la definizione delle frequenze complesse
figure(8)
%subplot(321)
plot(f,2*abs(K(1:NFFT/2)));%identifichiamo cosi' la densità spettrale di potenza definita come il limite del rapporto tra la densità spettrale
%di energia |Xt(f)|^2 e l'ampiezza della finestra temporale T
title('psd 0-2 sec');%titoliamo il grafico
xlabel('frequenza(HZ)');%definizione delle ascisse
ylabel('(microvolt)^2/Hz');%definizione delle ordinate
grid;
hold on
h=xlsread('avg 2-4 secondi.xlsx');%leggiamo l'intervallo del traccia tra 2 e 4 secondi
h1=(h(:,1));
j1=wextend('1','zpd',h1,l);
I=abs(max(j1));
i=abs(min(j1));
if (i<=I)
NOR=I;
else NOR=i;
end
K1=fft(j1,NFFT)/NOR;
f1=Fs/2*linspace(0,1,NFFT/2);
%subplot(322)
figure(9)
plot(f1,2*abs(K1(1:NFFT/2)));
title('psd 2-4 sec');
xlabel('frequenza(HZ)');
ylabel('(microvolt)^2/Hz');
grid;
hold on
g=xlsread('avg 4-6 secondi.xlsx');%leggiamo l'intervallo del tracciato eeg tra 4 e 6 secondi
g1=(g(:,1));
j2=wextend('1','zpd',g1,l);
O=abs(max(j2));
o=abs(min(j2));
if (o<=O)
NO=O;
else NO=o;
end
K2=fft(j2,NFFT)/NO;
f2=Fs/2*linspace(0,1,NFFT/2);
%subplot(323)
figure(10)
plot(f2,2*abs(K2(1:NFFT/2)));
title('psd 4-6 sec');
xlabel('frequenza(HZ)');
ylabel('(microvolt)^2/Hz');
grid;
hold on
s=xlsread('avg 6-8 secondi.xlsx');%leggiamo l'intervallo del tracciato eeg tra 6 e 8 secondi
s1=(s(:,1));
j3=wextend('1','zpd',s1,l);
Q=abs(max(j3));
q=abs(min(j3));
if (q<=Q)
N=Q;
else N=q;
end
K3=fft(j3,NFFT)/N;
f3=Fs/2*linspace(0,1,NFFT/2);
figure(12)
%subplot(324)
plot(f3,2*abs(K3(1:NFFT/2)));
title('psd 6-8 sec');
xlabel('frequenza(HZ)');
ylabel('(microvolt)^2/Hz');
grid;
hold on
p=xlsread('avg 8-10 secondi.xlsx);
p1=(p(:,1));
j4=wextend('1','zpd',p1,l);
G=abs(max(j4));
g=abs(min(j4));
if (g<=G)
norm=G;
else norm=g;
end
K4=fft(j4,NFFT)/norm;
f4=Fs/2*linspace(0,1,NFFT/2);
%subplot(325)
figure(13)
plot(f4,2*abs(K4(1:NFFT/2)));
title('psd 8-10 sec');
xlabel('frequenza(HZ)');
ylabel('(microvolt)^2/Hz');
grid;
hold on
F=(f+f1+f2+f3+f4)/5v=(K+K1+K2+K3+K4)/5;
figure(14)
plot(F,2*abs(v(1:NFFT/2)));
grid;
title('power spectral density con zero padding');
xlabel('frequenza(HZ)');
ylabel('(microvolt)^2/Hz');
I do the fft in same period of 2 seconds. And after i do an average for total fft of signal.
Please help me