Given
sequences of
real data values
, for
and
, this function simultaneously calculates the Fourier transforms of all the sequences defined by
(Note the scale factor
in this definition.)
The transformed values
are complex, but for each value of
the
form a Hermitian sequence (i.e.,
is the complex conjugate of
), so they are completely determined by
real numbers. The first call of
nag_fft_multiple_real (c06fpc) must be preceded by a call to
nag_fft_init_trig (c06gzc) to initialize the array
trig with trigonometric coefficients according to the value of
n.
The discrete Fourier transform is sometimes defined using a positive sign in the exponential term
To compute this form, this function should be followed by a call to
nag_multiple_conjugate_hermitian (c06gqc) to form the complex conjugates of the
.
The function uses a variant of the fast Fourier transform algorithm (
Brigham (1974)) known as the Stockham self-sorting algorithm, which is described in
Temperton (1983). Special coding is provided for the factors
,
,
, 5 and 6.
Some indication of accuracy can be obtained by performing a subsequent inverse transform and comparing the results with the original sequence (in exact arithmetic they would be identical).
This program reads in sequences of real data values and prints their discrete Fourier transforms (as computed by
nag_fft_multiple_real (c06fpc)). The Fourier transforms are expanded into full complex form using
nag_multiple_hermitian_to_complex (c06gsc) and printed. Inverse transforms are then calculated by calling
nag_multiple_conjugate_hermitian (c06gqc) followed by
nag_fft_multiple_hermitian (c06fqc) showing that the original sequences are restored.