EEG speech envelope TRF

Analyze continuous speech data from the mTRF dataset [1]: use the boosting algorithm for estimating temporal response functions (TRFs) to the acoustic envelope.

# Author: Christian Brodbeck <christianbrodbeck@nyu.edu>
# sphinx_gallery_thumbnail_number = 4
import os

from scipy.io import loadmat
import mne
from eelbrain import *

# Load the mTRF speech dataset and convert data to NDVars
root = mne.datasets.mtrf.data_path()
speech_path = os.path.join(root, 'speech_data.mat')
mdata = loadmat(speech_path)

# Time axis
tstep = 1. / mdata['Fs'][0, 0]
n_times = mdata['envelope'].shape[0]
time = UTS(0, tstep, n_times)
# Load the EEG sensor coordinates (drop fiducials coordinates, which are stored
# after sensor 128)
sensor = Sensor.from_montage('biosemi128')[:128]
# Frequency dimension for the spectrogram
band = Scalar('frequency', range(16))
# Create variables
envelope = NDVar(mdata['envelope'][:, 0], (time,), name='envelope')
eeg = NDVar(mdata['EEG'], (time, sensor), name='EEG', info={'unit': 'µV'})
spectrogram = NDVar(mdata['spectrogram'], (time, band), name='spectrogram')
# Exclude a bad channel
eeg = eeg[sensor.index(exclude='A13')]

Data

Plot the spectrogram of the speech stimulus:

plot.Array(spectrogram, xlim=5, w=6, h=2)
mtrf

Out:

<Array: spectrogram>

Plot the envelope used as stimulus representation for reverse correlation:

plot.UTS(envelope, xlim=5, w=6, h=2)
mtrf

Out:

<UTS: envelope>

Plot the corresponding EEG data:

p = plot.TopoButterfly(eeg, xlim=5, w=7, h=2)
p.set_time(1.200)
mtrf

Reverse correlation

TRF for the envelope using boosting:

  • TRF from -100 to 400 ms
  • Basis of 100 ms Hamming windows
  • Use 4 partitionings of the data for cross-validation based early stopping
res = boosting(eeg, envelope, -0.100, 0.400, basis=0.100, partitions=4)
p = plot.TopoButterfly(res.h_scaled, w=6, h=2)
p.set_time(.180)
mtrf

Out:

