SUATTRIBUTES - trace ATTRIBUTES instantanteous amplitude, phase, or frequency                        

 suattributes <stdin >stdout mode=amp                            

 Required parameters:                                      
      none                                           

 Optional parameter:                                       
      mode=amp    output flag                              
                        =amp envelope traces                     
                        =phase phase traces                      
                        =freq frequency traces                   
      unwrap=           default unwrap=0 for mode=phase                
                  default unwrap=1 for mode=freq                 
                  dphase_min=PI/unwrap                     

 Notes:                                              
 This program performs complex trace attribute analysis, a la Taner,   
 Kohler, and Sheriff, 1979.                                

 The unwrap parameter is active only for mode=freq and mode=phase. The 
 quantity dphase_min is the minimum change in the phase angle taken to be
 the result of phase wrapping, rather than natural phase variation in the
 data. Setting unwrap=0 turns off phase-unwrapping altogether. Choosing
 unwrap > 1 makes the unwrapping function more sensitive to phase changes.
 Setting unwrap > 1 may be necessary to resolve higher frequencies in  
 data (or sample data more finely). The phase unwrapping is crude. The
 differentiation needed to compute the instantaneous frequency         
 freq(t)= d(phase)/dt is a simple centered difference.                 

 Examples:                                           
 suvibro f1=10 f2=50 t1=0 t2=0 tv=1 | suattributes mode=amp | ...
 suvibro f1=10 f2=50 t1=0 t2=0 tv=1 | suattributes mode=phase | ...    
 suvibro f1=10 f2=50 t1=0 t2=0 tv=1 | suattributes mode=freq | ...     
 suplane | suattributes mode=... | supswigb |...                 


 Credits:
      CWP: Jack Cohen
      CWP: John Stockwell (added freq and unwrap features)

 Algorithm:
      c(t) = hilbert_tranform_kernel(t) convolved with data(t) 

  amp(t) = sqrt( c.re^2(t) + c.im^2(t))
  phase(t) = arctan( c.im(t)/c.re(t))
  freq(t) = d(phase)/dt

 Reference: Taner, M. T., Koehler, A. F., and  Sheriff R. E.
 "Complex seismic trace analysis", Geophysics,  vol.44, p. 1041-1063, 1979

 Trace header fields accessed: ns, trid
 Trace header fields modified: d1, trid