plot discrete time domain signals

2 ビュー (過去 30 日間)
Jinquan Li
Jinquan Li 2021 年 2 月 14 日
コメント済み: Paul Hoffrichter 2021 年 2 月 15 日
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 Center および File ExchangeChemistry についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by