import numpy as np
from pylab import *
f1=60
Ne=10000
fe=10000.
Te=1/fe
Ta=Te*Ne
C=np.array([1/Ne]+[2/Ne for k in range(Ne//2)]) # normalisation

def s(t):
    return 1 + np.sign(np.sin(2*np.pi*f1*t))

t_ech=np.array([n*Te for n in range(Ne)])
s_ech=s(t_ech)
spec=abs(np.fft.rfft(s_ech)*C)
f=np.fft.rfftfreq(Ne,Te)

specopie=spec.copy()
specopie[90:]=0
s_filtre=np.fft.irfft(specopie/C,Ne)

figure('temporel')
plot (t_ech,s_ech,'ro',linestyle='-')
axis([0,3/f1,-2.5,2.5]);grid();

figure('fréquentiel')
plot(f,spec,-0.1,1.2)

figure('fréquentiel après')
plot(f,specopie,-0.1,1.2)

figure('temporel après')
plot (t_ech,s_filtre,'ro',linestyle='-')
axis([0,3/f1,-2.5,2.5]);grid();

show()
