Waves in strata |
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.
void mutter (float tp /* time step */, float slope0 /* first slope */, float slopep /* second slope */, float x /* offset */, float *data /* trace */) /*< Mute >*/ { int it; float wt, t; if (abs0) x = fabsf(x); for (it=0; it < nt; it++) { t = t0+it*dt; if (hyper) t *= t; wt = t - x * slope0; if ((inner && wt > 0.) || (!inner && wt < 0.)) { data[it] = 0.; } else { wt = t - tp - x * slopep; if ((inner && wt >=0.) || (!inner && wt <= 0.)) { wt = sinf(0.5 * SF_PI * (t-x*slope0)/(tp+x*(slopep-slope0))); data[it] *= (wt*wt); } } } } |
Figure 3.6 shows an example of use of the routine mutter() on the shallow water data shown in Figure 3.5.
mutter
Figure 6. Jim's first gather before and after muting. |
---|
Waves in strata |