|
IDL Analyst Reference Guide: Transforms |
|
The IMSL_FFTINIT function computes the parameters for a one-dimensional FFT to be used in the IMSL_FFTCOMP function with the keyword INIT_PARAMS.
| Note This routine requires an IDL Analyst license. For more information, contact your ITT Visual Information Solutions sales or technical support representative. |
Result = IMSL_FFTINIT(n [, /DOUBLE] [, COMPLEX=value] [, SINE=value] [, COSINE=value])
A one-dimensional array of length 2n + 15 that can then be used by IMSL_FFTCOMP when the optional parameter INIT_PARAMS is specified.
Length of the sequence to be transformed.
If present and nonzero, double precision is used and the returned array is double precision. This keyword does not have an effect if the initialization is being computed for a complex FFT.
If present and nonzero, the parameters for a complex transform are computed.
If present and nonzero, then parameters for a discrete Fourier cosine transformation are returned. See the IMSL_FFTCOMP keyword SINE.
If present and nonzero, then parameters for a discrete Fourier cosine transformation are returned. See the IMSL_FFTCOMP keyword SINE.
The IMSL_FFTINIT function should be used when many calls are to be made to IMSL_FFTCOMP without changing the data type of the array and the length of the sequence. The default action of IMSL_FFTINIT is to compute the parameters necessary for a real FFT. If parameters for a complex FFT are needed, the keyword COMPLEX should be specified.
The IMSL_FFTINIT function is based on the routines RFFTI and RFFTI in FFTPACK, which was developed by Paul Swarztrauber at the National Center for Atmospheric Research.
In this example, two distinct, real FFTs are computed by calling IMSL_FFTINIT once, then calling IMSL_FFTCOMP twice.
.RUN n = 7 ; Define the length of the signals. init_params = IMSL_FFTINIT(7) ; Initialize the parameters by calling IMSL_FFTINIT. FOR j = 0, 2 DO BEGIN p = COS(j * FINDGEN(n) * 2 * !Pi/n) q = IMSL_FFTCOMP(p, Init_Params = init_params) PM, 'p', 'q', FORMAT = '(7x, a1, 10x, a1)' FOR i = 0, n - 1 DO PM, p(i), q(i), FORMAT = '(f10.5, f10.2)' ENDFOR END ; For each pass through loop, compute a real FFT of an array of ; length n and output both original signal and computed FFT. p q 1.00000 7.00 1.00000 0.00 1.00000 0.00 1.00000 0.00 1.00000 0.00 1.00000 -0.00 1.00000 0.00 p q 1.00000 0.00 0.62349 3.50 -0.22252 0.00 -0.90097 -0.00 -0.90097 -0.00 -0.22252 0.00 0.62349 -0.00 p q 1.00000 -0.00 -0.22252 0.00 -0.90097 -0.00 0.62349 3.50 0.62349 -0.00 -0.90097 0.00 -0.22252 0.00
IDL Online Help (March 06, 2007)