Note
Go to the end to download the full example code.
Plotting whitened data#
This tutorial demonstrates how to plot whitened evoked data.
Data are whitened for many processes, including dipole fitting, source localization and some decoding algorithms. Viewing whitened data thus gives a different perspective on the data that these algorithms operate on.
Let’s start by loading some data and computing a signal (spatial) covariance that we’ll consider to be noise.
# Authors: The MNE-Python contributors.
# License: BSD-3-Clause
# Copyright the MNE-Python contributors.
import mne
from mne.datasets import sample
Raw data with whitening#
Note
In the mne.io.Raw.plot()
with noise_cov
supplied,
you can press they “w” key to turn whitening on and off.
data_path = sample.data_path()
raw_fname = data_path / "MEG" / "sample" / "sample_audvis_filt-0-40_raw.fif"
raw = mne.io.read_raw_fif(raw_fname, preload=True)
events = mne.find_events(raw, stim_channel="STI 014")
event_id = {
"auditory/left": 1,
"auditory/right": 2,
"visual/left": 3,
"visual/right": 4,
"smiley": 5,
"button": 32,
}
reject = dict(grad=4000e-13, mag=4e-12, eog=150e-6)
epochs = mne.Epochs(raw, events, event_id=event_id, reject=reject)
# baseline noise cov, not a lot of samples
noise_cov = mne.compute_covariance(
epochs, tmax=0.0, method="shrunk", rank=None, verbose="error"
)
# butterfly mode shows the differences most clearly
raw.plot(events=events, butterfly=True)
raw.plot(noise_cov=noise_cov, events=events, butterfly=True)
Epochs with whitening#
epochs.plot(events=True)
epochs.plot(noise_cov=noise_cov, events=True)
Evoked data with whitening#
evoked = epochs.average()
evoked.plot(time_unit="s")
evoked.plot(noise_cov=noise_cov, time_unit="s")
Evoked data with scaled whitening#
The mne.Evoked.plot_white()
function takes an additional step of
scaling the whitened plots to show how well the assumption of Gaussian
noise is satisfied by the data:
evoked.plot_white(noise_cov=noise_cov, time_unit="s")
Topographic plot with whitening#
evoked.comment = "All trials"
evoked.plot_topo(title="Evoked data")
evoked.plot_topo(noise_cov=noise_cov, title="Whitened evoked data")
Estimated memory usage: 0 MB