MATLAB vsebuje vnaprej vgrajeno funkcijo konvolucije.
Zasluga slike: Thinkstock Images/Comstock/Getty Images
Konvolucija je matematična operacija, ki združi dve funkciji glede na prekrivanje ene funkcije, ko se premakne na drugo. Čeprav MATLAB vsebuje vnaprej vgrajeno konvolucijsko funkcijo, je mogoče sam izračunati diskretni konvolucijski integral. Diskretna konvolucija dveh funkcij f in g je definirana kot vsota v območju od 0 do j od f (j) * g (k-j).
Korak 1
Definirajte dva vektorja, f in g, ki vsebujeta dve funkciji, ki ju želite konvolvirati. Dolžini f in g ni nujno, da sta enaki. Dolžina rezultata konvolucije, k, bo ena manjša od vsote dolžine f in g:
Video dneva
m = dolžina (f); n = dolžina (g); k = m + n - 1;
2. korak
Določite obseg j, v katerem bo prišlo do konvolucije. Vrednost j je obseg, kjer so indeksi dveh funkcij, ki ju je treba konvolvirati, f (j) in g (k+1-n), zakoniti. Vrednost 1, dodana k k, upošteva dejstvo, da MATLAB začne indeksirati vektorje z 1 in ne z 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 indeks_rezultata = 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".