scfft1du,dzfft1du(3F) scfft1du,dzfft1du(3F)
scfft1du, dzfft1du - 1D, Real to Complex, Direct Fast Fourier Transforms.
Fortran :
subroutine scfft1du( sign, n, array, inc, coeff )
integer sign, n, inc
real array(0:(2*((N+2)/2)-1)*inc), coeff(n+15)
subroutine dzfft1du( sign, n, array, inc, coeff )
integer sign, n, inc
real*8 array(0:(2*((N+2)/2)-1)*inc), coeff(n+15)
C :
#include <fft.h>
int scfft1du ( int sign, int n, float *array,
int inc, float *coeff);
int dzfft1du ( int sign, int n, double *array,
int inc, double *coeff);
scfft1du and dzfft1du compute the Fourier transform of a real sequence.
The k-th index F(k) of the Fourier transform of a real sequence f(i) is
equal to:
F(k) = Sum ( W^(i*k) * f(i) ), for i =0, ..., (N-1)
W = exp( (Sign*2*sqrt(-1)*PI) / N )
The Direct Fourier transform is performed in-place, so the input sequence
is overwritten by its Fourier transform. As the input sequence has real
values, only the first half of the transform is needed. The (N-k)-th
sample of the transform would be the conjugate of the k-th sample.
However, some extra space is necessary. For an N sample sequence, the
output complex transform takes ((N+2)/2) complex values. This represents
either N+1(odd case) or N+2(even case) real values, that's one or two
more real values than the input real sequence.
SIGN Integer specifying which sign to be used for the expression of W
(see above) - must be either +1 or -1.
Unchanged on exit.
N Integer, the number of samples in each sequence.
Unchanged on exit.
ARRAY Array containing the samples of the sequence to be transformed.
On input, the element "i" of the sequence is stored as A(i*inc) in
Fortran , and A[i*inc] in C.
On exit, the array is overwritten by its transform.
Page 1
scfft1du,dzfft1du(3F) scfft1du,dzfft1du(3F)
INC Integer, increment between two consecutive elements of a sequence.
Unchanged on exit.
COEFF Array of at least ( N + 15 ) elements. On entry it contains the
Sines/Cosines and factorization of N. COEFF needs to be initialized with
a call to scfft1dui or dzfft1dui.
Unchanged on exit.
Example of Calling Sequence
Direct Fourier Transform of a sequence of 1024 real values. Elements of
sequence are stored with increment (stride) 1.
Fortran
real array(0:1026-1), coeff(1024+15)
call scfft1dui( 1024, coeff)
call scfft1du( -1, 1024, array, 1, coeff)
C
#include <fft.h>
float array[1026], *coeff;
coeff = scfft1dui( 1024, NULL);
scfft1du( -1, 1024, array, 1, coeff);
fft, scfft1dui, dzfft1dui, csfft1du, zdfft1du
PPPPaaaaggggeeee 2222 [ Back ]
|