A simple method to suppress ground roll in data processing
is to multiply a strip of data by a near-zero weight (the mute).
To reduce truncation artifacts,
the mute should taper smoothly to zero (or some small value).
Because of the extreme variability from place to place
on the earth's surface,
there are many different philosophies
about designing mutes.
Some mute programs use a data dependent weighting function
(such as automatic gain control).
Subroutine mutter() ,
however, operates on a simpler idea:
the user supplies trajectories defining the mute zone.
# Data is weighted by sine squared inside a mute zone.
# The weight is zero when t < x * slope0
# The weight is one when t > tp + x * slopep
# Suggested defaults: slopep = slope0= 1./1.45 sec/km; tp=.150 sec
#
subroutine mutter( tp, slope0,slopep, dt,dx, t0,x0, data,nt,nx)
integer it,ix, nt,nx
real t,x, wt, tp, slope0,slopep, dt,dx, t0,x0, data(nt,nx)
do ix=1,nx { x= x0+(ix-1)*dx; x = abs( x)
do it=1,nt { t= t0+(it-1)*dt;
if ( t < x * slope0) wt = 0
else if( t > tp + x * slopep) wt = 1.
else wt = sin(
0.5 * 3.14159265 * (t-x*slope0)/(tp+x*(slopep-slope0))) ** 2
data(it,ix) = data(it,ix) * wt
}}
return; end
Figure 6 shows an example of use of the routine mutter() on the shallow water data shown in Figure 5.