Given
m Hermitian sequences of
n complex data values
zjp
, for
j=0,1,…,n-1 and
p=1,2,…,m, C06FQF simultaneously calculates the Fourier transforms of all the sequences defined by
(Note the scale factor
1n
in this definition.)
The transformed values are purely real (see also the
C06 Chapter Introduction).
The discrete Fourier transform is sometimes defined using a positive sign in the exponential term
To compute this form, this routine should be preceded by forming the complex conjugates of the
z^kp
; that is
xk=-xk, for
k=n/2+1×m+1,…,m×n.
The routine uses a variant of the fast Fourier transform (FFT) algorithm (see
Brigham (1974)) known as the Stockham self-sorting algorithm, which is described in
Temperton (1983). Special coding is provided for the factors
2,
3,
4,
5 and
6. This routine is designed to be particularly efficient on vector processors, and it becomes especially fast as
m, the number of transforms to be computed in parallel, increases.
Temperton C (1983) Fast mixed-radix real Fourier transforms
J. Comput. Phys. 52 340–350
If on entry
IFAIL=0 or
-1, explanatory error messages are output on the current error message unit (as defined by
X04AAF).
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 example reads in sequences of real data values which are assumed to be Hermitian sequences of complex data stored in Hermitian form. The sequences are expanded into full complex form and printed. The discrete Fourier transforms are then computed (using C06FQF) and printed out. Inverse transforms are then calculated by conjugating and calling
C06FPF showing that the original sequences are restored.