units for TFR multitaper output

hello,

I was just wondering what the units were for the TFR (e.g. whether it was converted to decibels in the TF pipeline, or left as raw power (V2/Hz).

Thanks!
Sammi

Good question, this also depends on the baseline argument. Can you be more specific?

no baseline! really just wondering whether there was some transform (some sources suggest looking at 10log10 power rather than just power) in the output of the TFR process. i understand that certain baselines will change the units (or make them arbitrary) though

I think it should be power per frequency and not dB, at least that’s what I’d assume from looking at the code. You are talking about tfr.py, right?

yep, just output from mne.time_frequency.tfr_multitaper. I originally had some negative values later in analysis and was surprised because i hadn’t baselined before i found out im an idiot and baseline = None and baseline = (None, None) are very much not the same…

but wasn’t sure if there as a 10*log10 transform at some point either way, as this will just be something to do manually before further analysis of the data!

I mean, it would probably be useful to document the units for the returned values. Some plotting functions like mne.viz.plot_raw_psd() show power in dB by default, but that can be changed with the dB argument. I think this is not available for TFRs.

yeah, when you look at tfr.info['chs'][0] to see an individual channel, the info there is not very easy to parse as a user an it’s not explicitly clear what the units are (in fact, the dict just gives 'unit':107' which makes no sense i’ll be honest!

I’m guessing that for e.g. EpochsTFR or AverageTFR there isn’t an inbuilt tool to convert to DB so one should just do it manually and reset the tfr.data object with the transformed data?

Plus that unit code might not even be correct, because 107 means V.

Not that I know of, so yes, you need to do it manually.

1 Like

yep, i was confused!

thanks for the help on this, i appreciate it!