[Eeglablist] A tentative issue in coherence calculation in EEGLAB for epoched data

Iman Mohammad-Rezazadeh irezazadeh at ucdavis.edu
Mon Jul 20 10:09:53 PDT 2015

I have been looking into 'newcrossf' function and the way it calculates coherence for epoched data. Basically, it uses the 'timefreq' function to calculate the time/frequency decomposition the data.  'timefreq' function treats the epoched data as a continuous one:

X = reshape(X, g.frame, g.trials);
[alltfX freqs timesout] = timefreq(X, g.srate, spectraloptions{:});

Y = reshape(Y, g.frame, g.trials);
[alltfY] = timefreq(Y, g.srate, spectraloptions{:});

and calculates the its spectrum using the whole data which is now concatenated version of all trials.  So, for each of channel's pair (X and Y , for example) the spectrum is calculated as described above and then the joint time-freq decomposition is calculated for coherence value.

coherres = sum(alltfX .* conj(alltfY), 3) ./ sqrt( sum(abs(alltfX).^2,3) .* sum(abs(alltfY).^2,3) );

However, similar to the ERSP concept, each trial/epoch might be different than others [because of perturbations in subjects' mental status, mental fatigue, etc] and thus I think it is more appropriate to calculate the coherence for each trial first and then make the average across trials.

Any thoughts?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20150720/6263587d/attachment.html>

More information about the eeglablist mailing list