MATLAB: I can do an FFT. Help Please

digital signal processingeegfft

I need to analyze this data with an Fourier but it keeps giving me an error. Please help!!
senal=importdata('/Users/macbook/Desktop/Analisis_Movimiento/EEG/eeg.mat'); %importa contenido de la dirección
eeg=senal.data; %nombra como eeg los datos de la carpeta data de senal
chan=senal.chanlocs;%nombra como chan los datos de la carpeta chanlocs de senal
evento=senal.event;%nombra como evento los datos de la carpeta event de senal
clear senal
% filtrando peak primeros datos
colini = 100;
for i=1:colini
eeg(:,i) = eeg(:,colini+1);
end
%%%%%%%%%%%centrado en cero %%%%%%%%
media=mean(eeg,2);%%calcula la media de las filas. Si escribo mean(senal) es lo mismo que mean(senal,1) calcula el promedio de la senal por columnas; si escribo mean(senal,2) calcula el promedio de cada fila.
for i=1:size(eeg,1); %%size(eeg,1) es el numero de filas de eeg (78)%%
cent(i,:)=eeg(i,:)-media(i,1); %%el centrado (cent) es una matriz de 1 a 78 que es igual a eeg de cada fila y le resto la media de cada fila%%%
end
%%%%%Crear arreglos para localización de canales%%%
loc=char(chan.labels);%%Busca en la estructura de chan, las carpetas labels que da los nombres a los canales)
loc2=loc; %%crea copia de loc llamada loc2%%
for i=1:78; %%%para todas las filas%%%
for j= 1:5; %%%
loc2(i,j+3)=loc(i,j);
end;
end; %%Este "for" le da los nombres a los canales sacandolos de la carpeta labels
loc2(:,1:3)=0;
clear chan media
for i = 1:size(eeg,1);
loc2(i,2) = 48 + mod(i,10);
loc2(i,1) = 48 + floor(i/10);
end %%este "for" da los números del 1 al 78 para cada canal para facilitar la comprensión
clear loc
loc2str = cellstr(loc2(:,4:8));
n_event = (1:39)';
%%%%referenciación mastoides%%%%(es la referencia utilizada usualmente en
%%%%electroencefalogramas)%%Obtiene datos de ambas apofisis mastoides (derecha e izquierda)
mast=[cent(66,:);cent(70,:)]; %al usar [] creo una matriz cuya primera fila es el canal 66, y su segunda fila es el canal 70 (todos los datos de la fila 66 y 70 de cent)%%
ref=mean(mast); %%crea la referencia con el promedio de la matriz mast
clear mast i j %%elimina mast i j
%%debemos a cada canal, referenciarlo a nuestra ref.
for i=1:size(cent,1);
refcen(i,:)=ref(1,:);
end %%Crea matriz de dimensiones correctas (78x775168 en este caso) para poder restar
centref=cent-refcen;
clear refcen
%%%%graficar muestras referenciadas%%%
%plot(centref(1,:)) %%grafica centref para canal 1
%hold on %mantiene grafico
%plot(centref(66,:),'r') %%en grafico anterior agrega señal de canal 66
%hold on
%plot(centref(70,:),'g') %%en grafico anterior agrega señal de canal 70
%%%Frecuencia de muestreo %%
fs=1024;
%%%encontrar pulso de boton 2 tras secuencia 13 - 16 - 2%%
nevento = size(evento,2);
%%%encontrar pulso de boton 2%%
for i=1:size(evento,2); %le pido que me de la cantidad de eventos totales de la estructura eventos (572)
tipo(1,i)=evento(1,i).type; %crea una matriz llamada tipo, en que cada columna (i) tendra el valor de cada estructura del evento y anotara el valor de type
latencia(1,i)=evento(1,i).latency;%crea una matriz latencia, en que cada columna(i) tendra el valor de cada estructura de latencia del evento
end
evsel = [];
evlat = [];
esdlat = [];
for i=1:size(tipo,2); %Crear if para detectar coordenadas 13 - 16 - 2)
if(tipo(i)==2 && tipo(i-1)==16 && tipo(i-2)==13);
evsel = [evsel,i];
evlat = [evlat,evento(1,i).latency];
esdlat =[esdlat,evento(1,i).latency - evento(1,i-2).latency];
end
end
[dlatmax, idlatmax] = max(esdlat);
nevsel = length(evsel);
canalselect = [74]; % seleccion de canales a plotear
dtime = 300; % ventana de tiempo a graficar 300 mseg antes de evento 2
for c=1:length(canalselect)
canal = canalselect(c);
nt = size(centref,2);
% plotear señal completa
figure;
hold on;
plot(1:nt,centref(canal,1:nt),'b-');
plot(evlat,centref(canal,floor(evlat)),'ro','MarkerSize',8);
title(loc2str(canal))
xlabel('tiempo(s)')
ylabel('amp')
% grafica todos los intervalos en un solo plot superpuestos
figure
hold on
for i=1:nevsel
lenx = floor(dtime);
x = (0:lenx-1)/fs; % tiempo

endx = floor(evlat(i));
domx = endx-lenx+1:endx;
y = centref(canal,domx);
y = y - mean(y);
plot(x,y,'b-')
%title(n_event)
xlabel('tiempo(s)')
ylabel('amp')
end
% grafica todos los intervalos
lenx = floor(dtime);
x = (0:lenx-1)/1024; % tiempo
yprom = zeros(size(x));
figure()
hold on
for i=1:nevsel
endx = floor(evlat(i));
domx = endx-lenx+1:endx;
y = centref(canal,domx);
y = y - mean(y);
subplot(8,5,i), plot(x,y,'b-');
xlabel('tiempo(s)')
ylabel('amp')
if (i == 3)
title(loc2str(canal))
end
yprom = yprom + y;
end
yprom = yprom/nevsel;
% plotea promedio de todos los eventos en canal
figure
plot(x,yprom,'b-');
title(loc2str(canal))
xlabel('tiempo(s)')
ylabel('amp')
%%%FFT de señal
for NFFT=2.^nextpow2(size(yprom));
Y=fft((yprom),NFFT)/(yprom);
f==fs/2*linspace(0,1,NFFT/2+1);
plot(f,2*abs(Y(1:NFFT/2+1)));
title('FTP')
xlabel('Frecuencia (Hz)') %%%Título del eje x
ylabel('|Y(f)|') %%%Título del eje y
end
end

Best Answer

f and 2*abs(Y(1:NFFT/2+1)) don't have the same number of elements. Split them up to check:
whos f
whos NFFT
yValues = 2*abs(Y(1:NFFT/2+1))
whos yValues