Seismometers, Poles, & Zeros
Although not an everyday calculation, seismologists often benefit from a reminder of the instrument response curves (amplitude responses). Seismometers are generally described as the ratio of two polynomials in the Laplace Transform variable, s. The polynomials are described by their roots, which we call zeros (for the numerator polynomial) and poles (for the denominator polynomial). Generally when and instrument is calibrated, the information on the calibration is communicated by the poles, zeros, and an overall gain. To compare instruments with different gains, we also often choose a normalization frequency for display.
In the following I present some Mathematica scripts that I use to examine the poles, zeros, and instrument response amplitude spectrum. Slight modifications can introduce the phase information as well, but to keep things a little short, I leave that out of the description. We’ll look at four sets of instruments, Trillium, Steckheisen, and Guralp broadband seismometers, and then some short-period instruments that are part of the IRIS Consortium instrument pool.
Nanometrics Trillium Sensor Responses
I obtained the poles and zeros and zeros for the instrument responses from the PASSCAL web site and normalized the responses to a frequency of 1 Hz. Click here for the link.
Here is the code to set up three sets of poles and zeros as Mathematica lists – corresponding to the Trillium 120 PA, 240 (2nd Gen), and the Compact Trillium sensors.
(*
Poles and zeros for the Trillium 120PA from
http://www.passcal.nmt.edu/webfm_send/1970
*)
Zn120 = {0, 0, -90.0, -160.7, -3108};
Pn120 = {-0.03852 + 0.03658 I, -0.03852 - 0.03658 I, -178.,
-135 + 160 I, -135 - 160 I, -671 + 1154 I, -671 - 1154 I};
(*
Poles and zeros for the Trillium 240 (2nd Gen) from
http://www.passcal.nmt.edu/webfm_send/1970
*)
Zn240 = {0, 0, -90., -164.2, -3203.};
Pn240 = {-0.01813 + 0.01803 I, -0.01813 - 0.01803 I, -124.9 + 0 I,
-197.5 + 256.1 I, -197.5 - 256.1 I, -569 + 1150 I, -569 + -1150 I};
(*
Poles and zeros for the Compact Trillium from
http://www.passcal.nmt.edu/webfm_send/1970
*)
Znct = {0, 0, -434.1};
Pnct = {-0.036910 + 0.037120 I, -0.036910 + -0.037120 I, -371.2, -373.9 + 475.5 I,
-373.9 - 475.5 I, -588. + 1508. I, -588.4 - 1508. I};
I can compute the three instrument responses using the following Mathematica functions. I could write one function and call it with the poles and zeros, but this is not that much extra work for an example. The second line in each function normalizes the response to unit amplitude at a frequency of one Hertz.
(* Instrument responses normalized at one Hz *)
Element[f, Reals];
s = I 2 \[Pi] f;
tr120resp[f_] = (Times @@ (s - Zn120)/Times @@ (s - Pn120)) /
(Abs[Times @@ (s - Zn120)/ Times @@ (s - Pn120)] /. f -> 1.0);
tr240resp[f_] = (Times @@ (s - Zn240)/Times @@ (s - Pn240)) /
(Abs[Times @@ (s - Zn240)/Times @@ (s - Pn240)] /. f -> 1.0);
ctresp[f_] = (Times @@ (s - Znct)/Times @@ (s - Pnct))/
(Abs[Times @@ (s - Znct)/ Times @@ (s - Pnct)] /. f -> 1.0);
The variable \( s = i \omega \) is the Laplace Transform variable and has units of radians. I can display the instrument response amplitude spectrum using
p1 = LogLogPlot[{Abs[tr240resp[f]], Abs[tr120resp[f]], Abs[ctresp[f]]}, {f, 0.001, 1000 },
Filling -> Axis, ImageSize -> 512,
Axes -> False, Frame -> True,
BaseStyle -> {14, FontFamily -> "Helvetica"},
FrameLabel -> {"Frequency (Hz)", "Normalized Amplitude"},
PlotLabel -> "Trillium Sensors" ,
LabelStyle -> {14, FontFamily -> "Helvetica"},
PlotLegends -> LineLegend[{"TR240", "TR120", "Compact"}]];
p1 // Print
Here is the plot.
Nanometrics Trillium seismometer response curves (amplitude).