Spiking filter
<languages/> <translate> </translate>
|
| |
| Series | Geophysical References Series |
|---|---|
| Title | Digital Imaging and Deconvolution: The ABCs of Seismic Exploration and Processing |
| Author | Enders A. Robinson and Sven Treitel |
| Chapter | 9 |
| DOI | http://dx.doi.org/10.1190/1.9781560801610 |
| ISBN | 9781560801481 |
| Store | SEG Online Store |
<translate> What is a spiking filter, and how is it computed? A spiking filter is a shaping filter whose desired output is a spike. In such a case, all the coefficients $ z_{k} $ of the desired output are zero, except the coefficient $ z_{0}=1 $ at time zero. For a causal spiking filter with causal input (so that $ x_{-1}=0,x_{-2}=0,\dots $), the crosscorrelation coefficients for the normal equations are
</translate> <translate>
$ {\begin{aligned}g_{m}=\sum _{k}{z_{k}}x_{k-m}=x_{-m}=\left\{{\begin{array}{lc}x_{0}{\rm {\ for\ }}m=0&\\{\rm {0\ \ for\ }}m{=1,\ 2,\ }...N.\end{array}}\right.\end{aligned}} $ ()
The normal equations become
</translate> <translate>
$ {\begin{aligned}\sum _{n=0}^{N}{f_{n}}r_{m-n}=\left\{{\begin{array}{lc}x_{0}{\rm {\ for\ }}m=0&\\{\rm {0\ for\ }}m{=1,\ 2,\ }&...N.\end{array}}\right.\end{aligned}} $ ()
How is the prediction-error filter computed? Let h be a causal prediction filter for prediction distance one. Let the input be $ x_{k} $ where $ x_{0} $ occurs at time zero. The desired output is the input advanced by one time unit; that is, the desired output is $ z_{k}=x_{k+1} $, where $ z_{0}=x_{1} $ occurs at time zero. Thus, the crosscorrelation is
</translate> <translate>
$ {\begin{aligned}g_{m}=\sum _{k}{z_{k}}x_{k-m}=\sum _{k}{x_{k+1}}x_{k-m}=r_{m+1}.\end{aligned}} $ ()
The solution of the normal equations
</translate> <translate>
$ {\begin{aligned}\sum _{n=0}^{N-1}{h_{n}}r_{m-n}=r_{m+1}\end{aligned}} $ ()
gives the coefficients 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(h_0,h_{{ 1}},{\rm \ }\dots {\rm \ ,\ }h_{N-{ 1}}\right) of the prediction operator. The predicted value is
</translate> <translate>
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} y_k = \hat{x}_{k+1} = \sum^{N-1}_{n= 0}{h_n}x_{k-n}. \end{align} ()
The prediction error is
</translate> <translate>
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} x_k-\hat{x}= x_k-\sum^{N-{ l}} _{n= 0}{h_n}x_{k-1-n}. \end{align} ()
The coefficients of the prediction-error operator f for prediction distance one thus are found with the equation
</translate> <translate>
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} (f_0 ,\;f_1 ,\;f_2 ,\;...,\;f_N )\; = \;(1,\; - h & _0 ,\;h_1 ,..., - h_{N - 1} ). \end{align} ()
This filter is necessarily a minimum-delay filter (Robinson and Treitel, 2000[1]). The prediction-error filter for prediction distance one is the spiking filter normalized so that its leading coefficient is one.
Let us give some numerical examples. Suppose that the input signal is the two-length 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) , that the filter has two coefficients 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(f_0,f_{{ 1}}\right) , and that the desired output signal is the three-length 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(d_0,d_{1}{\rm \ ,\ }d_{ 2}\right) . The actual output is obtained by carrying out the convolution
</translate> <translate>
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} \left(b_0{\rm \ ,\ }b_{1}\right)*\left(f_0{\rm \ ,\ }f_{1}\right)= \left(f_0b_0{\rm \ ,\ }f_0b_{{ l}} + f_{{ l}}b_0{\rm \ ,\ }f_{1}b_{{ l}}\right)\approx \left(d_0{\rm \ ,\ }d_{1}{\rm \ ,\ }d_{ 2}\right) . \end{align} ()
The normal equations are
</translate> <translate>
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} \left(b^{ 2}_0 + b^{ 2}_{1}\right)f_0 + \left(b_0b_{1}\right)f_{1} = d_0b_0 + d_{{ 1}} b_{1}\\ \left(b_0b_{1}\right)f_0 + \left(b^{ 2}_0 + b^{ 2}_{1}\right)f_{1} = d_{{ 1}}b_0 + d_{ 2}b_{{ 1}}. \end{align} ()
As the first example, suppose that we let the input be the minimum-phase wavelet b = (2, 1) and the desired output be the spike d = (1, 0, 0), where the 1 occurs at time index 0. In other words, we seek to find the two-length filter that will convert the input wavelet into a unit spike. If we substitute the numerical values, the normal equations become
</translate> <translate>
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} {\rm 5}f_0+2f_{{ 1}} { =2}\\ {\rm 2\ }f_0{ +5}f_{1}{ =0.} \end{align} ()
We find that the least-squares spiking filter is given by
</translate> <translate>
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} \left(f_0,f_{{ 1}} \right)= \left(\frac{{ 10}}{21},-\frac{{\rm 4}}{21}\right) . \end{align} ()
It is customary to normalize the spiking filter so that its leading coefficient is one. A spiking filter normalized in this way is a prediction-error filter. Thus, the normalized spiking filter, or the prediction-error filter, is (1, –0.4).
As the second example, suppose that we let the input be the corresponding maximum-phase wavelet b = (1, 2) and the desired output be the same spike. In other words, we seek to find the two-length filter that will convert the input wavelet (1, 2) into the same unit spike d = (1, 0, 0). We note that the maximum-phase input wavelet b = (1, 2) has the same autocorrelation as does the minimum-phase input wavelet b = (2, 1) that we used in the first example. The normal equations now are
</translate> <translate>
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} {\rm 5\ }f_0+2\ f_{1}{ =1}\\ {\rm 2\ }f_0{ +5\ }f_{1}= 0. \end{align} ()
We find that now the least-squares filter is given by
</translate> <translate>
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} \left(f_0,f_{{ 1}} \right)= \left(\frac{{\rm 5}}{21},\frac{-2}{21}\right) . \end{align} ()
Again, the prediction-error filter is (1, –0.4), just as before. The reason for this sameness is that the two input wavelets 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({\rm 2,1}\right) 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/":): b{ =(1} , 2{\rm )} have the same autocorrelation. Each wavelet with the same autocorrelation (regardless of whether the wavelet is minimum phase, mixed phase, or maximum phase) is associated with the same prediction-error filter.
Let us use the input 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) , as before. Let the prediction filter (for one time unit ahead) be 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(h_0\right) and the desired output signal be the two-length 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(d_0,d_{1}\right) = \left(b_{1}{\rm ,\ 0}\right) . Then the actual output is obtained by carrying out the convolution
</translate> <translate>
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} \left(b_0{\rm,\ }b_{1}\right)*\left(h_0\right)= \left(h_0b_0{\rm,\ }h_0b_{1}\right) \approx \left(d_0{\rm,\ }d_{{ 1}} \right) . \end{align} ()
The set of normal equations reduces to the single equation
</translate> <translate>
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} \left(b^{ 2}_0 + b^{ 2}_{1}\right)h_0= d_0b_0 + d_{{ 1}} b_{1}. \end{align} ()
As the third example, let the input be the minimum-phase wavelet b = (2,1). Then the desired output is d = (1, 0). The normal equation 26 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/":): {\rm 5}h_0{ =2} . The prediction-error filter is given by
</translate> <translate>
$ {\begin{aligned}\left(f_{0},f_{1}\right)=\left({\rm {1,\ }}-h_{0}\right)=\left({1,\ }-{\rm {0.4}}\right).\end{aligned}} $ ()
As the fourth example, let the input be the maximum-phase wavelet b = (1, 2). Then the desired output is d = (2, 0). The normal equation 26 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/":): {\rm 5}h_0{ =2} , as before, and we obtain the same prediction-error filter, 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(f_0,f_{{ 1}}\right) = \left({\rm 1\ ,\ }-{\rm 0.4}\right) .
References
</translate>
- ↑ Robinson, E. A., and S. Treitel, 2000, Geophysical signal analysis: SEG.
<translate>
Continue reading
| Previous section | Next section |
|---|---|
| The shaping filter | White convolutional model |
| Previous chapter | Next chapter |
| Synthetics | Deconvolution |
Also in this chapter
- Wavelets
- The shaping filter
- White convolutional model
- Wavelet processing
- All-pass filter
- Convolutional model
- Nonminimum-delay wavelet
- Signature deconvolution
- Vibroseis
- Dual-sensor wavelet estimation
- Deconvolution: Einstein or predictive?
- Summary
- Appendix I: Exercises
External links
</translate>
<translate> </translate>