home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l460 / 2.ddi / DATAFUN.DI$ / FFT2.M < prev    next >
Encoding:
Text File  |  1993-03-07  |  956 b   |  35 lines

  1. function f = fft2(x, mrows, ncols)
  2. %FFT2    Two-dimensional Fast Fourier Transform.
  3. %    FFT2(X) returns the two-dimensional Fourier transform of matrix X.
  4. %    If X is a vector, the result will have the same orientation.
  5. %    FFT2(X,MROWS,NCOLS) pads matrix X with zeros to size MROWS-by-NCOLS
  6. %    before transforming.
  7. %
  8. %    See also IFFT2, FFT, IFFT, FFTSHIFT.
  9.  
  10. %    J.N. Little 12-18-85
  11. %    Revised 4-15-87 JNL
  12. %    Revised 5-3-90 CRD
  13. %    Copyright (c) 1984-93 by The MathWorks, Inc.
  14.  
  15. [m, n] = size(x);
  16. % Basic algorithm.
  17. if (nargin == 1) & (m > 1) & (n > 1)
  18.     f = fft(fft(x).').';
  19.     return;
  20. end
  21.  
  22. % Padding for vector input.
  23.  
  24. if nargin < 3, ncols = n; end
  25. if nargin < 2, mrows = m; end
  26. mpad = mrows; npad = ncols;
  27. if m == 1 & mpad > m, x(2, 1) = 0; m = 2; end
  28. if n == 1 & npad > n, x(1, 2) = 0; n = 2; end
  29. if m == 1, mpad = npad; npad = 1; end   % For row vector.
  30.  
  31. % Transform.
  32.  
  33. f = fft(x, mpad);
  34. if m > 1 & n > 1, f = fft(f.', npad).'; end
  35.