Version 8 (modified by MarcusWalther, 11 years ago) (diff)


Creating simulation filters


The effect of a simulation filter can be divided into two steps:

  1. Remove the instrument's transfer function.
  2. Apply a defined transfer function for simulating a (historic) seismometer.

In order to speed-up the filtering process both steps are combined into one filter file.

Bundled filters

Seismic Handler ships with many simulation filters prepared. The data files are located in $SH_FILTER.

The following simulations are supported by filter dialogue:

  • Wood-Anderson
  • SRO-LP
  • standard band-pass (0.7 to 2.2 Hz, order 1)
  • displacement (integrates data from velocity proportional to displacement proportional)

You can also use any other filter that is present in $SH_FILTER.

Filters for the following seismometers are shipped with SH/SHM:

  • STS1 (use synonym "GRF")
  • STS2 (use synonym "GRSN")
  • CMG40T
  • CMG-3T (use synonym "GURALP")
  • T40
  • CMG3ESP60S
  • KS36000i (use synonym "GRFO")
  • KS2000
  • GS13
  • KHC
  • LE3D1
  • LE3D5

If you edit the filter configuration file simply use the name of the instrument as written above. If a synonym is given, you have to use it instead of the name.

Please note that many instrument's transfer functions included in SH/SHM are simplified and feature only the low-frequent corner. If you want to analyse high frequencies (STS2: above 10 Hertz), it's strongly recommended to create full-featured filter sets (see below)! Also your instruments may have different features due to hardware revisions.

Creating new filter sets

In case you have to create filters for another instrument please follow this recipe.

transfer function

The most important information you need are the poles, zeros and normalization factor of the instrument's transfer function (commonly supplied by vendor).

Now create the corresponding FFT filter file. For example we use data from IRIS for the Nanometrics Trillium 240 seismometer (generation 1). Usually the data contains information for velocity proportional input. Please make sure that the poles and zeros are specified in radians/s (including factor 2π), not plain Hz (without 2π).

There are 5 zeros and 7 poles (complex numbers) listed:


0.00E+00 0.00E+00
0.00E+00 0.00E+00
-0.90E+02 0.00E+00
-1.642E+02 0.00E+00
-32.03E+02 0.00E+00


-1.813E-02 1.803E-02
-1.813E-02 -1.803E-02
-1.249E+02 0.00E+00
-1.975E+02 2.561E+02
-1.975E+02 -2.561E+02
-5.69E+02 11.50E+02
-5.69E+02 -11.50E+02

Reformat and insert this data into a file named $SH_FILTER/TF_VEL_S+TRILLIUM240GEN1.FLF (format description), e.g.

! Trillium 240 generation 1
! see

As you may have noticed the normalisation factor is not known yet nor present on IRIS website (in our example it's set to 100 - which is definitively wrong). Seismic Handler comes with a little tool that helps calculating this value. From the input parameters filter name (without extension) and frequency it calculates amplitude and phase. By definition the transfer function should be normalized to one at 1 Hertz:

2.205364e-04 3.733963e-02

So we have to change the normalisation value in the filter file from 100 to 100/2.205364e-04=453439.886. After doing that evalflf gives:

1.000000e+00 3.733962e-02

Done. The newly created filter shows only minor differences to the filter shipped with SH which was created using more precise zero/pole data.

simulation filters

To create all simulation filters referred above please use the tool prep_simfilters.csh:

$SH_UTIL/prep_simfilters.csh TRILLIUM240GEN1

Important note: This program expects an environment variable PSVIEW for displaying the filter responses. Please define it according to your system. Also make sure that GMT executables are within the search path - otherwise there will be lot of error messages (but the simulation filters are created anyway).

For every simulation filter created the program will display the transfer function of real and simulated instrument and the characteristics of the final filter response. You have the options to apply high-pass, low-pass, band-pass or accept or delete the resulting filter.