Unexpected increase in high-frequency power across many EEG channels in raw BioSemi PSD

Hi,

I am inspecting the PSD of a raw BioSemi EEG recording before preprocessing. I expected an approximately decreasing 1/f-like spectrum, but many channels instead show increasing power at higher frequencies, particularly above ~20–30 Hz. There is also a prominent peak around 50 Hz.

I am trying to understand whether this pattern is more suggestive of electrode/contact noise, muscle activity, referencing/common-mode issues, or some acquisition-related source of noise. Would you consider this PSD unusual, and would you use this information when identifying bad channels?

Environment:

  • Python: 3.11.15
  • MNE: 1.12.1
  • NumPy: 2.4.6
  • Pandas: 3.0.3
  • SciPy: 1.17.1
  • Autoreject: 0.4.3
  • Operating system: macOS [version]

The PSD was calculated from the raw EEG before filtering using:

psd_fmax = min(100.0, raw.info["sfreq"] / 2 - 1)

spectrum = raw.compute_psd(
method="welch",
fmin=0.5,
fmax=psd_fmax,
picks="eeg",
)

spectrum.plot(
average=False,
dB=True,
spatial_colors=True,
)

Here is the PSD:

In particular, I would appreciate advice on whether the gradual rise in high-frequency power across many channels is something expected under some recording conditions, or whether it points to a problem that I should investigate before proceeding with preprocessing.

Thanks!

I would not mark channels as bad from this PSD alone. Since the high-frequency rise appears across many channels, it is more likely to reflect a shared source, such as the reference, muscle activity, or the recording noise floor, than many independent bad electrodes

One important BioSemi detail is that BDF signals are stored relative to the CMS electrode and should be r-referenced after import. As a diagnostic I would compare this plot with the PSD after average referencing:

raw_ref = raw.copy().set_eeg_reference("average")
raw_ref.compute_psd(
    method="welch", fmin=0.5, fmax=psd_fmax, picks="eeg"
).plot(average=False, dB=True, spatial_colors=True)

Mark any clearly bad chanels before calculating the average reference, otherwise their noise will be spread across the montage

The narrow 50 Hz peak is mains interference and, when present broadly, is not evidence of bad channels. The gradual increase above 20-30 Hz is less specific. Muscle activity is a common cause, especially if it is strongest over frontal or temporal electrodes and changes over time. Electrode or cable noise is more likely if one or a few channels are persistent outliers and also look abnormal in the time domain

I would therefore inspect a few raw 20-30 second segments, compare neighboring channels, and plot the spatial distribution of high frequency power while excluding the 50 Hz region. If the pattern changes strongly after re referencing, shared reference noise was probably contributing. If it is intermittent and concentrated around temporal or frontal sites, muscle is more likely

So yea the PSD is worth investigating before preprocessing BUT it does not by itself justify labeling many channels as bad. Bad channel decisions should be based on channel-specific evidence from both the spectrum and the time series

References: MNE BioSemi import guidance & High-frequency brain activity and muscle artifacts in MEG/EEG. Muthukumaraswamy, 2013