MATLAB Convolution: Finding the Convolution of Two Functions with Step Inputs

  • Thread starter Thread starter Les talons
  • Start date Start date
  • Tags Tags
    Convolution Matlab
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 2K views
Les talons
Messages
28
Reaction score
0

Homework Statement


Use MATLAB to find the convolution between
a) ##f(t) = u(t) -u(t -3)## and ##g(t) = u(t) -u(t -1)##

Homework Equations



The Attempt at a Solution


t = -10: 0.1: 10;
f = heavisde(t) -heaviside(t -3);
g = heaviside(t) -heaviside(t -1);
t = -20: 0.1: 20;
c = conv(f, g);
plot(t, c)

The graph of the convolution has values from 0 to 10. I don't get how the convolution can get to 10 if the functions being convolved only have maximum values of 1. I changed the line to
c = 0.1*conv(f, g);
and this produced the right output. Why do I need to multiply by the step size?
 
Physics news on Phys.org
Convolution is a sum over element-wise products. To turn this into the equivalent approximation for the integral, you have to multiply by the step size. Think about the rectangular area. Matlab applies the linear algebra definition of convolution.
 
  • Like
Likes   Reactions: Les talons