DATA BASE FORMAT

This section discusses how a project is stored to disk. The STAR System stores all projects from a test under a single directory. The name of this directory is the project file name. We individual files in this directory contain data for individual tables. Each measurement data file contains data for a single measurement point and direction.

The measurement file names are encoded with measurement point and direction and measurement type information.

For Windows 3.1 users the following format will be used:

For a single channel auto spectra measurement, the file name is 'aaabc.ext', where 'aaa' is a three­digit point number (001, 002, 003 ... 999), 'b' is the measurement direction, i.e., X, Y, Z, R, T, P, U (rotation around X­axis), V (rotation around Y­axis) and W (rotation around Z­axis), end 'c' is the channel the measurement was taken from, i.e., A or B. For other single channel measurements, the 'c' is omitted from the file name.

For dual channel measurement, the file name is 'aaabcccd.ext', where 'aaa' is a three­digit point number (001, 002, 003,..., 999) of channel l and 'ccc' is the three­digit point number of channel 2. The values of 'b' and 'd' are the measurement directions, i.e., X, Y. Z. R. T. P. U (rotation around X­axis), V (rotation around Y­axis) and W (rotation around Z­axis) of channels 1 and 2 respectively.

For Windows 95 and Windows NT users the following format will be used:

For a single channel auto spectra measurement, the file name is 'aaabc.ext', where 'aaa' is a three­digit point number (0001, 0002, 0003 ... 3000), 'b' is the measurement direction, i.e., X, Y, Z, R, T, P, U (rotation around X­axis), V (rotation around Y­axis) and W (rotation around Z­axis), end 'c' is the channel the measurement was taken from, i.e., A or B. For other single channel measurements, the 'c' is omitted from the file name.

For dual channel measurement, the file name is 'aaabcccd.ext', where 'aaa' is a three­digit point number (0001, 0002, 0003,..., 3000) of channel l and 'ccc' is the three­digit point number of channel 2. The values of 'b' and 'd' are the measurement directions, i.e., X, Y. Z. R. T. P. U (rotation around X­axis), V (rotation around Y­axis) and W (rotation around Z­axis) of channels 1 and 2 respectively.

For calibration measurements, the file name is 'MICPAIR.CAL where a is 1, 2, or 3, indicating which microphone pair is stored in the file.

Note: The data in a calibration measurement must be normalized as discussed in the Measurement section ahead.

The file name extension 'ext' are as follows (Listings marked * are planned but not supported in the STARAcoustics v2.0.):

Auto Spectrum
Calibration
Coherence
Cross Spectrum
Frequency Response
Auto Correlation
Auto Spectrum Density
Cross Correlation
Cross Spectrum Density
Curve fit FRF
Impulse Response
Linear Spectrum
Intensity
Time Domain
Sound Pressure
Composite Sound Power
F1 Indicator
F2 Indicator
F3 Indicator
F4 Indicator
APS
CAL
COH
CPS
FRF
ACR*
ASD*
CCR*
CSD*
CFT*
IRF*
FRQ*
INT
TIM
SPL
CSP
F1
F2
F3
F4

For example, the following files would be created to save the two auto spectra, the cross spectrum, the frequency response and the coherence function for a dual­channel measurement with response at point 3Z and excitation at 55X:
003ZB.APS
055XA.APS
055X003Z.CPS
055X003Z.FRF
055X003Z.COH
Auto spectrum of 3Z from Channel B
Auto spectrum of 55X from Channel A
Cross spectrum between 55X and 3Z
Frequency Response between 55X and 3Z
Coherence Function between 55X and 3Z

The memory requirements for the following standard data types are:

char 8 bits 1 byte
int 16 bits 2 bytes
float 32 bits 4 bytes

The Offset is the number of bytes from the beginning of the record.


MEASUREMENT TABLE
The user interfacing to the STAR System measurement data base must be aware of the internal format of the measurement data (what information is available) and the archiving of measurements to the disk in an orderly manner.


