# Calculate convolution of two given continuous signals in matlab

49 views (last 30 days)
Chihiro Ogino on 26 May 2022
Commented: Chihiro Ogino on 11 Jun 2022
If I have two continuous signals ,f1(t) = g10(t) and f2(t) = (e^-t)*u(t). How can I calculate the convolution and plot the graph for that? N:B: here g10 means the width of rectangular is 10(eg: -5 to 5)

Paul on 5 Jun 2022
Closed form solution using symbolic math
syms t tau real
f1(t) = rectangularPulse(-5,5,t);
f2(t) = exp(-t)*heaviside(t);
y1(t) = int(f1(tau)*f2(t-tau),tau,-5,t)
y1(t) =
figure;
fplot(y1(t),[-10 10])
hold on
Numerical solution using integral()
f1 = @(t) abs(t) <= 5;
f2 = @(t) exp(-t).*(t>=0);
y2 = @(t) integral(@(tau)(f1(tau).*f2(t-tau)),-5,t);
for tval = -7:2:10
plot(tval,y2(tval),'rx')
end
Numerical solution using conv(). Note that we have to settle for a vaue of t where we are willing to accept f2(t) = 0
dt = 0.1;
tval = -5:dt:15;
y3 = conv(f1(tval),f2(tval))*dt;
conv() assumes that the sequences start at t = 0, so we have to shift our time reference left by 5. Make dt smaller to improve the convolution sum approximation.
plot(tval-5,y3(1:numel(tval)),'ko')
legend('Closed Form','integral()','conv()','Location','NorthWest')
Chihiro Ogino on 11 Jun 2022
A pretty clear explanation it is! Much thanks

Paul on 27 May 2022
Assuming a closed form solution is desired this problem can be solved with the Symbolic Math Toolbox
and also exp() (no doc page for Symbolic Math Toolbox version?)
##### 2 CommentsShowHide 1 older comment
Paul on 28 May 2022
Then I guess you'll have to either do it by hand (or use other s/w that can do it symbolically), or you can use
to compute a numerical approximation of the convolution integral, or can use
to compute a numerical approximation to the convolution integral via the convolution sum.