
import pycan.main as pycan
from matplotlib.pyplot import *
import numpy
import math
import numpy.fft
import os
import scipy.signal

os.chdir("C:/Users/fred/Documents/electro/TP/passeBande")
nom = "signal-6"

can = pycan.Sysam("SP5")
can.config_entrees([0,1],[1.0,10.0]) # calibre de 1 V pour l'entree, 10 V pour la sortie

fe=20000.0
T=5.0
te=1.0/fe
N = int(T/te)
print(N)
can.config_echantillon(te*10**6,N) # periode d'echantillonnage en microsecondes et nombre de points 
can.acquerir()
temps = can.temps()
entrees = can.entrees()
t0=temps[0]
u0=entrees[0]
t1=temps[1]
u1=entrees[1]
numpy.savetxt('%s.txt'%nom,[t0,u0,t1,u1])
te = t0[1]-t0[0]
fe = 1.0/te
N = t0.size
T = t0[N-1]-t0[0]
can.fermer()

figure()
plot(t0,u0,'b')
plot(t1,u1,'r')
xlabel("t (s)")
ylabel("u (V)")
axis([0.1,0.12,-10,10])
grid()
savefig("%s-signal.pdf"%nom)

tfd0=numpy.fft.fft(u0*scipy.signal.get_window("hann",N))
a0 = numpy.absolute(tfd0)/N
tfd1 = numpy.fft.fft(u1*scipy.signal.get_window("hann",N))
a1 = numpy.absolute(tfd1)/N
f=numpy.arange(N)*1.0/T
figure()
plot(f,a0,'b')
xlabel("f (Hz)")
ylabel("A")
axis([0,fe,0,a0.max()])
grid()
title("avant filtrage")
savefig("%s-spectre-A.pdf"%nom)
figure()
plot(f,a1,'r')
xlabel("f (Hz)")
ylabel("A")
axis([0,fe,0,a1.max()])
grid()
title("apres filtrage")
savefig("%s-spectre-B.pdf"%nom)

show()
                  