Borrar filtros
Borrar filtros

Conv two continuous time functions

15 visualizaciones (últimos 30 días)
DDD
DDD el 26 de Mayo de 2015
Comentada: zhitao Luo el 2 de Jun. de 2020
given y(t) and x(t), it is asked to conv them. Note: x(t)=dirac(t-3)-dirac(t-5). The conv result should sum y(t-3)-y(t-5) but it gives me:
y=@(t) 1.0*(t>=0).*exp(-3*t);
x=@(t) 1.0*(t==3)-1.0*(t==5);
delta=0.0001;
tx=2:delta:6; %tx=(-200:300)*delta;
ty=-1:delta:1.5; % ty=(-100:300)*delta;
c=conv(y(ty),x(tx))*delta;
tc=(tx(1)+ty(1)):delta:(tx(end)+ty(end));
figure()
title('c')
subplot(3,1,1)
plot(tx,x(tx))
xlabel('n'); title('x(t)'); ylim([min(x(tx))-1,max(x(tx))+1]); grid on
subplot(3,1,2)
plot(ty,y(ty))
xlabel('n'); title('h(t)'); ylim([min(y(ty))-1,max(y(ty))+1]); grid on
subplot(3,1,3)
plot(tc,c);
xlabel('n'); title('x(t)*h(t)');ylim([min(c)-1,max(c)+1]); grid on
What can i do to solve the problem?
Thanks

Respuesta aceptada

Thorsten
Thorsten el 26 de Mayo de 2015
Editada: Thorsten el 26 de Mayo de 2015
The y-axis is too large to show the data. You can rescale them by, e.g.,
axis([1 8 -delta delta])
or with your code, use
ylim([min(c),max(c)]);
or get rid of the *delta in
c=conv(y(ty),x(tx))*delta;

Más respuestas (1)

Immanuel Manohar
Immanuel Manohar el 2 de Oct. de 2019
Your dirac Delta is wrong... you're attempting continuous time convolution but you are using unit impulse instead of dirac delta for convolution. To get the correct answer, your dirac delta approximation should have the height of 1/delta.
  1 comentario
zhitao Luo
zhitao Luo el 2 de Jun. de 2020
Hello, Immanuel Manohar, I also encountered the same problem, is there any more detailed answer?

Iniciar sesión para comentar.

Categorías

Más información sobre Signal Processing Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by