How To Use DRL/REF Data


Previously I analyzed EEG data only considering those 4 channels, i.e. Tp9, Fp1, Fp2, Tp10. But someone told me that I should take reference points into account. I am just wondering whether we need to get the data by subtracting the DRL/REF data (i.e. Tp9 - DRL/REF) or not, are the two kinds of data important for final results?
If so, how should we use them.



You don’t need to subtract the reference signal from the other channels. This is already done by the analog electronics of the device, which amplify the difference between the voltage at a given electrode and the reference electrode. The data you see from TP9 already has the reference signal subtracted from it.

The DRL electrode is part of a feedback circuit used to reduce noise. Basically it tries to ensure that the reference signal is centred around half-supply (i.e. the middle of the range of voltages Muse’s ADC can detect) and to cancel out interference that is common to all electrodes.

For recording and analyzing EEG data normally, you don’t need to do anything with the DRL or REF data. If you wanted to re-reference your data to a different electrode, then you would obviously need the REF data.


Tom, can you provide an example of a re-referencing calculation using REF? I’d like to clarify my own understanding of this and an example would definitely help.


The reference measurement (Vref) is meant to provide a ground truth, the so-called common mode voltage that is sensed by every electrode. There is no one definitively correct location for a reference measurement. Single electrodes as well as averages of electrodes are commonly used as references.

The basic idea is that every electrode by definition measures the common mode voltage plus some additional information, which is the EEG we’re interested in.

So for channel 0 (Vch0), the EEG signal from the TP9 location:

Vtp9 - Vref = Vch0 —> this subtraction is performed by the amplifiers, it’s built into the electronics, so it always happens.

Vtp9 = Vch0 + Vref —> this is by definition, as I said before.

(Vch0 + Vref) - Vref = Vch0

So, if you want to use a different electrode as a reference, you just need to subtract it from all the other electrodes including the old REF one. You can then treat the old REF electrode as a normal EEG channel. For instance, if I want to use TP9 as a reference for whatever reason:

Vch0 = ((Vtp9 + Vref) - Vref) - Vtp9 = 0 (your new reference/baseline)

Vch1 = ((Vfp1 + Vref) - Vref) - Vtp9 = Vfp1 - Vtp9

…and so on for the other locations…

…and for the former reference channel (let’s call it, uh, Vnew):

Vnew = Vref - Vtp9


Ok, this is getting close, but some of the labeling and math is still a bit disconnected in my mind from what seems to be available from the API. I’d like to provide some raw data from muse, and ask if you could use this data to re-reference the EEG data to TP9:

1417554343.824007 /muse/drlref ff 1641935.500000 1651612.875000
1417554343.858348 /muse/eeg ffff 837.294983 848.809875 817.555237 837.294983

Can you walk through how you would fill in the above equations with numbers from this data set in order to re-reference the 3 other EEG values to TP9 (and also calculate the voltage value for the former reference channel FPz)?


Any thoughts on this Tom? Would be great to get some clarification on this topic.


Hey Kartik,

Sorry for the slow reply!

I thought about it a little more and actually it’s simpler.

You shouldn’t use the REF data from MuseIO, I was incorrect about that. That value is measured relative to circuit ground, while the EEG signals are measured relative to the voltage on the reference electrode. So it doesn’t make much sense to compare them. Whoops!

Actually, all you need to do is assume that the reference is zero (which it is, kind of by definition).

So you only need to consider the second message you pasted there:

1417554343.858348 /muse/eeg ffff 837.294983 848.809875 817.555237 837.294983

…rereferenced to TP9, you get four new measurements:

“ref” - TP9 = 0 - 837.294983
FP0 - TP9 = 848.809875 - 837.294983
FP1 - TP9 = 817.555237 - 837.294983
TP10 - TP9 = 837.294983 - 837.294983

You’ll notice that the first value will have a very different mean than the others (because of how the analog frontend work as I explained here:, but that should be OK, since you shouldn’t really consider the mean. Like I’ve said before, it’s not particularly meaningful in your application.


Thanks for clearing this up, now it makes more sense to me :slight_smile: