using NeuroAnalyzer
= load("files/eeg.hdf"); eeg
[ Info: Loaded: EEG (24 × 308480 × 1; 1204.996 s)
Load data:
using NeuroAnalyzer
= load("files/eeg.hdf"); eeg
[ Info: Loaded: EEG (24 × 308480 × 1; 1204.996 s)
filter(eeg, ch="all", fprototype=:fir, ftype=:bs, cutoff=(45, 55), order=8, window=hanning(127))
NeuroAnalyzer.filter(eeg, ch="all", fprototype=:fir, ftype=:lp, cutoff=45.0, order=8, window=hanning(128)) NeuroAnalyzer.
FIR filters with Hamming window generated automatically:
filter(eeg, ch="all", fprototype=:fir, ftype=:hp, cutoff=0.1, order=8) NeuroAnalyzer.
m[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
[96m[ Info: Creating HP filter:
[ Info: Using default window: hamming(4096)
[ Info: Attenuation: 32 dB
[ Info: Transition bandwidth: 0.0004 Hz
[ Info: F_pass: 0.1 Hz
[ Info: F_stop: 0.0 Hz
[ Info: Cutoff frequency: 0.0998 Hz
Progress: 8%|█▋ | ETA: 0:00:44Progress: 100%|████████████████████| Time: 0:00:04
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [4.765073905232953e-6 98.53218210526563 … -3.179807328194668 4.97335590488035e-8; 8.816719159199238e-6 -53.963555183458155 … 2.6834000850116055 3.139333648594089e-8; … ; -1.6781292924150648e-6 127.01845147692174 … -0.6220816241434353 6.230695159814559e-8; -4.204704310950547e-6 529.9316913356297 … -8.799667218687134 1.379860350425588e-7;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)"])
(!) Certain windows (e.g. hanning()
) may require DSP.jl to be loaded. NeuroAnalyzer allows generating additional windows, see generate_window().
Available fprototypes are :butterworth
, :elliptic
, :chebyshev1
and :chebyshev2
:
filter(eeg, ch="all", fprototype=:butterworth, ftype=:lp, cutoff=45.0, order=2) NeuroAnalyzer.
[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
Progress: 8%|█▋ | ETA: 0:00:15Progress: 100%|████████████████████| Time: 0:00:01
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.23129121025980756 124.20945140576417 … -8.402547024951502 -0.055629860537209364; -0.12874628779068065 -103.33060400062529 … -4.153454323120497 -0.020881543433697816; … ; -0.16152451692141362 90.64303587024527 … -9.629886130070254 -0.05912817129408081; 0.06574778387478178 533.6173825922157 … -23.302450740009974 -0.154245314024599;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=butterworth, ftype=lp, cutoff=45.0, order=2, rp=-1, rs=-1, dir=twopass, w=nothing)"])
filter(eeg, ch="all", fprototype=:butterworth, ftype=:hp, cutoff=0.1, order=8) NeuroAnalyzer.
[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [41.181968718237464 139.65029863356176 … -5.312608133999947 -2.344902954815485; -44.59944297562111 -98.4340206985508 … 4.342509313903833 1.5577783770581553; … ; 24.824839406192485 151.81080390881885 … -3.1363751582263717 -2.682009159842292; 190.5591735464795 720.1674903611791 … -9.672120738357878 -1.531115522522979;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=butterworth, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)"])
filter(eeg, ch="all", fprototype=:butterworth, ftype=:bs, cutoff=(4, 8), order=8) NeuroAnalyzer.
m[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.1759870314248362 91.48320374071008 … 2.6244392819990705 4.481898965241668; -0.21684873922703485 -47.56190870823421 … 5.201494267735814 2.064656875370588; … ; -0.9551838217354659 121.27035334732257 … 4.2922405739848 3.352704535989823; -1.9110222283477432 498.2754786594101 … 8.93223457503959 13.567000604059494;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=butterworth, ftype=bs, cutoff=(4, 8), order=8, rp=-1, rs=-1, dir=twopass, w=nothing)"])
filter(eeg, ch="all", fprototype=:elliptic, ftype=:bs, cutoff=(45, 55), rs=10, rp=1, order=12) NeuroAnalyzer.
[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0315265551666315 63.8988862082368 … -1.9780787223163112 2.810638731986241; 0.2142113242727448 -51.21941349719978 … 0.8762415158971639 1.44704764616131; … ; -0.0946073593093965 45.12874642654622 … -0.869371231762319 3.359849514754866; -1.3406355407144914 259.3419539011116 … -5.658973999579525 7.460526920508429;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=elliptic, ftype=bs, cutoff=(45, 55), order=12, rp=1, rs=10, dir=twopass, w=nothing)"])
filter(eeg, ch="all", fprototype=:chebyshev1, ftype=:bs, cutoff=(45, 55), rs=1, order=8) NeuroAnalyzer.
[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.1900367773227794 66.61818358120765 … -8.582326401587814 -5.747607895647494; -0.005995757453411863 -55.693546260247125 … -9.059015645045381 -3.6262340085896985; … ; 0.05856108091292806 42.01118262292155 … -13.348872310303141 -7.330856662676665; 0.7571702086459502 258.6352387955415 … -23.94044081721184 -15.84357609424289;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=chebyshev1, ftype=bs, cutoff=(45, 55), order=8, rp=-1, rs=1, dir=twopass, w=nothing)"])
filter(eeg, ch="all", fprototype=:chebyshev2, ftype=:bs, cutoff=(45, 55), rp=1, order=8) NeuroAnalyzer.
[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.3588609444892894 75.06741348498197 … -4.61605671975845 0.580596372164992; -0.08041875596513373 -62.97193718392348 … -2.414279428476658 0.07237707143782302; … ; -0.05778994761584817 47.20156108655257 … -5.103688000774419 0.8872904387996114; 2.0903993409827857 292.26958275700156 … -11.699541967445768 2.155336316148973;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=chebyshev2, ftype=bs, cutoff=(45, 55), order=8, rp=1, rs=-1, dir=twopass, w=nothing)"])
Second-order IIR notch filter:
filter(eeg, ch="all", fprototype=:iirnotch, cutoff=50, bw=2) NeuroAnalyzer.
m[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [22.37380023710707 98.00353404410127 … -13.22427363557683 -15.27149245002959; -20.22405004717263 -64.7493675729034 … -13.245085096823706 -9.708135618634632; … ; 12.984431021109321 102.09530901366114 … -19.841417049768836 -19.149360993290575; 88.63452419809562 472.78819622112604 … -36.70985174396552 -42.362110062590574;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=4, rp=-1, rs=-1, dir=twopass, w=nothing)"])
filter(eeg, ch="all", fprototype=:remez, ftype=:lp, order=128, cutoff=20, bw=0.5) NeuroAnalyzer.
m[ Info: Signal should be tapered prior to filtering to reduce edge artifacts
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.04436013941239558 38.9009226079723 … -2.9797293249287975 0.0004629912215954324; 0.08207866269283848 -35.230243499022954 … -1.1680863048196852 0.0002922541682051083; … ; -0.015622433270563896 22.89378047516844 … -3.169006210448025 0.0005800424842923313; -0.039143416490002636 158.74589412939417 … -8.259563003038188 0.001284571827403047;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=remez, ftype=lp, cutoff=20, order=128, rp=-1, rs=-1, dir=twopass, w=nothing)"])
Polynomial of 8th order:
filter_poly(eeg, ch="all", order=8) NeuroAnalyzer.
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.06316857123704267 98.63355185423359 … -3.188509548916427 0.0012586811761252648; 0.11538145170800362 -53.81828568891558 … 2.6842831901956874 0.0010569709222707502; … ; -0.016742152260775356 126.9883487994355 … -0.6469724969546302 0.0017584296217521; 0.02239090085299722 529.2985840974968 … -8.823153201325772 0.0034929557367462394;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter_poly(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], order=8, window=10"])
filter_sg(eeg, ch="all", order=6) NeuroAnalyzer.
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.06299352499321846 122.90816659481676 … -5.556060122700975 0.0006574697353450712; 0.116555636601644 -80.82762216314474 … 0.7073780075185987 0.0004150149329250324; … ; -0.02218460432503877 133.01429154880825 … -3.946536922044608 0.0008236881412748004; -0.05558552828715302 620.7159270039876 … -15.393705036215579 0.001824153590843194;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter_sg(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], order=6, window=11"])
filter_mavg(eeg, ch="all", k=2, window=[1, 2, 3, 2, 1]) NeuroAnalyzer.
m[ Info: Window length: 5 samples
[ Info: Approximate cut-off frequency: 23.04 Hz
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.06299352498755795 98.63512726760528 … -3.1830986460670267 0.0006574697346035663; 0.11655563660927726 -53.828853350413745 … 2.690060794085174 0.0004150149321296981; … ; -0.022184604323419066 127.03733086748798 … -0.6385598239986807 0.0008236881401195717; -0.055585528301492104 530.00037195304 … -8.80813398237423 0.0018241535887852933;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter_mavg(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], k=2, t=0, window=[1, 2, 3, 2, 1]"])
(!) The weighting window parameter window=[1, 2, 3, 2, 1]
will produce a triangular-window moving average.
filter_mmed(eeg, ch="all") NeuroAnalyzer.
m[ Info: Window length: 17 samples
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "528004 SIT 52, 20220831-122227-{d589f756-53fc-4f1b-915d-6e3b8c1560ad}", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg" … "eeg", "eeg", "ref", "ref", "eeg", "eeg", "eeg", "eog", "eog", "ecg"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2" … "T5", "T6", "A1", "A2", "Fz", "Cz", "Pz", "EOG1", "EOG2", "ECG"], :prefiltering => ["HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz" … "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz", "HP:0,18Hz LP:104,0Hz"], :gain => [0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218 … 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218, 0.17935713740749218], :data_type => "eeg", :recording_notes => "", :recording_date => "31.08.22", :sampling_rate => 256, :file_type => "EDF"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.023, 0.027, 0.031, 0.035 … 1204.961, 1204.965, 1204.969, 1204.973, 1204.977, 1204.98, 1204.984, 1204.988, 1204.992, 1204.996], [0.06299352498755795 98.63512726760528 … -3.1830986460670267 0.0006574697346035663; 0.11655563660927726 -53.828853350413745 … 2.690060794085174 0.0004150149321296981; … ; -0.022184604323419066 127.03733086748798 … -0.6385598239986807 0.0008236881401195717; -0.055585528301492104 530.00037195304 … -8.80813398237423 0.0018241535887852933;;;], Dict{Any, Any}(), 0×5 DataFrame Row │ id start length description channel │ String Float64 Float64 String Int64 ─────┴────────────────────────────────────────────────, 23×9 DataFrame Row │ label loc_radius loc_theta loc_x loc_y loc_z loc_radius_sp ⋯ │ String Float64 Float64 Float64 Float64 Float64 Float64 ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ Fp1 1.0 108.0 -0.31 0.95 -0.03 1.0 ⋯ 2 │ Fp2 1.0 72.0 0.31 0.95 -0.03 1.0 3 │ F7 1.0 144.0 -0.81 0.59 -0.03 1.0 4 │ F3 0.65 129.0 -0.55 0.67 0.5 1.0 5 │ Fz 0.51 90.0 0.0 0.72 0.7 1.0 ⋯ 6 │ F4 0.65 51.0 0.55 0.67 0.5 1.0 7 │ F8 1.0 36.0 0.81 0.59 -0.03 1.0 8 │ T3 1.0 180.0 -1.0 0.0 -0.03 1.0 9 │ C3 0.51 180.0 -0.72 0.0 0.7 1.0 ⋯ 10 │ Cz 0.0 0.0 0.0 0.0 1.0 1.0 11 │ C4 0.51 0.0 0.72 0.0 0.7 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 14 │ P3 0.65 231.0 -0.55 -0.67 0.5 1.0 15 │ Pz 0.51 270.0 0.0 -0.72 0.7 1.0 ⋯ 16 │ P4 0.65 309.0 0.55 -0.67 0.5 1.0 17 │ T6 1.0 324.0 0.81 -0.59 -0.03 1.0 18 │ O1 1.0 252.0 -0.31 -0.95 -0.03 1.0 19 │ O2 1.0 288.0 0.31 -0.95 -0.03 1.0 ⋯ 20 │ A1 1.0 192.0 -0.92 -0.23 -0.55 1.1 21 │ A2 1.0 -12.0 0.92 -0.23 -0.55 1.1 22 │ EOG1 1.01 149.0 -0.87 0.51 -0.37 1.0 23 │ EOG2 1.01 31.0 0.87 0.51 -0.37 1.0 ⋯ 3 columns and 2 rows omitted, ["reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=iirnotch, ftype=nothing, cutoff=50, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], fprototype=fir, ftype=hp, cutoff=0.1, order=8, rp=-1, rs=-1, dir=twopass, w=nothing)", "reset_components(OBJ)", "filter_mmed(OBJ, ch=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], k=8, t=0, window=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]"])
You may also use the interactive filter designer to design the filter:
= ifilter(eeg) flt
and later apply the designed filter:
filter_apply(eeg, ch="all", flt=flt)
Previewing filter response – see this tutorial.