plot discrete time domain signals
조회 수: 6 (최근 30일)
이전 댓글 표시
Given n=[-1:0.01:10]. Plot the discrete time domain signal: y[n]=e^(-n)*u(n).
Below is my program but i'm not sure if it's correct since this is my fisrt time learning Matlab. Please help. Thanks!
n=-1:0.01:10;
y=exp(-n).*heaviside(n);
stem(t,y)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/518812/image.jpeg)
댓글 수: 1
Paul
2021년 2월 14일
편집: Paul
2021년 2월 15일
Be careful using heaviside for u[n]. In control systems and signal processing the function u[n] is the unit step function that is (typically) defined as
u[n] = 1 for n >= 0
u[n] = 0 for n < 0.
However, the default defintion of the heaviside function in Matlab has heaviside(0) = 0.5., which is clearly seen in the plot. Is that the desired answer?
Also, it looks a bit peculiar to have non-integer values of n. Please make sure that's the correct problem statement.
채택된 답변
Paul Hoffrichter
2021년 2월 14일
I recommend using following substitutions:
plot(t,y)
axis( [-1 10 0 1])
댓글 수: 6
Paul Hoffrichter
2021년 2월 15일
Just be careful as to how u(n) is defined. As @Paul mentioned, "heaviside(0) = 0.5., which is clearly seen in the plot. Is that the desired answer?". As you know, e^(-0) is 1, not 0.5, so it is up to you to decide whether your u(n) is defined the way you want it to be defined. If it is a unit step function, where u(0) is 1, then using the heaviside without adjustments leads to an incorrect value for y(n) when n is 0.
Paul Hoffrichter
2021년 2월 15일
Take a look at
The following defines the myStep function so that myStep(0) is 0 instead of 0.5.
myStep = @(n) (n>0);
If you wanted a value of 1 at n = 0, then you could use this instead:
myStep1 = @(n) (n>=0);
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!