149 views (last 30 days)

Show older comments

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)

Paul
on 14 Feb 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.

Paul Hoffrichter
on 14 Feb 2021

I recommend using following substitutions:

plot(t,y)

axis( [-1 10 0 1])

Paul Hoffrichter
on 15 Feb 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);

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

Start Hunting!