Dear Mike (and other readers),
I have computed cross-channel ISPC-trials using FFT with Welch's overlapping windows method.
Everything looks alright to me and the results go in the expected directions, but since I could not find this exact procedure described anywhere I thought about asking your opinion :)
Shortly, the reason why I want to average across overlapping windows is that I also computed magnitude squared coherence (using mscohere() function of matlab), which uses Welch's method and therefore I wanted to be consistent and use a similar procedure for ISPC-trials.
1. First of all, I select overlapping segments within my signals.
2. I apply a Hanning windowing function to each overlapping segment.
3. I compute the FFT of each overlapping segment, 0-padding the data and scaling the output of the FFT by its length. If I understood it correctly the scaling is actually not necessary if I am just interested in the phase angles, or if I use power values with a baseline.
4. The meaningful frequencies of the FFT are as many as half plus 1 of the frequencies contained in the FFT output and range from 0 to the Nyquist/2 frequency.
5. I compute the phase angle for each overlapping segment in all frequencies.
6. Now I want to average the phase angles across overlapping segments, which is the idea of Welch's method. In order to do that I create complex unit vectors using the phase angles as arguments: e^ik. I compute a standard mean between these complex vectors.
7. Then I proceed as described in chapter 26. I compute the phase angle from each of these complex unit vectors and subtract the phase angle from channel x to phase angle from channel y.
8. Since I have done this for each trial and I want to average across trials, I create once again complex unit vectors using the difference phase angles and average them. Then I just take the length of such complex vectors and that is the cross-channel ISPC-trials that I am looking for..
..does this sound correct to you?
Thanks in advance for your time!
Germano