import pandas as pd import numpy as np import statistics as stats #Leo el archivo txt file="test_1.txt" Misdatos = np.loadtxt(file, delimiter="\t",skiprows=4) #Datos ordenados col1 : x, col 2: y1 x = Misdatos[:,0] y1 = Misdatos[:,1] #print (Misdatos) import matplotlib.pyplot as plt plt.ion() #%matplotlib notebook plt.close("all") #Grafico los datos del archivo plt.figure(1) plt.plot(x,y1,'.-') plt.grid('on'); plt.xlabel('t [seg]'); plt.ylabel('Señal Photogate [u.a.]'); plt.show() #extraigo los datos donde se produce el salto de la señal del fotosensor #grafico los datos extraidos der = np.diff(y1) plt.plot(x[1:],der,'b-'); plt.plot(x[1:],der,'b.'); plt.show() idx = np.where(der>2) xm = x[idx] #calculo el periodo T=[] N=[] n=len(xm) i=0 xi=0 while i < (n-2): xi=(xm[i+2]-xm[i]) T.append(xi) N.append(i) i=i+2 #calculo de la incertidumbre del periodo individual Terror=2*(x[1]-x[0]) Tmedio=stats.mean(T) # media sigma=stats.pvariance(T) std_err= stats.pstdev(T) # error del promedio Tmedio_error=std_err+Terror print("periodo medio=", Tmedio, ", incerteza=",Tmedio_error) #grafico T vs numero de periodo plt.figure(2) plt.errorbar(N,T,xerr=None,yerr=Terror,fmt="o") plt.grid('on'); plt.xlabel('Numero de tirada'); plt.ylabel('Periodo [seg]'); plt.show()