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.