Définissez deux vecteurs, f et g, contenant les deux fonctions que vous souhaitez convolution. Les longueurs de f et g ne doivent pas être égaux. La longueur du résultat de la convolution, k, sera un de moins que la somme de la longueur de f et g:
m = longueur (f) -
n = longueur (g) -
k = m + n - 1;
Définir la gamme j sur lequel la convolution se produira. La valeur de j est la plage dans laquelle les indices des deux fonctions à convolution, f (j) et g (k + 1-n), sont légales. La valeur de 1 à k est ajouté pour tenir compte du fait que MATLAB vecteurs d'indexation commence à 1 au lieu de 0:
j = max (1, k + 1-n): min (k, m)
Préallouer espace pour le résultat de la convolution:
my_result = zéros (K);
Ecrire une boucle pour parcourir les valeurs de k:
pour result_index = 1: k
Calculer la convolution pour toutes les valeurs de j:
my_result (k) = somme (. f (j) * g (k-j + 1));
Fermez la boucle avec le "fin" commande.