Kā lietot konvolūciju programmā MATLAB, neizmantojot funkciju

Matemātiskā vienādojuma tuvplāns

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".