NeuroAnalyzer tutorials: Plot (5)

Load data:

using NeuroAnalyzer
eeg = load("files/eeg.hdf");
[ Info: Loaded: EEG (24 × 282991 × 1; 1105.43 s)

Plot filter response: FIR low-pass (25 Hz) filter, attenuation 60 dB (order × 8), window generated automatically:

NeuroAnalyzer.filter(eeg, ch="eeg", fprototype=:fir, ftype=:lp, cutoff=25, order=15, preview=true)
[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
[ Info: Previewing filter response, signal will not be filtered
[ Info: Creating LP filter:
[ Info:  Using default window: hamming(128)
[ Info:  Attenuation: 60 dB
[ Info:  Transition bandwidth: 0.0244 Hz
[ Info:  F_pass: 25.0 Hz
[ Info:  F_stop: 31.25 Hz
[ Info:  Cutoff frequency: 24.9878 Hz

(!) When preview=true, signal will not be filtered.

Plot filter response: Remez FIR high-pass (4 Hz) filter, band width 2:

NeuroAnalyzer.filter(eeg, ch="eeg", fprototype=:remez, ftype=:hp, cutoff=4, bw=2, preview=true)
[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
[ Info: Previewing filter response, signal will not be filtered

Another way is to use plot_filter_response().

Plot filter response: Butterworth IIR band-stop (45-55 Hz) filter, order 8 (default):

plot_filter_response(fs=sr(eeg), n=epoch_len(eeg), fprototype=:butterworth, ftype=:bs, cutoff=(45, 55), order=8)

Plot filter response: second-order IIR band-stop (50 Hz) filter, band width 8:

plot_filter_response(fs=sr(eeg), n=epoch_len(eeg), fprototype=:iirnotch, cutoff=50, bw=8)