Skip to content

Commit 704f3e2

Browse files
Backport PR #12633 on branch maint/1.7 ([BUG] Cross-spectral density missing frequencies) (#12634)
Co-authored-by: Thomas S. Binns <t.s.binns@outlook.com>
1 parent 9ba89fd commit 704f3e2

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

doc/changes/devel/12633.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
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`_

mne/time_frequency/csd.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -810,9 +810,10 @@ def csd_array_fourier(
810810
n_fft = n_times if n_fft is None else n_fft
811811

812812
# Preparing frequencies of interest
813-
# orig_frequencies = fftfreq(n_fft, 1. / sfreq)
814813
orig_frequencies = rfftfreq(n_fft, 1.0 / sfreq)
815-
freq_mask = (orig_frequencies > fmin) & (orig_frequencies < fmax)
814+
freq_mask = (
815+
(orig_frequencies > 0) & (orig_frequencies >= fmin) & (orig_frequencies <= fmax)
816+
)
816817
frequencies = orig_frequencies[freq_mask]
817818

818819
if len(frequencies) == 0:
@@ -1013,7 +1014,9 @@ def csd_array_multitaper(
10131014

10141015
# Preparing frequencies of interest
10151016
orig_frequencies = rfftfreq(n_fft, 1.0 / sfreq)
1016-
freq_mask = (orig_frequencies > fmin) & (orig_frequencies < fmax)
1017+
freq_mask = (
1018+
(orig_frequencies > 0) & (orig_frequencies >= fmin) & (orig_frequencies <= fmax)
1019+
)
10171020
frequencies = orig_frequencies[freq_mask]
10181021

10191022
if len(frequencies) == 0:

mne/time_frequency/tests/test_csd.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -394,15 +394,15 @@ def _test_fourier_multitaper_parameters(epochs, csd_epochs, csd_array):
394394
fmin=20,
395395
fmax=10,
396396
)
397-
raises(ValueError, csd_epochs, epochs, fmin=20, fmax=20.1)
397+
raises(ValueError, csd_epochs, epochs, fmin=20.11, fmax=20.19)
398398
raises(
399399
ValueError,
400400
csd_array,
401401
epochs._data,
402402
epochs.info["sfreq"],
403403
epochs.tmin,
404-
fmin=20,
405-
fmax=20.1,
404+
fmin=20.11,
405+
fmax=20.19,
406406
)
407407
raises(ValueError, csd_epochs, epochs, tmin=0.15, tmax=0.1)
408408
raises(

0 commit comments

Comments
 (0)