Как применить свертку в MATLAB без использования функции

Крупный план математического уравнения

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 = длина (г); k = m + n - 1;

Шаг 2

Определите диапазон j, в котором будет происходить свертка. Значение j - это диапазон, в котором допустимы индексы двух свертываемых функций, f (j) и g (k + 1-n). Значение 1, добавленное к k, должно учитывать тот факт, что MATLAB начинает индексировать векторы с 1, а не с 0:

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

Шаг 3

Предварительно выделите место для результата свертки:

my_result = нули (k);

Шаг 4

Напишите цикл for для перебора значений k:

для result_index = 1: k

Шаг 5

Рассчитайте свертку для всех значений j:

my_result (k) = сумма (f (j). * g (k-j + 1));

ШАГ 6

Закройте цикл for командой "end".