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