La convolution de deux signaux horaires dans MATLAB

Convolution

L'opération de convolution est définie comme l'intégrale ou la somme dans des cas discrets, sur une plage de fonctions f (T) * g (tT) par rapport à T. Lors du déplacement de la plage d'une fonction f, chaque point est multiplié par un deuxième fonction en g. Dans le domaine temporel, la convolution est une opération de calcul intensive. Cependant, après l'avoir transformée dans le domaine fréquentiel au moyen de la transformation de Fourier, la convolution est simplifiée en multiplications.

Fonction intégrée

Les fonctions "conv (), ou sa variante bidimensionnelle" conv2 () ", peuvent être utilisées facilement et efficacement pour convoluer des signaux dans MATLAB. On suppose généralement que les signaux sont dans le domaine temporel ou spatial, par opposition au domaine de la fréquence.Les deux premiers arguments sont les deux signaux à résoudre, ou un signal et un filtre. Le troisième argument est un argument qui définit la taille de la sortie. Les options valides sont "complet", "identique" ou "valide "(" complet ", " égal "ou" valide ").

mixed_signal = conv (signal1, signal2, 'identique'); new_image = conv2 (image1, image2, 'complet');

Domaine temporel

Effectuer la convolution dans le domaine temporel peut être utile pour comprendre le fonctionnement de cette opération:

% pour deux signaux 1-D, fong my_length = longueur (f) + longueur (g) - 1; résultat = zéros (my_length, 1);

pour i = 1: my_length pour j = 1: longueur (f) si ((i-j + 1)> 0 && (i-j + 1) <longueur (g)) résultat (i) = f (j) * g (i-j + 1); fin fin fin

Domaine de fréquence

Les signaux dans le domaine temporel peuvent être transformés dans le domaine fréquentiel à l'aide de la transformation de Fourier. MATLAB implémente une transformation de Fourier rapide à l'aide de la fonction "ffft ()". Dans le domaine fréquentiel, il est possible de mélanger deux signaux en utilisant la multiplication de points à l’aide de l’opérateur ". *".

% pour deux signaux, fyg F = fft (f); G = fft (g); U = F. * G; u = ifftshift (ifft (U));

Des Articles Intéressants