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

 채택된 답변

Thorsten
Thorsten 2015년 5월 26일
편집: Thorsten 2015년 5월 26일

2 개 추천

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;

추가 답변 (1개)

Immanuel Manohar
Immanuel Manohar 2019년 10월 2일

0 개 추천

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

zhitao Luo
zhitao Luo 2020년 6월 2일
Hello, Immanuel Manohar, I also encountered the same problem, is there any more detailed answer?

댓글을 달려면 로그인하십시오.

카테고리

질문:

DDD
2015년 5월 26일

댓글:

2020년 6월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by