plotting Sum function , with floor term and rectangular pulse
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
semicolon
am 21 Apr. 2020
Kommentiert: Ameer Hamza
am 21 Apr. 2020
Hey,
Is there a way to plot this function in Matlab?
y(t) =

while
is the function :
, and u is the Heaviside function.


0 Kommentare
Akzeptierte Antwort
Ameer Hamza
am 21 Apr. 2020
Bearbeitet: Ameer Hamza
am 21 Apr. 2020
try this
syms t n
chi = heaviside(t-n) - heaviside(t-2-n);
term = (-1)^n*floor((n+2)/2).*chi;
y = symsum(term, n, 0, inf);
t_vec = linspace(0, 10, 100);
y_vec = vpa(subs(y, t, t_vec));
plot(t_vec, y_vec, '-o')
A faster alternative:
chi = @(t, n) heaviside(t-n) - heaviside(t-2-n);
term = @(t, n) (-1).^n.*floor((n+2)/2).*chi(t,n);
y = @(t) sum(term(t, 0:ceil(t+1)));
t_vec = linspace(0, 10, 100);
y_vec = zeros(size(t_vec));
for i=1:numel(t_vec)
y_vec(i) = y(t_vec(i));
end
plot(t_vec, y_vec, '-o')
3 Kommentare
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!