Boosting 127 signals:   0%|          | 0/508 [00:00<?, ?it/s]
Boosting 127 signals:   0%|          | 1/508 [00:00<02:52,  2.93it/s]
Boosting 127 signals:   2%|1         | 8/508 [00:00<02:01,  4.11it/s]
Boosting 127 signals:   3%|2         | 14/508 [00:00<01:26,  5.70it/s]
Boosting 127 signals:   4%|4         | 21/508 [00:00<01:02,  7.85it/s]
Boosting 127 signals:   6%|5         | 28/508 [00:00<00:44, 10.70it/s]
Boosting 127 signals:   7%|6         | 34/508 [00:00<00:34, 13.94it/s]
Boosting 127 signals:   8%|8         | 41/508 [00:00<00:25, 18.28it/s]
Boosting 127 signals:   9%|9         | 48/508 [00:01<00:19, 23.33it/s]
Boosting 127 signals:  11%|#         | 55/508 [00:01<00:15, 28.76it/s]
Boosting 127 signals:  12%|#2        | 61/508 [00:01<00:13, 32.00it/s]
Boosting 127 signals:  13%|#3        | 67/508 [00:01<00:11, 37.18it/s]
Boosting 127 signals:  14%|#4        | 73/508 [00:01<00:11, 38.96it/s]
Boosting 127 signals:  16%|#5        | 79/508 [00:01<00:10, 41.71it/s]
Boosting 127 signals:  17%|#6        | 85/508 [00:01<00:09, 45.74it/s]
Boosting 127 signals:  18%|#8        | 92/508 [00:01<00:08, 49.28it/s]
Boosting 127 signals:  19%|#9        | 98/508 [00:02<00:07, 51.99it/s]
Boosting 127 signals:  21%|##        | 105/508 [00:02<00:07, 55.12it/s]
Boosting 127 signals:  22%|##1       | 111/508 [00:02<00:07, 54.28it/s]
Boosting 127 signals:  23%|##3       | 117/508 [00:02<00:08, 47.08it/s]
Boosting 127 signals:  24%|##4       | 123/508 [00:02<00:07, 48.97it/s]
Boosting 127 signals:  26%|##5       | 130/508 [00:02<00:07, 52.81it/s]
Boosting 127 signals:  27%|##6       | 136/508 [00:02<00:06, 54.45it/s]
Boosting 127 signals:  28%|##7       | 142/508 [00:02<00:06, 54.23it/s]
Boosting 127 signals:  29%|##9       | 148/508 [00:02<00:06, 54.17it/s]
Boosting 127 signals:  30%|###       | 154/508 [00:03<00:06, 53.80it/s]
Boosting 127 signals:  32%|###1      | 161/508 [00:03<00:06, 57.78it/s]
Boosting 127 signals:  33%|###2      | 167/508 [00:03<00:05, 58.04it/s]
Boosting 127 signals:  34%|###4      | 175/508 [00:03<00:05, 60.05it/s]
Boosting 127 signals:  36%|###5      | 182/508 [00:03<00:05, 62.35it/s]
Boosting 127 signals:  37%|###7      | 189/508 [00:03<00:05, 63.65it/s]
Boosting 127 signals:  39%|###8      | 196/508 [00:03<00:04, 64.52it/s]
Boosting 127 signals:  40%|###9      | 203/508 [00:03<00:04, 64.34it/s]
Boosting 127 signals:  41%|####1     | 210/508 [00:03<00:04, 63.99it/s]
Boosting 127 signals:  43%|####2     | 217/508 [00:04<00:04, 65.24it/s]
Boosting 127 signals:  44%|####4     | 224/508 [00:04<00:04, 64.90it/s]
Boosting 127 signals:  45%|####5     | 231/508 [00:04<00:04, 63.78it/s]
Boosting 127 signals:  47%|####6     | 238/508 [00:04<00:04, 58.62it/s]
Boosting 127 signals:  48%|####8     | 245/508 [00:04<00:04, 60.33it/s]
Boosting 127 signals:  50%|####9     | 252/508 [00:04<00:04, 62.70it/s]
Boosting 127 signals:  51%|#####     | 259/508 [00:04<00:03, 64.07it/s]
Boosting 127 signals:  52%|#####2    | 266/508 [00:04<00:03, 61.30it/s]
Boosting 127 signals:  54%|#####3    | 273/508 [00:04<00:03, 62.02it/s]
Boosting 127 signals:  55%|#####5    | 280/508 [00:05<00:03, 63.31it/s]
Boosting 127 signals:  56%|#####6    | 287/508 [00:05<00:03, 64.56it/s]
Boosting 127 signals:  58%|#####8    | 295/508 [00:05<00:03, 65.13it/s]
Boosting 127 signals:  60%|#####9    | 303/508 [00:05<00:03, 61.94it/s]
Boosting 127 signals:  61%|######1   | 310/508 [00:05<00:03, 60.30it/s]
Boosting 127 signals:  62%|######2   | 317/508 [00:05<00:03, 56.77it/s]
Boosting 127 signals:  64%|######3   | 323/508 [00:05<00:03, 50.12it/s]
Boosting 127 signals:  65%|######4   | 329/508 [00:05<00:03, 48.89it/s]
Boosting 127 signals:  66%|######5   | 335/508 [00:06<00:03, 48.43it/s]
Boosting 127 signals:  68%|######7   | 343/508 [00:06<00:03, 52.67it/s]
Boosting 127 signals:  69%|######8   | 350/508 [00:06<00:02, 54.87it/s]
Boosting 127 signals:  70%|#######   | 356/508 [00:06<00:02, 53.63it/s]
Boosting 127 signals:  71%|#######1  | 362/508 [00:06<00:02, 52.78it/s]
Boosting 127 signals:  72%|#######2  | 368/508 [00:06<00:02, 52.13it/s]
Boosting 127 signals:  74%|#######3  | 374/508 [00:06<00:02, 51.91it/s]
Boosting 127 signals:  75%|#######4  | 380/508 [00:06<00:02, 49.43it/s]
Boosting 127 signals:  76%|#######5  | 386/508 [00:07<00:02, 51.77it/s]
Boosting 127 signals:  77%|#######7  | 393/508 [00:07<00:02, 55.76it/s]
Boosting 127 signals:  79%|#######8  | 399/508 [00:07<00:02, 51.17it/s]
Boosting 127 signals:  80%|#######9  | 405/508 [00:07<00:02, 49.97it/s]
Boosting 127 signals:  81%|########  | 411/508 [00:07<00:02, 41.27it/s]
Boosting 127 signals:  82%|########1 | 416/508 [00:07<00:02, 41.49it/s]
Boosting 127 signals:  83%|########2 | 421/508 [00:07<00:02, 39.87it/s]
Boosting 127 signals:  84%|########4 | 427/508 [00:07<00:01, 42.81it/s]
Boosting 127 signals:  85%|########5 | 433/508 [00:08<00:01, 44.44it/s]
Boosting 127 signals:  86%|########6 | 439/508 [00:08<00:01, 47.01it/s]
Boosting 127 signals:  88%|########7 | 446/508 [00:08<00:01, 50.86it/s]
Boosting 127 signals:  89%|########8 | 452/508 [00:08<00:01, 50.78it/s]
Boosting 127 signals:  90%|######### | 458/508 [00:08<00:01, 49.73it/s]
Boosting 127 signals:  91%|#########1| 464/508 [00:08<00:00, 44.31it/s]
Boosting 127 signals:  92%|#########2| 469/508 [00:08<00:00, 40.83it/s]
Boosting 127 signals:  94%|#########3| 475/508 [00:08<00:00, 44.85it/s]
Boosting 127 signals:  95%|#########4| 481/508 [00:09<00:00, 47.06it/s]
Boosting 127 signals:  96%|#########5| 486/508 [00:09<00:00, 47.69it/s]
Boosting 127 signals:  97%|#########6| 491/508 [00:09<00:00, 48.02it/s]
Boosting 127 signals:  98%|#########8| 498/508 [00:09<00:00, 51.79it/s]
Boosting 127 signals:  99%|#########9| 504/508 [00:09<00:00, 50.11it/s]
Boosting 127 signals: 100%|##########| 508/508 [00:09<00:00, 52.80it/s]

