Export format differences

Main differences between the "CSV - Full", "CSV - Lite" and EDF export formats

CSV:

CSV is an interoperable file format for storing tabular data in plain text. One file is 
provided for every device signal. Supported for all Bitbrain devices. We provide two 
output formats with varying levels of detail (Lite and Full). 

EDF:

EDF is a standardized file format designed for storing biological signals. One file is 
provided for every device. Supported for Bitbrain devices containing EEG signals. We 
refer to “EDF” through the software and this document for simplicity, note however that 
we specifically provide the EDF+ format.

Main differences:

  • Resolution and filtering: EDF represents the signal values in 2 bytes (16 bits), which does not allow to store the EEG and PPG signals as the full range of the amplifier ADC is 24 
    bits. Thus, EEG and PPG signals are high pass filtered (0.1 Hz, 2nd order Butterworth 
    filter) when exported to EDF format. CSV formats (CSV-Lite, CSV-Full) export the full-band 
    signals.
  • Lost samples adjust: Some signal samples might be lost due to the wireless nature of the 
    communication. In EDF and CSV-Full, the exported signals are expanded with nan values 
    in case of lost samples. In CSV-Lite, additional information is provided such a sequence 
    number (counter) to detect these cases.
  • Multi-device adjust:  In simultaneous multi-device recordings, the devices might start the 
    recording with a slight difference (even when they are commanded at the same time). In 
    EDF and CSV-Full, we provide a common t0 for all signals, and expand the signals with 
    initial nan values so that the initial sample corresponds to the same time point. In CSV
    Lite, we simply provide the initial timestamp (t0) for each device signals, which might be 
    different.  
output data formats properties EDF CSV-Full  CSV-Lite 
Supported devices  EEG devices (Ring or 
Versatile Bio not 
supported) 
All All
Full-band  No, EEG and PPG are 
high prefiltered (0.1 
Hz) 
Yes Yes
Lost samples adjust  Yes Yes No
Multi-device adjust  Yes Yes No
Supported in SennsLite Yes Yes Yes
Supported in SennsLab No Yes Yes

EDF Format:

An EDF file for every recorded device is provided, thus containing all its signals that operate at 
different sampling rates. 

Example: 
eeg_AF7, eeg_A1, eeg_Fp2, eeg_AF8, eeg_A2, mask_eeg, imu_1, imu_2, imu_3, imu_4, imu_5, imu_6, imu_7, imu_8, imu_9, mask_imu, spo_1, spo_2, spo_3, mask_spo

Channel Description

<signal_id><i>

* In case of EEG signals, we provide 
the position: <signal_id><loc>

Values of signal  and channel i (from 1 to N). EEG and PPG signals are high pass filtered (0.1 Hz, 2nd order Butterworth filter) and clipped to (-3000, 3000) uV. 
mask_<signal_id> Mask of boolean values (0 or 1) for each signal that 
indicates whether samples were lost and should be 
interpreted as missing values (nan). 
Note we include a mask channel because nan values 
cannot be represented in EDF format. 
A sample j was lost in signal eeg when mask_eeg[j] is 1. 

Header of the EDF file:

The header of the EDF file fills the following fields: 

  • Start date and start time (note these fields provide a resolution of seconds; for a higher 
    time resolution access the UTC timestamps provided in the JSON file – metadata).
  • Patient code
  • Equipment (device type)

CSV Format:

We provide a CSV file for every recorded signal. 
The first line contains a header with the name of the columns.

Examples: 
CSV-Full: ch1-AF7, ch2-A1, ch3-Fp2, ch4-AF8, ch5-A2 
CSV-Lite: ch1-AF7, ch2-A1, ch3-Fp2, ch4-AF8, ch5-A2, sequenceNumber, timestampReception, timestamp 

The CSV file contains the following columns: 

Column Full/Lite  Description
ch<i>

* In case of EEG signals, the position is added: ch<i>-<loc> 
Full/Lite  Values of channel i (from 1 to N).
sequenceNumber  Lite Sequence number (counter) is incremented by 1 every block.
timestampReception  Lite Reception timestamp (high res., us) per block, might be null if lost online.
timestamp Lite Corrected timestamp (high res., us), using the t0 computation.

Events:

The events registered with SennsLite during the recording are exported to CSV files. 
We provide a CSV file for every event type. 
The first line contains a header with the name of the columns.

Examples: 
timestamp, value1 

The CSV file contains the following columns: 

Column Description
timestamp Timestamp (high res., us) when the event occurred. 
value<i> Value/s of the event. 
Note that one event might have several values. For instance, one event type “quality” is provided for every device that provides the signal quality of every channel.