I am trying to convolve the following signals in Matlab:
and
for a=0.5. The result, say z(t) is:
So here is my Matlab code:
%Define initial signals
alpha = .5;Ts = 0.01;t_x = -5:Ts:5;x = heaviside(t_x);t_y = -5:Ts:5;y = heaviside(t_y).*(alpha.^abs(t_y));%Plot initial signals
figure(1)plot(t_x,x);xlabel('t');ylabel('x(t)');axis([min(t_x)-1 max(t_x)+1 min(x)-1 max(x)+1]);figure(2)plot(t_y,y);xlabel('t');ylabel('y(t)');axis([min(t_y)-1 max(t_y)+1 min(y)-1 max(y)+1]);%Convolution
z = Ts*conv(x,y);t_z = min(t_x)+min(t_y):Ts:max(t_x)+max(t_y);figure(3)plot(t_z,z);xlabel('t');ylabel('z(t)');axis([min(t_z)-1 max(t_z)+1 min(z)-1 max(z)+1]);
The problem is that the final signal that Matlab calculates has incorrect values for values of t greater than 5. I have checked this in detail and noticed that the signal is wrong for t > max(t_x). Here is the final plot:
What am I doing wrong?
Best Answer