Bitalino Biosignal Capture
The BITalino (r)evolution kit recorded four physiological signals simultaneously during music listening sessions, synchronized with audio playback via a custom Python program.
EDA
Electrodermal Activity
Measures skin conductance via fingertip electrodes. Rises with sweat gland activity driven by the sympathetic nervous system. A direct index of emotional arousal, independent of valence direction.
PPG
Photoplethysmography
Optical pulse detection via fingertip LED. Captures heart rate variability and blood volume pulse, both strongly modulated by emotional state. Spectral HRV features link to valence.
ECG
Electrocardiography
Three-electrode cardiac signal. Provides R-R interval timing for precise HRV computation. Combined with PPG, it offers redundant heart rate measurement and motion artifact cross-check.
ACC
Accelerometer
3-axis MEMS wrist accelerometer. Used to detect and exclude motion artifacts from EDA and PPG signals, ensuring signal quality during naturalistic listening sessions.
Python Synchronization Program
A custom Python script managed the BITalino Bluetooth connection, timestamped each biosignal sample at 1000 Hz, and emitted synchronization markers aligned to audio playback events. Resulting CSV files were segmented into 2-second windows for spectral feature extraction.
# Simplified excerpt from bitalino_connector.py
device = BITalino(MAC_ADDRESS)
device.start(1000, [0, 1, 2, 3]) # EDA, PPG, ECG, ACC channels
for sample in device.read(NUM_FRAMES):
timestamp = time.time()
eda, ppg, ecg, acc_x, acc_y, acc_z = parse_sample(sample)
log_row(timestamp, eda, ppg, ecg, acc_x, acc_y, acc_z)