Konvolúció alkalmazása MATLAB-ban a függvény használata nélkül

Közeli kép a matematikai egyenlet

A MATLAB tartalmaz egy előre beépített konvolúciós függvényt.

Kép jóváírása: Thinkstock Images/Comstock/Getty Images

A konvolúció egy matematikai művelet, amely két függvényt kever össze az egyik függvény átfedéséhez képest, amikor az eltolódik a másikra. Bár a MATLAB tartalmaz egy előre beépített konvolúciós függvényt, lehetőség van a diszkrét konvolúciós integrál kiszámítására. Két f és g függvény diszkrét konvolúciója az f (j) * g (k-j) 0–j tartományának összege.

1. lépés

Határozzon meg két vektort, f és g, amelyek tartalmazzák a két konvolválni kívánt függvényt. f és g hosszának nem kell egyenlőnek lennie. A konvolúció eredményének hossza, k, eggyel kisebb lesz, mint f és g hosszának összege:

A nap videója

m = hosszúság (f); n = hosszúság (g); k = m + n-1;

2. lépés

Határozza meg azt a j tartományt, amelyen belül a konvolúció megtörténik. A j értéke az a tartomány, ahol a két konvolválandó függvény, az f (j) és a g (k+1-n) alsó indexei legálisak. A k-hez hozzáadott 1 annak a ténynek az oka, hogy a MATLAB a vektorok indexelését 1 helyett 0-tól kezdi:

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

3. lépés

Előre jelöljön ki helyet a konvolúció eredményének:

saját_eredmény = nullák (k);

4. lépés

Írjon egy for ciklust a k értékei áthaladásához:

eredmény_index = 1:k esetén

5. lépés

Számítsa ki a konvolúciót j összes értékére:

saját_eredményem (k) = összeg (f(j) .* g (k-j+1));

6. lépés

Zárja be a for ciklust az "end" paranccsal.