import numpy as np
import matplotlib.pyplot as plt
from math import *

# ------------------------------------
# Étape 1 : construction du signal d'entrée
# ------------------------------------
fe = 1000 # fréquence fondamentale du signal d'entrée, en hertz
we = 2*pi*fe
Te = 1/fe

# Liste des amplitudes de chaque harmonique.
# c[0] est la valeur moyenne, c[1] l'amplitude du fondamental, etc.
c_entree   = [0.5, 1]

# Liste des phases à l'origine de chaque harmonique.
# phi[0] n'est pas utilisé, phi[1] correspond au fondamental, etc.
phi_entree = [0,0]

# c et phi doivent être de mêmes longueurs.

# ---
def signal(c,phi,t):
    """c et phi : liste des amplitudes et phases à l'origine du spectre du signal,
       t : liste qui contient les instants t[i] auxquels on calcule le signal.
       Retourne : une liste "signal" qui contient les valeurs du signal aux instants t[i]."""
    signal = []    
    
    for i in range(len(t)):  # à chaque itération, on calcule la valeur du signal au temps t[i]
        val = c[0]
        for n in range(1,len(c)):     # n vaut 1, 2, ..., N-1
            val = val + c[n]*cos(n*we*t[i]+phi[n])

        signal.append(val) # on ajoute val à la liste "signal"
    
    return signal


# ---
t = np.linspace(0,5*Te,500) # création d'un tableau de 500 instants t[i] allant de 0 à 5*Te.
signal_entree = signal(c_entree,phi_entree,t) # signal_entree contient alors les valeurs du signal aux instants t[i]

plt.figure(1)                    # crée la figure 1
# la suite est à compléter pour répondre à la question 3
