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
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.

### 10 previous programs of the month:

sfhalfint implements half-order integration or differentiation, a filtering operation common in 2-D imaging operators such as as slant stacking or Kirchhoff migration. By default, sfhalfint performs half-order integration. To apply half-order different

Weblog:Madagascar development blogTracked:Jan 06, 16:58sfricker1 implements 1-D convolution with the Ricker wavelet. The following example from rsf/rsf/wedge shows convolution modeling with a wedge model using sfricker1. The convolution is implemented in the frequency domain, where the Ricker wavele

Weblog:Madagascar development blogTracked:Jan 18, 12:48Weblog:Madagascar development blogTracked:Jan 19, 12:00sfpwd implements plane-wave destruction, a filter that attenuates locally plane-wave events, as described in the paper Applications of plane-wave destruction filters. The following example from jsg/diffr/gom shows a seismic section before and after an

Weblog:Madagascar development blogTracked:Feb 09, 16:19sfpow multiplies the input data by a gain function of the form Gx1x2…,xn=x1p1x2p2⋯xnpn The powers p1,p2,…,pn are given by pow1=, pow2=, etc. parameters. For backward compatibility, sftpow tpow= is an alias for sfpow pow1=. The following examp

Weblog:Madagascar development blogTracked:Mar 11, 09:02sfnmo implements normal moveout (NMO) correction, one of the most fundamental operations in seismic reflection data processing. The following example from jsg/avo/avo shows synthetic data before and after NMO correction. NMO transforms presta

Weblog:Madagascar development blogTracked:Apr 08, 06:02sfvscan implements seismic velocity analysis by scanning stacking velocities. This transformation is also known as the velocity transform or the hyperbolic Radon transform. The following example from bei/vela/vscan shows an example for transforming a C

Weblog:Madagascar development blogTracked:May 11, 12:25sfwiggle plots data using the traditional seismic method of wiggly traces. The following example from rsf/rsf/rsftour shows a typical output: Similarly to other plotting programs, there are multiple parameters that control the output. For examp

Weblog:Madagascar development blogTracked:Jun 12, 10:51sfwiggle plots data using the traditional seismic method of wiggly traces. The following example from rsf/rsf/rsftour shows a typical output: Similarly to other plotting programs, there are multiple parameters that control the output. For examp

Weblog:Madagascar development blogTracked:Jun 12, 10:59sftime2depth converts the input from vertical time to depth coordinates. The following example from rsf/su/rsflab9 shows a seismic image converted from time to depth by this transformation: The example is borrowed from John Stockwell's lecture not

Weblog:Madagascar development blogTracked:Jul 01, 22:28sftime2depth converts the input from vertical time to depth coordinates. The following example from rsf/su/rsflab9 shows a seismic image converted from time to depth by this transformation: The example is borrowed from John Stockwell's lecture not

Weblog:Madagascar development blogTracked:Jul 01, 22:29sfai2refl converts acoustic impedance to normal-incidence PP reflectivity using the simple equation R(t)=I(t+Δt)-I(t)I(t+Δt)+I(t) The program is useful for convolution modeling. The following example from rsf/rsf/wedge shows a classic e

Weblog:Madagascar development blogTracked:Aug 02, 15:22sfpatch breaks the input data into local windows or "patches", possibly with overlap. The patching technique is explained by Jon Claerbout in Nonstationarity: patching chapter from Image Estimation by Example. Suppose you have a 1-D signal with

Weblog:Madagascar development blogTracked:Sep 14, 12:33