Конволюцията на два времеви сигнали в MATLAB

MATLAB предлага функции във времето или честотата.

навиване

Операцията на навиване се дефинира като интеграл или сума в дискретни случаи, в рамките на набор от функции f (T) * g (tT) по отношение на Т. При преместване на диапазона на функция f, всяка точка се умножава с втора функция в g. В областта на времето конволюцията е интензивна изчислителна операция, но след превръщането й в честотен домейн чрез трансформация на Фурие, конволюцията е опростена за умножение.

Интегрирана функция

Функциите conv () или неговият двумерен вариант "conv2 ()" могат да се използват с лекота и ефективност, за да се обединяват сигнали в MATLAB, обикновено се приема, че сигналите са във временната или пространствената област, за разлика от домейна на Първите два аргумента са двата сигнала, които трябва да се свиват, или сигнал и филтър. Третият аргумент е аргумент, който определя размера на изхода. Действителните опции са "пълни", "същите" или "валидни "(" пълно ", " равно "или" валидно ").

mixed_signal = conv (сигнал1, сигнал2, "същото"); new_image = conv2 (image1, image2, 'пълен');

Домейн на времето

Извършването на конволюцията в домейна от време може да бъде полезно, за да разберете как работи тази операция:

% от два 1-D сигнали, fyg my_length = дължина (f) + дължина (g) - 1; резултат = нули (my_length, 1);

за i = 1: my_length за j = 1: дължина (f) ако (i-j + 1)> 0 & g (i-j + 1); крайния край

Домейн на честотата

Сигналите във времевия домейн могат да бъдат трансформирани в честотния домейн, като се използва трансформацията на Фурие. MATLAB реализира бърза трансформация на Фурие, използвайки функцията "ffft ()". В честотния домейн два сигнала могат да бъдат смесени чрез използване на точково умножение от оператора ". *".

% за два сигнала, f и g F = fft (f); G = fft (g); U = F. * G; u = ifftshift (ifft (U));