Convolution 2D (CDB)
- Mise à jour2025-07-30
- Temps de lecture : 5 minute(s)
Calcule la convolution des séquences d'entrée X et Y. Câblez des données aux entrées X et Y pour déterminer l'instance polymorphe à utiliser, ou sélectionnez manuellement l'instance.

Entrées/Sorties
X
—
X représente la première séquence à valeur complexe en entrée.
Y
—
Y est la seconde séquence à valeur complexe en entrée.
algorithme
—
algorithme spécifie la méthode de convolution à utiliser. Lorsque le paramètre algorithme est défini à direct, ce VI calcule la convolution en utilisant la méthode directe de convolution linéaire. Lorsque le paramètre algorithme est défini à frequency domain, ce VI calcule la convolution en utilisant une technique basée sur la FFT. Si X et Y sont petits, la méthode direct est généralement plus rapide. Si X et Y sont importants, la méthode frequency domain est généralement plus rapide. Par ailleurs, de légères différences numériques peuvent exister entre les deux méthodes.
taille de la sortie
—
taille de la sortie détermine la taille de X * Y.
X * Y
—
X * Y représente la convolution de X et Y.
erreur
—
erreur renvoie toute erreur ou mise en garde générée par le VI. Vous pouvez câbler erreur au VI Convertir un code d'erreur en cluster d'erreur pour convertir le code d'erreur ou la mise en garde en cluster d'erreur. |
Convolution 2D
Si algorithme est direct, ce VI utilise l'équation suivante pour calculer la convolution à deux dimensions des matrices en entrée X et Y.

pour i = 0, 1, 2, … , M1+M2–2 et j = 0, 1, 2, … , N1+N2–2
où h correspond à X * Y,
M1 est le nombre de lignes de la matrice X, N1 est le nombre de colonnes de la matrice X, M2 est le nombre de lignes de la matrice Y, N2 est le nombre de colonnes de la matrice Y, Les éléments indexés en dehors des plages de X et Y sont égaux à zéro, comme le montrent les relations suivantes :x(m,n), m < 0 ou m ≥ M1 or n < 0 ou n ≥ N1
et
y(m,n) , m < 0 ou m ≥ M2 ou n < 0 ou n ≥ N2.
Si algorithme est frequency domain, ce VI effectue les étapes suivantes, dans l'ordre, pour calculer la convolution à deux dimensions :
- Ce VI commence par ajouter des zéros à la fin de X et de Y pour que leur taille soit égale à (M1 + M2 – 1, N1 + N2 – 2), comme dans les équations suivantes.

- Puis il calcule la transformée de Fourier de X' et Y' selon les équations suivantes.
- Enfin, ce VI multiplie X'(f) par Y'(f) et calcule la transformée de Fourier inverse du produit. Le résultat est la convolution à deux dimensions de X et Y, comme l'illustre l'équation suivante.
La taille en sortie détermine la taille de la matrice en sortie X * Y comme le montre l'illustration suivante.

-
full
La matrice en sortie X * Y est de type (M1+M2–1) sur (N1+N2–1).
-
size X
Ceci est utile dans le traitement de l'image. Si X correspond à l'image que vous souhaitez filtrer, Y correspond à une petite matrice appellée "noyau de convolution". X * Y correspond à l'image filtrée dont la taille est la même que l'image de X. La matrice (M1, N1) en sortie correspond à la partie centrale de la matrice en sortie lorsque la taille en sortie est full.
-
compact
Calculer des éléments de front de X * Y requiert un remplissage par des zéros si la taille en sortie est full ou qu'elle correspond à size X. LabVIEW supprime ces éléments de front si la taille en sortie est compact. La matrice (M1–M2+1, N1–N2+1) en sortie correspond à la partie centrale de la matrice en sortie lorsque la taille en sortie correspond à size X.
Exemples
Reportez-vous aux exemples de fichiers inclus avec LabVIEW suivants.
- labview\examples\Signal Processing\Signal Operation\Edge Detection with 2D Convolution.vi
X
—
algorithme
—
X * Y
—
erreur
—