from cmath import *
from pylab import *
f1=600.;T=1/f1;f0=250.;w0=2.*pi*f0;w1=2.*pi*f1;fe=100*f1;Te=1/fe;Ne=400; # parametres
te=linspace(0,Ne*Te,Ne) # les instants d'echantillonnage 
def e(t):return 2*(cos(2*pi*f1*t)) # le signal d'entrée
def H(w):return (1-complex(0,1)*w/w0)/(1+complex(0,1)*w/w0) # la fonction de transfert
print(abs(H(w1)))
def svraie(t,w):return 2*abs(H(w))*(cos(w*t+phase(H(w))))# le signal vrai de sortie en régime établi
s0=0
snum=[s0]
derniers=s0
for i in range(Ne-1):
    suivants=derniers*(1-w0*Te)+e(i*Te)*(1+w0*Te)-e((i+1)*Te)
    snum.append(suivants)
    derniers=suivants
plot(te,e(te),lw=2,label ='e(t)')

plot(te, snum,'x',label='snum') 
plot(te,svraie(te,w1),lw=2,label ='s vraie(t)')
axis([0,Ne*Te,-2.5,2.5]);grid();legend() # cadrage
show()