Autocorrelation - book
|
| |
| Series | Geophysical References Series |
|---|---|
| Title | Digital Imaging and Deconvolution: The ABCs of Seismic Exploration and Processing |
| Author | Enders A. Robinson and Sven Treitel |
| Chapter | 7 |
| DOI | http://dx.doi.org/10.1190/1.9781560801610 |
| ISBN | 9781560801481 |
| Store | SEG Online Store |
The autocorrelation of a signal $ b=\{\ldots ,b_{-2},\;b_{-1},\;b_{0},\;b_{1},\,b_{2},\;\ldots $ is defined to be
$ {\begin{aligned}&r_{k}=\sum _{j=-\infty }^{\infty }{b_{j+k}}b_{j}^{*}.\end{aligned}} $ ()
This formula gives the autocorrelation coefficient $ r_{k} $ for each integer k. For a finite-length causal wavelet $ b=\left\{b_{0}{,\ }b_{\rm {l}}{,\ }b_{2}{,\ .\ .\ .}b_{N}\right\} $, the expression becomes
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): r_k=\sum^{\infty }_{j=0}{b_{+k}}b^{*}_j=r^{*}_{-k} \mathrm{for} k=0, 1,\dots , N
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} & r_k= 0\mathrm{\ for\ } k<-N \mathrm{\ and\ } k>N \end{align} ()
The superscript asterisk indicates the complex conjugate. The superscript asterisk can be omitted except in cases in which the wavelet coefficients are complex.
Let us examine wavelets, all of which have the same autocorrelation. Figures 14 through 17 depict representative members of a suite of wavelets, all with the same autocorrelation.




| Energy buildup | ||||
|---|---|---|---|---|
| Wavelet type | Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): p_0 | Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): p_1 | Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): p_2 | Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): p_3 |
| Minimum-delay wavelet | 4 | 5 | 5.25 | 5.3125 |
| Mixed-delay four-length wavelet | 1 | 5 | 5.0625 | 5.3125 |
| Maximum-delay four-length wavelet | 0.0625 | 0.3125 | 1.3125 | 5.3125 |
Next we shall show that the autocorrelation is the convolution of a signal with its zero-point reverse. To autocorrelate a wavelet, we merely convolve the wavelet with its reverse. For example, let us find the autocorrelation of the wavelet Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \left\{b_0{,\ }b_{{\rm l}}{,\ }b_{2}\right\} . Its reverse is the anticausal wavelet Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): b^R=\{b^{*}_{2},b^{*}_{1},b^{*}_0\} . Therefore, the folding table for such an operation is
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} \begin{array}{*{20}c} \begin{array}{l} \\ \left. \begin{array}{l} b_0 \\ b_1 \\ b_2 \\ \end{array} \right| \\ \\ \end{array} & \begin{array}{l} \underline {b_2^* \;\;\;\;\;\;\;b_1^* \;\;\;\;\;\;b_0^* } \\ b_0 b_2^* \;\;\;\;b_0 b_1^* \;\;\;b_0 b_0^* \\ b_1 b_2^* \;\;\;\;b_1 b_1^* \;\;\;b_1 b_0^* \\ b_2 b_2^* \;\;\;\;b_2 b_1^* \;\;b_2 b_0^* \\ \\ \end{array} \\ \end{array}. \end{align} ()
We see that the autocorrelation $ r_{0} $ for time index 0 is equal to the sum on the main southwest-northeast diagonal:
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} &r_0=b_0b^{*}_0+b_{{ 1}} b^*_{1}+b_{2}b^*_{2}. \end{align} ()
For each summand, the first index minus the second index is 0. The value Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): r_0 gives the Energy of the wavelet. Working up from the diagonal, we get the Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): r_k for the negative ks; that is,
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} &r_{-{ l}} =b_{1}b_{2}+b_0b^{*}_{1}. \end{align} ()
For each summand, the first index minus the second index is –1. In addition, we see that
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} &r_{-2}=b_0b^*_{2}. \end{align} ()
The first index minus the second index is –2. Working down from the diagonal, we get the Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): r_k for positive k; that is,
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} &r_{{ l}} =b_{2}b^*_{1}+b_{1}b^{*}_0. \end{align} ()
For each summand, the first index minus the second is 1. In addition, we see that
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} r_{2}=b_{2}b^{*}_0. \end{align} ()
The first index minus the second index is 2. The wavelet Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): b=\left\{b_0{,\ }b_{1}{\ ,\ }b_{2}\right\} is called the component signal of the autocorrelation. In other words, an autocorrelation is given by the convolution of a component signal and its zero-point reverse. A component signal for an autocorrelation is not unique.
Now let us show that a wavelet and its reverse have the same autocorrelation. Convolution is described as a folding operation between two signals. The autocorrelation of a signal is defined as the convolution of the signal with its zero-point reverse. Consider the wavelet (2, 1) in which the value 2 occurs at time 0. Its zero-point reverse is (1, 2) in which the value 2 occurs at time 0, so its autocorrelation table is
$ {\begin{aligned}&\ \ \ {\underline {1}}\,\,\,{\underline {2}}\\&2|2\,\,\,\,4.\\&1|1\,\,\,\,2\end{aligned}} $ ()
Its autocorrelation is
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} &r_{-1}=2,\ r_0=1+4=5,\ r_{1}=2. \end{align} ()
On the other hand, consider the wavelet (1, 2), in which the 1 occurs at time 0. Its zero-point reverse is (2, 1), in which the 1 occurs at time 0. The autocorrelation table is
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} &\ \ \ \underline{2}\,\,\,\underline{1}\\ &1|2\,\,\,\,1\ ,\\ &2|4\,\,\,\,2 \end{align} ()
and its autocorrelation is the same. Thus, the wavelet (2, 1) has the same autocorrelation as does its reverse (1, 2). This is always so. That is, the autocorrelation of any wavelet is the same as the autocorrelation of the reverse wavelet.
Now we shall illustrate an all-pass filter. The foregoing example illustrates something further. Let Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \left(b_0{,\ }b_{1}\right) be a two-length wavelet. Then the only other two-length wavelet with the same autocorrelation as that of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \left\{b_0{,\ }b_{1}\right\} is its (midpoint) reverse $ \left(b_{1}^{*}{\ ,\ }b_{0}^{*}\right) $. (Of course, when we speak about the wavelet Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \left\{b_0{,\ }b_{{ 1}}\right\} and its reverse Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \left(b^{*}_{{ 1}}{,\ }b^{*}_0\right) , we mean the equivalence class of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \left\{cb_O{,\ }cb_{1}\right\} and $ \left\{c^{*}{\ }b_{1}^{*}{,\ }c^{*}{\ }b_{0}^{*}\right\} $ for any constant c where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): cc^{*}=1 . Here, we take c = 1.) Thus, the only other two-length wavelet with the same autocorrelation as that of (2, 1) is (1, 2). It turns out that there are wavelets of greater length with the same autocorrelation, but there is no other wavelet of length 2 with the same autocorrelation. Figure 18 shows the wavelet (2, 1) and a wavelet of greater length, both of which have the same autocorrelation. The wavelet of greater length is obtained by convolving the wave-let (2, 1) with the all-pass filter shown in the figure.

