You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are considering changes in MNE-Connectivity where the spectral coefficients can be passed directly to the connectivity estimation functions in the form of EpochsSpectrum and EpochsTFR objects, as returned from Epochs.compute_psd/tfr(output="complex").
While the complex output is supported for TFR objects, Spectrum objects do not allow complex outputs from the various PSD functions:
f"Complex output is not supported in {type(self).__name__} objects. "
f"Please use mne.time_frequency.{psd_funcs[method].__name__}() instead."
)
Describe your proposed implementation
Remove the ValueError for output="complex" from Spectrum classes.
There are a couple places where tweaks would be required, e.g. in _check_values() and handling PSD func outputs in _compute_spectra(), but similar solutions are already present in the TFR classes.
Same situation for the plotting methods, but again TFR classes also have solutions for this already which could be followed:
# complex amplitude → real power; real-valued data is already power (or ITC)
ifnp.iscomplexobj(data):
data= (data*data.conj()).real
One thing that would need to be added is storage for weights in the Spectrum class when complex output is requested from the multitaper mode, which as I understand is not the case for the TFR multitaper.
Describe possible alternatives
N/A
Additional context
No response
The text was updated successfully, but these errors were encountered:
Describe the new feature or enhancement
Discussed briefly with @larsoner.
We are considering changes in MNE-Connectivity where the spectral coefficients can be passed directly to the connectivity estimation functions in the form of
EpochsSpectrum
andEpochsTFR
objects, as returned fromEpochs.compute_psd/tfr(output="complex")
.While the complex output is supported for
TFR
objects,Spectrum
objects do not allow complex outputs from the various PSD functions:mne-python/mne/time_frequency/spectrum.py
Lines 319 to 323 in 6ad28a4
Describe your proposed implementation
Remove the
ValueError
foroutput="complex"
fromSpectrum
classes.There are a couple places where tweaks would be required, e.g. in
_check_values()
and handling PSD func outputs in_compute_spectra()
, but similar solutions are already present in theTFR
classes.Same situation for the plotting methods, but again
TFR
classes also have solutions for this already which could be followed:mne-python/mne/time_frequency/tfr.py
Lines 4326 to 4328 in 0c369e0
One thing that would need to be added is storage for weights in the
Spectrum
class when complex output is requested from the multitaper mode, which as I understand is not the case for the TFR multitaper.Describe possible alternatives
N/A
Additional context
No response
The text was updated successfully, but these errors were encountered: