 function y = FFTRecur(x)
% y = FFTRecur(x)
% y is the discrete Fourier transform of column vector x, n = 2^k

n = length(x);
if n == 1
   y = x;
else
   m = n/2;
   w = exp(pi*sqrt(-1)/m);
   yT = FFTRecur(x(1:2:n));
   yB = FFTRecur(x(2:2:n));
   d  = w.^(0:m-1)';
   z  = d.*yB;
   y  = [ yT+z ; yT-z ];
end
    