Skip to content

Chapter 3: Preprocessing — Filtering and Referencing

Continuing from Chapter 2 — Loading and Inspecting Data.

With the recording loaded and inspected, this chapter cleans it up before anything else happens — the same filtering and referencing steps covered as code in the MNE-Python track's Preprocessing chapter.

Setting up channels

Before referencing or plotting scalp maps means anything, MNELAB needs to know what each channel is and where it sits:

  • Channels → Set Montage... attaches a standard electrode layout (or a custom one you supply) by matching channel names — the same role raw.set_montage() plays in code.
  • Channels → Pick Channels... and Channels → Rename Channels... trim the channel list down or fix mismatched names.
  • Channels → Interpolate Bad Channels reconstructs any channel you've marked bad (via the info panel or Channels → Channel Properties...) from its neighbors, rather than dropping it.

Re-referencing

Channels → Change Reference... lets you pick a new reference — commonly the average of all channels, a specific electrode, or a linked pair — and reruns the recording relative to it. This is the same decision raw.set_eeg_reference() makes in code, and it matters for exactly the same reason: amplitude differences between channels only mean something once every channel is measured against the same reference point.

Filtering, resampling, and cropping

The Process menu holds the rest of this chapter's steps:

  • Process → Filter Data... applies a band-pass and/or notch filter — removing slow drift below a low cutoff and line noise or noise above a high cutoff, the GUI equivalent of raw.filter() and raw.notch_filter().
  • Process → Resample Data... reduces the sampling rate, useful for speeding up later steps like ICA once you no longer need very high time resolution.
  • Process → Crop Data... trims the recording down to a time range of interest, discarding the rest.

Next: Chapter 4 — Artifact Removal with ICA