Supporting instruments with nonstandard responses
The nominal phase and amplitude response of a seismometer at different frequencies is described by a set of numbers known as the "poles and zeros" of the transfer functionSeismometers operated within their limits can be modelled as linear, timeinvariant (LTI) systems where the transfer function is the ratio of the Laplace transform of the output to that of the input. The transfer function is thus the ratio of two complex polynomials, the roots of which provide complete information about the response of the instrument. The poles are the roots of the denominator polynomial and the zeros are the roots of the numerator polynomial.. When you measure the response of an instrument using a broadband noise calibration, the Scream! calibration addon can display the nominal response curves on the same graphs as the measured response curves. It does this by looking up the RESPONSE CODE in an internal database. You can specify the response code each time you perform a calibration or you can program it once into the digitiser by using InfoBlocks.
Some instruments have nonstandard responses which are not contained in the database. A facility exists to extend the database: this allows you to work with instruments that are not supported by the standard Scream distribution.
If a Scream! addon cannot find a response code in its internal database, it looks for a file called polezero.txt. This file contains one or more specifications: each specification gives the correct poles and zeros to use for a given response code. A typical specification looks like this:
It consists of a number of elements:

The response code itself  CMG40_5s_100Hz in this example  followed by a space and then the response type, which is one of:
 Velocity;
 Acceleration;
 Displacement; or
 Pressure
all surrounded by square brackets ('[' and ']');

A line beginning Z= followed by a commaseparated list of the zeros of the instrument's transfer function;

A line beginning P= followed by a commaseparated list of the poles of the instrument's transfer function;

A line beginning A= followed by the normalisation factor; and

A line beginning units= specifying the units in which the poles and zeros are given (typically units=Hz but you can also use units=radians).
Real poles and zeros can be specified as simple integers (e.g. 50), decimal numbers (e.g. 50.12) or in engineering notation (e.g. 1.23e6 to represent 1.23×10^{6}).
Complex poles are specified as the sum of a real and an imaginary element. Imaginary elements should be identified with a trailing 'j',s such as 1.2j. Both can be specified as simple integers (e.g. 50), decimal numbers (e.g. 50.12) or in engineering notation (e.g. 1.23e6 to represent 1.23×10^{6}).
Example
You wish to connect a ABC123 geophone to a DM24 digitiser and view the output in Scream. You would like to check the calibration but there is no suitable response code available.
According to the manufacturer, the ABC123 is a velocimeter. Its transfer function has two zeros, both at the origin, and a complex conjugate pair of poles at 0.707±0.707i Hz. The normalisation factor at 1 Hertz is unity.
To support this instrument, we will create a new response code and specify a velocity response for it. Go to the directory in which the Scream! executable resides (see Locating scream.ini to discover where this file is located on your system) and open the file polezero.txt in your favourite text editor. If the file does not exist, create it.
We first add a line to start a new specification. We can call our new response code anything we want, but it is important that the name we choose does not match any of the existing response codes in the database. We can avoid this by prefixing our code with X_ so lets choose X_ABC123. It is a velocity response so we type
This is the title of the specification and the following parameters will be used by Scream whenever a response code of X_ABC123 is given for a velocity response. We could have just typed V or Vel instead of Velocity but omitting this specifier is a frequent cause of errors, so we'll stick with the long form, which is harder to miss. We could also have typed A, Acc or Acceleration for an instrument with an acceleration response, D or Displacement for an instrument with a displacement response or P and pressure for a barometer or DPG.
We now need to specify the zeros. There are two zeros, both at the origin, so we type
We now need to specify the poles. There is one pair of complex conjugate poles which we must list individually, so we type
We now need to specify the normalisation factor. This is unity at 1 Hz, so we type
Lastly, we specify the units, which are Hertz in this case, so we type
Putting all of this together with an appropriate comment, the specification looks like
Once the polezero.txt file has been saved, we can start using X_ABC123 exactly as we would use any other velocity response code.
This has been just a brief introduction to the facility. If you need additional information about this subject, please contact .