Calculating Seismic Wavelets
If a wavelet can be extracted by autocorrelation of a real seismic trace, it should be used to make the synthetic. If this cannot be done, wavelets are generated from equations which describe the frequency content of the wavelet. There are two types - Ricker wavelets are generated directly in the time domain and Klauder wavelets are generated in the frequency domain. Both are called zero phase wavelets and are a minimum delay. That is, the maximum energy is at the beginning of the wavelet. Ricker wavelets are shown below.

 

 


                       Standard computed wavelet shapes

There are four different Ricker wavelets, called Ricker Type 1, Type 2, Type 3, and Type 4 respectively. The higher types have more peaks and valleys, representing more "ringing", and are less symmetrical.

Ricker wavelets are used when the synthetic seismogram is to match dynamite or airgun data. They are computed from the following:

Ricker Type 1:
_____1: G = 3.4641 * CFREQ / 1000
_____2: FOR I = 1 TO WVLTLENGTH / SAMPRATE
_____3: X = (I * SAMPRATE - 1) * G - 3.75
_____4: Wvlt [I] = (X * X - 1) / EXP (X * X / 2)
_____5: NEXT I

Ricker Type 2:
_____1: G = 3.65 * CFREQ / 1000
_____2: FOR I = 1 TO WVLTLENGTH / SAMPRATE
_____3: X = (I * SAMPRATE - 1) * G - 3.85
_____4: Wvlt [I] = (X * X - X - 1) / EXP (X * X / 2)
_____5: NEXT I

Ricker Type 3:
_____1: G = 2.9 * CFREQ / 1000
_____2: FOR I = 1 TO WVLTLENGTH / SAMPRATE
_____3: X = (I * SAMPRATE - 1) * G - 3.85
_____4: Wvlt [I] = (-X^3 + 3 * X) / EXP (X * X / 2)
_____5: NEXT I

Ricker Type 4:
_____1: G = 2.35 * CFREQ / 1000
_____2: FOR I = 1 TO WVLTLENGTH / SAMPRATE
_____3: X = (I * SAMPRATE - 1) * G - 3.2
_____4: Wvlt [I] = 0.1*(-X^6+X^5+15*X^4-10*X^3-45*X*X+15*X+15)/EXP(X*X/2)
_____5: NEXT I

When comparing synthetic seismograms with different wavelets, it is important that each wavelet have the same initial energy. The energy can be found by squaring and summing each of the Wvlt[I] terms. The sum is then compared to a standard energy of 1.0 and a scale factor derived, which is multiplied against each Wvlt[I] term to obtain normalized wavelet values.

The Klauder wavelet is generated in the frequency domain, which gives the amplitude and phase spectra of the wavelet. The autocorrelation of the spectra produces the wavelet shape in the time domain. This wavelet is used when the synthetic is to match Vibroseis data.

Klauder Wavelet:

STEP 1: Generate chirp signal amplitude and phase
_____1: CFREQ = 0.5 * (LFREQ + HFREQ)
_____2: KLFREQ = (HFREQ - LFREQ) / SWEEPLENGTH
_____3: K = SAMPRATE / 1000
_____4: FOR I = 1 TO SWEEPLENGTH / K

Calculate phase
_____5: I[I] = 2 * PI * (LFREQ * I * K + KLFREQ * I * I * K * K / 2) + INITPHASE

Calculate amplitude
_____6: R[I] = 1250 * COS(I[I])

Put phase in all 4 quadrants
_____7: I[I] = TAN (I[I])
_____8: I[I] = ATN (I[I])
_____9: I[I] = I[I] * 180 / PI + 180 * (SIN (I[I]) < 0) + 90
_____10: NEXT I

STEP 2: Calculate autocorrelation to get wavelet in time domain. This double nested loop takes the first 100 data points and cross correlates them with the last 100 data points of the sweep. Since the number of data points is small, there is little advantage to using the FFT for the correlation.
_____1: I = SWEEPLENGTH / SAMPRATE - 1
_____2: K = 1
_____3: FOR J = SWEEPLENGTH/SAMPRATE TO SWEEPLENGTH/SAMPRATE - 100 BY -1
_____4: Auto[K] = 0
_____5: FOR L = 1 TO J
_____6: Auto[K] = R[L] * R[I - J + L] + Auto[K]
_____7: NEXT L
_____8: K = K + 1
_____9: NEXT J

To see the wavelet shape, the correlation string is reversed and paired with itself:
_____10: FOR I = 1 to 100
_____11: Wvlt[I] = Auto[100 - I + 1]
_____12: NEXT I
_____13: FOR I = 101 TO 199
_____14: Wvlt[I] = Auto[I - 99]
_____15: NEXT I
 

Page Views ---- Since 01 Jan 2015
Copyright 1978 - 2017 E. R. Crain, P.Eng. All Rights Reserved