Télécharger recompos.procedur

Retour à la liste

Numérotation des lignes :

  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 '&lt;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;
  182.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales