Binary Type E uses single precision floats for time values.
Posted: Thu May 24, 2007 5:18 pm
For type E binary plot files, long recordings at high rates cause time values that exceed the resolution of the single precision time values specified by the format.
It cannot properly represent time values with a mantissa that is too large.
Example using a recording rate of 50K samples per second, the interval is 0.00002 seconds. If your data goes longer than 100 seconds, the mantissa of your time value will exceed the number of significant digits of a single precision float. 100.00002 seconds cannot be represented by a single precision float time value. It resolves to approximately 100.000023 Seconds.
The ideal solution (for data with high precision sample rates) would be a binary type C format that can handle an arbitrary starting time and multiple channels. (ASCII is just too cumbersome for some huge recordings)
ie
dx
start_time_in_seconds
channel_count // ie 'n' channels will be interlaced in this format
y1[1],y2[1],...yn[1],y1[2],y2[2],...yn[2],etc
example for 2 channels of data y1=.5,.6,.7,.8 and y2=1.5,1.6,1.7,1.8 with a starting time of 120.5 seconds and and interval (dx) of 0.00002 the file would look as follows ...
0.00002
120.5
2
.5,1.5,.6,1.6,.7,1.7,.8,1.8
Don
It cannot properly represent time values with a mantissa that is too large.
Example using a recording rate of 50K samples per second, the interval is 0.00002 seconds. If your data goes longer than 100 seconds, the mantissa of your time value will exceed the number of significant digits of a single precision float. 100.00002 seconds cannot be represented by a single precision float time value. It resolves to approximately 100.000023 Seconds.
The ideal solution (for data with high precision sample rates) would be a binary type C format that can handle an arbitrary starting time and multiple channels. (ASCII is just too cumbersome for some huge recordings)
ie
dx
start_time_in_seconds
channel_count // ie 'n' channels will be interlaced in this format
y1[1],y2[1],...yn[1],y1[2],y2[2],...yn[2],etc
example for 2 channels of data y1=.5,.6,.7,.8 and y2=1.5,1.6,1.7,1.8 with a starting time of 120.5 seconds and and interval (dx) of 0.00002 the file would look as follows ...
0.00002
120.5
2
.5,1.5,.6,1.6,.7,1.7,.8,1.8
Don