Simply EEGLAB

Channel interpolation

Station 3 · Lesson 6 · EEGLAB 2026.1

In the GUI

  1. EditSelect dataChannel(s)on->remove theseOK D1 badchC3
  2. Channels per frame D1 noC3
  3. ToolsInterpolate electrodesInterpolate channel(s) -- pop_interp()
  4. Use all channels from other datasetDataset indexOKWhat channel(s) do you want to interpolate 2D1 badchC3
  5. Interpolation methodSphericalTime range [min max] (s)OK
  6. PlotChannel data (scroll) C3D1 badchD1 C3 back
  7. ToolsInterpolate electrodes
  8. Use all channels from other dataset
  9. SphericalOK D1 interp

Script

if ~isempty(badChans)
    EEG = pop_interp(EEG, fullLocs, 'spherical');
end
EEG.setname = 'D1 interp';
fprintf('Channels after interpolation: %d\n', EEG.nbchan);
EEG = pop_saveset(EEG, 'filename', 'D1_interp.set', 'filepath', pwd);
testChan = 'C3';
EEG_drop = pop_select(EEG, 'rmchannel', {testChan});
EEG_back = pop_interp(EEG_drop, fullLocs, 'spherical');
iOrig = find(strcmp({EEG.chanlocs.labels}, testChan));
iBack = find(strcmp({EEG_back.chanlocs.labels}, testChan));
r = corrcoef(double(EEG.data(iOrig, :)), double(EEG_back.data(iBack, :)));
fprintf('Correlation between original and interpolated %s: %.2f\n', testChan, r(1, 2));

Which value should I choose?

SettingValue
Interpolation methodSpherical
Source of locationsAll channels from the dataset before removal, or fullLocs in a script
Where in the pipelineAfter removing bad channels, before re-referencing
Number of interpolated channelsFew
Interpolate removed channel(s) in the re-referencing windowNot on our path

Check

  • The channel count is complete
  • Same order
  • The exercise
  • The signal makes sense

For your Methods

Removed channels were interpolated using spherical spline interpolation (pop_interp, EEGLAB 2026.1).

Full lesson: https://simplyeeglab.pages.dev/en/lesson/interpolation/

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

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