Cum să aplicați convoluția în MATLAB fără a utiliza funcția

Prim-plan al ecuației matematice

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”.