NAME
ezfftb - computes a periodic sequence from its Fourier coef-
ficients. EZFFTB is a simplified but slower version of
RFFTB.
SYNOPSIS
SUBROUTINE EZFFTB (N, R, AZERO, A, B, WSAVE)
#include <sunperf.h>
void ezfftb (int n, float *r, float *azero, float *a, float
*sb, float *wsave) ;
ARGUMENTS
N Length of the sequence to be synthesized. The
method is most efficient when N is the product of
small primes. N >= 0.
R On exit, the Fourier synthesis of the inputs.
AZERO The constant Fourier coefficient A0.
A, B Arrays that contain the remaining Fourier
coefficients. On exit, these arrays are
unchanged.
WSAVE On 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
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |