# Difference between revisions of "Ricker wavelet"

(added image) |
(→External links: fixed link) |
||

(6 intermediate revisions by the same user not shown) | |||

Line 1: | Line 1: | ||

− | + | 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: | The amplitude ''A'' of the [[Ricker wavelet]] with peak frequency ''f'' at time ''t'' is computed like so: | ||

:<math>A = (1-2 \pi^2 f^2 t^2) e^{-\pi^2 f^2 t^2} </math> | :<math>A = (1-2 \pi^2 f^2 t^2) e^{-\pi^2 f^2 t^2} </math> | ||

− | [[File:Ricker_wavelet.png|thumb|Example Ricker wavelet, as plotted by [http://www.wolframalpha.com/input/?i=minimize+%281-2*pi%5E2*25%5E2*x%5E2%29*e%5E%28-1*pi%5E2*25%5E2*x%5E2%29+for+-0.033+%3C+x+%3C+0.033 WolframAlpha] ]] | + | [[File:Ricker_wavelet.png|thumb|Example Ricker wavelet, as plotted by WolframAlpha.<ref>[http://www.wolframalpha.com/input/?i=minimize+%281-2*pi%5E2*25%5E2*x%5E2%29*e%5E%28-1*pi%5E2*25%5E2*x%5E2%29+for+-0.033+%3C+x+%3C+0.033 Ricker wavelet in WolframAlpha]</ref>]] |

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

− | :<math>\pm \frac{\sqrt{3/2}}{ | + | :<math>\pm \frac{\sqrt{3/2}}{\pi f} </math> |

These minima have the value | These minima have the value | ||

:<math>A_\mathrm{min} = -\frac{2}{e^{3/2}} </math> | :<math>A_\mathrm{min} = -\frac{2}{e^{3/2}} </math> | ||

+ | |||

+ | == 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: | ||

+ | |||

+ | :<math>t_\mathrm{app} = 2 \frac{\sqrt{3/2}}{\pi f_\mathrm{dom}} = \frac{\sqrt{6}}{\pi f_\mathrm{dom}} </math> | ||

+ | |||

+ | and | ||

+ | |||

+ | :<math>f_\mathrm{app} = \frac{1}{t_\mathrm{app}} = \frac{\pi f_\mathrm{dom}}{\sqrt{6}} </math> | ||

+ | |||

+ | then | ||

+ | |||

+ | :<math>f_\mathrm{dom} = f_\mathrm{app} \frac{\sqrt{6}}{\pi} </math> | ||

+ | |||

+ | ==Make one in Python== | ||

+ | Here's a snippet from an IPython Notebook by [[User:Evan|Evan]]:<ref>[http://nbviewer.ipython.org/github/agile-geoscience/notebooks/blob/master/To_make_a_wavelet.ipynb To make a wavelet] — an IPython Notebook.</ref><ref>[http://www.agilegeoscience.com/journal/2013/12/10/to-plot-a-wavelet.html To plot a wavelet] — Agile Geoscience blog post</ref> | ||

+ | |||

+ | <source lang='python'> | ||

+ | 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) | ||

+ | </source> | ||

+ | |||

+ | ==See also== | ||

+ | * [[Ormsby filter]] | ||

+ | * [[Butterworth filter]] | ||

+ | * [[Klauder filter]] | ||

+ | |||

+ | ==References== | ||

+ | {{reflist}} | ||

+ | |||

+ | ==External links== | ||

+ | * [http://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.ricker.html scipy.signal.ricker] — Scipy function for a Ricker wavelet, which takes a scale parameter ''a'' = 1/2π''f'' (I think) | ||

+ | * [[Wikipedia:Mexican hat wavelet|Mexican hat wavelet]] — Wikipedia article | ||

+ | * [http://74.3.176.63/publications/recorder/1994/09sep/sep94-choice-of-wavelets.pdf Ryan, 1994.] A choice of wavelets. CSEG Recorder September 1994. | ||

+ | * [http://wiki.seg.org/index.php/Dictionary:Ricker_wavelet Ricker wavelet] — Sheriff's Encyclopedic Dictionary | ||

+ | |||

+ | {{stub}} | ||

+ | |||

+ | [[Category:Geophysics]] |

## Latest revision as of 00:20, 20 September 2017

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

## Contents

## Analytic expression

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

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

These minima have the value

## 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:

and

then

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

## References

- ↑ Ricker wavelet in WolframAlpha
- ↑ To make a wavelet — an IPython Notebook.
- ↑ To plot a wavelet — Agile Geoscience blog post

## External links

- scipy.signal.ricker — Scipy function for a Ricker wavelet, which takes a scale parameter
*a*= 1/2π*f*(I think) - Mexican hat wavelet — Wikipedia article
- Ryan, 1994. A choice of wavelets. CSEG Recorder September 1994.
- Ricker wavelet — Sheriff's Encyclopedic Dictionary

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