Computing the Fourier Transform with Weber's Method


The Fourier transform of a function tex2html_wrap_inline20 is defined as
displaymath18
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.