Како применити конволуцију у МАТЛАБ-у без коришћења функције

Крупни план математичке једначине

МАТЛАБ садржи унапред изграђену функцију конволуције.

Кредит за слику: Тхинкстоцк Имагес/Цомстоцк/Гетти Имагес

Конволуција је математичка операција која спаја две функције у односу на преклапање једне функције док се она помера преко друге. Иако МАТЛАБ садржи унапред изграђену функцију конволуције, могуће је сами израчунати дискретни конволуцијски интеграл. Дискретна конволуција две функције ф и г је дефинисана као збир у опсегу од 0 до ј од ф (ј) * г (к-ј).

Корак 1

Дефинишите два вектора, ф и г, који садрже две функције које желите да конволвирате. Дужине ф и г не морају бити једнаке. Дужина резултата конволуције, к, биће за један мањи од збира дужине ф и г:

Видео дана

м = дужина (ф); н = дужина (г); к = м + н - 1;

Корак 2

Дефинишите опсег ј преко којег ће се десити конволуција. Вредност ј је опсег где су индекси две функције које треба конволвирати, ф (ј) и г (к+1-н), дозвољени. Вредност 1 додата к је да узме у обзир чињеницу да МАТЛАБ почиње да индексира векторе на 1 уместо на 0:

ј = мак (1,к+1-н):мин (к, м)

Корак 3

Унапред додијелите простор за резултат конволуције:

мој_резултат = нуле (к);

Корак 4

Напишите фор петљу за понављање кроз вредности к:

за индекс_резултата = 1:к

Корак 5

Израчунајте конволуцију за све вредности ј:

мој_резултат (к) = сума (ф(ј) .* г (к-ј+1));

Корак 6

Затворите фор петљу командом "енд".