* SIGNSYNT PROCEDUR BP208322 16/05/24 21:15:17 8932 ******************************************************************* ******************************************************************* * * PROCEDURE S I G N S Y N T * --------------------------- * * AUTEUR D.BROCHARD (DEMT/EMSI) TEL 6994 * * CREATION DE SIGNAUX SYNTHETIQUES PAR RECOMBINAISON * DE SINUSOIDES A PHASES ALEATOIRES * * DATE : 09/09/1988 * * REMARQUES * --------- * * 1- LA METHODE DE GENERATION UTILISE LA TFR. ON DOIT DONC * UTILISER 2**NPT * 2- ON PEUT GENERER : * - UN BRUIT BLANC : OPTION BBLANC * - UN SIGNAL SYNTHETIQUE : OPTION FABR * ******************************************************************* * * SIGNSYNT TAB1 * * - TAB1 : OBJET DE TYPE TABLE * * ******************************************************************* * OPTION MOT1 = 'FABR' * * TAB1 : objet de type TABLE contenant * * Indice Type Commentaires * * MOTIT MOT TEXTE SUR 16 CARACT}RES * SEISME TABLE * Indice Type Commentaires * * SPECTRE EVOLUTION Spectre de r{f{rence * AMORT LISTREEL Les amortissements * TYPSP MOT 'ACCE' 'VITE' 'DEPL' * SIGNAL TABLE * Indice Type Commentaires * * ENVE MOT Type de l'enveloppe * NP ENTIER Puissance de 2 * DUREE FLOTTANT Dur{e du signal * FRCOUP FLOTTANT FREQ. LIMITE * * NBITER ENTIER Nombre d'it{rations * NBSIGN ENTIER Nombre de signaux * NALEAT ENTIER Param}tre d'initialisation des * phases * ******************************************************************* * * ZTITRE TITRE * ZNP NOMBRE DE POINTS EN PUISSANCE DE 2 * * ZEVSPE1(ZFREQ) SP. DE REF. ENTRE EN DONNEES DE TYPE TYPSP * ZEVSPEC(ZFREQ,ZSPEC) IDEM EN DEPLACEMENT * * ZEVSPREF(ZFRQ,ZSPREF) SP. DE REF. APRES INTERPOLATION EN DEPL * (SERT POUR LA CORRECTION,CALCUL DE RAP) * * ZEVSPRE1(ZFRQ) SP. DE REF. APRES INTERPOLATION EN TYPSP * (NE SERT QUE POUR LE TRACE) * * ZEVSPO(ZFRQ) SP. D'OSCILLATEUR EN DEPLACEMENT * ZEV1(ZFRQ) IDEM DE TYPE TYPSP POUR LE TRACE * * ZEPS AMORTISSEMENT * ZNITER NOMBRE D'ITERATIONS * * ZNPT NOMBRE DE POINTS DU SIGNAL * = 2 ** ZNP * ZDF PAS EN FREQUENCE = 1 / ZDUREE * ZDT PAS EN TEMPS = ZDUREE / (2 ** ZNP) * * ZFRQ0 ZFRQ TABLE DES FREQUENCES (AVEC ET SANS FREQUENCE NULLE) * ZFRQ0 = ZFRC1 + ZFRC2 ET DE LONGUEUR ZNBFR * ZNBFR (ZNPT / 2 ) + 1 : NB DE PTS DU SPECTRE * ZLRTEMP TABLE DES TEMPS AYANT ZNPT POINTS * * ******************************************************************* * OPTION BBLANC : SIGNAL BRUIT BLANC COMBINAISON DE SINUSOIDES * A PHASES ALEATOIRES * TAB1 : objet de type TABLE contenant * * Indice Type Commentaires * * MOTIT MOT TEXTE SUR 16 CARACTERES * OPTION MOT 'BBLANC' * NP ENTIER nombre de points en puissance de 2 * DELTAF FLOTTANT Pas en fr{quence * NALEAT ENTIER Param}tre d'initialisation des * phases * ******************************************************************* * * ZTITRE TITRE * ZNP NOMBRE DE POINTS EN PUISSANCE DE 2 * ZNPT NB DE FREQUENCES = (2**ZNP) * ZDELTAF PAS EN FREQUENCE * ZINIT PARAMETRE INITIALISATION DES PHASES * * SORTIE * EVBB0 'EVOLUTIO' CONTENANT LE SIGNAL * *========================================================= * ZOPTION = MOT1 ; IMPII = 'VALEUR' 'IMPI' ; 'SI' ( 'EGA' ZOPTION 'FABR' ) ; * ZEVSPE1 = ZTAB. SEISME . SPECTRE ; ZEPS = ZTAB. SEISME . AMORT ; ZTYPSP = ZTAB. SEISME . TYPSP ; ZNP = ZTAB. SIGNAL . NP ; ZDUREE = ZTAB. SIGNAL . DUREE ; ZNITER = ZTAB. NBITER ; ZNBSIGN = ZTAB. NBSIGN ; ZNALEAT = ZTAB. NALEAT ; ZFRCOUP = ZTAB. FRCOUP ; * TEST LONGUEUR DU TITRE 'TITR' ZTITRE 'SPECTRE ITERATION NUM' ZNITER 'MOYENNE DE' ZNBSIGN 'SIGNAUX' ; 'SINON' ; 'SI' ( 'EGA' ZOPTSOR 'SIGNAUX' ) ; ZOPTS = 2 ; 'FINSI' ; 'SI' ( 'EGA' ZOPTSOR 'SPECTRE' ) ; ZOPTS = 1 ; 'FINSI' ; 'FINSI' ; 'SINON' ; 'SI' ( 'EGA' ZENVE ZPTLIN ) ; ZTDEB = ZTAB. SIGNAL. TDEBUT ; ZTFIN = ZTAB. SIGNAL. TFIN ; 'FINSI' ; 'FINSI' ; * * TRANSFORMATION SI BESOIN EST DU SRO EN SRO EN DEPL * 'SI' ( 'EGA' ZTYPSP ZDEPL ) ; ZEVSPEC = ZEVSPE1 ; 'SINON' ; 'FINSI' ; * ZPI = PI ; ZE = EXP 1. ; * ZNPT = 2 '**' ZNP ; ZNPTP1 = ZNPT '+' 1 ; ZDF = 1. '/' ZDUREE; ZNBFRM1 = ZNPT '/' 2 ; ZNBFRM2 = ZNBFRM1 '-' 1 ; ZNBFR = ZNBFRM1 '+' 1 ; ZDT = ZDUREE '/' ZNPT ; ZFMAX = 0.5 '/' ZDT ; * CALCUL DES TABLES DES FREQUENCES ET DES TEMPS * 'MESS' 'DUREE ET DT = ' ZDUREE ZDT ; 'SI' ( 'EGA' ZENVE ZPTLIN ) ; 'FINSI' ; * 'MESS' 'FREQUENCE MAXIMALE = ' ZFMAX ; * 'MESS' 'NOMBRE DE PTS DU SPECTRE = ' ZNBFRM1 ; * 'MESS' 'NOMBRE DE PTS DU SIGNAL = ' ZNPT ; * ZFC = ( 2. '*' ZEPS ) '**' .5 ; ZFC = ZE '/' ( 2. '*' ZDUREE '*' ZFC ) ; ZNBC1 = 'ENTI' ( ZFC '/' ZDF ) ; ZNBC11 = ZNBC1 '-' 1 ; ZNBC2 = ZNBFR '-' ZNBC1 ; ZNBC21 = ZNBC2 '-' 1; ZNBC22 = ZNBC21 '-' 1 ; ZDF1 = ( ZNBC1 '+' 1 ) '*' ZDF ; * * * CREATION DE L'ENVELOPPE * ZTABENV1 = 'TABLE' ; ZTABENV1.'TYPENVE' = ZENVE ; ZTABENV1.'NPT' = ZNPT ; ZTABENV1.'DUREE' = ZDUREE ; 'SI' ( 'EGA' ZENVE ZPTLIN ) ; ZTABENV1.'TDEBUT' = ZTDEB ; ZTABENV1.'TFIN' = ZTFIN ; 'FINSI' ; ZTABENV1.'EPS' = ZEPS ; * * ZLRENV = ZTABENV2.'LRENV' ; ZLRCORR = ZTABENV2.'LRCORR' ; * * INTERPOLATION LOGARITHMIQUE SUR LE SPECTRE DE REFERENCE EN DEPL * AVEC ZNBFR POINTS SANS FREQUENCE NULLE * ZLOGFRQ = 'LOG' ZLRFRQ ; ZLOGFREQ = 'LOG' ZLRFREQ ; ZLOGSPEC = 'LOG' ZLRSPEC ; ZLRSPREF = 'EXP' ZLRSPREF ; 'OUBLIER' ZLRSPREF ; ****** * CALCUL DU SPECTRE DE REFERENCE DE TYPE TYPSP POUR TRACES 'SI' ( 'EGA' ZTYPSP ZDEPL ) ; ZEVSPRE1 = ZEVSPREF ; 'FINSI' ; * PAS DE FREQUENCES AU DELA DE FRCOUP ZN1 = 'ENTI' ( ZFRCOUP '/' ZDF ) ; ZN2 = ZNN '-' ZN1 ; ZLRCOUP = ZC1 'ET' ZC2 ; ZEVSPREF = ZEVSPREF '*' ZEVCOUP ; 'OUBLIER' ZLRCOUP ; 'OUBLIER' ZEVCOUP ; * * CALCUL DE L' ACCELERATION MAXIMALE * ZGAMMA = ZSPM '*' 4. '*' ZPI '*' ZPI '*' ZFM '*' ZFM ; * * CREATION DES PHASES ALEATOIRES * ZTABPHI = 'TABLE' ; ZI = 0 ; 'REPETER' LOOPHI ZNBSIGN ; ZI = ZI '+' 1 ; ZNALEAT1 = ZNALEAT '+' 1 ; ZTABPHI. ZI = ZLRPHI ; 'FIN' LOOPHI ; * ZCB = 2. '*' ZEPS ; ZCB = ZCB '**' 0.5 ; ZCB = 2. '*' ZDUREE '*' ZCB ; ZLRCBF = ZLRCBF1 'ET' ZLRCBF2 ; * ZLRMU2 = 2. '*' ( 'LOG' ZLRCBF ) ; 'TITRE' ZTITRE 'MU 2' ; 'FINSI' ; * ZEVCOEFR = ZEVCORR '*' ZEVMU2 ; ZEVSPP = ZEVSPREF ; ZEVDSP = ZEVSPP '*' ZEVSPP '*' ZDUREE '*' ZDUREE '*' .5 '/' ZEVCOEFR; ZLRTFR = ZLRDSP '**' 0.5 ; ZLRTFR = 'INSERER' ZLRTFR 1 0. ; * * CREATION DES SIGNAUX AVANT ITERATION * ZI = 0 ; 'REPETER' LOOP1 ZNBSIGN ; ZI = ZI '+' 1 ; ZLRPHI = ZTABPHI. ZI ; ZLRPHI; 'TITR' 'SIGNAL NO : ' ZI 'AVANT ITERATION' ; * 'TITR' ZTITRE ' SPECTRE AVANT ITERATION ' ; 'SI' ('EGA' ZI 1 ) ; ZEVSPO = ZEVSPI ; 'SINON' ; ZEVSPO = ZEVSPI '+' ZEVSPO ; 'FINSI' ; 'FIN' LOOP1 ; ZEVSPO = ZEVSPO '/' ZNBSIGN ; 'SI' ( 'EGA' ZTYPSP ZDEPL ) ; ZEV1 = ZEVSPO ; 'FINSI' ; 'TITR' 'PREMIERS SPECTRES ' ; * * ITERATIONS * ZTEVSIG = 'TABLE' ; ZITER = 0 ; 'REPETER' BOUCL ZNITER ; ZITER = ZITER '+' 1 ; * * MODIFICATION DU MODULE DE LA TFR DU PROCESSUS STATIONNAIRE * ZLRRAP = INSERER ZLRRAP 1 0. ; ZLRTFR = ZLRTFR '*' ZLRRAP ; * * CREATION DES SIGNAUX * ZI = 0 ; 'REPETER' LOOP2 ZNBSIGN ; ZI = ZI '+' 1 ; 'TITR' 'ITERATION ' ZITER 'SIGNAL' ZI ; ZLRPHI = ZTABPHI. ZI ; 'TITR' ZTITRE 'ITERATION NUM : ' ZITER ' SIGNAL NUM : ' ZI ; 'PHASE' ZLRPHI ; 'TITR' ZTITRE 'SIGNAL NO :' ZI ' ITERATION' ZITER ; 'SI' ( '>' ZITER 1 ) ; * CORRECTION DES POINTES DU SIGNAL ZTABCOR1 = 'TABLE' ; ZTABCOR1.'EVSIG1' = ZTEVSIG.ZI ; ZTABCOR1.'GAMMA' = ZGAMMA ; ZTEVSIG.ZI = ZTABCOR2.'EVSIG2' ; 'FINSI' ; * SIGNAL APRES CORRECTION 'TITR' ZTITRE 'SPECTRE ITERATION NUM' ZITER 'MOYENNE DE' ZNBSIGN 'SIGNAUX' ; 'FREQ' ZLRFRQ ZDEPL ; 'SI' ('EGA' ZI 1 ) ; ZEVSPO = ZEVSPI ; 'SINON' ; ZEVSPO = ZEVSPI '+' ZEVSPO ; 'FINSI' ; 'FIN' LOOP2 ; ZEVSPO = ZEVSPO '/' ZNBSIGN ; 'SI' ( 'EGA' ZTYPSP ZDEPL ) ; ZEV1 = ZEVSPO ; 'FINSI' ; * 'SI' ( 'NEG' ZTYPSIG ZACCE ) ; * ZI = 0 ; * 'REPETER' LOOP3 ZNBSIGN ; * ZI = ZI '+' 1 ; * 'FIN' LOOP3 ; * 'FINSI' ; FIN BOUCL ; 'SINON' ; 'SI' ( 'EGA' ZOPTION 'BLAN' ) ; * *'MESS' 'LECTURE' NALEAT NP DELTAF ; ZINIT = ZTAB. NALEAT ; ZEFRQ = ZTAB. NP ; ZDFRQ = ZTAB. DELTAF ; * *TEST ZINIT EXISTE T IL * ZNFRQ = 2 '**' ZEFRQ ; ZMOD = 1.0 '/' ( ( ( 2. '*' ZDFRQ ) '*' ( ZNFRQ '+' 1 ) ) '**' 0.5 ) ; 'TITR' 'BRUIT BLANC' ZTITRE ; 'PHASE' ZLRPHI ; * * NORMALISATION DU SIGNAL(ECART-TYPE= 1) * ZTEVSIG = ZEVBB00 '/' ZCOEF ; * ******************************************************************* 'SINON' ; 'FINSI' ; 'FINSI' ; *********************************************************************** 'FINPROC' ZTEVSIG ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales