===== Artifact Removal ===== A nice artifact detection and removal walkthrough can be found at [[http://fieldtrip.fcdonders.nl/tutorial/artifacts|FieldTrip Artifact Documentation]] ==== Visual Artifact Removal ==== This section addresses visual artifact removal using the FieldTrip toolbox [[http://fieldtrip.fcdonders.nl/tutorial/visual_artifact_rejection|FieldTrip Visual Artifact walkthrough]] Load the data and define the trials as per [[analysis:amplipex|Loading Amplipex data into fieldtrip]]. Once this has been done we can begin by setting up our cfg (configuration) structure and using the ft_databrowser function cfg = data_trl.cfg; cfg.channel = 'all'; cfg.trials = 'all'; cfg.latency = 'maxperlength'; cfg.method = 'Summary'; cfg.keepchannel = 'yes'; cfg.metric = 'var'; cfg.alim = []; cfg.coninuous = 'yes'; cfg.viewmode = 'vertical'; % this shows all of the channels vertically cfg = ft_databrowser(cfg,data_trl); data_trl.cfg = cfg; % rewrite the cfg back into the data set The browser will let you scroll through the trials and use the cursor to highlight a section of the data containing an artifact. {{:analysis:amplipex:artifact_wiki.png?750|}} The selected artifact regions are not altered within the data itself, instead the start and end of each artifact are saved as part of the cfg structure: data_trl.cfg.artfctdef.visual.artifact . So now can change these regions to any value of our choice. %% Mannual Artifact removal art_value = 0; %Value to replace the data within artifact regions artifacts = data_trl.cfg.artfctdef.visual.artifact; trials = data_trl.cfg.trl; for iArt = 1:length(artifacts) for iTrial = 1:length(trials) if trials(iTrial,1)<= artifacts(iArt,1) && trials(iTrial,2)>= artifacts(iArt,2) if artifacts(iArt,1)-trials(iTrial,1) ==0 data_trl.trial{1,iTrial}(1:16,(1:artifacts(iArt,2)-trials(iTrial,1)))=art_value; else data_trl.trial{1,iTrial}(1:16,(artifacts(iArt,1)-trials(iTrial,1):artifacts(iArt,2)-trials(iTrial,1)))=art_value; end end end end Now we can visualize the data regions that have been replaced to ensure they have been correctly converted. cfg.viewmode = 'vertical'; % this shows all of the channels vertically ft_databrowser(cfg,data_trl); From here we can run any further ft analysis.