Simply EEGLAB
Channel interpolation
Station 3 · Lesson 6 · EEGLAB 2026.1
In the GUI
- EditSelect dataChannel(s)on->remove theseOK
D1 badchC3 - Channels per frame
D1 noC3 - ToolsInterpolate electrodesInterpolate channel(s) -- pop_interp()
- Use all channels from other datasetDataset indexOKWhat channel(s) do you want to interpolate
2D1 badchC3 - Interpolation methodSphericalTime range [min max] (s)OK
- PlotChannel data (scroll)
C3D1 badchD1 C3 back - ToolsInterpolate electrodes
- Use all channels from other dataset
- 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?
| Setting | Value |
|---|---|
| Interpolation method | Spherical |
| Source of locations | All channels from the dataset before removal, or fullLocs in a script |
| Where in the pipeline | After removing bad channels, before re-referencing |
| Number of interpolated channels | Few |
| Interpolate removed channel(s) in the re-referencing window | Not 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).