plot discrete time domain signals

7 vues (au cours des 30 derniers jours)
Jinquan Li
Jinquan Li le 14 Fév 2021
Commenté : Paul Hoffrichter le 15 Fév 2021
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!
  1 commentaire
Paul le 14 Fév 2021
Modifié(e) : Paul le 15 Fév 2021
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.

Connectez-vous pour commenter.

Réponse acceptée

Paul Hoffrichter
Paul Hoffrichter le 14 Fév 2021
I recommend using following substitutions:
axis( [-1 10 0 1])
  6 commentaires
Paul Hoffrichter
Paul Hoffrichter le 15 Fév 2021
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 le 15 Fév 2021
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);

Connectez-vous pour commenter.

Plus de réponses (0)




Community Treasure Hunt

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

Start Hunting!

Translated by