Download signcorr.procedur

Back to the list

   1 : * SIGNCORR  PROCEDUR  BLAY      94/04/07    21:15:07     1105           
   2 : 'DEBPROC'   SIGNCORR  ZZTB*'TABLE   '  ;                                        
   3 : *                                                                               
   4 : *    ZZTB  :  OBJET DE TYPE TABLE CONTENANT                                     
   5 : *                                                                               
   6 : *   LE SIGNAL A CORRIGER           EVSIG1          EVOLUTION                    
   7 : *   L' ACCELERATION MAXIMALE       GAMMA           FLOTTANT                     
   8 : *                                                                               
   9 : *                                  RECHERCHE DU MAXIMUM DU SIGNAL               
  10 : EVSIG1   = 'MOT' 'EVSIG1'   ;   ZEVSIG   = ZZTB. EVSIG1  ;                      
  11 : GAMMA  = 'MOT' 'GAMMA'          ;   ZGAMMA   = ZZTB. GAMMA         ;            
  12 : *                                                                               
  13 : ZSIG   = 'EXTR' ZEVSIG 'ORDO' 1   ; ZTEMP   = 'EXTR' ZEVSIG 'ABSC' 1 ;          
  14 : ZPR    = .01 ; ZNPT = 'DIME' ZSIG ; 'MESS'    'NB NPTS'  ZNPT ;                 
  15 : AZSIG  = 'ABS' (  ZSIG  )         ; ZMM     = 'MAXI' AZSIG ;                    
  16 : 'MESS' ' VALEUR ABSOLUE DU MAXIMUM DU SIGNAL    = '   ZMM  ;                    
  17 : 'SI' ( '<' ( ( 'ABS' ( ZMM '-' ZGAMMA ) ) '/' ZGAMMA ) ZPR );                   
  18 :     'MESS' 'ON A ATTEINT L ACCELERATION MAXIMALE. PAS DE CORRECTION' ;          
  19 :     ZEVPIC1    = ZEVSIG ;                                                       
  20 : 'SINON'          ;                                                              
  21 : * CORRECTION : DEUX CAS POSSIBLES    ZMM < ZGAMMA    ET   ZMM > ZGAMMA          
  22 :     'SI'   ( '<' ZMM ZGAMMA ) ;                                                 
  23 :         ZPICSIG = AZSIG 'MASQUE' 'EGALE' ZMM ;                                  
  24 :         ZNBPICS = 1 ;                                                           
  25 :     'SINON' ;                                                                   
  26 :         ZPICSIG = AZSIG 'MASQUE' 'SUPERIEUR' ZGAMMA ;                           
  27 :         ZEVO    = 'EVOL' MANU 'ABSC'   ZTEMP  'ORDO' ZPICSIG ;                  
  28 :         ZNBPICS =  'EXTR' ( 'COMT'  ZEVO    10. )  1  ;                         
  29 :     'FINSI' ;                                                                   
  30 :     'MESS' 'NOMBRE DE PICS = ' ZNBPICS ;                                        
  31 :     'SI' ( '>' ZNBPICS 4 ) ;                                                    
  32 :         'MESS' ' ATTENTION LE NOMBRE DE PICS A CORRIGER EST DE'                 
  33 :                       ZNBPICS ;                                                 
  34 :     'FINSI' ;                                                                   
  35 : *       CHAQUE PIC EST DEFINI PAR LES INDICES DE DEBUT : ZPICCORD               
  36 : *                                             DE FIN   : ZPICCORF               
  37 : *           ET LA CORRECTION = GAMMA/VALEUR DU MAXIMUM : ZPICCOEF               
  38 :      ZPICCORD = 'PROG'  ; ZPICCORF = 'PROG'  ; ZPICCOEF = 'PROG'  ;             
  39 : *                                       REPERAGE DES PASSAGES A ZERO            
  40 :      ZSIG1 = ZSIG '*'  1. ;   ZSIG2 = ZSIG '*'  1. ;                            
  41 :      ZSIG1 =  'INSE' ZSIG1 1 0. ;                                               
  42 :       NPT1 = ZNPT '+' 1 ;                                                       
  43 :        ZSIG2 =  'INSE' ZSIG2 NPT1 0. ;                                          
  44 :      ZZ = ZSIG1 '*' ZSIG2 ;  ZZ = 'ENLE' ZZ 1 ;                                 
  45 :      ZPICZER    =  ZZ   'MASQUE'   'SUPERIEUR'  0.  ;                           
  46 :      'REMP' ZPICZER ZNPT 1. ;                                                   
  47 : *                          METTRE DES 1 SUR TOUS LES PICS A CORRIGER            
  48 :      ZNUMPIC = 0 ; Z1 = 0 ;                                                     
  49 :     'REPETER' BOUCA ZNBPICS ;                                                   
  50 :          ZNUMPIC = ZNUMPIC '+' 1 ;                                              
  51 :          'REPETER' BOUC1 ZNPT    ;                                              
  52 :               Z1 = Z1 '+' 1 ;                                                   
  53 :              'SI' ( '>'  Z1  ZNPT ) ;                                           
  54 :                   ZNUMPIC = ZNUMPIC '-' 1 ;                                     
  55 :                   'QUIT'  BOUCA ;                                               
  56 :              'FINSI' ;                                                          
  57 : *                RECHERCHE DU PROCHAIN PIC (ZNUMPIC) DEFINI PAR ZA=1            
  58 :               ZA = 'EXTR' ZPICSIG Z1 ;                                          
  59 :              'SI' ( 'EGA'  ZA  1  ) ;  'QUIT'  BOUC1 ; 'FINSI' ;                
  60 :          'FIN' BOUC1 ;                                                          
  61 : *                 DEBUT DE DEPASSEMENT DE ZGAMMA, RECHERCHE DU MAXIMUM          
  62 :          Z2 = Z1 ;  ZMAX = 'EXTR' AZSIG Z1 ;   ZMP = Z1 ;                       
  63 :          'REPETER' BOUCMAX  ZNPT    ;                                           
  64 : *              RECHERCHE DE LA VALEUR DU MAX ZMAX ET DE SON INDICE ZMP          
  65 : *                           LE MAX SE TROUVE DANS LA ZONE ZA = 1                
  66 :               Z1 = Z1 '+' 1;                                                    
  67 :               'SI' ( '>' Z1 ZNPT )   ; 'QUIT'  BOUCMAX  ; 'FINSI' ;             
  68 :               ZA = 'EXTR' ZPICZER Z1 ;                                          
  69 : *                                        SI ZA=0 ON A DEPASSE LE MAX            
  70 :               'SI' ( 'EGA'  ZA  0  ) ; 'QUIT'  BOUCMAX  ; 'FINSI' ;             
  71 :               ZMA = 'EXTR' AZSIG Z1 ;                                           
  72 :               'SI' ( '>' ZMA  ZMAX ) ; ZMAX = ZMA ; ZMP = Z1 ; 'FINSI';         
  73 :          'FIN' BOUCMAX  ;                                                       
  74 : *                                 ZA = 0 : PASSAGE A ZERO (FIN DU PIC)          
  75 :          Z1 = Z1 '-' 1 ;                                                        
  76 :          ZPICCORF =   'INSE' ZPICCORF ZNUMPIC Z1 ;                              
  77 :          'SI' ( 'NON' ( IMPII '<' 1 ) ) ;                                       
  78 :               'MESS' 'MAX  '  ZNUMPIC ZMP ZMAX ;                                
  79 :          'FINSI' ;                                                              
  80 : *                          MISE DE ZCOEFF DS LA TABLE DES COEFFICIENTS          
  81 :          ZPICCOEF = 'INSE' ZPICCOEF ZNUMPIC  ( ZGAMMA '/' ZMAX ) ;              
  82 : *                          RECHERCHE DU DEBUT DU PIC                            
  83 :          'REPETER' BOUC2 ZNPT    ;                                              
  84 :               Z2 = Z2 '-' 1;                                                    
  85 :               'SI' ( '<'  Z2  1    ) ;  'QUIT'  BOUC2 ; 'FINSI' ;               
  86 :               ZB = 'EXTR' ZPICZER Z2 ;                                          
  87 :               'SI' ( 'EGA'  ZB  0  ) ;  'QUIT'  BOUC2 ; 'FINSI' ;               
  88 :          'FIN' BOUC2 ;                                                          
  89 : *                               ZB = 0 : PASSAGE A ZERO (DEBUT DU PIC )         
  90 :          ZPICCORD = 'INSE' ZPICCORD ZNUMPIC Z2 ;                                
  91 :     'FIN' BOUCA ;                                                               
  92 : *        CORRECTION DU NOMBRE REEL DE PICS EN CAS DE PICS MULTIPLES             
  93 :     'SI' ( '>' ZNBPICS ZNUMPIC ) ; ZNBPICS = ZNUMPIC ; 'FINSI' ;                
  94 :     ZPICCOR1 = 'PROG' ;  ZPICCOR2 = 'PROG' ;                                    
  95 :     ZF = 0  ;                                                                   
  96 :     ZNUMPIC = 0 ;                                                               
  97 :     'REPETER' BOUC4 ZNBPICS ;                                                   
  98 :         ZNUMPIC  = ZNUMPIC '+' 1  ;                                             
  99 :         ZD       = 'EXTR' ZPICCORD  ZNUMPIC ;                                   
 100 :         ZD1      = ZD '-' ZF ; 
 101 :        'SI' ( '>' ZD1 0.01 ) ;
 102 :           ZPICCOR0 = 'PROG' ZD1 '*' 1 ;
 103 :           ZPICCOR1 = ZPICCOR1 'ET' ZPICCOR0 ;
 104 :        'FINSI' ;
 105 :         ZCOEF    = 'EXTR' ZPICCOEF  ZNUMPIC ;                                   
 106 :         ZF       = 'EXTR' ZPICCORF  ZNUMPIC ;                                   
 107 :         ZD2      = ZF '-' ZD ; 
 108 :        'SI' ( '>' ZD2 0.01 ) ;
 109 :           ZPICCOR0 = 'PROG' ZD2 '*' ZCOEF ;
 110 :           ZPICCOR1 = ZPICCOR1 'ET' ZPICCOR0 ;
 111 :        'FINSI' ;
 112 :     'FIN' BOUC4 ;                                                               
 113 :     ZD1      = ZNPT '-' ZF ;
 114 :     'SI' ( '>' ZD1 0.01 ) ;
 115 :       ZPICCOR0 = 'PROG' ZD1 '*' 1 ;
 116 :       ZPICCOR1 = ZPICCOR1 'ET' ZPICCOR0 ;
 117 :     'FINSI' ;
 118 :     ZPICCOR2 = ZPICCOR1 'MASQUE' 'EGALE' 1 ;                                    
 119 :     ZPICCOR3 = ZPICCOR1 'MASQUE' 'DIFFERENT' 1 ;                                
 120 : *                                             CALCULER LES SURFACES             
 121 :     ZEVPIC1  = 'EVOL' 'BLEU' 'MANU' 'ABSC' ZTEMP 'ORDO' ZPICCOR1 ;              
 122 :     ZEVPIC2  = 'EVOL' 'VERT' 'MANU' 'ABSC' ZTEMP 'ORDO' ZPICCOR2 ;              
 123 :     ZEVPIC3  = 'EVOL' 'ROUG' 'MANU' 'ABSC' ZTEMP 'ORDO' ZPICCOR3 ;              
 124 :     ZEVPIC1  =  ZEVPIC1 '*' ZEVSIG     ;                                        
 125 :     ZEVPIC2  =  ZEVPIC2 '*' ZEVSIG     ;                                        
 126 :     ZSIG2    = 'EXTR' ZEVPIC2 'ORDO' 1 ;                                        
 127 :     AZSIG2   = 'ABS' (  ZSIG2  )       ; ZM2 = 'MAXI' AZSIG2 ;                  
 128 :     'MESS' 'VALEUR ABSOLUE DU SIGNAL ' ZM2 ;                                    
 129 :     SURF     = 'SOMM'  ZEVSIG    ;  SURFSIG = 'EXTR'  SURF 1  ;                 
 130 :     SURF     = 'SOMM'  ZEVPIC1   ;  SURF1   = 'EXTR'  SURF 1  ;                 
 131 :     SURF     = 'SOMM'  ZEVPIC2   ;  SURF2   = 'EXTR'  SURF 1  ;                 
 132 :     'MESS' 'SURFACE DU SIGNAL NON CORRIGE '  SURFSIG ;                          
 133 :     'MESS' 'SURFACE DU SIGNAL CORRIGE DES POINTES '   SURF1 ;                   
 134 :     'MESS' 'SURFACE RESTANT A CORRIGER '              SURF2 ;                   
 135 :      ZC  = ( SURFSIG '-' SURF1 ) '/' SURF2 ; ZC = ZC '+' 1. ;                   
 136 :     'MESS' ' CORRECTION DE SURFACE ZC  '  ZC ;                                  
 137 :     'SI' ( ( '<' ZC .8  ) 'OU' ( '>' ZC 1.2  ) ) ;                              
 138 :          'MESS' 'LA SURFACE DU SIGNAL N EST PAS RAMENEE A ZERO' ;               
 139 :          'MESS' 'ESSAYER UN AUTRE TIRAGE AU SORT'  ;                            
 140 :     'SINON' ;                                                                   
 141 :          'SI' ( '>' (ZC '*' ZM2 ) ZGAMMA ) ; ZC = ZGAMMA '/' ZM2 ;              
 142 :          'FINSI' ;                                                              
 143 :          'MESS' ' CORRECTION DE SURFACE ZC' ZC ;                                
 144 :           ZPICCOR2 =  ZPICCOR2   '*' ZC  ;                                      
 145 :           ZPICCOR2 =  ZPICCOR2   '+' ZPICCOR3 ;                                 
 146 :           ZEVPIC2  = 'EVOL' 'VERT' 'MANU' 'ABSC' ZTEMP 'ORDO' ZPICCOR2;         
 147 :           ZEVPIC1  = ZEVPIC2 '*' ZEVPIC1 ;                                      
 148 :           SURF     = 'SOMM'  ZEVPIC1     ;  SURFF   = 'EXTR'  SURF 1  ;         
 149 :           'MESS' 'SURFF '   SURFF ;                                             
 150 :      'FINSI'    ;                                                               
 151 : 'FINSI'    ;                                                                    
 152 : ZSIGN = 'TABLE'   ;     ZSIGN.'EVSIG2' =  ZEVPIC1  ;                            
 153 : 'FINPROC'  ZSIGN     ;                                                          

© Cast3M 2003 - All rights reserved.
Disclaimer