A causal all-pass filter is defined as a causal filter with an amplitude spectrum equal to unity for all frequencies. The transfer function of a causal all-pass filter is
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} &P\left(Z\right)=\frac{A^R\left(Z\right)}{A\left(Z\right)}, \end{align} ()
where A(Z) is the Z-transform of a finite-length minimum-delay wavelet a, and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {{\rm A}}^R\left(Z\right) is the Z-transform of the reverse Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): a^R . The amplitude spectrum of this all-pass filter is unity because both a and its reverse Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): a^R have the same amplitude spectrum. This reverse is, of course, maximum delay. Because a causal all-pass wavelet has a unit amplitude spectrum, it follows that its inverse is equal to its reverse; that is, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): p^{-{ 1}}=p^R , or
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} &P^{-1}\left(Z\right)=A\left(Z\right)/A^R\left(Z\right)={\left(A^R\left(Z\right)/A\left(Z\right)\right)}^R=P^R\left(Z\right) . \end{align} ()
Thus the inverse is noncausal and one-sided to the past.
Generally, a causal all-pass wavelet has infinite length. However, in two special cases, a causal all-pass wavelet reduces to a finite-length wavelet. In the first special case, A(Z) is a constant. As a result, the transfer function of the causal all-pass wavelet is equal to one, so the causal all-pass wavelet is the unit spike {1, 0, 0, 0, …}, where the 1 occurs at time index 0. Such a causal all-pass wavelet is called trivial because the unit spike convolved with any signal does not change the signal. In the second special case, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): A^R\left(Z\right)=Z^n where n is a positive integer. In this case, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): P\left(Z\right)=Z^n , so the causal all-pass wavelet produces a pure delay of n time units.
Continue reading
| Previous section | Next section |
|---|---|
| Energy | Canonical representation |
| Previous chapter | Next chapter |
| Frequency | Synthetics |
Also in this chapter
- Wavelets
- Fourier transform
- Z-transform
- Delay: Minimum, mixed, and maximum
- Two-length wavelets
- Illustrations of spectra
- Delay in general
- Energy
- Canonical representation
- Zero-phase wavelets
- Symmetric wavelets
- Ricker wavelet
- Appendix G: Exercises