Kako uporabiti konvolucijo v MATLAB brez uporabe funkcije
Konvolucija je matematična operacija, ki združi dve funkciji glede na prekrivanje ene funkcije, ko se premakne čez drugo. Čeprav MATLAB vsebuje vnaprej zgrajeno konvolucijsko funkcijo, lahko diskretni konvolucijski integral izračunate sami. Diskretna konvolucija dveh funkcij f in g je definirana kot vsota f(j) * g(k-j) v območju od 0 do j.
1. korak
Definirajte dva vektorja, f in g, ki vsebujeta dve funkciji, ki ju želite konvolvirati. Ni nujno, da sta dolžini f in g enaki. Dolžina rezultata konvolucije, k, bo za ena manjša od vsote dolžin f in g:
m =dolžina (f); n =dolžina (g); k =m + n - 1;
2. korak
Določite območje j, v katerem bo prišlo do konvolucije. Vrednost j je obseg, kjer sta indeksa obeh funkcij, ki ju je treba konvolvirati, f(j) in g(k+1-n), zakonita. Vrednost 1, dodana k k, upošteva dejstvo, da MATLAB začne indeksirati vektorje pri 1 in ne pri 0:
j =max(1,k+1-n):min(k,m)
3. korak
Vnaprej dodelite prostor za rezultat konvolucije:
moj_rezultat =ničle(k);
4. korak
Napišite zanko for za ponavljanje vrednosti k:
za rezultat_indeks =1:k
5. korak
Izračunajte konvolucijo za vse vrednosti j:
moj_rezultat(k) =vsota(f(j) .* g(k-j+1));
6. korak
Zaprite zanko for z ukazom "end".