Multiple predictors

Multiple predictors additively explain the signal:

# Derive acoustic onsets from the envelope
onset = envelope.diff('time', name='onset').clip(0)
onset *= envelope.max() / onset.max()
plot.UTS([[envelope, onset]], xlim=5, w=6, h=2)
mtrf

Out:

<UTS: envelope, onset>
res_onset = boosting(eeg, [onset, envelope], -0.100, 0.400, basis=0.100, partitions=4)
p = plot.TopoButterfly(res_onset.h_scaled, w=6, h=3)
p.set_time(.150)
mtrf

Out:

Boosting 127 signals:   0%|          | 0/508 [00:00<?, ?it/s]
Boosting 127 signals:   0%|          | 1/508 [00:00<03:06,  2.72it/s]
Boosting 127 signals:   1%|          | 5/508 [00:00<02:14,  3.75it/s]
Boosting 127 signals:   2%|1         | 9/508 [00:00<01:37,  5.12it/s]
Boosting 127 signals:   3%|2         | 13/508 [00:00<01:12,  6.87it/s]
Boosting 127 signals:   3%|3         | 17/508 [00:00<00:55,  8.87it/s]
Boosting 127 signals:   4%|4         | 21/508 [00:00<00:43, 11.30it/s]
Boosting 127 signals:   5%|4         | 24/508 [00:01<00:35, 13.59it/s]
Boosting 127 signals:   5%|5         | 27/508 [00:01<00:30, 15.86it/s]
Boosting 127 signals:   6%|6         | 31/508 [00:01<00:25, 18.53it/s]
Boosting 127 signals:   7%|6         | 35/508 [00:01<00:22, 21.20it/s]
Boosting 127 signals:   8%|7         | 39/508 [00:01<00:19, 23.90it/s]
Boosting 127 signals:   8%|8         | 43/508 [00:01<00:17, 26.52it/s]
Boosting 127 signals:   9%|9         | 47/508 [00:01<00:16, 28.54it/s]
Boosting 127 signals:  10%|#         | 51/508 [00:01<00:14, 30.53it/s]
Boosting 127 signals:  11%|#         | 55/508 [00:02<00:15, 29.23it/s]
Boosting 127 signals:  12%|#1        | 59/508 [00:02<00:16, 27.87it/s]
Boosting 127 signals:  12%|#2        | 62/508 [00:02<00:16, 26.93it/s]
Boosting 127 signals:  13%|#2        | 66/508 [00:02<00:15, 29.11it/s]
Boosting 127 signals:  14%|#3        | 70/508 [00:02<00:15, 29.04it/s]
Boosting 127 signals:  15%|#4        | 74/508 [00:02<00:15, 28.20it/s]
Boosting 127 signals:  15%|#5        | 78/508 [00:02<00:15, 28.60it/s]
Boosting 127 signals:  16%|#6        | 82/508 [00:03<00:15, 28.04it/s]
Boosting 127 signals:  17%|#6        | 86/508 [00:03<00:14, 28.97it/s]
Boosting 127 signals:  18%|#7        | 90/508 [00:03<00:14, 29.38it/s]
Boosting 127 signals:  19%|#8        | 94/508 [00:03<00:13, 31.13it/s]
Boosting 127 signals:  19%|#9        | 98/508 [00:03<00:12, 32.48it/s]
Boosting 127 signals:  20%|##        | 102/508 [00:03<00:12, 32.00it/s]
Boosting 127 signals:  21%|##        | 106/508 [00:03<00:12, 33.09it/s]
Boosting 127 signals:  22%|##1       | 110/508 [00:03<00:12, 31.66it/s]
Boosting 127 signals:  22%|##2       | 114/508 [00:04<00:13, 28.59it/s]
Boosting 127 signals:  23%|##3       | 117/508 [00:04<00:14, 26.84it/s]
Boosting 127 signals:  24%|##3       | 121/508 [00:04<00:13, 28.11it/s]
Boosting 127 signals:  25%|##4       | 125/508 [00:04<00:13, 27.48it/s]
Boosting 127 signals:  25%|##5       | 129/508 [00:04<00:13, 28.95it/s]
Boosting 127 signals:  26%|##6       | 133/508 [00:04<00:12, 30.65it/s]
Boosting 127 signals:  27%|##6       | 137/508 [00:04<00:12, 28.73it/s]
Boosting 127 signals:  28%|##7       | 140/508 [00:05<00:13, 26.78it/s]
Boosting 127 signals:  28%|##8       | 143/508 [00:05<00:15, 23.38it/s]
Boosting 127 signals:  29%|##8       | 147/508 [00:05<00:14, 24.08it/s]
Boosting 127 signals:  30%|##9       | 151/508 [00:05<00:13, 26.23it/s]
Boosting 127 signals:  31%|###       | 155/508 [00:05<00:12, 28.97it/s]
Boosting 127 signals:  31%|###1      | 159/508 [00:05<00:11, 31.33it/s]
Boosting 127 signals:  32%|###2      | 163/508 [00:05<00:10, 33.34it/s]
Boosting 127 signals:  33%|###2      | 167/508 [00:05<00:09, 34.65it/s]
Boosting 127 signals:  34%|###3      | 171/508 [00:06<00:10, 31.85it/s]
Boosting 127 signals:  34%|###4      | 175/508 [00:06<00:10, 31.51it/s]
Boosting 127 signals:  35%|###5      | 179/508 [00:06<00:09, 33.07it/s]
Boosting 127 signals:  36%|###6      | 183/508 [00:06<00:09, 33.69it/s]
Boosting 127 signals:  37%|###6      | 187/508 [00:06<00:09, 34.36it/s]
Boosting 127 signals:  38%|###7      | 191/508 [00:06<00:09, 35.01it/s]
Boosting 127 signals:  38%|###8      | 195/508 [00:06<00:10, 30.02it/s]
Boosting 127 signals:  39%|###9      | 199/508 [00:06<00:10, 29.91it/s]
Boosting 127 signals:  40%|###9      | 203/508 [00:07<00:09, 30.62it/s]
Boosting 127 signals:  41%|####      | 207/508 [00:07<00:09, 31.50it/s]
Boosting 127 signals:  42%|####1     | 211/508 [00:07<00:09, 31.04it/s]
Boosting 127 signals:  42%|####2     | 215/508 [00:07<00:09, 31.70it/s]
Boosting 127 signals:  43%|####3     | 219/508 [00:07<00:09, 32.09it/s]
Boosting 127 signals:  44%|####3     | 223/508 [00:07<00:08, 31.94it/s]
Boosting 127 signals:  45%|####4     | 227/508 [00:07<00:08, 32.58it/s]
Boosting 127 signals:  45%|####5     | 231/508 [00:07<00:08, 31.77it/s]
Boosting 127 signals:  46%|####6     | 235/508 [00:08<00:08, 31.08it/s]
Boosting 127 signals:  47%|####7     | 239/508 [00:08<00:08, 32.50it/s]
Boosting 127 signals:  48%|####7     | 243/508 [00:08<00:08, 32.09it/s]
Boosting 127 signals:  49%|####8     | 247/508 [00:08<00:08, 31.21it/s]
Boosting 127 signals:  49%|####9     | 251/508 [00:08<00:08, 31.78it/s]
Boosting 127 signals:  50%|#####     | 255/508 [00:08<00:08, 31.24it/s]
Boosting 127 signals:  51%|#####     | 259/508 [00:08<00:07, 32.14it/s]
Boosting 127 signals:  52%|#####1    | 263/508 [00:08<00:07, 32.57it/s]
Boosting 127 signals:  53%|#####2    | 267/508 [00:09<00:07, 30.74it/s]
Boosting 127 signals:  53%|#####3    | 271/508 [00:09<00:07, 30.79it/s]
Boosting 127 signals:  54%|#####4    | 275/508 [00:09<00:08, 28.82it/s]
Boosting 127 signals:  55%|#####4    | 278/508 [00:09<00:08, 28.65it/s]
Boosting 127 signals:  55%|#####5    | 281/508 [00:09<00:07, 28.80it/s]
Boosting 127 signals:  56%|#####6    | 285/508 [00:09<00:07, 30.58it/s]
Boosting 127 signals:  57%|#####6    | 289/508 [00:09<00:06, 31.84it/s]
Boosting 127 signals:  58%|#####7    | 293/508 [00:09<00:06, 32.80it/s]
Boosting 127 signals:  58%|#####8    | 297/508 [00:10<00:06, 32.65it/s]
Boosting 127 signals:  59%|#####9    | 301/508 [00:10<00:06, 33.57it/s]
Boosting 127 signals:  60%|######    | 305/508 [00:10<00:06, 33.52it/s]
Boosting 127 signals:  61%|######    | 309/508 [00:10<00:06, 31.46it/s]
Boosting 127 signals:  62%|######1   | 313/508 [00:10<00:06, 30.22it/s]
Boosting 127 signals:  62%|######2   | 317/508 [00:10<00:06, 31.22it/s]
Boosting 127 signals:  63%|######3   | 321/508 [00:10<00:06, 27.69it/s]
Boosting 127 signals:  64%|######3   | 324/508 [00:10<00:06, 26.72it/s]
Boosting 127 signals:  64%|######4   | 327/508 [00:11<00:07, 25.29it/s]
Boosting 127 signals:  65%|######4   | 330/508 [00:11<00:06, 25.73it/s]
Boosting 127 signals:  66%|######5   | 333/508 [00:11<00:06, 25.24it/s]
Boosting 127 signals:  66%|######6   | 337/508 [00:11<00:06, 27.78it/s]
Boosting 127 signals:  67%|######6   | 340/508 [00:11<00:06, 25.29it/s]
Boosting 127 signals:  68%|######7   | 344/508 [00:11<00:05, 27.49it/s]
Boosting 127 signals:  69%|######8   | 348/508 [00:11<00:05, 29.58it/s]
Boosting 127 signals:  69%|######9   | 352/508 [00:11<00:04, 31.20it/s]
Boosting 127 signals:  70%|#######   | 356/508 [00:12<00:04, 30.62it/s]
Boosting 127 signals:  71%|#######   | 360/508 [00:12<00:05, 29.08it/s]
Boosting 127 signals:  72%|#######1  | 364/508 [00:12<00:04, 29.96it/s]
Boosting 127 signals:  72%|#######2  | 368/508 [00:12<00:05, 27.73it/s]
Boosting 127 signals:  73%|#######3  | 371/508 [00:12<00:04, 28.27it/s]
Boosting 127 signals:  74%|#######3  | 375/508 [00:12<00:04, 26.62it/s]
Boosting 127 signals:  75%|#######4  | 379/508 [00:12<00:05, 24.81it/s]
Boosting 127 signals:  75%|#######5  | 383/508 [00:13<00:04, 25.54it/s]
Boosting 127 signals:  76%|#######5  | 386/508 [00:13<00:04, 25.17it/s]
Boosting 127 signals:  77%|#######6  | 389/508 [00:13<00:04, 25.76it/s]
Boosting 127 signals:  77%|#######7  | 392/508 [00:13<00:04, 25.49it/s]
Boosting 127 signals:  78%|#######7  | 396/508 [00:13<00:04, 27.37it/s]
Boosting 127 signals:  79%|#######8  | 399/508 [00:13<00:04, 26.76it/s]
Boosting 127 signals:  79%|#######9  | 402/508 [00:13<00:04, 26.32it/s]
Boosting 127 signals:  80%|#######9  | 405/508 [00:13<00:03, 26.18it/s]
Boosting 127 signals:  80%|########  | 408/508 [00:14<00:04, 23.52it/s]
Boosting 127 signals:  81%|########  | 411/508 [00:14<00:04, 19.91it/s]
Boosting 127 signals:  81%|########1 | 414/508 [00:14<00:04, 21.68it/s]
Boosting 127 signals:  82%|########2 | 417/508 [00:14<00:04, 19.19it/s]
Boosting 127 signals:  83%|########2 | 420/508 [00:14<00:04, 19.68it/s]
Boosting 127 signals:  83%|########3 | 423/508 [00:14<00:04, 20.33it/s]
Boosting 127 signals:  84%|########3 | 426/508 [00:15<00:04, 19.67it/s]
Boosting 127 signals:  84%|########4 | 429/508 [00:15<00:03, 21.31it/s]
Boosting 127 signals:  85%|########5 | 432/508 [00:15<00:03, 22.29it/s]
Boosting 127 signals:  86%|########5 | 435/508 [00:15<00:03, 23.09it/s]
Boosting 127 signals:  86%|########6 | 439/508 [00:15<00:02, 25.69it/s]
Boosting 127 signals:  87%|########7 | 443/508 [00:15<00:02, 27.42it/s]
Boosting 127 signals:  88%|########7 | 447/508 [00:15<00:02, 27.54it/s]
Boosting 127 signals:  89%|########8 | 450/508 [00:15<00:02, 27.33it/s]
Boosting 127 signals:  89%|########9 | 453/508 [00:16<00:02, 24.25it/s]
Boosting 127 signals:  90%|########9 | 456/508 [00:16<00:02, 21.51it/s]
Boosting 127 signals:  90%|######### | 459/508 [00:16<00:02, 21.68it/s]
Boosting 127 signals:  91%|######### | 462/508 [00:16<00:02, 22.10it/s]
Boosting 127 signals:  92%|#########1| 465/508 [00:16<00:02, 20.79it/s]
Boosting 127 signals:  92%|#########2| 468/508 [00:16<00:01, 21.18it/s]
Boosting 127 signals:  93%|#########2| 471/508 [00:16<00:01, 19.82it/s]
Boosting 127 signals:  94%|#########3| 475/508 [00:17<00:01, 22.58it/s]
Boosting 127 signals:  94%|#########4| 479/508 [00:17<00:01, 24.40it/s]
Boosting 127 signals:  95%|#########4| 482/508 [00:17<00:01, 24.77it/s]
Boosting 127 signals:  95%|#########5| 485/508 [00:17<00:01, 22.43it/s]
Boosting 127 signals:  96%|#########6| 488/508 [00:17<00:00, 21.88it/s]
Boosting 127 signals:  97%|#########6| 491/508 [00:17<00:00, 20.27it/s]
Boosting 127 signals:  97%|#########7| 495/508 [00:17<00:00, 22.84it/s]
Boosting 127 signals:  98%|#########8| 499/508 [00:18<00:00, 25.53it/s]
Boosting 127 signals:  99%|#########8| 502/508 [00:18<00:00, 25.28it/s]
Boosting 127 signals:  99%|#########9| 505/508 [00:18<00:00, 22.97it/s]
Boosting 127 signals: 100%|##########| 508/508 [00:18<00:00, 27.56it/s]

Compare models

Compare model quality through the correlation between measured and predicted responses:

plot.Topomap([res.r, res_onset.r], w=4, h=2, ncol=2, axtitle=['envelope', 'envelope + onset'])
envelope, envelope + onset

Out:

<Topomap: correlation>

References

[1]Crosse, M. J., Liberto, D., M, G., Bednar, A., & Lalor, E. C. (2016). The Multivariate Temporal Response Function (mTRF) Toolbox: A MATLAB Toolbox for Relating Neural Signals to Continuous Stimuli. Frontiers in Human Neuroscience, 10. https://doi.org/10.3389/fnhum.2016.00604

Total running time of the script: ( 0 minutes 31.863 seconds)

Gallery generated by Sphinx-Gallery