Académique Documents
Professionnel Documents
Culture Documents
Convolution discrète
6.1 Convolution
Soit une entrée discrète quelconque x[n], qui est tout simplement une série d’impul-
sions d’amplitude variable et décalées dans le temps. Mathématiquement, on représente
1
CHAPITRE 6. CONVOLUTION DISCRÈTE
ceci par :
∞
X
x[n] = x[k]δ[n − k] (6.1)
k=−∞
Par superposition, la sortie y[n] est la somme des réponses impulsionnelles aux entrées
x[n],
X∞
y[n] = x[k]h[n − k] = x[n] ∗ h[n] (6.2)
k=−∞
C’est la définition de la convolution.
La figure 6.1 montre un premier exemple de convolution. L’entrée x[n] est une si-
nusoı̈de additionné d’une rampe. Le système utilisé h[n] est un filtre passe-bas. Le résultat
est un signal où la composante du sinusoı̈de a été fortement atténué : il ne reste que la
rampe. Remarquer aussi la longueur totale de la séquence de sortie : c’est 111 échantillons.
L’entrée est de 81 échantillons, le filtre (le système) est de 31 échantillons. Le nombre
d’échantillons à la sortie est la somme des échantillons de l’entrée et du système, moins 1
(81 + 31 − 1 = 111).
2
0.04 1
1
0.5
0 0.02
0
−1
0 20 40 60 80 0 10 20 30 0 50 100
n n n
La figure 6.2 montre un deuxième exemple de convolution. L’entrée est la même que
l’exemple précédent. Dans ce cas-ci, le système est un filtre passe-haut. La sortie est le
sinusoı̈de : la rampe a été enlevée du signal d’entrée. La longueur du signal de sortie est
la même que dans le premier exemple : 111 échantillons.
1 0.02 0
0
−1
0
−1
0 20 40 60 80 0 10 20 30 0 50 100
n n n
On regarde en premier l’impact de l’entrée sur le système pour produire une sortie.
On considère la définition de la convolution donnée à l’équation 6.2. On prendra comme
exemple un système simple, où l’entrée est composée d’une séquence de 6 échantillons.
Soit le système de la figure 6.3. L’entrée est une séquence de 6 échantillons, le système est
composé de 4 échantillons. On voit alors le résultat de la convolution.
1 1 1
0 0 0
−1 −1 −1
−2 −2 −2
0 2 4 0 1 2 3 0 2 4 6 8
n n n
La longueur de la sortie pour ce système doit être 6 + 4 − 1 = 9, ce qui est le cas (les
échantillons de la sortie varient de n = 0 à n = 8).
Selon l’équation 6.2, la sortie y[n] est obtenue en multipliant chaque échantillon de
l’entrée par le système h[n], puis en faisant la somme. On peut regarder ces contributions
individuelles à la figure 6.4, où on a multiplié h[n] par chaque valeur de l’entrée x[n].
Dans le premier graphe de la figure 6.4, on a multiplié la première valeur de x[n] par
1 1 1
0 0 0
−1 −1 −1
−2 −2 −2
0 2 4 6 8 0 2 4 6 8 0 2 4 6 8
n n n
y4 [n] y5 [n] y6 [n]
2 2 2
1 1 1
0 0 0
−1 −1 −1
−2 −2 −2
0 2 4 6 8 0 2 4 6 8 0 2 4 6 8
n n n
chaque valeur de h[n]. Puisque le premier échantillon de x[n] est zéro, la sortie est zéro.
Les cercles rouge représentent des zéros ajoutés pour compléter la séquence à la bonne
longueur. Ceci est nécessaire pour tous les cas, sauf que l’emplacement des zéros ajoutés
varie. Dans le deuxième graphe, on a multiplié la deuxième valeur de x[n] (x[1] = −1) par
chaque valeur de h[n], et décalé le tout de 1 échantillon. Alors, y2 [0] = 0, y2 [1] = (−1)(1) =
−1, y2 [2] = (−1)(−0.5) = 0.5, y2 [3] = (−1)(−0.25) = 0.25, y2 [4] = (−1)(0) = 0, et les autres
échantillons sont nuls. On répète le processus pour les autres échantillons de l’entrée.
Pour obtenir la sortie globale, il suffit de faire la somme de chaque contribution à la sortie
(y1 +y2 +y3 +y4 +y5 +y6 ). Par exemple, la sortie y[2] = y1 [2]+y2 [2]+y3 [2]+y4 [2]+y5 [2]+y6 [2] =
0 + 1 + 0.5 + 0 + 0 + 0 = 1.5, ce qui est bien le cas dans le graphe de la sortie globale (figure
6.3).
Comme exemple, on regarde quels points dans les sorties individuelles contribuent à
un point dans la sortie. Si on prend le point y[4], on remarque qu’il y a 4 points bleus
qui contribuent à sa valeur, et 2 points rouge. Les 4 points bleus qui contribuent à la
sortie veulent dire que 4 points de l’entrée contribuent. Alors, y[4] = x[1]h[3] + x[2]h[2] +
x[3]h[1] + x[4]h[0].
On prend un autre exemple, comme le point y[7]. Les entrées qui contribuent à cette
sortie sont x[4] et x[5]. Dans ce cas-ci, seulement 2 entrées contribuent à la sortie, au lieu
de 4 pour le point y[4]. C’est la même chose pour le point y[1] : seulement 2 échantillons
de l’entrée contribuent à la sortie. Ces échantillons de sortie sont donc basés sur moins
d’information que les échantillons du centre. En fait, les M − 1 échantillons des bouts, où
M est la longueur du système h[n], sont créés à partir de moins d’échantillons de l’entrée.
Ceci peut causer certains problèmes, comme on peut voir à la figure 6.5. L’entrée est
une sinusoı̈de ayant un niveau DC. On veut éliminer ce DC en utilisant un filtre passe-
haut. Comme on peut voir, les échantillons de la sortie sur les bouts ne sont pas très clairs.
On avait une très belle sinusoı̈de à l’entrée, mais le filtre ici a perdu de l’information aux
bouts. Seule la région centrale est utilisable.
3 1
1 utilisable
2
0.5 0
1
−1
0
0
0 20 40 60 80 0 10 20 30 0 20 40 60 80 100
n n n
En général, il faut s’attendre à ce que l’information aux bouts d’un signal ne soit pas
utilisable.
Exemple 1
En appliquant la méthode,
h[n] = 1 2 2 3
x[n] = 2 -1 3
2 4 4 6
-1 -2 -2 -3
3 6 6 9
2 3 5 10 3 9
Exemple 2
2 5 0 4 2 5 0 4 2 5 0 4
3 41 3 1 4 3 1 4
8 2 20 6 5 0
y[0] = somme = 8 y[1] = somme = 22 y[2] = somme = 11
2 5 0 4 2 5 0 4 2 5 0
4
3 1 4 3 1 4 3 1 4
15 0 16 0 4 12
y[3] = somme = 31 y[4] = somme = 4 y[5] = somme = 12
Exemple 3
La convolution est très facile avec Matlab. Il s’agit d’utiliser la commande conv.
>> h = [2 5 0 4];
>> x = [4 1 3];
>> y = conv(h,x)
y =
8 22 11 31 4 12
La convolution d’une séquence x[n] avec la fonction impulsion δ[n] est tout simple-
ment la fonction originale :
x[n] ∗ δ[n] = x[n] (6.3)
La fonction delta agit comme identité. Si on applique un déphasage,
x[n] ∗ δ[n − s] = x[n − s] (6.4)
La sortie est déphasée aussi.
La convolution d’une séquence x[n] et la fonction échelon donne la somme des valeurs
de x[n] :
Xn
x[n] ∗ u[n] = x[k] (6.5)
k=−∞
Commutativité
L’ordre dans lequel les signaux sont convolués n’a pas d’importance. Bien que mathé-
matiquement ceci est possible, en pratique, ça n’a pas de sens. On ne peut pas échanger
l’entrée et le système. Si une personne fait 10$ l’heure et travaille 2000 heures par an,
cette personne fait 20 000$ par an. Le même résultat est obtenu si on travaille 10 heures
par an à 2000$ par heure. Mais c’est complètement ridicule. N’allez pas voir votre patron
pour ce genre d’arrangement.
Associativité
On peut faire la convolution de trois ou plus signaux ; l’ordre dans lequel on effectue
la convolution n’a pas d’importance.
Distributivité
Si deux systèmes ont la même entrée, et sont additionnés pour produire la sortie globale,
on peut remplacer les deux systèmes en parallèle par un seul système qui est la somme
des deux.
6.6 Corrélation
La corrélation est mieux expliquée par un exemple. Supposons qu’on a un système ra-
dar, comme à la figure 6.6, pour détecter un avion. Une antenne spécialement conçue en-
voie un pulse d’énergie radio dans une direction voulue. Si l’onde frappe un objet, comme
l’avion, une partie sera réfléchie vers le récepteur qui se trouve près de l’émetteur. Le
pulse envoyé est d’une forme spécifique, comme un triangle dans ce cas-ci. Le signal reçu
sera une version atténuée et décalée du signal original, en plus d’avoir du bruit. Puisque
les signaux radio se propagent à une vitesse connue, le temps entre l’émission du signal
et la réception est une mesure de la distance de l’objet. Le problème est le suivant : étant
donné un signal de forme connue, quelle est la meilleure façon de déterminer si la forme
se produit dans un autre signal. La corrélation est la méthode à utiliser.
Dans le cas idéal, les signaux ressembleraient à ceux de la figure 6.7. Le signal radar
émit est un pulse de durée fixe. Le signal reçu serait le même pulse avec un retard. Le
retard permet de calculer la distance de l’objet, sachant la vitesse de l’onde émise.
Pulse
0.5
0
0 20 40 60 80 100 120 140 160 180 200
0.5
0
0 20 40 60 80 100 120 140 160 180 200
Corrélation idéal
20
10
0
0 50 100 150 200 250 300 350 400
Figure 6.7 – Signal envoyé et signal reçu du système radar : cas idéal
Cependant, un signal réel reçu ne sera pas idéal. Il y aura beaucoup de bruit, et l’am-
plitude du signal peut être très faible. Comment détecter le signal ? La corrélation permet
quand même de trouver l’instant où le signal reçu ressemble le plus au signal envoyé,
comme on peut voir à la figure 6.8.
La corrélation est la mesure de la similitude entre deux signaux. C’est une opération
très semblable à la convolution : on prend deux signaux pour en produire un troisième.
Pulse
0.5
0
0 20 40 60 80 100 120 140 160 180 200
−2
Corrélation
10
Figure 6.8 – Signal envoyé et signal reçu du système radar : cas avec bruit
C’est presque la même chose, mais pas tout à fait. Il s’agit de faire la convolution entre x[n]
et h[−n] (une version repliée de h[n]). Les techniques vues auparavant s’appliquent de la
même façon, sauf qu’il faut replier h[n]. Remarquer cependant que x[n]∗∗h[n] , h[n]∗∗x[n],
mais plutôt rxh [n] = rhx [−n].
La forme du pic dans le signal de corrélation n’a pas besoin de ressembler au signal
voulu. Le but n’est pas de recréer le signal original, mais plutôt de le détecter.
La corrélation est la meilleure façon pour détecter un signal connu d’un signal ayant
du bruit. Le pic est plus élevé au-dessus du bruit (pour être correct, on parle de bruit blanc
gaussien) en utilisant la corrélation que par toute autre méthode linéaire. L’utilisation de
la corrélation pour détecter un signal connu est souvent appelé filtrage adapté (matched
filtering).
−2
Auto-corrélation
400
200
−200
−400
0 20 40 60 80 100 120 140 160 180 200
On peut utiliser la corrélation pour aligner deux signaux semblables. Supposons qu’on
écoute les battements de coeur avec un électro-cardiogramme, (ECG), et qu’on a deux
pulses, qu’on veut aligner. La corrélation de ces deux signaux montrera le point où les
deux signaux se ressemblent le plus. Avec ce point de calculé, on peut aligner les deux
signaux.
1.5
2
1
0
0.5
0 10 20 30 40 50 60 0 10 20 30 40 50 60
150
5
100
0
0 10 20 30 40 50 60 0 10 20 30 40 50 60
puis N additions. Bien que les ordinateurs sont très rapide et peuvent effectuer plusieurs
opérations par seconde, pour des applications à temps réel il faut faire très attention à la
longueur des signaux.
Il y a trois façon de réduire le temps de calcul : 1) utiliser des signaux plus courts, 2)
utiliser un ordinateur spécialisé pour faire le traitement de signaux (DSP), 3) utiliser une
meilleure méthode pour faire la convolution. Une méthode beaucoup plus rapide pour
faire la convolution est la Transformée de Fourier rapide, la FFT (Fast Fourier Transform).
On verra cette méthode au prochain chapitre.