The Fourier transform of a function
is defined as
One of the most efficient methods for computing this transform is a method
introduced by Weber; see the reference below. It is based on bilinear transformations and Laguerre expansions, and it is implemented with the FFT.
The Matlab function four.m implements this method. The calling command is F = four(f, N, b, t), where f is a string function, e.g., f = 'exp(-x.^2)', N is the number of terms in the Laguerre expansion on which the method is based, b is a scalar parameter, and t is the value where the transform is to be evaluated. Note that t could be a scalar, vector, or matrix. The choice of the positive scaling parameter b (called 1/T in Weber's paper) is a matter of trial-and-error.
The function four.m calls the function laguer.m, which evaluates a Laguerre series with Clenshaw's algorithm. Note that if you choose to download these files, they should be saved as separate files four.m and laguer.m
Example of Usage:
>> f = 'exp(-x.^2)'; >> t = [0 1 2]; >> F = four(f,32,1,t); >> F = real(F) F = 1.7725 1.3804 0.6520 >> Fex = sqrt(pi)*exp(-t.^2/4) Fex = 1.7725 1.3804 0.6520 >> abserror = F-Fex abserror = 1.0e-07 * 0.0022 -0.4262 -0.3437
Reference:
H. Weber, "Numerical Computation of the Fourier Transform Using Laguerre Functions and the Fast Fourier Transform", Numer. Math., Vol. 36, pp. 197--209 (1981)
Last updated: February 5, 1998.