Calibration with a broadband noise source

The latest model of Guralp DM24 digitiser includes a pseudo-random number generator and 20-bit DAC which are used to generate a broadband noise signal. This noise has a flat frequency profile throughout the passband of the instrument. Injecting this into the sensor’s calibration loop enables the user to determine the complete instrument response in a single experiment.

The following graph, compiled from several separate experiments, shows that the power spectral density of the noise source is constant over a wide frequency range.


The response of an accelerometer (red) to this input calibration signal (blue) is proportional to it:


The measurement actually being made inside any seismometer is of a restoring force, not of a velocity. Sensors which output velocity signals effectively perform a step of integration within the feedback loop. When transformed into the frequency domain, this integration step results in straight response curve with a positive gradient on the velocity PSD graph:


Guralp Systems’ Scream! software includes a MATLAB extension for calculating true response curves from broadband noise calibration data. You do not need the full version of MATLAB to use it, as the libraries you will need are included in Scream!’s installer.

Using Scream! for broadband noise calibration

  1. In Scream!’s main window, right-click on the digitiser’s icon and select Control…. Open the Calibration tab.

  2. From the left-hand radio-buttons, choose Broadband Noise. Select the component you wish to calibrate, together with a suitable duration and amplitude.

    The amplitude should normally be as high as possible before clipping of the output signal becomes visible. Inspect the output signal and decrease the amplitude if it shows signs of flattening of the highest and lowest points of the waveform. The duration should be long enough to capture many periods of the lowest-frequency signal of interest. As a guide, allow one minute for each second of the instruments' low-frequency corner. So, for example, a 30-second instrument should be calibrated for at least half an hour and a 120-second instrument for two hours.

  3. Click Inject now. A new data stream, ending Cn (n = 0 – 7) or MB, should appear in Scream!’s main window containing the returned calibration signal.

  4. Open a Waveview window on the calibration signal and the returned streams by selecting them and double-clicking. The streams should display the calibration signal combined with the sensor’s own measurements. If you cannot see the calibration signal, zoom into the Waveview using the scaling icons at the top left of the window or the cursor keys. Drag the calibration stream Cn across the Waveview window, so that it is at the top.

  5. If the returning signal is saturated, retry using a calibration signal with lower amplitude, until the entire curve is visible in the Waveview window.

  6. If you need to scale one, but not another, of the traces, right-click on the trace and select Scale…. You can then type in a suitable scale factor for that trace.

  7. Pause the Waveview window by clicking on the pause-icon icon.

  8. Hold down SHIFT and drag across the window to select the calibration signal and the returning component(s). Release the mouse button, keeping SHIFT held down. A menu will pop up. Choose Broadband Noise Calibration.

  9. The script will ask you to fill in sensor calibration parameters for each component you have selected.


    Most data can be found on the calibration sheet for your sensor. Under Instrument response, you should fill in the sensor response code for your sensor, according to the table below. Instrument Type should be set to the model number of the sensor.

    For full details of the calibration values required, see below.

  10. Click OK. The script will return with a graph showing the responsivity of the sensor in terms of amplitude and phase plots for each component (if appropriate.)The accuracy of the results depends on the amount of data you have selected, and its sample rate. To obtain good-quality results at low frequency, it will save computation time to use data collected at a lower sample rate; although the same information is present in higher-rate streams, they also include a large amount of high-frequency data which may not be relevant to your purposes.


    The noise calibration script automatically performs appropriate averaging to reduce the effects of aliasing and cultural noise.

Calibration values

The calibration parameters required by the script are as follows:

  • Calibration Resistor (ohms) : The value of the calibration resistor, in Ω, as given on the sensor calibration sheet. This is common to all sensor components.
  • Coil Constant (a/m/s^2) : The coil constant for the component being calibrated, in A m-1 s2, as given on the sensor calibration sheet.
  • Calibration Channel uV/Count : The sensitivity of the digitiser’s calibration channel, in μV per count, as given on the digitiser calibration sheet.
  • Sensor Channel uV/Count : The sensitivity of the digitiser’s input channel, in μV per count, as given on the digitiser calibration sheet.
  • Instrument Type : The model number of the instrument, to be displayed in the title of the graph.
  • Instrument Response : The theoretical response of the instrument, as defined by its poles and zeroes. This information is used to generate a theoretical response curve. Details of the response of most Guralp instruments are included in the script, and can be accessed using the response codes on the page about Information blocks.
  • FFT window size : This value specifies the FFT length used in the calculation, and hence the frequencies at which calibration is performed. The default value is automatically chosen to give optimal results, and you should not need to change it.
  • Serial Number (optional) : A serial number to be displayed in the title of the graph.

The calvals.txt file

If a file named calvals.txt exists in the same directory as Scream!’s executable (scream.exe), Scream! will look there for suitable calibration values. A sample calvals.txt is supplied with Scream!, which you can edit to your requirements. Each stream has its own section in the file, headed by the line [instrument-id]. See the page on Units and scaling in Scream! for a full description of the calvals file.

The calibration information for a CMG-3T weak-motion velocity sensor might look like the following:


CMG-5TD accelerometers use 1 Ω calibration resistors, and their coil constant is set to unity. Older CMG-5TD instruments, based on Mk2 digitiser hardware, do not have calibration input facilities, and thus the CALVPC entry is omitted. For example:




CMG-3T, 360 s – 50 Hz response


The Broadband Noise Calibration extension produces two graphs. The upper graph shows the magnitude of the frequency response; the lower one, the phase shift at each frequency.

The blue curve shows the response curve calculated from the data you supplied; the red curve shows the theoretical frequency response for the sensor type.

Above the line is displayed the calculated sensitivity of the instrument. This is determined from the response curve in the area shown by the light blue line. This sensitivity should closely match the value given on the calibration sheet.

CMG-3ESP, 60 s – 50 Hz response


CMG-40T, 60 s – 50 Hz response


CMG-5T, DC – 100 Hz response

Accelerometers may also be calibrated using the broadband noise source.


Calibration using console commands

You can inject broadband noise signals into the calibration loop from the digitiser’s console, without using Scream!. The output streams can then be analysed in your preferred software package.

The following commands are available:


Syntax: component RANDOMCAL

Instructs the DM24 to inject a white-noise calibration signal generated by an onboard pseudo-random number generator.

component specifies which component is to be calibrated, one of Z, N/S, E/W, or ALL. Some sensors use only the Z calibration loop for all three components.

The calibration signal will be automatically disconnected after 2 minutes if you have not altered the setting using the MINUTE command, described below.

Whilst calibration is in progress, the fourth (auxiliary, or X) data channel is switched to monitor the returning calibration signal.


Syntax: duration MINUTE

Sets for how long the next calibration signal will be injected.

duration is the desired interval, in minutes. If you now issue a RANDOMCAL command, the calibration will last duration minutes.

If you do not issue MINUTE, calibration signals will default to 2 minutes.

Because of the way FORTH works, you can insert MINUTE commands into RANDOMCAL commands, for example:



Syntax: value %AMPLITUDE

Sets the relative amplitude of the signal, as a percentage. The default of 100% is normally suitable. If you have a high-gain sensor, you may have to use a lower value.

You can insert %AMPLITUDE commands into calibration commands as described above, e.g.:


  Submit Enquiry Contact Us Contact Local Distributor

You can view our case studies to find out more about how our instrumentation is used around the world.



Guralp Systems Limited
Midas House
Calleva Park

Tel: +44 118 981 9056
Fax: +44 118 981 9943