MATLAB satur iepriekš izveidotu konvolūcijas funkciju.
Attēla kredīts: Thinkstock Images/Comstock/Getty Images
Konvolūcija ir matemātiska darbība, kas sajauc divas funkcijas attiecībā pret vienas funkcijas pārklāšanos, kad tā tiek pārvietota uz citu. Lai gan MATLAB satur iepriekš izveidotu konvolūcijas funkciju, ir iespējams pats aprēķināt diskrēto konvolūcijas integrāli. Divu funkciju f un g diskrētā konvolūcija ir definēta kā summa f (j) * g (k-j) diapazonā no 0 līdz j.
1. darbība
Definējiet divus vektorus, f un g, kas satur divas funkcijas, kuras vēlaties apvienot. F un g garumiem nav jābūt vienādiem. Konvolūcijas rezultāta garums k būs par vienu mazāks par f un g garumu summu:
Dienas video
m = garums (f); n = garums (g); k = m + n - 1;
2. darbība
Definējiet diapazonu j, kurā notiks konvolūcija. Vērtība j ir diapazons, kurā divu konvolējamo funkciju apakšindeksi f (j) un g (k+1-n) ir likumīgi. Vērtība 1, kas pievienota k, ir saistīta ar faktu, ka MATLAB sāk indeksēt vektorus ar 1, nevis 0:
j = maks (1,k+1-n):min (k, m)
3. darbība
Iepriekš piešķiriet vietu konvolūcijas rezultātam:
mans_rezultāts = nulles (k);
4. darbība
Ierakstiet for cilpu, lai atkārtotu k vērtības:
rezultāta_indeksam = 1:k
5. darbība
Aprēķiniet konvolūciju visām j vērtībām:
mans_rezultāts (k) = summa (f(j) .* g (k-j+1));
6. darbība
Aizveriet for cilpu ar komandu "beigt".