ezfftb(3P)
NAME
ezfftb - computes a perodic sequence from its Fourier coefficients. EZFFTB is a simplified but slower version of RFFTB.
SYNOPSIS
CALL EZFFTB (N, R, AZERO, A, B, WSAVE)
void ezfftb (long int n, float ∗r, float ∗azero, float
∗a, float ∗sb, float ∗wsave)
ARGUMENTS
NLength of the sequence to be synthesized. The method is most
efficient when N is the product of small primes. N >= 0.
ROn exit, the Fourier synthesis of the inputs.
AZEROThe constant Fourier coefficient A0.
A, BArrays that contain the remaining Fourier coefficients. On exit, these arrays are unchanged.
WSAVEOn entry, an array with dimension of at least (3 ∗ N + 15), initialized by EZFFTI.
SAMPLE PROGRAM
PROGRAM TEST
IMPLICIT NONE
C
INTEGER N
PARAMETER (N = 9)
C
INTEGER I
REAL A(N), B(N), AZERO, PI, R(N), WSAVE(3 ∗ N + 15)
C
EXTERNAL EZFFTB, EZFFTF, EZFFTI
INTRINSIC ACOS, COS, SIN
C
C Initialize array to a sequence of real numbers.
C
PI = ACOS (-1.0)
DO 100, I=1, N
R(I) = 3.0 + SIN ((I - 1.0) ∗ 2.0 ∗ PI / N) +
$ 4.0 ∗ COS ((I - 1.0) ∗ 8.0 ∗ PI / N)
100 CONTINUE
C
CALL EZFFTI (N, WSAVE)
PRINT 1000
PRINT 1010, (R(I), I = 1, N)
CALL EZFFTF (N, R, AZERO, A, B, WSAVE)
PRINT 1020, AZERO
PRINT 1030
PRINT 1010, (A(I), I = 1, N)
PRINT 1040
PRINT 1010, (B(I), I = 1, N)
CALL EZFFTB (N, R, AZERO, A, B, WSAVE)
PRINT 1050
PRINT 1010, (R(I), I = 1, N)
C
1000 FORMAT (1X, ’Original Sequence: ’)
1010 FORMAT (100(F4.1, 1X))
1020 FORMAT (1X, ’Azero = ’ F4.1)
1030 FORMAT (1X, ’A = ’)
1040 FORMAT (1X, ’B = ’)
1050 FORMAT (1X, ’Recovered Sequence: ’)
C
END
SAMPLE OUTPUT
Original Sequence:
7.0 -0.1 7.0 1.9 4.0 3.4 0.1 5.1 -1.4
Azero = 3.0
A =
0.0 0.0 0.0 4.0 0.0 0.0 0.0 0.0 0.0
B =
1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Recovered Sequence:
7.0 -0.1 7.0 1.9 4.0 3.4 0.1 5.1 -1.4
Sun, Inc. — Last change: 20 Sep 1996