sfbandpass implements bandpass filtering using the Butterworth algorithm.
The desired bandwidth is specified by low and high frequencies (in Hertz) flo= and fhi=. A continuous low-pass Butterworth filter is given by
$$B_N^2(\omega) = \displaystyle \frac{1}{\displaystyle 1+\left(\frac{\omega}{\omega_0}\right)^{2N}}$$
The actual filtering is implemented by recursive (Infinite Impulse Response) convolution in the time domain. The number of poles ($N$) for the low-pass and high-pass filters are specified by nplo= and nphi= parameters.
The following example from sep/pwd/hector shows a land shot gather after linear moveout and low-pass filtering that isolates ground-roll noise.
By default, the applied filter has zero phase. To use a minimum-phase filter, use phase=y. This is the option used in the Madagascar test example from rsf/rsf/test
An alternative way to implement bandpass filtering is using the Fourier transform and tapering functions in the Fourier domain. One example of this approach is provided by sferf.
code
more code
~~~~