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
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 })
#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
# -*- 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()
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()