From 74e7348be7536b42bca2fa3ce48ecd4f0536a89b Mon Sep 17 00:00:00 2001 From: Thomas Samuel Binns Date: Wed, 29 May 2024 19:55:34 +0200 Subject: [PATCH 1/2] Update CSD freq_mask and tests --- mne/time_frequency/csd.py | 9 ++++++--- mne/time_frequency/tests/test_csd.py | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/mne/time_frequency/csd.py b/mne/time_frequency/csd.py index 9392cc2f2b4..46578974e73 100644 --- a/mne/time_frequency/csd.py +++ b/mne/time_frequency/csd.py @@ -810,9 +810,10 @@ def csd_array_fourier( n_fft = n_times if n_fft is None else n_fft # Preparing frequencies of interest - # orig_frequencies = fftfreq(n_fft, 1. / sfreq) orig_frequencies = rfftfreq(n_fft, 1.0 / sfreq) - freq_mask = (orig_frequencies > fmin) & (orig_frequencies < fmax) + freq_mask = ( + (orig_frequencies > 0) & (orig_frequencies >= fmin) & (orig_frequencies <= fmax) + ) frequencies = orig_frequencies[freq_mask] if len(frequencies) == 0: @@ -1013,7 +1014,9 @@ def csd_array_multitaper( # Preparing frequencies of interest orig_frequencies = rfftfreq(n_fft, 1.0 / sfreq) - freq_mask = (orig_frequencies > fmin) & (orig_frequencies < fmax) + freq_mask = ( + (orig_frequencies > 0) & (orig_frequencies >= fmin) & (orig_frequencies <= fmax) + ) frequencies = orig_frequencies[freq_mask] if len(frequencies) == 0: diff --git a/mne/time_frequency/tests/test_csd.py b/mne/time_frequency/tests/test_csd.py index aefc3e2aaac..027eae6d9a2 100644 --- a/mne/time_frequency/tests/test_csd.py +++ b/mne/time_frequency/tests/test_csd.py @@ -394,15 +394,15 @@ def _test_fourier_multitaper_parameters(epochs, csd_epochs, csd_array): fmin=20, fmax=10, ) - raises(ValueError, csd_epochs, epochs, fmin=20, fmax=20.1) + raises(ValueError, csd_epochs, epochs, fmin=20.11, fmax=20.19) raises( ValueError, csd_array, epochs._data, epochs.info["sfreq"], epochs.tmin, - fmin=20, - fmax=20.1, + fmin=20.11, + fmax=20.19, ) raises(ValueError, csd_epochs, epochs, tmin=0.15, tmax=0.1) raises( From 5477ff1eb0886469c7e8c5f95c132e2c7537e8db Mon Sep 17 00:00:00 2001 From: Thomas Samuel Binns Date: Wed, 29 May 2024 20:23:59 +0200 Subject: [PATCH 2/2] Add changelog entry --- doc/changes/devel/12633.bugfix.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/changes/devel/12633.bugfix.rst diff --git a/doc/changes/devel/12633.bugfix.rst b/doc/changes/devel/12633.bugfix.rst new file mode 100644 index 00000000000..dfc69bc2fe7 --- /dev/null +++ b/doc/changes/devel/12633.bugfix.rst @@ -0,0 +1 @@ +Fix bug where :func:`mne.time_frequency.csd_multitaper`, :func:`mne.time_frequency.csd_fourier`, :func:`mne.time_frequency.csd_array_multitaper`, and :func:`mne.time_frequency.csd_array_fourier` would return cross-spectral densities with the ``fmin`` and ``fmax`` frequencies missing, by `Thomas Binns`_ \ No newline at end of file