Exercices convolution chapter 5 -Traitement de signal - Tél

Exercices convolution chapter 5 -Traitement de signal  - Tél

Exercices convolution chapter 5 -Traitement de signal - Tél

Télécharger PDF

Convolution

Objectifs du programme (OP) abordés par l'activité

  • Capacité à appliquer les connaissances en mathématiques et sciences pour résoudre des problèmes d'ingénierie.
  • Capacité à identifier, formuler et résoudre des problèmes d'ingénierie.
  • Capacité à utiliser les techniques, compétences et outils d'ingénierie modernes nécessaires à la pratique de l'ingénierie.

Résultats d'apprentissage visés par l'activité

  • Écrire un programme MATLAB qui calcule la convolution de séquences d'entrée.
  • Effectuer la convolution de séquences à temps discret.
  • Démontrer la vérification des propriétés de la convolution.

Contexte

La convolution est l'une des quatre opérations les plus importantes du traitement numérique du signal (DSP), les trois autres étant la corrélation, les transformées discrètes et le filtrage numérique. La convolution nous permet de calculer le signal de sortie y(n) d'un système linéaire invariant dans le temps (LTI), étant donné son signal d'entrée x(n) et sa réponse impulsionnelle h(n) comme modèle du système. Ceci est illustré schématiquement ci-dessous. Nous verrons plus tard dans ce cours que les filtres numériques que nous concevrions sont représentés comme des systèmes LTI.

signal d'entrée x(n) ---> Système LTI h(n) ---> signal de sortie y(n) = x(n)⊛h(n)

La convolution y(n) de deux séquences h(n) et x(n) est donnée par la formule suivante :

y(n) = ∑k=0M-1 h(k) ⋅ x(n-k) pour n = 0, 1, 2, ..., (M-1)

où M = N1 + N2 - 1, N1 est la longueur de la séquence 1 et N2 est la longueur de la séquence 2.

Les propriétés importantes de la convolution incluent les propriétés d'identité, de décalage, de commutativité, d'associativité et de distributivité. Ces propriétés de la convolution sont énumérées ci-dessous :

PropriétéÉquation
Identitéx(n) ⊛ δ(n) = x(n)
Décalagex(n) ⊛ δ(n−n0) = x(n−n0)
Commutativitéx(n) ⊛ h(n) = h(n) ⊛ x(n)
Associativité{x(n) ⊛ h1(n)} ⊛ h2(n) = x(n) ⊛ {h1(n) ⊛ h2(n)}
Distributivitéx(n) ⊛ {h1(n) + h2(n)} = x(n) ⊛ h1(n) + x(n) ⊛ h2(n)

Calcul de la Convolution

Dans MATLAB, la manière la plus simple de calculer la convolution de deux séquences est d'appeler la fonction intégrée « conv ». La syntaxe de la commande « conv » est :

y = conv(x, h)

où « x » et « h » sont des séquences ou des vecteurs d'entrée.

Exemple 1 : Utilisation de la fonction intégrée « conv »

Supposons que nous voulions calculer la convolution des séquences suivantes :

x(n) = [1, 2, 3, 4, 5]

h(n) = [-0.5, 1, -0.2]

Dans la fenêtre de commande MATLAB, les commandes et la réponse de MATLAB pour le calcul souhaité sont :

>> x=[1,2,3,4,5];h=[-0.5,1,-0.2];
>> y=conv(x,h)
y = -0.5000 0 0.3000 0.6000 0.9000 4.2000 -1.0000

Le calcul de la convolution à l'aide de la commande « conv » peut également être interprété comme la multiplication polynomiale des deux vecteurs d'entrée représentant leurs coefficients polynomiaux respectifs.

Par exemple, si nous avons une séquence de 6 points x(n) et une séquence de 3 points h(n). La convolution de x(n) et h(n) peut également être exprimée comme une multiplication matricielle. Dans cette équation de multiplication matricielle, la matrice composée des échantillons de x(n) est également appelée matrice de Toeplitz. Dans MATLAB, la commande « toeplitz(C,R) », où « C » est la première colonne et « R » est la première ligne, génère la matrice de Toeplitz souhaitée.

Exemple 2 : Implémentation manuelle de la convolution via la matrice de Toeplitz

Sans utiliser la commande « conv » de MATLAB, nous allons maintenant écrire notre propre fonction M-file de convolution qui utilise la multiplication matricielle impliquant une matrice de Toeplitz. Pour accomplir cette tâche, nous pouvons construire un programme MATLAB.

Pour tester notre fonction M-file, nous pouvons taper les commandes suivantes et vérifier la réponse de MATLAB dans la fenêtre de commande MATLAB :

>> x=[1,2,3,4,5];h=[-0.5,1,-0.2];
>> y=func_5_1(x,h)
y = -0.5000 0 0.3000 0.6000 0.9000 4.2000 -1.0000

On observe de l'interaction ci-dessus que nous obtenons exactement la même réponse qu'avec l'Exemple 1.

