arma - subroutine to apply ARMA filter.
call arma(npts,s1,s2,itype,fcenter,bwidth,npoles,fsamin,ifaz)
Basic Seismic
Utilities (BSU) subroutine which applies an autoregressive
moving average (ARMA) filter. The filter can be Low | Band |
High pass, depending on the itype argument. The filter can
also be made zero phase by the usual time reverasal trick
specified by argument ifaz. Each filter type is given as an
inline subroutine within the arma subroutine. Note: This is
a simple filter whose order is achieved by cascading itself
recursively (all poles and zeros in same place, easy to
code). Filter is designed by Bilinear Transform Method.
Fortran Version.
Arguments
npts (int)
Number of samples in a trace
s1 (float)
Input seismic trace with data to be filtered, float array. WARNING: This array is changed.
s2 (float)
Output seismic trace with final filtered data. float array.
itype (int)
Selects filter type: 0=Low-Pass, 1=Band-Pass, 2=High-Pass filter.
fcenter (float)
Center frequency in Hz.
bwidth (float)
Bandwidth (Hz), only used if band-pass, itype=1 selected.
npoles (int)
Number of poles in filter. Number of times filter is applied=npoles/2.
fsamin (float)
Sample interval in seconds.
ifaz (int)
Selects phase of filter. 1=minimum phase 0=zero phase.
bfil(1), bamp(1), bvas(1)
No known bugs.
Copyright © 2017 by Paul Michaels
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
P. Michaels, PE. <pm@cgiss.boisestate.edu>