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