Database Reference
In-Depth Information
for example, the definition of the beamform function implies that the type of
beam is Stream
.
The detect subquery constructor has several parameters, including
marmotScore , a custom function which computes the energy in fre-
quency bands that are characteristic of marmot calls. This produces a
<bool,time,time> stream of local marmot call detections that is merged
with elements from the net input stream (representing a stream of tuples
from a remote node). This merged and filtered stream is fed as a control
stream to sync4 , along with the four raw input streams from the audio sen-
sors. Sync4 aligns the four data streams in time, and “snapshots” synchro-
nized segments of data according to the time ranges specified in the con-
trol stream. In this way, sync4 reduces the volume of input data by passing
through only those segments of audio that detect suspects contain marmot
calls.
Next, the synchronized windows of data from all four audio channels are
processed by a beam-forming algorithm. The algorithm computes a direction-
of-arrival (DOA) probability distribution and enhances the input signal by
combining phase-shifted versions of the four channels according to the most
likely direction of arrival. The beam function returns a stream of two tuples.
We use a special binding syntax, “ beam<doa,enhanced> =
<
<
>>
float[360],SigSeg
float
,” to give tem-
porary names to the fields of these tuples. That is, beam.doa projects a stream
of direction-of-arrivals, and beam.enhanced contains the enhanced versions of
the raw input data. Finally, this enhanced signal is fed into an algorithm
that classifies the calls by type (male, female, or juvenile) and, when possible,
identifies individuals.
...
11.2.5 Distributed Processing
WaveScript also includes the ability to specify programs that move data be-
tween several nodes, as in the case of the microphone arrays performing mar-
mot detection. The simplest form of distributed processing is as follows:
// Send side:
ToNet(''MyStream'', S);
// Receive side:
R = FromNet(''MyStream'');
Here, the stream S is made visible to other nodes in the network (who are
declared in a special configuration file) as the named stream “MyStream.” A
receiver can read in this stream and process it as though it were produced
locally. The WaveScope runtime takes care of ensuring that this data is deliv-
ered reliably and in order, and that tuples on this stream are appropriately
time synchronized with local data on the receiving node.
Once a WaveScript program has been written, it is fed to the WaveScope
compiler, which converts it to a binary that can be run inside of a sensor
Search WWH ::




Custom Search