     function y = FFTRecur(x)
   %
   % Pre:
   %    x a column vector with power-of-two length.
   % Post
   %    y   the DFT of x.
   %
      n = length(x);
      if n ==1
         y = x;
      else
         m = n/2;
         yT = FFTRecur(x(1:2:n));
         yB = FFTRecur(x(2:2:n));
         d = exp(-2*pi*sqrt(-1)/n).^(0:m-1)';
         z = d.*yB;
         y = [ yT+z ; yT-z ];
      end
