MATLAB sisaldab eelehitatud konvolutsioonifunktsiooni.
Pildi krediit: Thinkstock Images/Comstock/Getty Images
Konvolutsioon on matemaatiline tehe, mis ühendab kaks funktsiooni ühe funktsiooni kattuvuse suhtes, kui seda teise üle nihutatakse. Kuigi MATLAB sisaldab eelehitatud konvolutsioonifunktsiooni, on võimalik diskreetse konvolutsiooni integraali ise välja arvutada. Kahe funktsiooni f ja g diskreetne konvolutsioon on defineeritud kui summa f (j) * g (k-j) vahemikus 0 kuni j.
Samm 1
Defineerige kaks vektorit f ja g, mis sisaldavad kahte funktsiooni, mida soovite konvoleerida. F ja g pikkused ei pea olema võrdsed. Konvolutsiooni tulemuse pikkus k on ühe võrra väiksem kui f ja g pikkuste summa:
Päeva video
m = pikkus (f); n = pikkus (g); k = m + n - 1;
2. samm
Määrake vahemik j, mille ulatuses konvolutsioon toimub. J väärtus on vahemik, kus kahe konvoleeritava funktsiooni f (j) ja g (k+1-n) alaindeksid on seaduslikud. K-le lisatud väärtus 1 on tingitud asjaolust, et MATLAB alustab vektorite indekseerimist 1-st, mitte 0-st:
j = max (1,k+1-n):min (k, m)
3. samm
Eeleralda ruum konvolutsiooni tulemuse jaoks:
minu_tulemus = nullid (k);
4. samm
Kirjutage tsükkel for, et itereerida läbi k väärtuste:
tulemuse_indeks = 1:k jaoks
5. samm
Arvutage kõigi j väärtuste konvolutsioon:
minu_tulemus (k) = summa (f(j) .* g (k-j+1));
6. samm
Sulgege for-silmus käsuga "end".