Jak zastosować konwolucję w MATLAB bez użycia funkcji?

Zbliżenie równania matematycznego

MATLAB zawiera wstępnie zbudowaną funkcję konwolucji.

Źródło obrazu: Obrazy Thinkstock/Comstock/Getty Images

Splot to operacja matematyczna, która łączy dwie funkcje w odniesieniu do nakładania się jednej funkcji podczas jej przesuwania nad inną. Chociaż MATLAB zawiera wstępnie zbudowaną funkcję splotu, możliwe jest samodzielne obliczenie dyskretnej całki splotu. Dyskretny splot dwóch funkcji f i g jest zdefiniowany jako suma w zakresie od 0 do j f (j) * g (k-j).

Krok 1

Zdefiniuj dwa wektory, f i g, zawierające dwie funkcje, które chcesz przeplatać. Długości f i g nie muszą być równe. Długość wyniku splotu k będzie o jeden mniejsza od sumy długości f i g:

Wideo dnia

m = długość (f); n = długość (g); k = m + n - 1;

Krok 2

Zdefiniuj zakres j, w którym wystąpi splot. Wartość j to zakres, w którym indeksy dwóch funkcji, które mają być splątane, f (j) i g (k+1-n), są dozwolone. Wartość 1 dodana do k ma uwzględniać fakt, że MATLAB zaczyna indeksować wektory od 1, a nie od 0:

j = max (1,k+1-n):min (k, m)

Krok 3

Przydziel miejsce na wynik splotu:

mój_wynik = zera (k);

Krok 4

Napisz pętlę for, aby przejść przez wartości k:

dla indeks_wyniku = 1:k

Krok 5

Oblicz splot dla wszystkich wartości j:

mój_wynik (k) = suma (f(j) .* g (k-j+1));

Krok 6

Zamknij pętlę for poleceniem „end”.