Borrar filtros
Borrar filtros

Incorrect continuous signal convolution values in Matlab

2 visualizaciones (últimos 30 días)
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?

Respuesta aceptada

Star Strider
Star Strider el 27 de Jun. de 2016
The convolution is actually defined only for your ‘t_x’ vector (that must be the same as ‘t_y’).
For example, if you have the Symbolic Math Toolbox, run this:
syms a t x y
assume(t>0)
assume(a>0)
x(t) = 1;
y(t) = a^t;
X = laplace(x);
Y = laplace(y);
Z = X*Y;
z = ilaplace(Z)
za = subs(z, a, 0.5);
figure(1)
fplot(za, [-5 5])
  6 comentarios
Konstantinos
Konstantinos el 29 de Jun. de 2016
Editada: Konstantinos el 29 de Jun. de 2016
Anyway, I found the answer on some university notes. The problem is that I am trying to convolve two signals of infinite duration. In this case, the convolution is only valid in the interval that the first signal is defined at (this is a Matlab convention about the conv(...) function). You can see more inside the PDF. If you don't know Greek, you can check the code :) Thank you!

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by