Next: The LAL universal status
Up: Header LALDatatypes.h
Previous: Aggregate datatypes
  Contents
  Index
Structured datatypes
These datatypes embed primitive and aggregate datatypes inside
structures that define their physical meaning. Most of these
structures are wrappers for aggregate datatypes that store a physical
quantity as a function of time or frequency. Other structures store
specific physical information, such as the GPS time, or the factored
response function of a filter.
LIGOTimeGPS
This structure stores the time, to nanosecond precision, synchronized
to the Global Positioning System time reference. The zero time for
the GPS standard is the moment of midnight beginning January 6, 1980,
UTC. The LIGOTimeGPS structure can represent times up to
68 years on either side of this epoch. (Note that this is better than
an equivalently-sized REAL8 representation of time, which can
maintain nanosecond precision only for times within 104 days of its
reference point. However, the REAL8 representation does allow
one to cover arbitrarily long timescales at correspondingly lower
precision.) The fields are:
- INT4 gpsSeconds
- The number of seconds since the GPS
reference time.
- INT4 gpsNanoSeconds
- The number of nanoseconds since
the last GPS second.
LALUnit
This structure stores units in the mksA system (plus Kelvin, Strain,
and ADC Count). It also stores an overall power-of-ten scaling factor.
The fields are:
- INT2 powerOfTen
- The power
of ten scaling factor.
- INT2 unitNumerator[LALNumUnits]
- Array of unit numerators,
,
.
- INT2 unitDenominatorMinusOne[LALNumUnits]
- Array of unit
denominators-minus-one,
,
.
Thus, the units are given by
 |
(8.1) |
The indexes of the units can be specified using the constants
LALUnitIndexMeter,
LALUnitIndexKiloGram,
LALUnitIndexSecond,
LALUnitIndexAmpere,
LALUnitIndexKelvin,
LALUnitIndexStrain,
LALUnitIndexADCCount,
while LALNumUnits is the total number of units.
<datatype>TimeSeries
This structure represents a sequence of data of type <datatype>
(where <datatype> can be any primitive datatype), sampled over
uniform time intervals
.
Essentially this is a <datatype>Sequence with extra fields
defining the sample times and the type of data being sampled. The raw
data may also have been heterodyned; that is, multiplied by a
sinusoid of some frequency
, low-pass filtered, and resampled, in
order to extract the behaviour in a small bandwidth about
. The
fields are:
- CHAR name[LALNameLength]
- The name of the data series (i.e. the type of data being sampled).
- LIGOTimeGPS epoch
- The start time
of the data
series.
- REAL8 deltaT
- The sampling interval
, in
seconds.
- REAL8 f0
- The heterodyning frequency
, in hertz.
- LALUnit sampleUnits
- The physical units of the
quantity being sampled.
- <datatype>Sequence *data
- The sequence of sampled data.
<datatype>TimeVectorSeries
Like <datatype>TimeSeries, above, except that the sampled data
are of type type <datatype>Vector (where <datatype> can
be any primitive datatype). The fields are:
- CHAR name[LALNameLength]
- The name of the data series (i.e. the type of data being sampled).
- LIGOTimeGPS epoch
- The start time of the data series.
- REAL8 deltaT
- The sampling interval, in seconds.
- REAL8 f0
- The heterodyning frequency, in hertz.
- LALUnit sampleUnits
- The physical units of the
quantity being sampled.
- <datatype>VectorSequence *data
- The sequence of sampled
data.
<datatype>TimeArraySeries
Like <datatype>TimeSeries, above, except that the sampled data
are of type type <datatype>Array (where <datatype> can
be any primitive datatype). The fields are:
- CHAR name[LALNameLength]
- The name of the data series (i.e. the type of data being sampled).
- LIGOTimeGPS epoch
- The start time of the data series.
- REAL8 deltaT
- The sampling interval, in seconds.
- REAL8 f0
- The heterodyning frequency, in hertz.
- LALUnit sampleUnits
- The physical units of the
quantity being sampled.
- <datatype>ArraySequence *data
- The sequence of sampled
data.
<datatype>FrequencySeries
This structure represents a frequency spectrum of data of type
<datatype> (where <datatype> can be any primitive
datatype), sampled over uniform frequency intervals
. Essentially this is a
<datatype>Sequence with extra fields defining the sample
frequencies, the timestamp of the spectrum, and the type of data being
sampled. The fields are:
- CHAR name[LALNameLength]
- The name of the data series (i.e. the type of data being sampled).
- LIGOTimeGPS epoch
- The start time of the time
series from which the spectrum was calculated.
- REAL8 f0
- The lowest frequency
being sampled, in
hertz.
- REAL8 deltaF
- The frequency sampling interval
, in hertz.
- LALUnit sampleUnits
- The physical units of the
quantity being sampled.
- <datatype>Sequence *data
- The sequence of sampled data.
<datatype>ZPGFilter
This structure stores the complex frequency response of a filter or
transfer function in a factored form, where <datatype> can be
either COMPLEX8 or COMPLEX16. One defines a
(dimensionless) complex frequency variable
, where
is the time sampling interval of the data to which the
filter will be applied (in the case of a digital filter), or some
other reference timescale (in the case of an analog filter). The
complex response function can then be given (or approximated) as
, where
are
the complex zeros,
are the complex poles, and
is the complex gain of the response function. Some common
complex frequency representations are the
-plane representation
, which maps the Nyquist
interval
onto the upper-half unit circle in
, and the
-plane representation
, which maps the Nyquist interval onto the positive real
axis in
. The fields of <datatype>ZPGFilter are:
- CHAR name[LALNameLength]
- The name of the filter or transfer
function. This should also mention its complex frequency
representation.
- REAL8 deltaT
- The sampling time or reference timescale
for the filter, in seconds. If zero, it will be treated as
being equal to the sampling interval of the data being filtered.
- <datatype>Vector *zeros
- Pointer to a vector storing
the zeros
of the filter.
- <datatype>Vector *poles
- Pointer to a vector storing
the poles
of the filter.
- <datatype> gain
- The gain
of the filter.
Next: The LAL universal status
Up: Header LALDatatypes.h
Previous: Aggregate datatypes
  Contents
  Index
LAL test account
2003-10-23