PERL PROGRAM NAME:
AUTHOR: Juan Lorenzo (Perl module only)
DATE:
DESCRIPTION:
Version:
subfilt <stdin >stdout [optional parameters] Required parameters: if dt is not set in header, then dt is mandatory Optional parameters: (nyquist calculated internally) zerophase=1 =0 for minimum phase filter locut=1 =0 for no low cut filter hicut=1 =0 for no high cut filter fstoplo=0.10*(nyq) freq(Hz) in low cut stop band astoplo=0.05 upper bound on amp at fstoplo fpasslo=0.15*(nyq) freq(Hz) in low cut pass band apasslo=0.95 lower bound on amp at fpasslo fpasshi=0.40*(nyq) freq(Hz) in high cut pass band apasshi=0.95 lower bound on amp at fpasshi fstophi=0.55*(nyq) freq(Hz) in high cut stop band astophi=0.05 upper bound on amp at fstophi verbose=0 =1 for filter design info dt = (from header) time sampling interval (sec) ... or set filter by defining poles and 3db cutoff frequencies npoleselo=calculated number of poles of the lo pass band npolesehi=calculated number of poles of the lo pass band f3dblo=calculated frequency of 3db cutoff frequency f3dbhi=calculated frequency of 3db cutoff frequency Notes: Butterworth filters were originally of interest because they can be implemented in hardware form through the combination of inductors, capacitors, and an amplifier. Such a filter can be constructed in such a way as to have very small oscillations in the flat portion of the bandpass---a desireable attribute. Because the filters are composed of LC circuits, the impulse response is an ordinary differential equation, which translates into a polynomial in the transform domain. The filter is expressed as the division by this polynomial. Hence the poles of the filter are of interest. The user may define low pass, high pass, and band pass filters that are either minimum phase or are zero phase. The default is to let the program calculate the optimal number of poles in low and high cut bands. Alternately the user may manually define the filter by the 3db frequency and by the number of poles in the low and or high cut region. The advantage of using the alternate method is that the user can control the smoothness of the filter. Greater smoothness through a larger pole number results in a more bell shaped amplitude spectrum. For simple zero phase filtering with sin squared tapering use "sufilter". Credits: CWP: Dave Hale c. 1993 for bf.c subs and test drivers CWP: Jack K. Cohen for su wrapper c. 1993 SEAM Project: Bruce Verwest 2009 added explicit pole option in a program called "subfiltpole" CWP: John Stockwell (2012) combined Bruce Verwests changes into the original subfilt. Caveat: zerophase will not do good if trace has a spike near the end. One could make a try at getting the "effective" length of the causal filter, but padding the traces seems painful in an already expensive algorithm. Theory: The Trace header fields accessed: ns, dt, trid
collects switches and assembles bash instructions by adding the program name
max index = number of input variables -1
To install App::SeismicUnixGui, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::SeismicUnixGui
CPAN shell
perl -MCPAN -e shell install App::SeismicUnixGui
For more information on module installation, please visit the detailed CPAN module installation guide.