* fichier : tfr.dgibi ************************************************************************ ************************************************************************ * * Transformee de Fourier rapide (FFT via operateur TFR) * et transformee inverse (FFT-1 via operateur TFRI) * * BP, 2018-10-04 * ************************************************************************ ************************************************************************ * Test de plusieurs signaux ************************************************************************ * nombre de points consideres (TFR demande une puissance de 2) * p = 10; p = 18; n = 2**p; * listes des temps (de dime n) * quelques listes utiles c180 = cos (180*t); s180 = sin (180*t); * creneau * bruite xh = (0.7*(sin (100*t))) + (sin (360*t)); bru1 = xh + xb; * rampe ram1 = 1.*t; * pour le trace * erreur * boucle sur les signaux a traiter REPE BB 6; * quel cas traite t'on ? si (&BB ega 1) ; x = c180; finsi; si (&BB ega 2) ; x = s180; finsi; si (&BB ega 3) ; x = cre_c; finsi; si (&BB ega 4) ; x = ram1 ; finsi; si (&BB ega 5) ; x = bru1 ; finsi; si (&BB ega 6) ; x = cre_s; finsi; * signal de depart * Transformee de Fourier * Tx = TFR ev_x p 'MOPH'; * si (&BB ega 3); list Tx; sinon; list resum Tx; finsi; * Transformee de Fourier inverse * si (&BB ega 3); list ev_y; sinon; list resum ev_y; finsi; * si (&BB ega 3); dess (ev_x et ev_y) tt; finsi; * test de bon fonctionnement err_p = err_p et err_x; FIN BB ; ************************************************************************ * Test des options ************************************************************************ * Transformee de Fourier Module PHase * Transformee de Fourier option FMAX * Transformee de Fourier option FMIN (pas souvent utilise a priori) * Transformee de Fourier options FMIN FMAX simultanee * Transformee de Fourier inverse sur Tx1 ... err_p = err_p et err_x1; * ... et Tx2 seulement * pour ce cas, phenomene de Gibbs visible : * on calcule une erreur moyenne plutot que max et on est + tolerant * err_x2 = MAXI 'ABS' (x - y2) ; * si (p < 16); dess (ev_x et ev_y et ev_y1 et ev_y2) tt; finsi; ************************************************************************ * TEST DE NON REGRESSION ************************************************************************ * pour info : lors de la creation du cas-test, * +----------+-------------------------+--------------+ * | linux 64 | AIX | * +----------+-------------------------+-------+------+ * | castem18 | castem apres EVOL #9942 | avant | apres| * +-------------+----------+-------------------------+-------+------+ * | precision | ~1.E-10 | ~1.E-15 |~1.E-10|~1E-15| * | performance | 540ms | 190ms | 1090ms| 930ms| * +-------------+----------+-------------------------+-------+------+ * perf linux 32 apres EVOL : 306ms * PRECISION XTOL = XPREC * 100; ZPREC2 = err_x2 > 1.E-2; * * PERFORMANCE * ZPERF1 = xCPU1 > ??? difficile car tres dependant-machine ; * SI ZPERF1; MESS 'PB DE PEROFRMANCE !'; FINSI; * SI (ZPREC1 OU ZPERF1 ou ZPREC2); SI (ZPREC1 OU ZPREC2); FINSI ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales