plot discrete time domain signals

2 次查看(过去 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)
  1 个评论
Paul
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
Paul Hoffrichter 2021-2-14
I recommend using following substitutions:
plot(t,y)
axis( [-1 10 0 1])
  6 个评论
Paul Hoffrichter
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
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 个)

类别

Help CenterFile Exchange 中查找有关 Chemistry 的更多信息

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by