How can I inspect the electrode impedances of my data?

The quality of EEG signals depends for a large part on how well the electrodes make contact to the skin. Currents flow from the head across the skin-gel-electrode interface and through wires to the amplifier. Along this path the current will face some resistance, often called impedance. Impedance is related to voltage and current by Ohm's law (I = V/R).

In general, the higher the impedance of an electrode, the lower the signal-to-noise ratio of the EEG signal. Importantly, recording EEG with a lower signal-to-noise ratio may increase noise levels and decrease the probability of obtaining statistically signifcant effects.

Most modern EEG systems are capable of measuring the impedance at each eletrode, and save these values in the header file. The following example script can be used to visualize the impedance values at the start of the recording of your EEG dataset.

This example reads the impedance values from an EEG dataset recorded with BrainVision PyCorder.

Read impedance values

%Read header file
fid = fopen('PP01.vhdr', 'r');
C = textscan(fid, '%s', 'Delimiter', '\n');
%Find the line containing 'Impedance'
D = strfind(C, 'Impedance');
rows = find(~cellfun('isempty', D));
%Read channelnames and impedance
temp = {};
for i = rows+1:length(C)-1
    temp = [temp; textscan(char(C(i)),'%d%s%d')];
temp = [temp; [cell(1) textscan(char(C(length(C))),'%s%d')]];
%Remove colon from channel name
chantemp = temp(:,2);
for j = 1:length(chantemp)
    chan = char(chantemp{j});
    chantemp{j} = chan(1:end-1);
imp             = [];
imp.label       = chantemp;
imp.imp         = cell2mat(temp(:,3));
imp.time        = 1;
imp.dimord      = 'chan_time';

Plot impedance values

Make a plot of the imp structure containing the impedance values using a custom colormap (green, yellow and red)

cfg             = [];
cfg.parameter   = 'imp';
cfg.layout      = 'EEG1010.lay';
cfg.max_imp     = 20;
%Create a custom colormap
T = [  0, 255,   0        %// green
     255, 255,   0        %// yellow
     255,   0,   0]./255; %// red
x = [0
map = interp1(x/cfg.max_imp,T,linspace(0,1,cfg.max_imp));               = 'blank';
cfg.marker              = 'labels';
cfg.markersize          = 7;
cfg.markerfontsize      = 12;
cfg.highlight           = repmat({'labels'},1,numel(imp.label));
chans = cell(1,numel(imp.label));
for nchan = 1:numel(imp.label)
    chans{nchan} = imp.label(nchan);
cfg.highlightchannel    = chans;
cfg.highlightsymbol     = repmat({'.'},1,numel(imp.label));
cfg.highlightsize       = repmat({50},1,numel(imp.label));
test                    = map(round(imp.(cfg.parameter)),:);
cfg.highlightcolor      = mat2cell(test, ones(1, size(test, 1)), size(test, 2))';
cfg.highlightfontsize   = repmat({8},1,numel(imp.label));
cfg.comment             = 'no';
cfg.labeloffset         = 0;
cfg.colorbar            = 'yes';
cfg.contournum          = 10;
cfg.colormap            = map;
cfg.zlim                = [0 cfg.max_imp];
ft_topoplotER(cfg, imp)

Mark Noordenbos (2016)

faq/how_can_i_inspect_the_electrode_impedances_of_my_data.txt · Last modified: 2016/01/18 14:10 by

You are here: startfaqhow_can_i_inspect_the_electrode_impedances_of_my_data
CC Attribution-Share Alike 3.0 Unported Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0
This DokuWiki features an Anymorphic Webdesign theme, customised by Eelke Spaak and Stephen Whitmarsh.
Mobile Analytics Website Security Test