import numpy as np
import matplotlib.pyplot as plt
import math
import scipy.signal as sig
from scipy.fftpack import fft

pi=np.pi

# paramètres du signal triangulaire analogique
Um=4
Umoy=0
f1=100


# Echantillonnage
fe=1000    # fréquence échantillonnage
N=5002
t=np.linspace(0,N/fe,N)

# expression numérique du signal analogique

s = Umoy+Um*sig.sawtooth(2*pi*f1*t,0.5)


#paramètres du CAN
Umin=??? #valeur minimale de la tension pleine échelle
DU=??? #valeur de tension pleine échelle
n=??? #valeur de la résolution du CAN

Umax=DU+Umin # Valeur maximale
q=??????    #expression littérale du pas de quantification


###Graphes
plt.figure('0')
plt.title('Représentation temporelle')
plt.plot(t,s,'k-', label='signal analogique')
plt.plot(t,s,'k+', label='signal échantillonné')

# signal échantillonné et bloqué
n2=int(1.5*fe/f1)
for i in range (0,n2,1):
    plt.hlines(s[i],t[i],t[i+1], colors='g', linestyles='solid')

# valeurs quantifiées autorisées
niveau=[]
for i in range (0,2**n+1,1):
    y=Umin+i*q
    niveau=np.append(niveau,y)
    plt.axhline(y,color='k',linewidth='1',linestyle='--')



plt.legend()
plt.xlim([0,1.5/f1])
plt.ylim([Umin-1,Umax+1])
plt.xlabel('t(s)')
plt.ylabel('tension(V)')
plt.grid()

plt.show()





