Frequencies, Nyquist frequency:
= freqs(eeg) hz, nyq
Channels stats:
channels_stats(eeg)
Calculate signal total power:
total_power(eeg)
Calculate band power:
band_power(eeg, frq_lim=(8, 12.5))
Calculate maximum frequency of a band power:
= band_mpower(eeg, ch=get_channel(eeg, type="eeg"), frq_lim=band_frq(eeg, band=:alpha))
_, mfrq, _ = plot_bar(mfrq[1:19, 1], xlabels=labels(eeg)[1:19], ylabel="Frequency [Hz]", title="Maximum α band frequency\n[epoch: 1]")
p plot_save(p, file_name="images/alpha-maxfrq.png")
Calculate frontal alpha asymmetry index:
# left
= channel_cluster(eeg, cluster=:f1)
ch_left # or
= channel_pick(eeg, p=[:left, :frontal])
ch_left # right
= channel_cluster(eeg, cluster=:f2)
ch_right # or
= channel_pick(eeg, p=[:right, :frontal])
ch_right
# alpha frequency
= band_frq(eeg, band=:alpha)
alpha
# asymmetry index
band_asymmetry(eeg, frq_lim=alpha, ch1=ch_left, ch2=ch_right)
Calculate covariance matrix:
covm(eeg)
Calculate correlation matrix
corm(eeg)
Calculate auto-covariance:
acov(eeg, lag=20, norm=false)
Calculate cross-covariance:
= xcov(eeg, lag=20, demean=true)
cc, lags
= filter(eeg, fprototype=:butterworth, ftype=:bs, cutoff=(45, 55), order=8)
eeg1 = filter(eeg, fprototype=:butterworth, ftype=:bs, cutoff=(45, 55), order=12)
eeg2 = xcov(eeg1, eeg2, ch1="F3", ch2="F4", ep1=1, ep2=1, lag=20, demean=true, norm=true) cc, lags
Mutual information:
= mutual_information(eeg, ch=get_channel(eeg, type="eeg"))
m plot_matrix(m[:, :, 1], xlabels=labels(eeg)[1:19], ylabels=labels(eeg)[1:19])
Entropy:
e, _, _ = entropy(eeg, ch=get_channel(eeg, type="eeg"))
plot_bar(e[:, 1], labels=labels(eeg)[1:19], seriestype=:bar, title="Entropy, epoch 1")
Signal stats:
e = epoch_stats(eeg)
e.e_var
ISPC:
ispc(eeg, eeg, ch1=get_channel(eeg, type="eeg")[1:5], ch2=get_channel(eeg, type="eeg")[6:10], ep1=1, ep2=1)
PLI:
pli(eeg, eeg, ch1="F3", ch2="F4", ep1=1, ep2=1)
Amplitude Envelope Correlation:
env_cor(eeg, eeg, ch1="F3", ch2="F4", ep1=1, ep2=2)
Perform discrete wavelet transform (DWT) and continuous wavelet transform (CWT):
dw_trans(e10, wt=wavelet(WT.haar), type=:sdwt)
cw_trans(e10, wt=wavelet(Morlet(π), β=2))
SNR (signal-to-noise) may be estimated from epoched EEG signal.
= snr(eeg)
snr, hz = plot(hz, snr[1, :], label="ch 1", xlabel="Frequency [Hz]", ylabel="SNR")
p = plot!(hz, snr[2, :], label="ch 2")
p = plot!(hz, snr[3, :], label="ch 3")
p = plot!(hz, snr[4, :], label="ch 4")
p plot_save(p, file_name="images/eeg_snr.png")