MEASUREMENT
TABLE
FORMAT

The measurement data record is saved to a disk file in binary format.

General Purpose Header ( 16 Bytes)

Measurement Header (636 Bytes)

Measurement Data (n * 2 * 4 Bytes)

Where "n" is the number of complex measurement data lines; n<=32000. Only the required amount of the measurement data is saved to disk. The data is stored in the order: frequency line l.real, frequency line l.imag, frequency line 2.real, frequency line 2.imag, etc.


MEASUREMENT TABLE
GENERAL PURPOSE
HEADER

The General Purpose Header consists of the following fields (Bold type variables are required functions; normal type variables are set but not used currently; italicized variables are not even set currently.):
Variable Offset Type Description
revcode 0 int Star Data Base Revision Code (=2832)
headerlen 2 int Length of Header (=16)
entries 4 int Not Used (=0)
pline 6 int Not Used (=0)
sentries 8 int Not Used (=0)
spline 10 int Not Used (=0)
tentries 12 int Not Used (=0)
tpline 14 int Not Used (=0

The total memory required for the General Purpose Header is 16 bytes.

The 636­byte Measurement Header consists of the following fields:
datablockid Measurement Data Block Identifier 420 bytes
xaxisrange X-Axis Range Information 20 bytes
Channel 1 Channel 1 Measurement Information 98 bytes
Channel 2 Channel 2 Measurement Information 98 bytes

Offset from the beginning of the file: 16 bytes.


The 420­byte Measurement 'datablockid' structure contains the following information:
Variable Offset Type Description
datatype

misctype

noelements

msmcalval

caltrace

measid

userlabel

xlabel

ylabel

msmdate

msmtime

analzerid

noave

windowtype
miscwindow


wdwvalue

spacing

surface
minreal

maxreal

minimag

maximag

maxmag

mmdefined

micpair


ispeak

encamp
0

2

4

6

10

26

154

274

290

306

322

338

362

364
366


382

386

390
392

396

400

404

408

412

414


415

416
datatype

miscdatatype
int

float

char[l6]

char[128]

char[120]

char[16]

char[16]

char[16]

char[16]

char[24]

int

windowtype char[16]


float

float

surfacetype float

float

float

float

float

int

char


peatype

float
Primary measurement type (=0 for FRF)
Secondary measurement type (=0)
Number of elements in datablock
Overall calibration value (Must be set to 1.00)
File name of calibration trace (null terminated)
Measurement ID (null terminated)
Optional user plot labels (null terminated)
Optional x­axis label (null terminated)
Optional y­axis label (null terminated)
Measurement date (null terminated)
Measurement time (null terminated)
Analyzer ID (null terminated)

Number of averages for data (=1)
Window type
Miscellaneous
window description
(null terminated)
Noise BW/exponential time

Microphone spacing
(=0.0)
Intensity surface (=0)
Minimum real part of all lines

Maximum real part of all lines
Minimum imaginary part of all lines
Maximum imaginary part of all lines
Maximum magnitude of all lines
0=min/maxes undefined
1 =all min/maxes defined
Microphone pair number 1, 2, or 3 (. CAL measurements only)
RMS/Peak compensation, Auto Spectra A/B
Excitation amplitude (=0.0)


NOTE: If maxreal­minreal<le­18 then maxreal=maxreal+abs(maxreal)+2e­18 and minreal=minreal-abs(minreal)­2e­ 18; similarly for the imaginary part. Maxmag=max (mag (line [i])) where 1 <= i <= number of lines. If maxmag<le­18 then maxmag=+2e­18. It is highly recommended that these min/maxes be computed to improve data base performance.

Offset from the beginning of the file: 436 bytes.

The 20­byte Measurement Header 'xaxisrange' xaxisrangetype structure contains the following information:

Variable Offset Type Description
xlow 0 float Start frequency/time of data
deltax 4 float Delta frequency/time of data
xhigh 8 float High frequency/time delay
xoffset 12 float Center frequency/time delay
zoom 16 zoomtype Zoom flag/code
code 18 codetype Frequency/time code

Offset from the beginning of the file: 456 bytes for channel l and 554 bytes for channel 2.

The two 98­byte Measurement Headers 'Channel1' and 'Channel2' msminfotype structure are identical and each contain the following information:
Variable Offset Type Description
point 0 ptdirtype Point and direction
units 2 unitstype Transducer units
unitslbl 4 char[8] Transducer units label
xdcrid 12 char[24] transducer id field
calfactor 36 float Transducer calibration factor = 1
chnid 40 char[24] Amplifier id field
gain 64 float Amplifier gain/code
calcf 68 float Cal factor(.CAL measurements only) corrected = calcf * measured
calfreq 72 float Cal frequency (.CAL measurements only)
calcfdb 76 float Cal correction factor in dB's calcdb = 20 log calcf (.CAL measurement only)
notused 80 char[12] not used
range 92 float Adc range/code
coupling 96 couplingtype Adc coupling

Measurement Table
Measurement Data

Offset from the beginning of the file: 652 bytes. The 256,000­byte Measurement Data 'msmdata' field consists of the following:

Variable Offset Type Description
msmdata 0 Complex[n] Calibrated
Measurement Data
(up to 256,000 bytes)
where n = number of
lines

For calibration measurements, the data is normalized, i.e., SQRT(msmdata.real [i]^2 + msdata.imag[i]^2) = 1, for each i.
Equivalently, real = cos(t), imag = sin (t), where t = arctan(imag/real).

MEASUREMENT TABLE
MEASUREMENT HEADER
ENUMERATED/ ENCODED DATA TYPES

Variables of the type 'datatype' describe the type of measurement and are enumerated as follows:
Value Datatype X-Axis Y-Axis
0 Frequency Response Frequency Complex
1 Time Domain Time Real
2 Coherence Frequency Real
3* Linear Spectrum Frequency Complex
4* Impulse Response Time Real
5* Auto Correlation Time Real
6* Cross Correlation Time Real
7 Synthesized FRF Frequency Frequency Complex
8* Curvefit FRF Frequency Complex
9* Synthesized IRF Time Real
10* - Not Specified - -
11* Auto Spectrum Density Frequency Power/Hz
12 Auto Spectrum Frequency Power
13 Cross Spectrum Frequency Power
14* Cross Spectrum Density Frequency Power/Hz
15 Calibration Data Frequency Complex
16* Pressure Intensity Index Frequency Complex
17 Sound Pressure Level Frequency Real
18 Composite Sound Power Frequency Real
19 F1 Indicator Frequency Real
20 F2 Indicator Frequency Real
21 F3 Indicator Frequency Real
22 F4 Indicator Frequency Real
23 Intensity Frequency Real

* Not implemented yet.

MEASUREMENT TABLE
MEASUREMENT HEADER
MISCDATATYPE

Variables of type 'miscdatatype', are used to describe functions that do not fit into the standard supported datablock types. The variable 'miscdatatype' is encoded as follows:
Bits Variable
0­1
2
3­5
Domain type
Data type
Domain unit type

The values of domain type are as follows:
Value Domain
0 Time
1 Frequency
2 Volts

The enumerated values of data type are as follows:
Value Type
0 Real
1 Complex

The enumerated values of domain unit type are as follows:
Value Excitation
0 Linear
1 RMS
2 Power
3 PSD
4 ESD

MEASUREMENT TABLE
MEASUREMENT HEADER
WINDOWTYPE

Variables of type 'windowtype' are enumerated as follows:
Value Datatype
0 User Defined
1 Rectangular
2 Hanning
3 Flattop, P301
4 Force
5 Exponential
6 Force chan 1/Exponential chan 2
7 Exponential chan 1/Force chan 2
8 Kaiser-Bessel
9 Harris-Blackman

If a user­defined window is specified, then the window identifier is entered in the string variable 'miscwindow'.

MEASUREMENT TABLE
HEADER SURFACETYPE

'Surfacetype' is an integer variable that designates the Measurement surfacetype for acoustic applications.


MEASUREMENT TABLE
MEASUREMENT HEADER
PEAKTYPE

Encoded character indicating the following:
Bit Value
0 1=Peak, 0=RMS Hanning window compensation
1 - 2 1=Channel A, 2=Channel B (.APS measurements only)

MEASUREMENT TABLE
MEASUREMENT HEADER
XAXISRANGE
ZOOMTYPE

'Zoomtype' is enumerated as follows:
Value Zoom
0 Baseband
1 Zoom
2 Full Octave
3 1/3 Octave
4* 1/6 Octave
5* 1/12 Octave
6* 1/24 Octave
7* User (not implemented)
* not implemented

If Zoomtype equals 2,3,4,5, or 6 (Octave types):
­ xlow, xhigh, and deltax are not related to msmdata array directly.
- xlow and xhigh are valid data range.
- deltax = 0, if msmdata is acquired from octave analyzer.
- deltax > 0, if msmdata is derived from narrowband data and it equals delta frequency of narrowband data.
- index to msmdata array is ANSI octave band number minus one.

Example:
if zoomtype = 2 (full octave)
frequency for msmdata[0] is 2 (2^1) Hz and msmdata[13] is 16K (2^14) Hz.


if zoomtype = 3 (third octave)
frequency for msmdata[0] is 1.25 (2^1/3) hz and msmdata[42] is 20K (2^43/3) Hz.

- max number (band number) for msmdata depends on zoomtype.
Zoomtype Maxband
2 Full Octave 14
3 1/3 Octave 43
4 1/6 Octave (not implemented)
5 1/12 Octave (not implemented)
6 1/24 Octave (not implemented)


MEASUREMENT TABLE
MEASUREMENT HEADER
XAXISRANGE CODETYPE
The 'codetype' enumeration is analyzer dependent. It is currently used only for documentation purposes.

The encoded type ptdirtype variables include the point and direction information for the measurement. The number is computed as 10 · point number + direction.

MEASUREMENT TABLE
MEASUREMENT HEADER
CHANNEL 1/2
PTDIRTYPE

Direction information is enumerated as follows:
Value Direction Axis
0 No Direction
1 X rectangular global, local
2 Y rectangular global, local
3 Z rectangular, cylindrical global, local
4 R cylindrical, spherical global, local
5 T (Theta) cylindrical, spherical global, local
6 P (Phi) spherical global, local
7 Tx rotation rotation
8 Ty rotation rotation
9 Tz rotation rotation

Variables of ptdirtype are encoded as 10 · point number + direction. Examples are:
10Z would be encoded as (10 · 10) + 3 = 103 = 103
100 R would be encoded as (100· 10) + 4 = 1004 = 1004 = 1004
33 Tx would be encoded as (33 · 10) + 7 = 337
10 -X would be encoded as ­(10 · 10) + 1 = ­101
38 -Tz would be encoded as ­(38 · 10) + 9 ­389

MEASUREMENT TABLE
MEASUREMENT HEADER
CHANNEL 1 / 2
UNITSTYPE

' Unitstype' is enumerated as follows:
Value Units Lablel
0 user units user defined
1 m/s^2 m/s^2
2 m/s m/s
3 m m
4 N N
5 Pa (N/m^2) Pa
6 N-m N-m
7 g g

Value Units Label
8 in/sec ips
9 in in
10 mils mil
11 lbf lbf
12 psi psi
13 lbf-in lbf-in
14 volts volt

If user units are specified, then unit labels are entered in string variable 'unitslbl'.

MEASUREMENT TABLE
MEASUREMENT HEADER
CHANNEL 1/2
COUPLINGTYPE

Couplingtype is enumerated as follows:

Value Coupling
0 DC
1 AC