MATLAB съдържа предварително изградена конволюционна функция.
Кредит на изображението: Thinkstock Images/Comstock/Getty Images
Конволюцията е математическа операция, която смесва две функции по отношение на припокриването на една функция, тъй като тя се измества върху друга. Въпреки че MATLAB съдържа предварително изградена конволюционна функция, възможно е сами да изчислите дискретния конволюционен интеграл. Дискретната конволюция на две функции f и g се дефинира като сума в диапазона от 0 до j на f (j) * g (k-j).
Етап 1
Дефинирайте два вектора, f и g, съдържащи двете функции, които искате да свъртите. Дължините на f и g не трябва да са равни. Дължината на резултата от навиването, k, ще бъде една по-малка от сумата на дължината на f и g:
Видео на деня
m = дължина (f); n = дължина (g); k = m + n - 1;
Стъпка 2
Определете диапазона j, в който ще се случи навиването. Стойността на j е диапазонът, в който индексите на двете функции, които трябва да се конволират, f (j) и g (k+1-n), са законни. Стойността на 1, добавена към k, трябва да отчита факта, че MATLAB започва да индексира вектори с 1, а не с 0:
j = макс (1,k+1-n):мин (k, m)
Стъпка 3
Предварително разпределете място за резултата от навиването:
my_result = нули (k);
Стъпка 4
Напишете цикъл for, за да преминете през стойностите на k:
за индекс_резултат = 1:k
Стъпка 5
Изчислете конволюцията за всички стойности на j:
my_result (k) = сума (f(j) .* g (k-j+1));
Стъпка 6
Затворете цикъла for с командата "end".