Why does my curve look smoother than before?
With app versions 8.1.x we improved how measurement signals are displayed in the eSense app. Curves have looked calmer and clearer since then. This page explains what is behind that, and what it means for interpreting your recordings.
Why smoothing was needed
Every measurement contains a small amount of measurement noise alongside the actual body signal. With the eSense it arises at the resolution limit of the sensor: the eSense Skin Response resolves in steps of 0.01 microsiemens, the eSense Temperature in steps of 0.01 degrees Celsius.
As long as your readings are high, this noise is barely noticeable. But if your skin conductance is in the range of one to two microsiemens, the noise accounts for a noticeable share of the visible jitter. The curve then looks restless even though little is happening physiologically. With the eSense Temperature the same effect is particularly visible, because skin temperature changes slowly anyway.
What the filter does
We use a method called the One Euro filter. It differs from simple averaging in one essential respect: it continuously adapts to the speed of the signal.
- While the signal changes slowly, the filter smooths firmly. The noise largely disappears.
- As soon as a genuine, fast change occurs, the filter opens up immediately and lets it through unchanged and without delay.
Classic averaging could not do this. It would flatten every response and shift it in time. That is exactly what we wanted to avoid, because immediate feedback is what matters in biofeedback.
The filter settings are tuned separately for each sensor, because the signals behave differently. Skin conductance changes differently from respiration, and muscle tension differently again from skin temperature.
What changes for you
The curve looks calmer. The shape, the level in microsiemens and all pronounced rises remain unchanged.
Responses remain fully visible. A rise in skin conductance, for example after a deep breath, a sound or a thought, appears just as quickly and just as high as before.
The number of spontaneous fluctuations may drop. The eSense app counts spontaneous fluctuations (skin conductance responses, SCR) and shows them as SCR per minute. That number depends on how restless the signal is. Before smoothing, part of the noise was counted as a fluctuation whenever readings were low. Those counts were too high. Since smoothing this no longer happens, so your SCR rate may come out lower than before. More green symbols then appear in the Biofeedback Snake.
Your actual autonomic activity does not change because of this. What changed is only what was being counted on top of it.
How do I compare older and newer recordings?
Fully comparable are the shape of the curve, the baseline level in microsiemens, the range between minimum and maximum, and the pronounced rises and falls.
Not directly comparable is the number of spontaneous fluctuations (SCR and SCR per minute) together with the colour classification derived from it, if one recording was made before and the other after the update. This mainly affects recordings with low readings.
Since version 8.1.6 a second change works in the same direction: we revised the detection of spontaneous fluctuations itself. A rise from a local minimum to the following maximum now counts as an SCR when it reaches at least 0.02 µS within 1 to 20 seconds. Taken together, the two changes mean you should not put SCR values from either side of that version boundary directly next to each other. The details are in Skin Conductance Response (SCR).
If you track your training progress over a longer period, it is best to compare recordings from within the same period.
What to look at instead
With low readings in particular, the number of fluctuations is not the most meaningful figure. Two other observations are more informative:
- The baseline across the session. Does your curve drift downwards during the recording? That is a good indication of increasing relaxation.
- The pronounced rises. When your skin conductance clearly rises at some point and then slowly settles again, it is worth considering what happened at that moment. Such responses say more about your autonomic reactivity than any count.
Which sensors does this apply to?
Smoothing is active for eSense Skin Response, eSense Temperature, eSense Respiration, eSense Muscle and eSense Pulse, each with its own tuning.
What about the CSV export? Is that still raw data?
Yes. The filter also applies to the recorded data, and that is deliberate.
The reason lies in what the filter removes. The eSense Skin Response, Temperature and Respiration sensors transmit their measurement signal as an analogue audio signal through the headphone jack. The app converts that audio signal into measurement values. This conversion produces a technically induced noise floor at the lower end of the resolution. It comes from the measurement chain, not from your body. Removing that noise therefore does not falsify your data; it frees it from an interference component that was never yours in the first place. Your physiological signal is left untouched, including every fast response.
There is a practical benefit for you: the curve you see in the app during a recording is exactly the curve you get when you plot your CSV file in Excel, Python or MATLAB. Both show the same thing.
To keep this transparent and verifiable, we disclose the method in full. We use the One Euro filter by Casiez, Roussel and Vogel (CHI 2012). The reference implementation is publicly available at github.com/casiez/OneEuroFilter. The filter is about twenty lines of code and can be reproduced in any language. It has three parameters, which we set differently per sensor:
| Sensor | minCutoff | beta | dCutoff |
|---|---|---|---|
| eSense Skin Response (µS) | 0.3 Hz | 0.3 | 1.0 |
| eSense Temperature (°C) | 0.12 Hz | 0.007 | 1.0 |
| eSense Respiration (RA) | 1.0 Hz | 0.02 | 1.0 |
minCutoff is the cutoff frequency while the signal is quiet, beta determines how far the filter opens up during fast changes, and dCutoff smooths the internally used rate of change. For Skin Response, beta is deliberately high because genuine spontaneous fluctuations occur quickly and must pass unimpeded. For Temperature, beta is very low because skin temperature changes slowly anyway and there is essentially only noise to remove. For Respiration, the cutoff sits deliberately between the breathing frequency and the noise band, so that breathing passes through unattenuated.
If you work with the data scientifically and have questions about the method, please contact our support team.
My readings are generally very low. What can I do?
Readings persistently below 1 microsiemens usually indicate insufficient skin contact. Please check the following:
- Use fresh gel or adhesive electrodes. Opened packs dry out over the months and then conduct poorly. Store them airtight.
- Wash your hands with clear water before the measurement and dry them well. Disinfectant and hand cream impair the contact.
- Press the electrodes on across their full surface and wait one to two minutes after attaching them before starting the recording.
More on this in the article The values for the eSense Skin Response are very small.