Help writing a Unit Step function for a signal!

54 views (last 30 days)
This is NOT homework but part of a project and no matter how many times I've googled this I just keep getting confused.
I am asked to put this function into MatLab, and then have it plot it. Then delay the signal by two seconds (t-2), and plot that on a separate graph.
I have scanned what is being asked of me into a pic so you can understand this better, my problem is I do not know where to start.

Answers (2)

KSSV
KSSV on 3 Oct 2016
clc; clear all ;
T = linspace(0,7) ;
V = zeros(size(T)) ;
for i = 1:length(T)
t = T(i) ;
if t<=2
v = exp(-2*t) ;
elseif t>2 && t<=3
v = 10*t-30 ;
elseif t >3 && t <= 5
v = -10*t+50 ;
elseif t > 5 && t <= 7
v = 10*t-70 ;
end
V(i) = v ;
end
plot(T,V)
The above code defines v(t). I hope you should proceed with the other questions.
  1 Comment
dominik landowski
dominik landowski on 3 Oct 2016
Thank you sooo much! I was doing it differently and getting close using t.*(heaviside(t) - heaviside(t-delay)) I could not get it to plot out 100% correct though it was roughly the graph I needed.

Sign in to comment.


Sally Al Khamees
Sally Al Khamees on 21 Feb 2017
If you have R2016b, you can just use the piecewise function:
t= linspace(0,7);
syms y(t)
y(t) = piecewise(t<=2,exp(-2*t),2<t<=3,10*t-30,3<t<=5,-10*t+50, 5<t<=7, 10*t-70);
fplot(y)
xlim([-1,7])
ylim([-20.0 20])
  1 Comment
Arthur Sherman
Arthur Sherman on 22 Jun 2018
piecewise requires the Symbolic Toolbox. - Artie Sherman

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!