Ako aplikovať konvolúciu v MATLABE bez použitia funkcie

click fraud protection
Detailný záber na matematickú rovnicu

MATLAB obsahuje predpripravenú konvolučnú funkciu.

Kredit za obrázok: Thinkstock Images/Comstock/Getty Images

Konvolúcia je matematická operácia, ktorá spája dve funkcie vzhľadom na prekrytie jednej funkcie, keď sa posúva cez druhú. Hoci MATLAB obsahuje vopred zostavenú konvolučnú funkciu, je možné vypočítať diskrétny konvolučný integrál sami. Diskrétna konvolúcia dvoch funkcií f a g je definovaná ako súčet v rozsahu 0 až j z f (j) * g (k-j).

Krok 1

Definujte dva vektory, f a g, obsahujúce dve funkcie, ktoré chcete konvolvovať. Dĺžky f a g sa nemusia rovnať. Dĺžka výsledku konvolúcie k bude o jednu menšia ako súčet dĺžok f a g:

Video dňa

m = dĺžka (f); n = dĺžka (g); k = m + n - 1;

Krok 2

Definujte rozsah j, v ktorom dôjde ku konvolúcii. Hodnota j je rozsah, v ktorom sú dolné indexy dvoch funkcií, ktoré sa majú konvolvovať, f (j) a g (k+1-n), prípustné. Hodnota 1 pridaná ku k má zodpovedať skutočnosti, že MATLAB začína indexovať vektory na 1 a nie na 0:

j = max (1,k+1-n):min (k, m)

Krok 3

Vopred prideľte priestor pre výsledok konvolúcie:

moj_vysledok = nuly (k);

Krok 4

Napíšte cyklus for na iteráciu hodnôt k:

pre index_výsledku = 1:k

Krok 5

Vypočítajte konvolúciu pre všetky hodnoty j:

môj_výsledok (k) = súčet (f(j) .* g (k-j+1));

Krok 6

Zatvorte cyklus for príkazom "end".