Konvolúció alkalmazása a MATLAB-ban a függvény használata nélkül
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:
m =hosszúság(f); n =hossz(g); k =m + n - 1;
2. lépés
Határozza meg azt a j tartományt, amelyen 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ékein keresztüli iterációhoz:
eredmény_index =1:k
esetén5. lépés
Számítsa ki a konvolúciót j összes értékére:
my_result(k) =összeg(f(j) .* g(k-j+1));
6. lépés
Zárja be a for ciklust az "end" paranccsal.