function DFT=fastFTRecursive(f,N)

DFT=f;

m=round(log2(N));
N;

if (m==0)
   DFT=f;
else
   DFT(1:2:N-1)=.5*fastFTRecursive(f(1:N/2)+f(N/2+1:N),N/2);
   WNVEC=(ones(1,N/2)*exp(-i*2*pi/N)).^round(linspace(0,N/2-1,N/2));
   DFT(2:2:N)=.5*fastFTRecursive((f(1:N/2)-f(N/2+1:N)).*(WNVEC.'),N/2);   
end
