* ANALYSER PROCEDUR PICA 92/07/03 21:15:25 619 *----------------------------------------------------------------------* * PROCEDURE ANALYSER * * * * CALCUL DE LA DECOMPOSITION D'UN SIGNAL QUELCONQUE EN * * ONDELETTE ORTHOGONALE * * * * M DECO RESI=ANALYSER ACC (OPTIO); * *----------------------------------------------------------------------* * ENTREE * * * * ACC : OBJET DE TYPE EVOLUTION CONTENANT LE SIGNAL * * * * OPTIO : OBJET DE TYPE TABLE CONTENANT LES OPTION * *----------------------------------------------------------------------* * OPTIONS * * * * OPTIO.'PUIS'= ENTIER, 2**PUISS+1=NB DE POINT D'ANALYSE, * * DEFAUT ENGLOBANT TOUT LE SIGNAL COMPLETE PAR DES 0 * * * * OPTIO.'LDEC'= ENTIER, NOMBRE DE NIVEAU DE DECOMPOSITION SOUHAITE, * * DEFAUT PERMETTANT LE CALCUL MAXIMUM * * * * OPTIO.'BORD'= TEXTE, TRAITEMENT DES CONDITION DE BORD POUR LA * * CORRELATION: SYME(trique) OU PADD(ing) de ZERO * * DEFAUT SYME * * * * OPTIO.'TYPE'= TEXTE, TYPE D'ONDELETTE: MALL(at) OU DAUB(echie) * * DEFAUT MALL * *----------------------------------------------------------------------* * SORTIE * * * * M : ENTIER, NOMBRE DE NIVEAU ATTEINT * * * * DECO : OBJET DE TYPE EVOLUTION CONTENANT LA DECOMPOSITION EN M * * NIVEAUX, DES BASES VERS LES HAUTES FREQUENCES * * * * RESI : OBJET DE TYPE EVOLUTION CONTENANT LE RESIDU AU NIVEAU M * *----------------------------------------------------------------------* *----------------------------------------------------------------------* 'SI' ('NON' ('EXISTE' OPTIO)); LOPTION=FAUX; 'SINON'; LOPTION=VRAI; 'FINSI'; 'SI' LOPTION; 'SI' ('EXISTE' OPTIO 'PUIS'); PUIS=OPTIO.'PUIS'; 'FINSI'; 'SI' ('EXISTE' OPTIO 'LDEC'); LDEC=OPTIO.'LDEC'; 'FINSI'; 'FINSI'; 'FINSI'; 'FINSI'; * * Test sur le signal * LOK=VRAI; XXDX=XXH-XXB; 'SI' ( (DXSUP - DXINF)/PAS '>' 1.E-5); 'MESSAGE' 'ANALYSER: le pas de temps du signal n est pas constant'; LOK=FAUX; 'FINSI'; 'SI' LOK; * * Filtre en h (MALLAT -erreur signe) * .006 .006 -.003 -.002; * * Calcul des filtres conjugues et en quadrature * HTILDE=HH; MMHTILDE= -1; HDIM='DIMENSION' HH; UU=(-1)**HDIM; 'REPETER' LABMALL HDIM; G='EXTRAIRE' HH I; GG='INSERER' GG II (UU*G); 'SI' (I 'NEG' 1);GG='INSERER' GG II (UU*G); 'FINSI'; I=I-1; II=II+1; UU=UU*(-1); 'FIN' LABMALL; MMG=HDIM-2; GTILDE=GG; MMGTILDE=GDIM-(MMG+1); * 'SINON'; * * Filtre en h (Daubechie + correction norme) * 0.469782287405 -0.143906003929 -0.224036184994 0.071309219267 0.080612609151 -0.038029936935 -0.016574541631 0.012550998556 0.000429577973 -0.001801640704 0.000353713800; HH=HH / (2**.5); * * Calcul des filtres conjugues et en quadrature * UU=-1; 'REPETER' LABDAUB HDIM; H='EXTRAIRE' HH I; HTILDE = 'INSERER' HTILDE II H; GTILDE = 'INSERER' GTILDE II UU; I=I-1; II=II+1; UU=UU*(-1); 'FIN' LABDAUB; MMHTILDE=HDIM-1; GTILDE=GTILDE*HH; MMGTILDE=1; * 'SINON'; LOK=FAUX; 'FINSI'; 'FINSI'; 'FINSI'; * * modification du signal original : ajout de 0 avant et apres * seule la procedure "automatique" respecte au mieu la decomposition en * ondelette * 'SI' LOK; 'SI' (PUIS 'EGA' 0); PUIS='ENTIER' ((('LOG' (NPT-1))/('LOG' 2))*0.9999); PUIS=PUIS+1; 'FINSI'; NPS=(2**PUIS) + 1; NPA=NPS-NPT; 'SI' (NPA '>' 0); * IDEP='ENTIER' ((XDEP/PAS)*1.001); IPAM=NPA-IDEP+1; 'SI' (IPAM '>' 1); PUIZ='ENTIER' ((('LOG' (IPAM-1))/('LOG' 2))*0.9999); IPAM=2**PUIZ+1; NPA=IPAM+IDEP-1; 'SINON'; NPA=NPA/2; 'FINSI'; * 'MESSAGE' 'ANALYSER: ajout de' NPA 'points nul en tete de signal'; * XDEP=XDEP-(NPA*PAS); XXX=XX;XX=XXA 'ET' XX; YYY=YY;YY=YYA 'ET' YY; NPA=(NPS-NPT) - NPA; * 'SI' (NPA '>' 0); 'MESSAGE' 'ANALYSER: ajout de' NPA 'points nul en queue de signal'; * XXX=XX;XX=XX 'ET' XXA ; YYY=YY;YY=YY 'ET' YYA; 'FINSI'; 'SINON'; 'SI' (NPA '<' 0); 'MESSAGE' 'ANALYSER: analyse limitee a' NPS 'points'; 'MESSAGE' ' implementation non correcte'; 'FINSI'; 'FINSI'; * * Decomposition * GTILDE MMGTILDE BORD LDEC; * 'FINSI'; *
© Cast3M 2003 - Tous droits réservés.
Mentions légales