| [ < ] | [ > ] | [ << ] | [ 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 *fnamea 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 *desca 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 *unitsa 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 gainthe 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 initvalthe initial value of the associated signal (i.e., the value of sample number 0).
WFDB_Group groupthe 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 fmtthe 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 spfthe 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 bsizethe 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 adcresthe ADC resolution in bits. Typical ADCs have resolutions between 8 and 16 bits inclusive.
int adczerothe 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 baselinethe 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 nsampthe 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 cksuma 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)