import numpy as np
import matplotlib.pyplot as plt
import math as m

fe=4000 # fréquence d'échantillonnage (en Hz)
Te=1/fe # période d'échantillonnage (en s)
Tacq=1 # durée d'acquisition (en s)
N=Tacq*fe # nombre de points

# Amplitudes (Ei en V) et fréquences (fi en Hz) des composantes du signal d'entrée e(t)
E1=2
E2=0.5
f1=10
f2=500

# Listes des instants et des valeurs du signal d'entrée e(t)
t=np.arange(0,Tacq,Te)
e1=np.array([E1*np.cos(2*np.pi*f1*ti) for ti in t])
e2=np.array([E2*np.cos(2*np.pi*f2*ti) for ti in t])
e=e1+e2

# Parametres du filtre en USI
fc = 

# Condition initiale sur la tension de sortie du filtre
s0 = 0

# Creation d’une liste pour la tension de sortie
s = [0 for i in range(N)]

# Initialisation
s[0] = 
# Filtrage passe-bas par la methode d’Euler 
for i in range():
    s[i+1] = 

# Representations graphiques
plt.plot(t,e,"--")
plt.plot(t,e1,"-.")
plt.plot(t,s,"-")
plt.legend(["e(t)","e1(t)","s(t)"],loc="best",fontsize=15)
plt.xlabel("t (s)")
plt.title("Filtrage numérique passe-bas",fontsize=15)
plt.grid()
plt.show()

# TFD des signaux e(t) et s(t)
fourier_e = # TFD de e(t)
fourier_s = # TFD de s(t)
freq=np.fft.rfftfreq(N,d=Te)



# Tracé des spectres des signaux e(t) et s(t)
plt.plot()
plt.xlabel('f (Hz)')
plt.ylabel('amplitudes (V)')
plt.legend(["spectre de e(t)","spectre de s(t)"],loc="best",fontsize=15)
plt.grid()
plt.show()