2014-09-18 2 views
1

Я пытаюсь использовать matlab для построения свертки двух функций на заданный интервал времени и не может заставить функцию графика работать.Свертывание свертки в Matlab

Мой код до сих пор это:

>> t = -10:.1:10 
>> f = heaviside(t)-heaviside(t-3) 
>> g = heaviside(t)-heaviside(t-1) 
>> y = conv(f,g) 

, которая производит 3 переменные «значение» 1x201 двойной, (т, е, ж) и свертки, которая имеет значение 1x401 двойной, которые я считаю средства это в два раза больше точек предыдущих переменных

Когда я иду построить это с помощью команды участка я пытаюсь построить свертку по т, используя следующую команду:

>> plot(t,y) 

ш hich throws и error говорят, что «векторы должны быть одинаковой длины». Как сделать так, чтобы я мог построить y по отношению к t?

ответ

2

Диапазон t для свертки должен быть в два раза меньше минимального значения исходного диапазона до двухкратного максимального значения исходного диапазона с тем же интервалом. Поэтому число значений t для свертки составляет 2*n - 1, где n является исходным числом значений t. Поэтому в целом, я думаю, вы можете сказать t = -20 : 0.1 : 20, а затем у вас должен быть правильный диапазон и правильное количество значений t. EDIT: исправленный размер шага; должны быть одинаковыми (а именно 0,1) в качестве исходного диапазона.

В общем случае, если вы свертываете две серии, которые имеют разные диапазоны, минимальное значение диапазона результата представляет собой сумму минимальных значений исходных диапазонов, а максимальная сумма представляет собой сумму исходных диапазонов, максимальные значения.

Смежные вопросы