Simply EEGLAB
Resampling
Station 3 · Lesson 1 · EEGLAB 2026.1
In the GUI
- ToolsChange sampling rate
- Resample current dataset -- pop_resample()New sampling rateOK
64 - Overwrite it in memory (set=yes; unset=create a new dataset)
Continuous EEG Data resampledD1 64Hz - PlotChannel data (scroll)
- Datasets
D1 64Hz
Script
EEG_64 = pop_resample(EEG, 64);
EEG_64.setname = 'D1 64Hz';
fprintf('Original : %g Hz, %d samples, %d events\n', EEG.srate, EEG.pnts, length(EEG.event));
fprintf('Resampled: %g Hz, %d samples, %d events\n', EEG_64.srate, EEG_64.pnts, length(EEG_64.event));
cz = find(strcmp({EEG.chanlocs.labels}, 'Cz'));
t1 = (0:2*EEG.srate-1) / EEG.srate;
t2 = (0:2*EEG_64.srate-1) / EEG_64.srate;
figure; hold on;
plot(t1, EEG.data(cz, 1:numel(t1)), '.-');
plot(t2, EEG_64.data(cz, 1:numel(t2)), 'o-');
legend('128 Hz', '64 Hz');
xlabel('Time (s)'); ylabel('Amplitude (uV)');Which value should I choose?
| Setting | Value |
|---|---|
| D1 | Do not change the rate (128 Hz) |
| Raw data at 500 or 1000 Hz for ERP analysis | 250 Hz, or 256 |
| General rule | New rate ≥ 2.5 × the highest frequency of interest |
| Where in the pipeline | On continuous data, before filtering and epoching |
Check
- In the main EEGLAB window
- The number of events did not change
- The recording length did not change
- The original dataset is intact
For your Methods
Data were downsampled to 250 Hz using pop_resample (EEGLAB 2026.1), which applies an anti-aliasing low-pass FIR filter (Kaiser window) before resampling.