next up previous print clean
Next: Non-stationary convolution and combination Up: Theory Previous: Theory

Stationary convolution and inverse convolution

The convolution of a vector, ${\bf x}=(x_0 \;\; x_1 \;\; x_2 \;\; ... \;\; x_{N-1})^T$, with a causal filter, ${\bf a}$,whose first element, a0=1, and whose length, Na<N, onto an output vector, ${\bf y}$,can be defined by the set of equations:  
 \begin{displaymath}
y_k = x_k + \sum_{i=1}^{\min(N_a-1, k-1)} a_{i} \; x_{k-i}.\end{displaymath} (112)
This can be rewritten in linear operator notation, as ${\bf y}={\bf A}{\bf x}$, where ${\bf A}$ is a lower-triangular Toeplitz matrix representing convolution with the filter, ${\bf a}$.

The adjoint operator, ${\bf A}'$, which describes time-reversed filtering with filter ${\bf a}$, can similarly be expressed by considering the rows of the matrix-vector equation, ${\bf x}={\bf A}' {\bf y}$, as follows,  
 \begin{displaymath}
x_k = y_k + \sum_{i=1}^{\min(N_a-1, N-1-k)} a'_{i} \; y_{k+i}.\end{displaymath} (113)

The helicon Fortran90 module Claerbout (1998a) exactly implements the linear operator (and adjoint) pair described by equations ([*]) and ([*]).

Equation ([*]) explicitly prescribes internal boundary conditions near k=0; however, since ${\bf a}$ is causal, no particular care is needed near k=N-1. On the other hand, equation ([*]) explicitly imposes internal boundary conditions near k=N-1, and no care is needed near k=0. It is possible to rewrite equations ([*]) and ([*]) in a more symmetric form; however, as written, the equations lead naturally to recursive inverses for operators, ${\bf A}$ and ${\bf A}'$.

Rearranging equation ([*]), we obtain  
 \begin{displaymath}
x_k = y_k - \sum_{i=1}^{\min(N_a-1, k-1)} a_{i} \; x_{k-i}.\end{displaymath} (114)
This provides a recursive algorithm, starting from x0=y0 for solving the system of equations, ${\bf y}={\bf A}{\bf x}$.Equation ([*]) describes the exact, analytic inverse of causal filtering with equation ([*]). In principle, given a filter, ${\bf a}$, and a filtered trace, ${\bf y}$, the above equation can recover the unfiltered trace, ${\bf x}$ exactly; although in practice, with numerical errors, the division may become unstable if ${\bf a}$ is not minimum phase. Similarly, if we inverse filter a trace with equation ([*]), we can recover the original by causal filtering with equation ([*]) subject to the stability of the inverse filtering process.

Equation ([*]) appears very similar to polynomial division. However, the output of polynomial division is an infinite series, while equation ([*]) is defined only in the range, $0 \leq k \leq N-1$. As such, equation ([*]) describes polynomial division followed by truncation.

Equation ([*]) can also be rewritten as  
 \begin{displaymath}
y_k = x_k - \sum_{i=1}^{\min(N_a-1, N-1-k)} a'_{i} \; y_{k+i},\end{displaymath} (115)
which provides an exact recursive inverse to adjoint operator, ${\bf A}'$, that can be computed starting from yN-1=xN-1, and decrementing k.


next up previous print clean
Next: Non-stationary convolution and combination Up: Theory Previous: Theory
Stanford Exploration Project
5/27/2001