[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The siarray argument for isigopen
, osigopen
,
wfdbinit
, and osigfopen
is a pointer to an array of
objects of type WFDB_Siginfo
. The first three of these functions
fill in the WFDB_Siginfo
objects to which siarray points, but
the caller must supply initialized WFDB_Siginfo
objects to
osigfopen
. Each object specifies the attributes of a
signal:
char *fname
a pointer to a null-terminated string that names the file in which
samples of the associated signal are stored. Input signal files are
found by prefixing fname
with each of the components of the
database path in turn (see section The Database Path and Other Environment Variables). fname
may include
relative or absolute path specifications if necessary; the use of an
absolute pathname, combined with an initial null component in WFDB
,
reduces the time needed to find the signal file to a minimum. If
fname
is ‘-’, it refers to the standard input or
output.
char *desc
a pointer to a null-terminated string without embedded newlines (e.g.,
‘ECG lead V1’ or ‘trans-thoracic impedance’). The length of
the desc
string is restricted to a maximum of WFDB_MAXDSL
(defined in ‘<wfdb/wfdb.h>’) characters, not including the null.
char *units
a pointer to a null-terminated string without embedded whitespace. The
string specifies the physical units of the signal; if NULL, the units
are assumed to be millivolts. The length of the units
string is
restricted to a maximum of WFDB_MAXUSL
(defined in
‘<wfdb/wfdb.h>’) characters (not including the null).
WFDB_Gain gain
the number of analog-to-digital converter units (adus) per physical unit
(see previous item) relative to the original analog signal; for an ECG,
this is roughly equal to the amplitude of a normal QRS complex. If
gain
is zero, no amplitude calibration is available; in this
case, a gain
of WFDB_DEFGAIN
(defined in
‘<wfdb/wfdb.h>’) may be assumed.
WFDB_Sample initval
the initial value of the associated signal (i.e., the value of sample number 0).
WFDB_Group group
the signal group number. All signals in a given group are stored in the
same file. If there are two or more signals in a group, the file is
called a multiplexed signal file. Group numbers begin at 0;
arrays of WFDB_Siginfo
structures are always kept ordered with respect
to the group number, so that signals belonging to the same group are
described by consecutive entries in siarray.
int fmt
the signal storage format. The most commonly-used formats are format 8 (8-bit first differences), format 16 (16-bit amplitudes), and format 212 (pairs of 12-bit amplitudes bit-packed into byte triplets). See ‘<wfdb/wfdb.h>’ for a complete list of supported formats. All signals belonging to the same group must be stored in the same format.
int spf
the number of samples per frame. This is 1, for all except oversampled
signals in multi-frequency records, for which spf
may be any
positive integer. Note that non-integer values are not permitted (thus
the frame rate must be chosen such that all sampling frequencies used in
the record are integer multiples of the frame rate).
int bsize
the block size, in bytes. For signal files that reside on Unix character
device special files (or their equivalents), the bsize
field
indicates how many bytes must be read or written at a time
(see section Signals That Are Not Stored in Disk Files). For ordinary disk files, bsize
is zero.
All signals belonging to a given group have the same
bsize
.
int adcres
the ADC resolution in bits. Typical ADCs have resolutions between 8 and 16 bits inclusive.
int adczero
the ADC output given an input that falls exactly at the center of the
ADC range (normally 0 VDC). Bipolar ADCs produce two’s complement
output; for these, adczero
is usually zero. For the MIT DB,
however, an offset binary ADC was used, and adczero
was 1024.
int baseline
the value of ADC output that would map to 0 physical units input.
The value of adczero
is not synonymous with that of
baseline
(the isoelectric or physical zero level of the signal); the
baseline
is a characteristic of the signal, while
adczero
is a characteristic of the digitizer. The value
of baseline
need not necessarily lie within the output range of
the ADC; for example, if the units
are ‘degrees_Kelvin’,
and the ADC range is 200–300 degrees Kelvin, baseline
corresponds to
absolute zero, and lies well outside the range of values actually produced
by the ADC.
long nsamp
the number of samples in the signal. (Exception: in multi-frequency records,
nsamp
is the number of samples divided by spf
, see above, i.e.,
the number of frames.) All signals in a given record must have the same
nsamp
. If nsamp
is zero, the number of samples is unspecified,
and the cksum
(see the next item) is not used; this is useful for
specifying signals that are obtained from pipes, for which the length may not
be known.
int cksum
a 16-bit checksum of all samples. This field is not usually accessed by
application programs; newheader
records checksums calculated by
putvec
when it creates a new ‘hea’ file, and
getvec
compares checksums that it calculates against cksum
at the end of the record, provided that the entire record was read
through without skipping samples.
The number of WFDB_Siginfo
structures in siarray is given by
the nsig argument of the functions that open signal files. Input
and output signal numbers are assigned beginning with 0 in the order in
which the signals are given in siarray. Note that input signal 0
and output signal 0 are distinct. Input signal numbers are supplied to
aduphys
, physadu
, adumuv
, and muvadu
in
their first arguments. See section Example 5: Reading Signal Specifications, for an illustration of how to
read signal specifications from WFDB_Siginfo
structures.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
PhysioNet (wfdb@physionet.org)