Simply EEGLAB

Power spectrum (PSD)

Station 6 · Lesson 2 · EEGLAB 2026.1

In the GUI

  1. PlotChannel spectra and maps
  2. Channel spectra and maps -- pop_spectopo()Epoch time range to analyze [min_ms max_ms]:
  3. Percent data to sample (1 to 100): 100
  4. Frequencies to plot as scalp maps (Hz): 106 10 22
  5. Plotting frequency range [lo_Hz hi_Hz]: 1 642 25
  6. Spectral and scalp map options (see topoplot):Ok

Script

figure;
[spectra, freqs] = pop_spectopo(EEG, 1, [0 EEG.xmax*1000], 'EEG', ...
    'freq', 10, 'freqrange', [1 64], 'electrodes', 'off');
fprintf('Frequency step: %.2f Hz\n', freqs(2) - freqs(1));
pz = find(strcmp({EEG.chanlocs.labels}, 'Pz'));
alphaBand = freqs >= 8 & freqs <= 13;
alphaFreqs = freqs(alphaBand);
[peakPow, iPeak] = max(spectra(pz, alphaBand));
fprintf('Alpha peak at Pz: %.0f Hz, %.1f dB\n', alphaFreqs(iPeak), peakPow);
[~, order] = sort(spectra(:, freqs == 10), 'descend');
disp({EEG.chanlocs(order(1:5)).labels});

Which value should I choose?

SettingValue
Plotting range1 to 64 Hz here (up to half the sampling rate)
Scalp map frequencies10 Hz for alpha
Percent of data100
Window lengthThe default (1 second, 128 points)
Which dataContinuous, clean, before the low-pass

For your Methods

Power spectral density was estimated for each channel from the continuous ICA-cleaned data using Welch's method with 1-s Hamming windows and no overlap (pop_spectopo, EEGLAB 2026.1).

Full lesson: https://simplyeeglab.pages.dev/en/lesson/power-spectrum/

Content license: CC BY-NC-SA 4.0 · MIT (code)

An independent learning site, not affiliated with EEGLAB or SCCN.