(1) |

We can represent this data as a

(2) |

This polynomial is called the

(3) |

which becomes the untransformed series:

which is just the original time series delayed by one unit of time (Be careful if you try to look the Z transform up in a book. In a variation of the pi throwing contest that I mentioned a few columns back, different authors use different sign conventions on the Z transform polynomial.).

This innocent looking transform and delay operator turn out to be
very powerful. Consider the following, suppose that represents
the response of the ground to an explosion (which we will call the
*impulse response*). If another explosion occurred 10 time units
later, then the signal that we would see is

which can be represented by

If the second explosion was half the strength of the first, then we'd write,

If the second was a half strength

If the second signal came in overlapping the first (say at time 4) then the numbers in the series is a bit messy looking,

but rest assured this series can be written out as having the transform,

(4) | |||

(5) |

A Forth function to do this kind of factorization is shown in listing 1. This code has been contributed to the Forth Scientific Library and is awaiting review for its acceptance. (Volunteers for doing code reviews are eagerly accepted!).

In general we can do this for an arbitrarily complicated sequence
of explosions and implosions as long as the response of the
earth remains linear (an example of a *nonlinear* response
would be the state of the ground within a mile or so of a nuclear
explosion).
So suppose we have a sequence consisting of an explosion at , a
half strength implosion at time and a quarter strength
explosion at time ,

(6) |

then,

(7) |

Now without doing any integrals, and just manipulating polynomials
we have done the *convolution theorem*,

(8) |

Both equations (7) and (8) state that the signal is the convolution of and , but the Z transform version just involves simple manipulation of polynomials. Listing 2 provides an implementation of convolution algorithms, this code is also an unreviewed contribution to the Forth Scientific Library.