Télécharger analyser.procedur

Retour à la liste

Numérotation des lignes :

  1. * ANALYSER PROCEDUR PICA 92/07/03 21:15:25 619
  2. *----------------------------------------------------------------------*
  3. * PROCEDURE ANALYSER *
  4. * *
  5. * CALCUL DE LA DECOMPOSITION D'UN SIGNAL QUELCONQUE EN *
  6. * ONDELETTE ORTHOGONALE *
  7. * *
  8. * M DECO RESI=ANALYSER ACC (OPTIO); *
  9. *----------------------------------------------------------------------*
  10. * ENTREE *
  11. * *
  12. * ACC : OBJET DE TYPE EVOLUTION CONTENANT LE SIGNAL *
  13. * *
  14. * OPTIO : OBJET DE TYPE TABLE CONTENANT LES OPTION *
  15. *----------------------------------------------------------------------*
  16. * OPTIONS *
  17. * *
  18. * OPTIO.'PUIS'= ENTIER, 2**PUISS+1=NB DE POINT D'ANALYSE, *
  19. * DEFAUT ENGLOBANT TOUT LE SIGNAL COMPLETE PAR DES 0 *
  20. * *
  21. * OPTIO.'LDEC'= ENTIER, NOMBRE DE NIVEAU DE DECOMPOSITION SOUHAITE, *
  22. * DEFAUT PERMETTANT LE CALCUL MAXIMUM *
  23. * *
  24. * OPTIO.'BORD'= TEXTE, TRAITEMENT DES CONDITION DE BORD POUR LA *
  25. * CORRELATION: SYME(trique) OU PADD(ing) de ZERO *
  26. * DEFAUT SYME *
  27. * *
  28. * OPTIO.'TYPE'= TEXTE, TYPE D'ONDELETTE: MALL(at) OU DAUB(echie) *
  29. * DEFAUT MALL *
  30. *----------------------------------------------------------------------*
  31. * SORTIE *
  32. * *
  33. * M : ENTIER, NOMBRE DE NIVEAU ATTEINT *
  34. * *
  35. * DECO : OBJET DE TYPE EVOLUTION CONTENANT LA DECOMPOSITION EN M *
  36. * NIVEAUX, DES BASES VERS LES HAUTES FREQUENCES *
  37. * *
  38. * RESI : OBJET DE TYPE EVOLUTION CONTENANT LE RESIDU AU NIVEAU M *
  39. *----------------------------------------------------------------------*
  40. 'DEBPROC' ANALYSER ACC*'EVOLUTION' OPTIO/'TABLE';
  41. *----------------------------------------------------------------------*
  42. 'SI' ('NON' ('EXISTE' OPTIO));
  43. LOPTION=FAUX;
  44. 'SINON';
  45. LOPTION=VRAI;
  46. 'FINSI';
  47. PUIS=0; LDEC=100; BORD='TEXT' SYME; TYPE= 'TEXT' MALL;
  48. 'SI' LOPTION;
  49. 'SI' ('EXISTE' OPTIO 'PUIS'); PUIS=OPTIO.'PUIS'; 'FINSI';
  50. 'SI' ('EXISTE' OPTIO 'LDEC'); LDEC=OPTIO.'LDEC'; 'FINSI';
  51. 'SI' ('EXISTE' OPTIO 'BORD'); BORD='TEXT' OPTIO.'BORD';
  52. 'FINSI';
  53. 'SI' ('EXISTE' OPTIO 'TYPE'); TYPE='TEXT' OPTIO.'TYPE';
  54. 'FINSI';
  55. 'FINSI';
  56. *
  57. * Test sur le signal
  58. *
  59. LOK=VRAI;
  60. YY='COPIER' ('EXTR' ACC 'ORDO' 1);
  61. XX='COPIER' ('EXTR' ACC 'ABSC' 1);
  62. NPT='DIME' YY;
  63. XXH='ENLE' XX 1;
  64. XXB='ENLE' XX NPT;
  65. XXDX=XXH-XXB;
  66. DXSUP='MAXI' XXDX; DXINF='MINI' XXDX;
  67. PAS=('EXTR' 2 XX) - ('EXTR' 1 XX);
  68. 'SI' ( (DXSUP - DXINF)/PAS '>' 1.E-5);
  69. 'MESSAGE' 'ANALYSER: le pas de temps du signal n est pas constant';
  70. LOK=FAUX;
  71. 'FINSI';
  72. 'SI' LOK;
  73. *
  74. * Filtre en h (MALLAT -erreur signe)
  75. *
  76. 'SI' ('EGA' TYPE ('TEXT' MALL));
  77. HH='PROG' .542 .307 -.035 -.078 .023 .030 -.012 -.013
  78. .006 .006 -.003 -.002;
  79. *
  80. * Calcul des filtres conjugues et en quadrature
  81. *
  82. HTILDE=HH;
  83. MMHTILDE= -1;
  84. HDIM='DIMENSION' HH;
  85. GG='PROG'; I=HDIM; II=1;
  86. UU=(-1)**HDIM;
  87. 'REPETER' LABMALL HDIM;
  88. G='EXTRAIRE' HH I;
  89. GG='INSERER' GG II (UU*G);
  90. 'SI' (I 'NEG' 1);GG='INSERER' GG II (UU*G); 'FINSI';
  91. I=I-1; II=II+1; UU=UU*(-1);
  92. 'FIN' LABMALL;
  93. MMG=HDIM-2;
  94. GDIM='DIME' GG;
  95. GTILDE=GG;
  96. MMGTILDE=GDIM-(MMG+1);
  97. *
  98. 'SINON';
  99. *
  100. * Filtre en h (Daubechie + correction norme)
  101. *
  102. 'SI' ('EGA' TYPE ('TEXT' DAUB));
  103. HH='PROG' 0.077852054085 0.396539319482 0.729132090846
  104. 0.469782287405 -0.143906003929 -0.224036184994
  105. 0.071309219267 0.080612609151 -0.038029936935
  106. -0.016574541631 0.012550998556 0.000429577973
  107. -0.001801640704 0.000353713800;
  108. HH=HH / (2**.5);
  109. *
  110. * Calcul des filtres conjugues et en quadrature
  111. *
  112. HDIM='DIME' HH;
  113. GTILDE='PROG'; HTILDE='PROG'; I=HDIM; II=1;
  114. UU=-1;
  115. 'REPETER' LABDAUB HDIM;
  116. H='EXTRAIRE' HH I;
  117. HTILDE = 'INSERER' HTILDE II H;
  118. GTILDE = 'INSERER' GTILDE II UU;
  119. I=I-1; II=II+1; UU=UU*(-1);
  120. 'FIN' LABDAUB;
  121. MMHTILDE=HDIM-1;
  122. GTILDE=GTILDE*HH; MMGTILDE=1;
  123. *
  124. 'SINON';
  125. 'MESS' 'ANALYSER: le type' TYPE 'd analyse n existe pas';
  126. LOK=FAUX;
  127. 'FINSI';
  128. 'FINSI';
  129. 'FINSI';
  130. *
  131. * modification du signal original : ajout de 0 avant et apres
  132. * seule la procedure "automatique" respecte au mieu la decomposition en
  133. * ondelette
  134. *
  135. 'SI' LOK;
  136. 'SI' (PUIS 'EGA' 0);
  137. PUIS='ENTIER' ((('LOG' (NPT-1))/('LOG' 2))*0.9999); PUIS=PUIS+1;
  138. 'FINSI';
  139. NPS=(2**PUIS) + 1;
  140. NPA=NPS-NPT;
  141. 'SI' (NPA '>' 0);
  142. *
  143. XDEP='EXTR' XX 1;
  144. IDEP='ENTIER' ((XDEP/PAS)*1.001);
  145. IPAM=NPA-IDEP+1;
  146. 'SI' (IPAM '>' 1);
  147. PUIZ='ENTIER' ((('LOG' (IPAM-1))/('LOG' 2))*0.9999);
  148. IPAM=2**PUIZ+1;
  149. NPA=IPAM+IDEP-1;
  150. 'SINON';
  151. NPA=NPA/2;
  152. 'FINSI';
  153. *
  154. 'MESSAGE' 'ANALYSER: ajout de' NPA 'points nul en tete de signal';
  155. *
  156. XDEP='EXTR' XX 1;
  157. XDEP=XDEP-(NPA*PAS);
  158. XXA=PROG XDEP 'PAS' PAS 'NPAS' (NPA-1);
  159. XXX=XX;XX=XXA 'ET' XX;
  160. YYA=PROG NPA*0.;
  161. YYY=YY;YY=YYA 'ET' YY;
  162. NPA=(NPS-NPT) - NPA;
  163. *
  164. 'SI' (NPA '>' 0);
  165. 'MESSAGE'
  166. 'ANALYSER: ajout de' NPA 'points nul en queue de signal';
  167. *
  168. XDEP=('EXTR' XX (NPS-NPA))+PAS;
  169. XXA=PROG XDEP 'PAS' PAS 'NPAS' (NPA-1);
  170. XXX=XX;XX=XX 'ET' XXA ;
  171. YYA=PROG NPA*0.;
  172. YYY=YY;YY=YY 'ET' YYA;
  173. 'FINSI';
  174. 'SINON';
  175. 'SI' (NPA '<' 0);
  176. 'MESSAGE' 'ANALYSER: analyse limitee a' NPS 'points';
  177. 'MESSAGE' ' implementation non correcte';
  178. 'FINSI';
  179. 'FINSI';
  180. SIGNAL='EVOL' 'MANU' XX YY;
  181. *
  182. * Decomposition
  183. *
  184. M DECO RESI=MULTIDEC SIGNAL HTILDE MMHTILDE
  185. GTILDE MMGTILDE BORD LDEC;
  186. 'MESS' 'ANALYSER: nb de niveau d analyse:' M;
  187. *
  188. 'FINSI';
  189. *
  190. 'FINPROC' M DECO RESI;
  191.  

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