Next: Internal convolution Up: FAMILIAR OPERATORS Previous: Adjoint derivative

## Transient convolution

The next operator we examine is convolution. It arises in many applications; and it could be derived in many ways. A basic derivation is from the multiplication of two polynomials, say times .Identifying the -th power of in the product gives the -th row of the convolution transformation (4).

 (4)

Notice that columns of equation (4) all contain the same wavelet'' but with different shifts. This signal is called the filter's impulse response.

Equation (4) could be rewritten as

 (5)

In applications, we can choose between and . In one case, the output is dual to the filter ; and in the other case, the output is dual to the input . Sometimes, we must solve for and sometimes for ; therefore sometimes we use equation (5) and sometimes (4). Such solutions begin from the adjoints. The adjoint of equation (4) is
 (6)

The adjoint crosscorrelates with the filter instead of convolving with it (because the filter is backward). Notice that each row in equation (6) contains all the filter coefficients, and there are no rows where the filter somehow uses zero values off the ends of the data as we saw earlier. In some applications, it is important not to assume zero values beyond the interval where inputs are given.

The adjoint of (5) crosscorrelates a fixed portion of filter input across a variable portion of filter output.

 (7)

Module tcai1 is used for , and module tcaf1 is used for .

user/gee/tcai1.c
  for( b=0; b < nb; b++) { for( x=0; x < nx; x++) { y = x + b; if( adj) xx[x] += yy[y] * bb[b]; else yy[y] += xx[x] * bb[b]; } } 
user/gee/tcaf1.c
  for (b=0; b < nb; b++) { for (x=0; x < nx; x++) { y = x + b; if( adj) bb[b] += yy[y] * xx[x]; else yy[y] += bb[b] * xx[x]; } } 

The polynomials , , and are called transforms. An important fact in real life (but not important here) is that the transforms are Fourier transforms in disguise. Each polynomial is a sum of terms, and the sum amounts to a Fourier sum when we take . The very expression says that a product in the frequency domain ( has a numerical value) is a convolution in the time domain. Matrices and programs nearby are doing convolutions of coefficients.