Почему я должен умножать значение свертки на tpas?

#signal-processing #octave #convolution

#обработка сигналов #октава #свертка

Вопрос:

Что делает прокомментированная строка? Более конкретно, почему у меня есть conv tpas значение времени функции?

 tstart=0; tstop=0.1; tpas=0.0001; f=100;  t=tstart:tpas:tstop; x=0 10*t; subplot(3,1,1); plot(t,x,'linewidth',2); axis([0 0.1001 0 1]); grid;  h=1*exp(-f*t); subplot(3,1,2); plot(t,h,'linewidth',2); axis([0 0.1001 0 1]); grid;  t2=2*tstart:tpas:2*tstop;  y=conv(x,h) * tpas; % what does this line do?  subplot(3,1,3); plot(t2,y,'r','linewidth',2); axis(); grid;  

Я опубликовал весь код для контекста, но на самом деле мне просто нужно знать, что происходит, когда я умножаю значение свертки на tpas .

Ответ №1:

Ваш фильтр h=1*exp(-f*t) , который выбирается по временным значениям t=tstart:tpas:tstop

Количество простых элементов в вашем фильтре равно (tstop-tstart)/tpas . Следовательно, интеграл (просто сумма этих выборок) пропорционален 1/tpas .

Свертка умножит ваш сигнал на этот коэффициент, поэтому результат умножается на tpas , чтобы исправить его.

Комментарии:

1. «Интеграл (просто сумма этих выборок)» — я думаю, что это именно та разница между интегралом и суммой, которая учитывается.