Ricker wavelet

From SubSurfWiki
Jump to: navigation, search

The Ricker wavelet is a model seismic wavelet, sometimes called a Mexican hat wavelet.

Analytic expression

The amplitude A of the Ricker wavelet with peak frequency f at time t is computed like so:

A = (1-2 \pi^2 f^2 t^2) e^{-\pi^2 f^2 t^2}
Example Ricker wavelet, as plotted by WolframAlpha.[1]

Sometimes the period (somewhat erroneously referred to occasionally as the wavelength) is given as 1/f, but since it has mixed frequencies, this is not quite correct, and for some wavelets is not even a good approximation. In fact, the Ricker wavelet has its sidelobe minima at

\pm \frac{\sqrt{3/2}}{\pi f}

These minima have the value

A_\mathrm{min} = -\frac{2}{e^{3/2}}

Apparent vs dominant frequency

We can use the trough-to-trough width of the Ricker to estimate the dominant frequency (i.e. the central frequency of the Ricker) from the apparent frequency (which will be driven by this trough-to-trough width). If 't' is the width in time:

t_\mathrm{app} = 2 \frac{\sqrt{3/2}}{\pi f_\mathrm{dom}} = \frac{\sqrt{6}}{\pi f_\mathrm{dom}}


f_\mathrm{app} = \frac{1}{t_\mathrm{app}} = \frac{\pi f_\mathrm{dom}}{\sqrt{6}}


f_\mathrm{dom} = f_\mathrm{app} \frac{\sqrt{6}}{\pi}

Make one in Python

Here's a snippet from an IPython Notebook by Evan:[2][3]

import numpy as np
import matplotlib.pyplot as plt
def ricker(f, length=0.128, dt=0.001):
    t = np.arange(-length/2, (length-dt)/2, dt)
    y = (1.0 - 2.0*(np.pi**2)*(f**2)*(t**2)) * np.exp(-(np.pi**2)*(f**2)*(t**2))
    return t, y
f = 25 # A low wavelength of 25 Hz
t, w = ricker(f)

See also


  1. Ricker wavelet in WolframAlpha
  2. To make a wavelet — an IPython Notebook.
  3. To plot a wavelet — Agile Geoscience blog post

External links

This article is a stub. You can help SubSurfWiki by expanding it.