Electrodermal Activity (EDA) sensors measure skin conductance and are used in stress monitoring, emotion recognition, and physiological assessment, among other applications. When working with EDA signals, it's important to meet certain requirements to detect relevant features. Let's explore the key considerations:
Sampling Rate: Available research mentions different values for the minimum required sampling rate, depending on factors such as the component being detected and the experimental settings. Personally, I have used 1 kHz and it has worked fine to detect both Skin Conductance Level (SCL) and Skin Conductance Response (SCR) components. This sampling rate is often higher compared to the rates reported in the literature, so I consider it to be undersampling-safe. Additionally, this value is well positioned if we compare it with different research-grade EDA acquisition devices (see Table below, column "Max. Sampling Frequency").
Amplitude Resolution: In order to identify peaks of the SCR component, a resolution of at least 0.05 µS is needed because the threshold for detecting SCR events is typically set at this value. If you are unsure of the resolution of your EDA sensor/device, as a first guess, you can assume it's equal to the measurement of the EDA sensor divided by 2**(ADC resolution) (i.e. assuming perfect linearity; in practice, the resolution will be lower than this value).
Assuming our EDA acquisition system complies with the aforementioned acquisition requirements, then we can proceed with the experimental validation of our EDA sensors. Here's how I conducted this validation using two BITalino EDA Sensors.
In order to validate the Transfer Function of the EDA Sensor we need to measure known values of conductance and compare these values against the respective measured conductance values measured by the acquisition device (converted raw data). This can be done by performing EDA measurements on resistors and convert these values into conductance. By doing this, it's as if we were performing measurements on skin with "constant levels of sweat", as a validation procedure. Note that this validation method assumes the resistors have low tolerance. Alternatively, a variable resistor box can be used instead of resistors placed on a breadboard, for a more efficient setup.
Tested conductance values and the respective resistances I used in a research project.
Procedure
1. We perform one acquisition per resistor (known resistance value). Let's assume we are sampling at 1kHz. In this case, 1 second is more than enough to take into account statistical variability per measured value.
2. After performing all measurements and converting the values into conductance, we obtain:
N x (1k measured points, 1 known value) [µS]
We can then plot the transfer function in two ways:
Simple plot (shown below): we can average the 1k measured points for each of the N measurements. In this case we obtain one pair of values per measurement as in N x (1 measured points, 1 known value) [µS].
Plot with statistical variability: we don't average the 1k measured points. In this case, we will have a set of points scattered vertically per X-tick (known value).
3. We can then try adjusting the transfer function digitally. For this, we need to fit a curve F(x) to the measured data points, and then obtain its inverse function F'(x). After that, we apply F'(x) to the data, expecting to obtain the theoretical linear relationship, since y = F'(F(x)) = x. Note that this only works if the fitting curve F is invertible within the measurement range (X-axis range). Moreover, it's worth mentioning that if we consider the statistical variability obtained per known value, the associated measurement error of the original data will be mapped accordingly through the inverse function F'.
You can see below the transfer functions and the respective data points of the performed measurements before (black dots) and after the adjustment (colored crosses). For the EDA sensor version 1 (V1), the original transfer function was fitted to a polynomial function and the adjusted data points fitted fairlywell to the optimal linear curve (R = 0.9795). For the EDA sensor version 2 (V2), I opted to employ a piece-wise function given by a linear fit in the lower range (blue region) and a polynomial fit in the upper range (orange region), also resulting in adjusted data points fitting fairly to the optimal linear curve (R = 0.9927).
Comments
While this served as a preliminary validation procedure, for the next EDA sensors I'm using a variable resistor box and an optimized script for automated sequential acquisitions. This will make the callibration procedure significantly more efficient, allowing me to test more conductance values and, consequently, increasing the granularity of the resulting transfer functions.