Exercice 1 : Implémentation manuelle via combinaison vectorielle

Il peut être facilement vérifié que la convolution d'une séquence de 6 points x(n) et d'une séquence de 3 points h(n) peut être exprimée comme une combinaison vectorielle. Sans utiliser les commandes « conv » et « toeplitz » dans MATLAB, écrivez votre propre fonction M-file de convolution qui utilise le processus de combinaison vectorielle. Enregistrez votre travail sous le nom « exer_5_1.m ».

Question 1 : Quel est le résultat de votre fonction pour les entrées x(n) = [1, 2, 3, 4, 5] et h(n) = [-0.5, 1, -0.2] ?

Convolution et ses propriétés

Plus tôt dans ce chapitre, certaines propriétés importantes de la convolution ont été présentées. Nous allons maintenant vérifier certaines de ces propriétés en calculant la convolution de certains signaux à temps discret.

Exemple 3 : Vérification de la propriété de décalage

Considérons les signaux à temps discret suivants :

x(n) = 5sin[2π(n/30)], pour n = 0, 1, 2, ..., 74

h(n) = δ(n-15), pour n = 0, 1, 2, ..., 74

Supposons que nous voulions calculer la convolution y(n) = h(n) ⊛ x(n), puis créer des sous-graphiques des signaux x(n), h(n) et y(n). Un programme MATLAB pourrait effectuer la tâche souhaitée.

Si nous exécutons ce script, des sous-graphiques de signal seraient produits. On observe que le signal h(n) est une fonction delta décalée, le retard étant égal à 15 unités de temps. On observe également que le signal de convolution y(n) est juste une version retardée du signal x(n). Ainsi, cet exemple nous permet de vérifier la propriété de décalage de la convolution : x(n) ⊛ δ(n−n0) = x(n−n0).

Exemple 4 : Vérification de la propriété de commutativité

Reprenons les signaux x(n) et h(n) de l'Exemple 3. Vérifions maintenant la propriété de commutativité de la convolution en calculant et en traçant les résultats des équations de convolution suivantes :

y1(n) = ∑k=0M-1 h(k) ⋅ x(n-k) pour n = 0, 1, 2, ..., (M-1)

y2(n) = ∑k=0M-1 x(k) ⋅ h(n-k) pour n = 0, 1, 2, ..., (M-1)

Pour accomplir cette tâche, nous pouvons construire un M-file. Dans ce script, l'ordre des opérandes « x » et « h » serait inversé pour « y2 » par rapport à « y1 ». Cela constituerait un test de commutativité. Les sorties « y1 » et « y2 », lorsqu'elles sont représentées graphiquement, sont égales l'une à l'autre, ce qui démontre que la convolution est commutative.

Exercice 2 : Application des propriétés de convolution

Écrivez un script M-file qui génère/calcule et trace (dans une matrice de 5x2 d'axes) les signaux suivants :

  • x1(n) = 5u(n) − 3u(n−15), pour n = 0 à 40;
  • x2(n) = −ur(n−15), pour n = 0 à 40;
  • x3(n) = (0.95)n, pour n = 0 à 40;
  • y1(n) = x1(n)⊛x2(n)
  • y2(n) = x1(n)⊛x3(n)
  • y3(n) = x2(n)⊛x3(n)
  • y4(n) = y1(n)⊛x3(n)
  • y5(n) = x1(n)⊛y3(n)
  • y6(n) = y1(n)+y2(n)
  • y7(n) = x1(n)⊛[x2(n)+x3(n)]

Enregistrez votre travail sous le nom « exer_5_2.m ».

Question 2 : Parmi les signaux y1(n) à y7(n), lesquels sont identiques ? Expliquez leur égalité en citant correctement une propriété de convolution associée.

Foire Aux Questions (FAQ)

À quoi sert la convolution en traitement numérique du signal (DSP) ?

La convolution est utilisée pour calculer le signal de sortie d'un système linéaire invariant dans le temps (LTI) lorsque son signal d'entrée et sa réponse impulsionnelle sont connus. Elle est fondamentale pour des opérations comme le filtrage numérique, permettant de modéliser comment un système modifie un signal.

Comment peut-on calculer la convolution dans MATLAB ?

La méthode la plus simple est d'utiliser la fonction intégrée « conv ». Par exemple, y = conv(x, h) calculera la convolution des séquences d'entrée x et h. Il est également possible de l'implémenter manuellement via une multiplication matricielle (utilisant une matrice de Toeplitz) ou une combinaison vectorielle, offrant ainsi une compréhension plus approfondie de l'algorithme sous-jacent.

Quelles sont les propriétés importantes de la convolution ?

Les propriétés clés de la convolution sont l'identité, le décalage, la commutativité, l'associativité et la distributivité. Ces propriétés sont essentielles pour manipuler et simplifier les expressions de convolution dans l'analyse des systèmes, démontrant par exemple que l'ordre des signaux n'affecte pas le résultat de la convolution (commutativité) ou qu'elle se distribue sur l'addition.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne