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

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