
 import pycanum.main as pycan
import numpy
from numpy.fft import fft
from matplotlib.pyplot import *
sys=pycan.Sysam("SP5")
sys.ouvrir()

te=1e-6
T=5e-2 # durée de l'acquisition
N=int(T/te)
sortie1 = numpy.zeros(N)
sortie2 = numpy.zeros(N)
duree=4e-5 # durée de l'impulsion
n=int(duree/te)
debut=1e-3 # début de l'impulsion
n1=int(debut/te)
sortie1[n1:n1+n] = 10

sys.config_entrees([0,1],[10,10])
sys.config_echantillon(te*1e6,N)
sys.acquerir_avec_sorties(sortie1,sortie2)
temps=sys.temps()
tensions=sys.entrees()
t=temps[0]
u0=tensions[0]
u1=tensions[1]
sys.fermer()


figure()
plot(t,u0)
plot(t,u1)
xlabel("t (s)")
ylabel("u (V)")
grid()
axis([0,t.max(),-10,10])

tfd0 = fft(u0)*2/N
spectre0 = numpy.absolute(tfd0)
tfd1 = fft(u1)*2/N
freq = numpy.arange(N)*1.0/T
spectre1 = numpy.absolute(tfd1)

figure()
plot(freq,spectre0,".")
plot(freq,spectre1,".")
xlabel("f (Hz)")
ylabel("Volt")
grid()
axis([0,1e4,0,spectre1.max()])

figure()
gain = spectre1/spectre0
plot(freq,20*numpy.log10(gain))
xlabel("f (Hz)")
ylabel("dB")
xscale('log')
grid()
xlim(1e2,1e4)
ylim(-60,40)

numpy.savetxt("reponseImp-G30.txt",numpy.array([t,u0,u1]).T,fmt='%0.4e',header='t(s) u0(V) u1(V)',delimiter='\t')

show()
                