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. |
