This is part 3 in the series "How does the Frogwatch Vibration Sensor work?". In this article, we discuss the signal processing applied in the Frogwatch Vibration Sensor when using the SBR B measurement method.

Signal processing flow chart

This flow chart schematically shows what happens to the measured sensor values for each of the axes (X, Y, and Z). Throughout the rest of the article, we refer to the P labels of the blocks in the flow chart. A part of the flowchart (up to and including P2) is the same as that of SBR A.

Signal Processing Flow Chart for SBR B

P1. Scaling to acceleration

The Frogwatch Vibration Sensor uses MEMS accelerometers to measure acceleration. The first step in the chain is scaling the raw sensor output to acceleration in mm/s2. For this scaling, we multiply the raw sensor data by a coefficient that is determined separately for each axis (X, Y, Z) through calibration against gravity.

After this, we have an unfiltered acceleration signal that still contains gravity. This means there is a 0 Hz component of about 9810 mm/s2 on one (or distributed over) of the axes. This is a very large signal compared to the typical SBR values we monitor for. For example, SBR Category 2 has threshold values between 5 and 20 mm/s2.

P2. Highpass filter

The highpass filter allows higher frequencies to pass and blocks low frequencies. In the Frogwatch Sensor, this filter serves two purposes:

  1. Removing the gravity component. Since this is a 0 Hz signal, it is attenuated to the point of being negligible.
  2. The low-frequency part of the prescribed SBR filter.

High Pass Filter

The gray area is prescribed by the SBR B guideline. The filter magnitude response must stay within this area to comply with the guidelines. This means there is some leeway. We have designed this filter so that it is suitable for both SBR A and SBR B.

P3. Lowpass filter

SBR guidelines specify that we are only interested in frequencies between 1 and 80 Hz for SBR B. Therefore, we use a lowpass filter to filter out frequencies above 80 Hz. This effectively makes the signal 'cleaner' because all high-frequency noise is filtered out.

Low Pass Filter

In this figure, the transfer function of the lowpass filter is combined with that of the highpass filter. So, we are actually looking at the bandpass filter that meets the SBR B guidelines.

P5. SBR B - 5.6Hz low pass filter

When measuring according to the SBR B guideline, after the bandpass filter there is also a need for a first-order 5.6Hz weighting filter (SBR B section 9.2). Depending on whether the data is currently in the acceleration domain or the velocity domain, this filter should be either a lowpass or a highpass filter. If you measure with a geophone, your signal is by definition in the velocity domain, but also if you first integrate the measurement data, the guideline prescribes a 5.6Hz highpass filter. Since Frogwatch measures acceleration, we apply this filter:

|Ha(f)|=1v0â‹…12Ï€(f0)â‹…11+(f/f0)2

At first, this feels counterintuitive: that we use either a lowpass or a highpass filter to measure the same thing. However, we can show mathematically why this is correct. We can rewrite the formula as:

|Ha(f)|=12Ï€fâ‹…(1v0â‹…11+(f0/f)2)

where:

  • 12Ï€f is an integrator.
  • 11+(f0/f)2 is a first-order highpass Butterworth filter (note that f/f0 is inverted).

This confirms that the original filter is an integrator followed by a highpass filter.

For the full mathematical derivation, see this notebook. In the figure below, we also see how this filter combines with an ideal integrator. The drawn SBR B limits are purely for reference, to make it easier to compare with other filters we describe. We can therefore see that for SBR B, all acceleration signals are attenuated by at least 30dB. A large part of this comes from the implicit integrator.

SBR B 5.6Hz low pass filter

P6. SBR B moving effective value filter

To ultimately calculate Veff, SBR B 9.3 prescribes a moving effective value with a time constant of 125 milliseconds. In the guideline, this is defined with a complicated-looking integral:

Moving effective value filter

Digitally, an integral does not exist, so we can implement this as a first-order IIR (Infinite Impulse Response) filter[1]:

Veff[n]=a⋅Veff[n−1]+b⋅v[n]2

where:

N=fs⋅τ=1000⋅0.125=125a=N−1N=124125b=1N=1125

with fs=1000 Hz (sampling frequency) and Ï„=0.125 s (time constant).

This filter ensures that rapid changes are spread out over the time constant Ï„, providing a good measure of the effective vibration strength over time.


[1] Signal Processing for Intelligent Sensor Systems - David Swanson 12.2