import numpy as np ; import matplotlib.pyplot as plt
# importation des mesures
mesures = np.loadtxt('BO200imprimante.csv', delimiter=';', skiprows=1, dtype=str)
mesures = np.char.replace(mesures, ',', '.');
mesures = mesures.astype(float)
temps = mesures[:,0]; vitesse = mesures[:,2]

# moyenne mobile (glissante) arithmétique
N=20 ; ideb = (N-1)//2 ; m_ma=[] # initialise la liste de moyenne vide
for i in range(ideb,len(vitesse)-ideb): # incrémentation entre les valeurs calculables
	m_ma.append(sum(vitesse[i-ideb:i+ideb+1])/N)
for i in range(0,ideb): # ajoute ce qui manque au début
	m_ma.insert(i,vitesse[i])
for i in range(len(vitesse)-ideb,len(vitesse-1)): # ajoute ce qui manque à la fin
	m_ma.insert(i,vitesse[i])

# moyenne mobile exponentielle
N=20 ; alpha=2/(N+1); m_me=[vitesse[0]] # initialise la liste de moyenne à 1ère vitesse
for i in range(1,len(vitesse)): # commence le calcul à la deuxième vitesse
	m_me.append(alpha*vitesse[i]+(1-alpha)*m_me[i-1])

# Affichage des 3 courbes
plt.plot(temps, vitesse, label=" vitesse mesurée (mm/s) ")
plt.plot(temps, m_ma, label=" vitesse moy glissante arit ")
plt.plot(temps, m_me, label=" vitesse moy glissante exp ")
plt.xlabel("Temps (s)")
plt.title("Vitesse tête Imprimante") ; plt.legend() ; plt.grid(True) ; plt.show()
