NAME ezfftf - computes the Fourier coefficients of a periodic sequence. EZFFTF is a simplified but slower version of RFFTF. SYNOPSIS SUBROUTINE EZFFTF (N, R, AZERO, A, B, WSAVE) #include <sunperf.h> void ezfftf (int n, float *r, float *azero, float *a, float *sb, float *wsave) ; ARGUMENTS N Length of the sequence to be transformed. The method is most efficient when N is the product of small primes. N >= 0. R A real array of length N containing the sequence to be transformed. On exit, R is unchanged. AZERO The sum from i=1 to i=n of r(i)/n xWSAVE 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-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |