MATLAB yra iš anksto sukurta konvoliucijos funkcija.
Vaizdo kreditas: Thinkstock Images/Comstock/Getty Images
Konvoliucija yra matematinė operacija, kuri sujungia dvi funkcijas, palyginti su vienos funkcijos persidengimu, kai ji perkeliama į kitą. Nors MATLAB yra iš anksto sukurta konvoliucijos funkcija, galima savarankiškai apskaičiuoti diskrečiųjų konvoliucijos integralą. Dviejų funkcijų f ir g diskrečioji konvoliucija apibrėžiama kaip suma per f (j) * g (k-j) diapazoną nuo 0 iki j.
1 žingsnis
Apibrėžkite du vektorius, f ir g, turinčius dvi funkcijas, kurias norite sujungti. F ir g ilgiai neturi būti lygūs. Konvoliucijos rezultato ilgis k bus vienu mažesnis už f ir g ilgių sumą:
Dienos vaizdo įrašas
m = ilgis (f); n = ilgis (g); k = m + n - 1;
2 žingsnis
Apibrėžkite diapazoną j, per kurį vyks konvoliucija. J reikšmė yra diapazonas, kuriame dviejų sujungiamų funkcijų – f (j) ir g (k+1-n) – indeksai yra teisėti. 1 vertė pridedama prie k turi atsižvelgti į tai, kad MATLAB pradeda indeksuoti vektorius nuo 1, o ne nuo 0:
j = maks. (1,k+1-n):min (k, m)
3 veiksmas
Iš anksto paskirkite erdvę konvoliucijos rezultatui:
mano_rezultatas = nuliai (k);
4 veiksmas
Parašykite for kilpą, kad kartotumėte k reikšmes:
rezultato_indeksui = 1:k
5 veiksmas
Apskaičiuokite visų j verčių konvoliuciją:
mano_rezultatas (k) = suma (f(j) .* g (k-j+1));
6 veiksmas
Uždarykite ciklą su komanda "end".