Kako primijeniti konvoluciju u MATLAB-u bez korištenja funkcije

Krupni plan matematičke jednadžbe

MATLAB sadrži unaprijed izgrađenu funkciju konvolucije.

Zasluga slike: Thinkstock Images/Comstock/Getty Images

Konvolucija je matematička operacija koja spaja dvije funkcije u odnosu na preklapanje jedne funkcije dok se ona pomiče preko druge. Iako MATLAB sadrži unaprijed izgrađenu funkciju konvolucije, moguće je sami izračunati diskretni konvolucijski integral. Diskretna konvolucija dviju funkcija f i g definirana je kao zbroj u rasponu od 0 do j od f (j) * g (k-j).

Korak 1

Definirajte dva vektora, f i g, koji sadrže dvije funkcije koje želite konvolvirati. Duljine f i g ne moraju biti jednake. Duljina rezultata konvolucije, k, bit će za jedan manji od zbroja duljine f i g:

Video dana

m = duljina (f); n = duljina (g); k = m + n - 1;

Korak 2

Definirajte raspon j u kojem će se dogoditi konvolucija. Vrijednost j je raspon u kojem su indeksi dviju funkcija koje treba konvolvirati, f (j) i g (k+1-n), dopušteni. Vrijednost 1 dodana k treba uzeti u obzir činjenicu da MATLAB počinje indeksirati vektore na 1, a ne na 0:

j = max (1,k+1-n):min (k, m)

Korak 3

Unaprijed dodijelite prostor za rezultat konvolucije:

moj_rezultat = nule (k);

4. korak

Napišite for petlju za ponavljanje kroz vrijednosti k:

za indeks_rezultata = 1:k

Korak 5

Izračunajte konvoluciju za sve vrijednosti j:

moj_rezultat (k) = zbroj (f(j) .* g (k-j+1));

Korak 6

Zatvorite for petlju naredbom "end".