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