TREMBLE technical manual

Next: 2.3 Visualization Up: 2 System Structure Previous: 2.1 Acquisition

2.2 Analysis

Responsibilities and Overview

The responsibilities of the signal-analysis module are to transmit begin-storm messages to the acquisition module, read in audio data from the acquisition module, analyze that data to determine lightning bolt structure, and pass that structure information on the storm/data manager.

The analysis module runs as follows:

  1. Listen for a lightning flash message from the acquisition module.
  2. Upon receipt, initialize a timer to 60 seconds, tell the acquisition module to begin recording, and start listening for thunder-sound messages.
  3. Process received thunder messages into points in 3-space and forward the results out the LightningTracker interface.
  4. When the countdown timer reaches 0 (from 60 seconds), tell the acquisition module to stop recording. Each time a lightning flash is received, reset the timer to 60 seconds.

    Module Operation

    Class AnalyzerModule encapsulates everything. It communicates with the various VRPN interfaces (as a client to LightningDetector and AudioRecorder, and as a server for LightningTracker) and dispatches received data to appropriate places. Received audio is sent to the SignalAnalyzer class.

    Class SignalAnalyzer receives audio data from AnalyzerModule and separates it into individual channels. These channels are compared against one another (using correlation via the Fourier transform) to find the time offsets at which the thunder sound arrived at each of the three microphones. Each pair of microphones can produce one offset. Given at least two different offsets, one of the following analyses is performed:

    1. Plane-wave assumption: The sound wavefront is assumed to be a plane. (This is reasonable for lightning which occurs more than a few hundred meters from the microphone array; since we are attempting to analyze thunder within 10 miles, this is the default.) The various time offsets produce a linear system which can be solved to yield a vector representing the direction of travel of the thunder; this, combined with the (known) time of the lightning flash and the speed of sound, produces a location.
    2. Triangulation: Each pair of offsets, combined with the time of the lightning flashes, produces a pair of cones in 3-space. In theory, these cones all intersect in a single point: the location of the lightning. This is a nonlinear optimization problem that works best when the lightning strikes close to the microphone array; beyond that, the global optimum gets harder and harder to find. Code to do this optimization is in SphereAnalysis.C and can be used with an appropriate #define in SignalAnalyzer::analyzeAudio. (You'll know it when you see it.)

    Class AnalyzerMessage is a container. It doesn't do any heavy lifting on its own, but holds and provides access to things like flash times, audio data, and lightning points.

    Next: 2.3 Visualization Up: 2 System Structure Previous: 2.1 Acquisition

    author(s): Andrew Wilson, Eric D. Baker
    last update: 05 May 1999 3:07p by Eric D. Baker