plotallan_phase(plt, phaseB, 1, t, 'go', 'true B phase') print("phaseB") plotallan_phase(plt, phaseC, 1, t, 'bo', 'true C phase') print("phaseC") # clock differences plotallan_phase(plt, phaseAB, 1, t, 'r.', 'AB measurement') print("phaseAB") plotallan_phase(plt, phaseBC, 1, t, 'g.', 'BC measurement') print("phaseBC") plotallan_phase(plt, phaseCA, 1, t, 'b.', 'CA measurement') print("phaseCA") # 3CH estimates (taus, devA, err_a, ns_ab) = allantools.three_cornered_hat_phase(phaseAB, phaseBC, phaseCA, rate, t, allantools.oadev) plt.loglog(taus, devA, 'rv', label='3-C-H estimate for A') (taus, devB, err_b, ns_ab) = allantools.three_cornered_hat_phase(phaseBC, phaseCA, phaseAB, rate, t, allantools.oadev) plt.loglog(taus, devB, 'gv', label='3-C-H estimate for B') (taus, devC, err_C, ns_ac) = allantools.three_cornered_hat_phase(phaseCA, phaseAB, phaseBC, rate, t, allantools.oadev) plt.loglog(taus, devC, 'bv', label='3-C-H estimate for C') print("TCH done.") plt.title('AllanTools three-cornered-hat example') plt.xlabel('Tau / s')
def test_3ch_1(): (t,d,e,n) = at.three_cornered_hat_phase(ab, bc, ca, rate=r, taus='decade', function=at.oadev) np.testing.assert_array_equal(t, expected_decade)
N=10000 rate = 1.0 # white phase noise => 1/tau ADEV d = numpy.random.randn(4*N) phaseA = d[0:N] # numpy.random.randn(N) #pink(N) phaseA = [1*x for x in phaseA] phaseB = d[N:2*N] #numpy.random.randn(N) #noise.pink(N) phaseB = [5*x for x in phaseB] phaseC = d[2*N:3*N] #numpy.random.randn(N) #noise.pink(N) phaseC = [5*x for x in phaseC] phaseAB = [a-b for (a,b) in zip(phaseA,phaseB)] phaseBC = [b-c for (b,c) in zip(phaseB,phaseC)] phaseCA = [c-a for (c,a) in zip(phaseC,phaseA)] (taus,devA) = allantools.three_cornered_hat_phase(phaseAB,phaseBC,phaseCA,rate,t, allantools.mdev) print("TCH devA") plotallan_phase(plt, phaseA, 1, t, 'ro', 'true A phase') print("phaseA") plotallan_phase(plt, phaseB, 1, t, 'go', 'true B phase') print("phaseB") plotallan_phase(plt, phaseC, 1, t, 'bo', 'true C phase') print("phaseC") plotallan_phase(plt, phaseAB, 1, t, 'r.', 'AB measurement') print("phaseAB") plotallan_phase(plt, phaseBC, 1, t, 'g.', 'BC measurement') print("phaseBC") plotallan_phase(plt, phaseCA, 1, t, 'b.', 'CA measurement') print("phaseCA")
rate = 1.0 # white phase noise => 1/tau ADEV d = numpy.random.randn(4 * N) phaseA = d[0:N] # numpy.random.randn(N) #pink(N) phaseA = [1 * x for x in phaseA] phaseB = d[N:2 * N] #numpy.random.randn(N) #noise.pink(N) phaseB = [5 * x for x in phaseB] phaseC = d[2 * N:3 * N] #numpy.random.randn(N) #noise.pink(N) phaseC = [5 * x for x in phaseC] phaseAB = [a - b for (a, b) in zip(phaseA, phaseB)] phaseBC = [b - c for (b, c) in zip(phaseB, phaseC)] phaseCA = [c - a for (c, a) in zip(phaseC, phaseA)] (taus, devA) = allantools.three_cornered_hat_phase(phaseAB, phaseBC, phaseCA, rate, t, allantools.mdev) print("TCH devA") plotallan_phase(plt, phaseA, 1, t, 'ro', 'true A phase') print("phaseA") plotallan_phase(plt, phaseB, 1, t, 'go', 'true B phase') print("phaseB") plotallan_phase(plt, phaseC, 1, t, 'bo', 'true C phase') print("phaseC") plotallan_phase(plt, phaseAB, 1, t, 'r.', 'AB measurement') print("phaseAB") plotallan_phase(plt, phaseBC, 1, t, 'g.', 'BC measurement') print("phaseBC") plotallan_phase(plt, phaseCA, 1, t, 'b.', 'CA measurement')