I need to compute coherence between a bunch of different signals, for a bunch of different trials, and it seems like cohere_pairs() is exactly what I should use. However, I’m a little confused about the output. If I use cohere() to produce the coherence values for two signals, I get an array of coherence values, one for each frequency in the frequency array. However, if I use cohere_pairs() with just that pair specified, I get the same frequency array but a single value for that pair. See the example output below:
X = np.random.rand(1024,2)
c, f = mpl.mlab.cohere(X[:,0], X[:,1])
c.shape, f.shape
((129,), (129,))
c, p, f = mpl.mlab.cohere_pairs(X, [(0,1)])
f.shape
(129,)
c
0.67176286373547267
From reading the doc strings I was under the impression that the value ‘c[(i,j)]’ (output from cohere_pairs) should be the same output you would get from running ‘cohere(X[:,i], X[:,j])’. Is this a bug, or am I missing something?
Thanks,
-Barrett
···
–
Barrett Heyneman
PhD Student
Stanford University
Mechanical Engineering, Design Division