Produit de convolution#

Génération des signaux avec la fonction numpy.where. Il est utile de définir au préalable un tableau contenant les abscisses.

# Abscisses de -10 à 10 (penser à rajouter +1 à la limite de droite)
n = np.arange(-10, 10+1)

# Signal x
x = np.where( n==1, 1, 0) + np.where( n==-1, -1, 0)

# Signal y
y = np.where( abs(n)<=1, 2, 0)

On affiche les signaux pour vérifier qu’ils sont bien construits…

../_images/62f70fc2a80383517231fc7863ab7986437575568b9d6518edd4da3c56920034.png

La convolution est obtenue avec numpy.convolve. Attention à bien choisir la valeur du troisième paramètre (mode) !

z = np.convolve(x, y, "same")

Résultat :

../_images/83803064b3a16ea98ac4892edffd62da790c25bb9887354f83a4f1bc838d7946.png

Le résultat obtenu peut s’interpréter comme la somme des deux signaux ci-dessous, chacun d’eux étant la convolution de \(y\) avec l’une des deux impulsions de \(x\) : l’impulsion en \(-1\) donne le signal orange et l’impulsion en \(+1\) donne le signal vert.

../_images/e1512e206ac3c6402c535842b740feb764477ad590574c1809a6240073b1711a.png