MATLAB conține o funcție de convoluție predefinită.
Credit imagine: Thinkstock Images/Comstock/Getty Images
Convoluția este o operație matematică care combină două funcții în raport cu suprapunerea unei funcții pe măsură ce aceasta este deplasată peste alta. Deși MATLAB conține o funcție de convoluție pre-construită, este posibil să calculați singur integrala de convoluție discretă. Convoluția discretă a două funcții f și g este definită ca suma în intervalul de la 0 la j a lui f (j) * g (k-j).
Pasul 1
Definiți doi vectori, f și g, care conțin cele două funcții pe care doriți să le convoluți. Lungimile lui f și g nu trebuie să fie egale. Lungimea rezultatului convoluției, k, va fi cu o mai mică decât suma lungimii lui f și g:
Videoclipul zilei
m = lungimea (f); n = lungime (g); k = m + n-1;
Pasul 2
Definiți domeniul j peste care va avea loc convoluția. Valoarea lui j este intervalul în care indicele celor două funcții de convoluat, f (j) și g (k+1-n), sunt legali. Valoarea lui 1 adăugată la k trebuie să țină cont de faptul că MATLAB începe indexarea vectorilor la 1 și nu la 0:
j = max (1,k+1-n):min (k, m)
Pasul 3
Prealocați spațiu pentru rezultatul convoluției:
rezultatul_meu = zerouri (k);
Pasul 4
Scrieți o buclă for pentru a repeta prin valorile lui k:
pentru rezultat_index = 1:k
Pasul 5
Calculați convoluția pentru toate valorile lui j:
rezultatul_meu (k) = suma (f(j) .* g (k-j+1));
Pasul 6
Închideți bucla for cu comanda „end”.