It might help to look at a discrete time system.
Suppose you have a linear time-invariant system with 'impulse' response $t \mapsto h_t$, that is, with input $u = 1_{\{0\}}$ (that is, one for $t = 0$ and zero everywhere else).
By linearity, if the input is $u = \sum u_k 1_{\{k\} }$ (that is, $u=(u_0,u_1,...)$), then the output will have the combined responses from each separate $ u_k 1_{\{k\} }$, appropriately delayed.
At time $t$, the input $ u_0 1_{\{0\} }$ will contribute $u_0 h_{t-0}$.
At time $t$, the input $ u_1 1_{\{1\} }$ will contribute $u_1 h_{t-1}$.
At time $t$, the input $ u_k 1_{\{k\} }$ will contribute $u_k h_{t-k}$.
Etc, etc.
Combining gives the response $y_t = \sum h_{t-k} u_k$.
For continuous systems, we can informally think of $u(t) = \int u(\tau) \delta(t-\tau) d \tau$. For a fixed $\tau$, the 'input' $t \mapsto u(\tau) \delta(t-\tau)$ results in a contribution $t \mapsto u(\tau) h(t-\tau)$, hence the total combined response is $y(t) =\int u(\tau) h(t-\tau) d \tau$.
After some work and help from a colleague, I managed to get an answer. For posterity, here it is:
And apparently, yes, we're supposed to use convolution from the fact that we're asked for impulse response.
% Creating our sine-signal
clear
t = -50:50;
Fs = 25;
x=sin(2*pi*(1/Fs)*t);
% Creating our impulse responses. They're unit steps, going from all-zeroes to all-ones.
h1 = [zeros(1,50) ones(1,50)];
h2 = [zeros(1,40) ones(1,60)];
% Calculating the convolusion result of the square signals above with our original sine-signal.
convPlot1 = conv(x,h1);
convPlot2 = conv(x,h2);
% Plot and check our result.
plot(convPlot1)
plot(convPlot2)
Best Answer
Think carefully about the definition of the step function
$$ u(t) = \begin{cases} 1 : t\geq 0 \\ 0 : t < 0\end{cases} $$
so, for $u(t + 0.5)$, if $t + 0.5 > 0$ (i.e. $t > -0.5$), then $u(t + 0.5) = 1$. Writing this down as a piecewise definition: $$ u(t + 0.5) = \begin{cases} 1 : t\geq -0.5 \\ 0 : t < -0.5\end{cases} $$ Equivalently, you can just remember that the effect of "$+ \ 0.5$" will shift the original graph to the left $0.5$ units.
Similarly for the next function, it is shifted to the right, and reflected across the horizontal axis:
$$ -u(t - 0.5) = \begin{cases} -1 : t\geq 0.5 \\ 0 : t < 0.5\end{cases} $$
Next, we want to add these together. You could do this visually, by drawing the graphs of $u(t+0.5)$ and $-u(t-0.5)$, or try and go straight to the piecewise definition, then graph that. Specifically, we have three cases to look at:
1) $t < -0.5$: in this case, both functions are 0, so $p(t) = 0$.
2) $-0.5 \leq t < 0.5$: in this case, $u(t + 0.5) = 1$, but $-u(t - 0.5) = 0$, so $p(t) = 1$.
3) $0.5 \leq t$: here $u(t + 0.5) = 1$, and $-u(t - 0.5) = -1$, so $p(t) = 0$.
If you draw this, you'll see it is a step function, that steps up to 1 at t = -0.5, and back down to 0 at t = 0.5.
For x(t) and y(t), I suggest thinking about them as horizontal shifts of p(t).
For the convolution, I suggest starting by writing down the definition:
$$ [x*y](t) = \int_{-\infty}^\infty x(t - \tau)y(\tau) d \tau $$ and thinking about this in terms of "reflecting x (across vertical axis), shifting x, multiplying by y, and then integrating". Since $x$ and $y$ are both step functions, a lot of the time, they won't "overlap" after the shifting, and so the integral will be zero. Try and determine for exactly what values of $t$ this occurs. For what value of $t$ do they overlap completely? What about the in-between cases?
Wikipedia also has an animation that I think might be helpful in developing a sense of what convolution "does".