# -*- coding: utf-8 -*- """Copy of Clase Resorte.ipynb Automatically generated by Colaboratory. Original file is located at https://colab.research.google.com/drive/1X0RhTOHpihk-UDZuceZe_uH2gv8cIDDC Importo las librerías que voy a usar """ import numpy as np import matplotlib.pyplot as plt """Genero una señal de mentira como ejemplo""" t=np.linspace(0,10,2000) F=np.sin(t*4)+np.random.rand(2000) plt.plot(t,F) """Ahora uno para buscar máximos y calcular período""" def periodo_fp(x,y,distancia=20): from scipy.signal import find_peaks plt.figure() plt.plot(x,y) #trazo datos max,_ = find_peaks(y,distance=distancia) #busco máximos t_max=x[max] #busco los instantes de los máximos plt.plot(t_max,y[max],'o') # agrego en la figura los máximos hallados para chequear periodos=np.diff(t_max) #tomo cada período como la diferencia temporal entre máximo y máximo periodo=np.mean(periodos) #Calculo promedio perDS=np.std(periodos) #Calculo desvío estándar return periodo, perDS periodo_fp(t,F,distancia=200)