0001 function filter_eeg(p)
0002
0003
0004
0005
0006
0007 disp(mfilename);
0008
0009
0010 ch_filter=1:65;
0011 ch_trigger=66;
0012 Nsample_trig=100;
0013
0014 parm.bias_flg = p.bias_flg;
0015 parm.highpass = p.highpass;
0016 parm.lowpass = p.lowpass;
0017 parm.fsamp = p.fsamp;
0018 parm.highpass_online = p.highpass_online;
0019 parm.lowpass_online = p.lowpass_online;
0020
0021
0022 output_dir=fullfile(p.proj_root, p.eeg_dirname, p.filter_dirname);
0023 if exist(output_dir, 'dir') ~= 7
0024 mkdir(output_dir);
0025 end
0026
0027 for file=1:length(p.file_list)
0028 disp(p.file_list{file})
0029
0030
0031 eeg_file=fullfile(p.proj_root, p.eeg_dirname, p.load_dirname, [p.file_list{file} '.eeg.mat']);
0032 load(eeg_file)
0033
0034
0035 t=1;
0036 while t<=EEGinfo.Nsample
0037 if eeg_data(ch_trigger,t)>0.5
0038 eeg_data(ch_trigger,t:t+Nsample_trig-1)=1;
0039 t=t+Nsample_trig;
0040 end
0041 t=t+1;
0042 end
0043
0044
0045 eeg_data(ch_filter,:)=eegfilt(eeg_data(ch_filter,:),EEGinfo.SampleFrequency,0,parm.lowpass);
0046
0047
0048 if EEGinfo.SampleFrequency~=parm.fsamp
0049 eeg_data = vb_convert_freq(eeg_data, EEGinfo.SampleFrequency, parm.fsamp);
0050 end
0051 EEGinfo.SampleFrequency=parm.fsamp;
0052 EEGinfo.Nsample=size(eeg_data,2);
0053
0054
0055 eeg_data(ch_filter,:)=eegfilt(eeg_data(ch_filter,:),EEGinfo.SampleFrequency,parm.highpass,0);
0056
0057
0058 filtered_file=fullfile(output_dir, [p.file_list{file} '.eeg.mat']);
0059 save(filtered_file, 'eeg_data', 'EEGinfo', 'Measurement')
0060 end