Fonctions > Vecteur et matrice > Autres fonctions de tableau > Convolution et corrélation croisée
Convolution et corrélation croisée
convolve(S, K, [BC], [OV]) : effectue une convolution entre 2 vecteurs (1D) ou 2 matrices (2D) avec une phase arbitraire.
La convolution au fil du temps correspond à la multiplication en fréquence, et vice versa, et est utile pour le filtrage des données.
crosscorr(S, K, [BC], [OV]) : effectue une corrélation croisée entre 2 vecteurs (corrélation 1D) ou 2 matrices (corrélation 2D) avec une phase arbitraire.
La corrélation est équivalente à la convolution, avec une séquence inversée dans le temps, souvent utilisée pour trouver la réponse impulsionnelle d'un système.
La fonction crosscorr peut être utilisée pour corréler des images.
La fonction crosscorr associe les caractéristiques des fonctions dépréciées correl et correl2d.
Arguments
S est un vecteur ou une matrice qui représente le signal d'entrée. Les éléments du tableau peuvent avoir des valeurs réelles ou complexes.
K est un vecteur ou une matrice qui représente le noyau. Les éléments du tableau peuvent avoir des valeurs réelles ou complexes.
BC (facultatif) est un argument entier qui détermine le type de convolution à effectuer en spécifiant comment gérer les limites de la matrice pendant la corrélation. BC peut être fixé à 0 (par défaut), 1, 2 ou 3, où :
0 : linéaire (zéros de remplissage) : les pixels situés en dehors des limites de la matrice sont considérés comme des zéros.
1 : circulaire (ou enroulement périodique) : les pixels situés en dehors des limites de la matrice sont considérés comme un prolongement périodique de celle-ci.
2 : réflexion : les pixels situés en dehors des limites de la matrice sont considérés comme s'ils étaient réfléchis par des miroirs le long des contours de la matrice.
3 : continuation : les pixels situés en dehors des limites de la matrice sont considérés comme la dernière valeur à l'intérieur de celle-ci.
OV (facultatif) est une valeur entière ou un vecteur de deux valeurs entières qui détermine s'il convient d'appliquer un décalage du second signal. Il permet de préciser le chevauchement initial de ligne et de colonne (corrélation de phase) de la matrice de noyau K par rapport à la matrice de signaux S. Le premier élément du vecteur détermine le chevauchement de ligne et le second le chevauchement de colonne.
Le chevauchement minimum ne doit pas être inférieur à 1 et le chevauchement maximum ne doit pas être supérieur à la taille de noyau.
Pour une corrélation de phase zéro, le chevauchement doit être défini de sorte que l'origine du noyau se trouve au centre de celui-ci, en supposant que la matrice soit en format spécial. Dans ce cas, les deux paramètres de chevauchement doivent être définis en fonction du nombre de lignes et de colonnes du noyau, moins leur moitié respective.
Pour une corrélation croisée unidimensionnelle, le chevauchement de ligne doit être fixé à 1.
Pour une corrélation croisée bidimensionnelle, le chevauchement par défaut est fixé comme indiqué ci-dessous :
Row_overlap = K_rows − K_rows/2
Column_overlap = K_columns − K_columns/2
Est-ce que cela a été utile ?