Download recompos.procedur

Back to the list

   1 : * RECOMPOS  PROCEDUR  PICA      92/07/03    21:34:22     619            
   2 : *----------------------------------------------------------------------*
   3 : * PROCEDURE RECOMPOS                                                   *
   4 : *                                                                      *
   5 : * CALCUL DE LA RECOMPOSITION D'UN SIGNAL QUELCONQUE EN                 *
   6 : * ONDELETTE ORTHOGONALE                                                *
   7 : *                                                                      *
   8 : * M ACC=RECOMPOS RESI DECO (OPTIO);                                    *
   9 : *----------------------------------------------------------------------*
  10 : * ENTREE                                                               *
  11 : *                                                                      *
  12 : * RESI  : OBJET DE TYPE EVOLUTION CONTENANT LE RESIDU AU NIVEAU M      *
  13 : *                                                                      *
  14 : * DECO  : OBJET DE TYPE EVOLUTION CONTENANT LA DECOMPOSITION EN M      *
  15 : *         NIVEAUX, DES BASES VERS LES HAUTES FREQUENCES                *
  16 : *                                                                      *
  17 : * OPTIO : OBJET DE TYPE TABLE CONTENANT LES OPTION                     *
  18 : *----------------------------------------------------------------------*
  19 : * OPTIONS                                                              *
  20 : *                                                                      *
  21 : * OPTIO.'LREC'= ENTIER, NOMBRE DE NIVEAU DE RECOMPOSITION SOUHAITE,    *
  22 : *               DEFAUT PERMETTANT LE CALCUL MAXIMUM                    *
  23 : *                                                                      *
  24 : * OPTIO.'FORC'= LOGIQUE, AUTORISATION POUR FORCER LES CALCUL AU DELA   *
  25 : *               DES POSSIBILITES DE DECO ET SUIVANT LREC               *
  26 : *               DEFAUT FAUX                                            *
  27 : *                                                                      *
  28 : * OPTIO.'BORD'= TEXTE, TRAITEMENT DES CONDITION DE BORD POUR LA        *
  29 : *               CORRELATION: SYME(trique) OU PADD(ing) de ZERO         *
  30 : *               DEFAUT SYME                                            *
  31 : *                                                                      *
  32 : * OPTIO.'TYPE'= TEXTE, TYPE D'ONDELETTE: MALL(at) ou DAUB(echie)       *
  33 : *               DEFAUT MALL                                            *
  34 : *                                                                      *
  35 : * OPTIO.'TINI'= FLOTTANT BORNE INFERIEURE POUR LE SIGNAL RECONSTITUE   *
  36 : *               DEFAUT RIEN                                            *
  37 : *                                                                      *
  38 : * OPTIO.'TFIN'= FLOTTANT BORNE SUPERIEURE POUR LE SIGNAL RECONSTITUE   *
  39 : *               DEFAUT RIEN                                            *
  40 : *----------------------------------------------------------------------*
  41 : * SORTIE                                                               *
  42 : *                                                                      *
  43 : * M     : ENTIER, NOMBRE DE NIVEAU ATTEINT                             *
  44 : *                                                                      *
  45 : * ACC   : OBJET DE TYPE EVOLUTION CONTENANT LE SIGNAL                  *
  46 : *----------------------------------------------------------------------*
  47 : 'DEBPROC' RECOMPOS RESI*'EVOLUTION' DECO*'EVOLUTION' OPTIO/'TABLE';
  48 : *----------------------------------------------------------------------*
  49 : 'SI' ('NON' ('EXISTE' OPTIO));
  50 :   LOPTION=FAUX;
  51 : 'SINON';
  52 :   LOPTION=VRAI;
  53 : 'FINSI';
  54 : LREC=100; FORC=FAUX; BORD='TEXT' SYME; TYPE= 'TEXT' MALL;
  55 : LTINI=FAUX;LTFIN=FAUX;
  56 : 'SI' LOPTION;
  57 :   'SI' ('EXISTE' OPTIO 'LREC');
  58 :     LREC=OPTIO.'LREC';
  59 :     'SI' ('EXISTE' OPTIO 'FORC'); FORC= OPTIO.'FORC'; 'FINSI';
  60 :   'FINSI';
  61 :   'SI' ('EXISTE' OPTIO 'BORD'); BORD='TEXT' OPTIO.'BORD'; 'FINSI';
  62 :   'SI' ('EXISTE' OPTIO 'TYPE'); TYPE='TEXT' OPTIO.'TYPE'; 'FINSI';
  63 :   'SI' ('EXISTE' OPTIO 'TINI'); TINI=OPTIO.'TINI';
  64 :                                 LTINI=VRAI;          'FINSI';
  65 :   'SI' ('EXISTE' OPTIO 'TFIN'); TFIN=OPTIO.'TFIN';
  66 :                                 LTFIN=VRAI;          'FINSI';
  67 : 'FINSI';
  68 : LOK=VRAI;
  69 : *
  70 : * Filtre en h (MALLAT -erreur signe)
  71 : *
  72 : 'SI' ('EGA' TYPE ('TEXT' MALL));
  73 :   HH='PROG' .542 .307 -.035 -.078 .023 .030 -.012 -.013
  74 :             .006 .006 -.003 -.002;
  75 :     MMH= -1;
  76 :     HDIM='DIME' HH;
  77 :     GG='PROG'; I=HDIM; II=1;
  78 :     UU=(-1)**HDIM;
  79 :     'REPETER' LABMALL HDIM;
  80 :       G='EXTRAIRE' HH I;
  81 :       GG='INSERER' GG II (UU*G);
  82 :       'SI' (I 'NEG' 1);GG= 'INSERER' GG II (UU*G); 'FINSI';
  83 :       I=I-1; II=II+1; UU=UU*(-1);
  84 :     'FIN' LABMALL;
  85 :     GTILDE=GG; MMG=HDIM-2;
  86 : 'SINON';
  87 : *
  88 : * Filtre en h (Daubechie + correction norme)
  89 : *
  90 :   'SI' ('EGA' TYPE ('TEXT' DAUB));
  91 :      HH='PROG' 0.077852054085  0.396539319482  0.729132090846
  92 :                0.469782287405 -0.143906003929 -0.224036184994
  93 :                0.071309219267  0.080612609151 -0.038029936935
  94 :               -0.016574541631  0.012550998556  0.000429577973
  95 :               -0.001801640704  0.000353713800;
  96 :      HH=HH / (2**.5);
  97 :  MMH=0;
  98 : *
  99 : * Calcul des filtres conjugues et en quadrature
 100 : *
 101 :     HDIM='DIME' HH;
 102 :     GG='PROG'; I=HDIM; II=1;
 103 :     UU=(-1)**HDIM;
 104 :     'REPETER' LABDAUB HDIM;
 105 :       G='EXTRAIRE' HH I;
 106 :       GG='INSERER' GG II (UU*G);
 107 :       I=I-1; II=II+1; UU=UU*(-1);
 108 :     'FIN' LABDAUB;
 109 :     MMG=HDIM-2;
 110 : *
 111 :   'SINON';
 112 :     'MESS' 'RECOMPOS:Le type' TYPE 'd analyse n existe pas';
 113 :     LOK=FAUX;
 114 :   'FINSI';
 115 : 'FINSI';
 116 : *
 117 : * Travail eventuel sur DECO
 118 : *
 119 : 'SI' LOK;
 120 :   DECOT=DECO;
 121 :   'SI' FORC;
 122 :     NCOUR='DIMENSION' DECO;
 123 :     'SI' (NCOUR '<' LREC);
 124 :       XXXX='EXTRAIRE' DECO 'ABSC' NCOUR;
 125 :       I=0;
 126 :       'REPETER' LABD (LREC-NCOUR);
 127 :         I=I+1;
 128 :         XX  ='DIADIQUE' XXXX 'IVIN'; XXXX=XX;
 129 :         DUMMY='EVOLUTION' 'MANUEL' 'temps' XX 'Y->0.' (0*XX);
 130 :         'SI' (I 'EGA' 1); DECOC=DUMMY;
 131 :         'SINON';          DECOC=DECOC 'ET' DUMMY;
 132 :         'FINSI';
 133 :       'FIN' LABD;
 134 :       DECOT=DECO 'ET' DECOC;
 135 :     'MESS' 'RECOMPOS:Ajout de' I 'niveaux nuls de complement';
 136 :     'FINSI';
 137 :   'FINSI';
 138 : *
 139 : * Recomposition
 140 : *
 141 :   M ACC=MULTIREC RESI DECOT HH MMH GG MMG BORD LREC;
 142 :   'MESS' 'RECOMPOS:Nb de niveau de recomposition:' M;
 143 : *
 144 :   'SI' (LTINI 'OU' LTFIN);
 145 :     XXXX='EXTR' ACC 'ABSC' 1;
 146 :     TTINI='EXTR' XXXX 1;
 147 :     NNPTT='DIME' XXXX;
 148 :     TTFIN='EXTR' XXXX NNPTT;
 149 :     DXXXX=(TTFIN-TTINI)/(NNPTT-1);
 150 :     'SI' LTINI;
 151 :       'SI' (TINI '<EG' TTINI);
 152 :         TINI=TTINI;
 153 :         'MESS' 'RECOMPOS:TINI est trop petit pour etre pris en compte';
 154 :       'SINON';
 155 :         IINI=(TINI-TTINI)/DXXXX; IINI=IINI-0.0001;
 156 :         IINI='ENTIER' IINI; IINI=IINI+1;
 157 :         TINI=TTINI+(IINI*DXXXX);
 158 :       'FINSI';
 159 :     'SINON';
 160 :       TINI=TTINI;
 161 :     'FINSI';
 162 :     'SI' LTFIN;
 163 :       'SI' (TFIN '>EG' TTFIN);
 164 :         TFIN=TTFIN;
 165 :         'MESS' 'RECOMPOS:TFIN est trop grand pour etre pris en compte';
 166 :       'SINON';
 167 :         IFIN=(TTFIN-TFIN)/DXXXX; IFIN=IFIN-0.0001;
 168 :         IFIN='ENTIER' IFIN; IFIN=IFIN+1;
 169 :         TFIN=TTFIN-(IFIN*DXXXX);
 170 :       'FINSI';
 171 :     'SINON';
 172 :       TFIN=TTFIN;
 173 :     'FINSI';
 174 :     YYYY='EXTR' ACC 'ORDO' 1;
 175 :     XXX='PROG' TINI 'PAS' DXXXX TFIN;
 176 :     YYY='IPOL' XXX XXXX YYYY;
 177 :     ACC='EVOLUTION' 'MANUEL' 'temps' XXX 'Y' YYY;
 178 :   'FINSI';
 179 : 'FINSI';
 180 : *
 181 : 'FINPROC' M ACC;

© Cast3M 2003 - All rights reserved.
Disclaimer