Esempio n. 1
0
    taus = np.zeros((ndp-window_len)/(window_len-overlap))
    start = 0
    for i in range(len(taus)): #(0,ndp-window_len,window_len-overlap)):
        ar1 = x1[start:start+window_len]
        ar2 = x2[start:start+window_len]
        xcorr = np.correlate(ar1,ar2,mode="same")
        tau = xcorr.argmax()-xcorr.shape[0]/2
        taus[i]=tau
        start += window_len-overlap
    #print taus, taus.mean(),taus.std()
    t,p = ttest_1samp(taus,0)
    return (t,p), taus, np.tanh(t)


if __name__ == "__main__":
    import pylab as p
    from eegpy.models.roessler import TwoRoessler

    for e in np.arange(-0.2,0.2,0.01):
        if e<0:
            tworoe = TwoRoessler(omega1=1.0,omega2=1.0,e1=-e,e2=0.0)
        else:
            tworoe = TwoRoessler(omega1=1.0,omega2=1.0,e1=0.0,e2=e)
        signal6d = tworoe.integrate(np.arange(100,509.6,0.1))
        signal1 = signal6d[:,0]
        signal2 = signal6d[:,3]
        (t,p),taus,mymeasure = xcorr_stability(signal1,signal2,500,490)
        print e, ">>>", t,p,mymeasure


Esempio n. 2
0
         (1000)) * rausch
     p.subplot(10, 1, i_r + 1)
     p.plot(ar1)
     p.plot(ar2)
     d = perm_d(ar1, ar2, w=4, t=50)
     D = perm_D(ar1, ar2, w=4, t=50)
     p.text(10,
            -0.5,
            "d=%.2f, D=%.2f" % (d, D),
            bbox={
                "fc": "w",
                "alpha": 0.7
            })
 p.figure(2)
 for i_e, e in enumerate(np.arange(0, 0.4, 0.04)):
     tr = TwoRoessler(e1=e, e2=e)
     ar = tr.integrate(np.arange(0, 1000, 0.1))[-4096:]
     ar1 = ar[:, 0]
     ar2 = ar[:, 3]
     p.subplot(10, 1, i_e + 1)
     p.plot(ar1)
     p.plot(ar2)
     d = perm_d(ar1, ar2, w=4, t=50)
     D = perm_D(ar1, ar2, w=4, t=50)
     p.text(10,
            -0.5,
            "d=%.2f, D=%.2f" % (d, D),
            bbox={
                "fc": "w",
                "alpha": 0.7
            })
Esempio n. 3
0
    #TODO: check sanity of window_len and overlap
    ndp = x1.shape[0]  #number of datapoints
    taus = np.zeros((ndp - window_len) / (window_len - overlap))
    start = 0
    for i in range(len(taus)):  #(0,ndp-window_len,window_len-overlap)):
        ar1 = x1[start:start + window_len]
        ar2 = x2[start:start + window_len]
        xcorr = np.correlate(ar1, ar2, mode="same")
        tau = xcorr.argmax() - xcorr.shape[0] / 2
        taus[i] = tau
        start += window_len - overlap
    #print taus, taus.mean(),taus.std()
    t, p = ttest_1samp(taus, 0)
    return (t, p), taus, np.tanh(t)


if __name__ == "__main__":
    import pylab as p
    from eegpy.models.roessler import TwoRoessler

    for e in np.arange(-0.2, 0.2, 0.01):
        if e < 0:
            tworoe = TwoRoessler(omega1=1.0, omega2=1.0, e1=-e, e2=0.0)
        else:
            tworoe = TwoRoessler(omega1=1.0, omega2=1.0, e1=0.0, e2=e)
        signal6d = tworoe.integrate(np.arange(100, 509.6, 0.1))
        signal1 = signal6d[:, 0]
        signal2 = signal6d[:, 3]
        (t, p), taus, mymeasure = xcorr_stability(signal1, signal2, 500, 490)
        print e, ">>>", t, p, mymeasure
Esempio n. 4
0
# -*- coding: utf-8 -*-
u"""
Create some artificial data using coupled Rößler-oszillators.
"""
import numpy as np
import matplotlib.pyplot as plt
from eegpy.models.roessler import TwoRoessler

model_system = TwoRoessler(e1=0.03, e2=0.03)
data1 = model_system.integrate(np.arange(0, 500, 0.1))

from eegpy.analysis.phases import phase_coherence
print phase_coherence(data1[:, 0], data1[:, 3])

model_system.e1 = 0.07
model_system.e2 = 0.07
data2 = model_system.integrate(np.arange(0, 500, 0.1))
print phase_coherence(data2[:, 0], data2[:, 3])

data = np.concatenate([data1, data2], 0)
for i in range(3):
    plt.subplot(3, 1, i + 1)
    plt.plot(data[:, i], "k-")
    plt.plot(data[:, i + 3], "b-")

plt.show()
Esempio n. 5
0
    #from eegpy.analysis.entropy.symbols import make_permutation_symbols
    from eegpy.models.roessler import TwoRoessler
    import pylab as p
    p.figure(1)
    for i_r,rausch in enumerate(np.arange(0,3,0.3)):
        ar1 = np.sin(np.arange(0,100,0.1)) + np.random.random((1000))*rausch
        ar2 = np.sin(np.arange(0,100,0.1)) + np.random.random((1000))*rausch
        p.subplot(10,1,i_r+1)
        p.plot(ar1)
        p.plot(ar2)
        d = perm_d(ar1,ar2,w=4,t=50)
        D = perm_D(ar1,ar2,w=4,t=50)
        p.text(10,-0.5,"d=%.2f, D=%.2f"%(d,D),bbox={"fc":"w","alpha":0.7})
    p.figure(2)
    for i_e,e in enumerate(np.arange(0,0.4,0.04)):
        tr = TwoRoessler(e1=e,e2=e)
        ar = tr.integrate(np.arange(0,1000,0.1))[-4096:]
        ar1 = ar[:,0]
        ar2 = ar[:,3]
        p.subplot(10,1,i_e+1)
        p.plot(ar1)
        p.plot(ar2)
        d = perm_d(ar1,ar2,w=4,t=50)
        D = perm_D(ar1,ar2,w=4,t=50)
        p.text(10,-0.5,"d=%.2f, D=%.2f"%(d,D),bbox={"fc":"w","alpha":0.7})


    #s1 = make_permutation_symbols(ar,4,1)

    #probs = prob(s1,symbols="w4")
    #print probs, probs.sum()
# -*- coding: utf-8 -*-
u"""
Create some artificial data using coupled Rößler-oszillators.
"""
import numpy as np
import matplotlib.pyplot as plt
from eegpy.models.roessler import TwoRoessler

model_system = TwoRoessler(e1 = 0.03, e2=0.03)
data1 = model_system.integrate(np.arange(0,500,0.1))


from eegpy.analysis.phases import phase_coherence
print phase_coherence(data1[:, 0], data1[:,3])

model_system.e1 = 0.07
model_system.e2 = 0.07
data2 = model_system.integrate(np.arange(0,500,0.1))
print phase_coherence(data2[:, 0], data2[:,3])   
    
data = np.concatenate([data1, data2],0)
for i in range(3):
    plt.subplot(3,1,i+1)
    plt.plot(data[:,i], "k-")
    plt.plot(data[:,i+3], "b-")
    
plt.show()