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
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!