Kako uporabiti konvolucijo v MATLAB-u brez uporabe funkcije

Približen posnetek matematične enačbe

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