import numpy as np
import matplotlib.pyplot as plt

#EXO 2

L='1111 1010 0011 0100 0010 1001 1100 1101 0011 0101 0001 1000 1010 1111 0100'

def conv(x):
    return int(str(x),2)

def signal(L,N,cal,t):
    Y=[]
    q=cal/((2**N)-1)
    code=L.split()
    for k in code:
        Y.append((conv(k))*q)
    X=np.linspace(0,t,len(code)) 
    plt.plot(X,Y)
     

def echant(L,N,cal,t):
    tps=0
    X=[0]
    Y=[]
    q=cal/((2**N)-1)
    code=L.split()
    for k in code:
        Y.append((conv(k)-1)*q)
        Y.append((conv(k)-1)*q)
    for i in range(len(code)-1):
        tps+=t/len(code)
        X.append(tps)
        X.append(tps)
    X.append(tps)
    plt.plot(X,Y)
    return X,Y

# comparaison des 2 courbes (qui ne colle pas totalement puisque 
# la fonction signal ne retroune pas la courbe réelle)

def echant_signal(L,N,cal,t):
    return echant(L,N,cal,t) and signal(L,N,cal,t)

