nstdfft.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:1k
源码类别:

波变换

开发平台:

Matlab

  1. function [xhat,omega] = nstdfft(x,lowb,uppb)
  2. %NSTDFFT Non-standard 1-D fast Fourier transform.
  3. %   [XHAT,OMEGA] = NSTDFFT(X,LOWB,UPPB) returns a
  4. %   nonstandard FFT of signal X sampled on a power-of-2
  5. %   regular grid (non necessarily integers) on the
  6. %   interval [LOWB,UPPB].
  7. %
  8. %   Output arguments are XHAT the shifted FFT of X
  9. %   computed on the interval OMEGA given by
  10. %   OMEGA = [-n:2:n-2]/(2*(UPPB-LOWB)) where n is the
  11. %   length of X. Outputs are vectors of length n.
  12. %
  13. %   Length of X must be a power of 2.
  14. %
  15. %   See also FFT, FFTSHIFT, INSTDFFT.
  16. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  17. %   Last Revision: 14-May-2003.
  18. %   Copyright 1995-2004 The MathWorks, Inc.
  19. % $Revision: 1.11.4.2 $
  20. % Check arguments.
  21. n = length(x);
  22. if errargt(mfilename,log(n)/log(2),'int'), error('*'), end
  23. if errargt(mfilename,uppb-lowb,'re0'), error('*'), end
  24. % Time grid resolution.
  25. delta = (uppb-lowb)/n;
  26. % Frequency grid.
  27. omega = [-n:2:n-2]/(2*n*delta);
  28. % Compute non standard fft.
  29. xhat = delta*exp(-2*pi*i*omega*lowb).*fftshift(fft(x));