function x=FastFourier(f)
%Rekursive FFT
n=length(f);
if n==1
    x=f;
else
    w=exp(-2*pi*1i/n).^([0:n/2-1]');
    u=FastFourier(f(1:2:n-1));
    v=w.*FastFourier(f(2:2:n));
    x=zeros(n,1);
       
  
        x(1:n/2)=u+v;
        x(n/2+1:end)=u-v;
end
end