Kako primijeniti konvoluciju u MATLAB-u bez korištenja funkcije
Konvolucija je matematička operacija koja spaja dvije funkcije u odnosu na preklapanje jedne funkcije dok se pomiče preko druge. Iako MATLAB sadrži unaprijed izgrađenu konvolucijsku funkciju, 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).
1. korak
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 manja od zbroja duljina f i g:
m =duljina (f); n =duljina (g); k =m + n - 1;
2. korak
Definirajte raspon j u kojem će se dogoditi konvolucija. Vrijednost j je raspon u kojem su indeksi dviju funkcija koje se konvolviraju, f(j) i g(k+1-n), ispravni. Vrijednost 1 dodana k je u obzir činjenica da MATLAB počinje indeksirati vektore na 1 umjesto na 0:
j =max(1,k+1-n):min(k,m)
3. korak
Prethodno dodijelite prostor za rezultat konvolucije:
moj_rezultat =nule(k);
4. korak
Napišite for petlju za ponavljanje kroz vrijednosti k:
za rezultat_indeks =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".