how to plot a periodic function fro negative to positive?
Afficher commentaires plus anciens
Dear friend,
How to plot a periodic function for example 2*x from negative to positive?
I know a method to plot periodic function using mod but, It seems can not plot the negative range.
t = 10; % total simulation time
T = 3; % period
x = 0:0.1:t;
% lets say your original function is y=2*x which repeated every T second, then
y = 2*(mod(x,T));
plot(x,y)
However, because the mod of negative is a little strange, I don't know how to modify the code.
Your help would be highly appreciated
2 commentaires
V Sairam Reddy
le 20 Oct 2022
Please check this MATLAB Answer
Daniel Niu
le 20 Oct 2022
Réponse acceptée
Plus de réponses (1)
Hi @Daniel Niu
Are you looking for this?
Edit: Made changes as per shown in your diagram. Because the amplitude is unknown, then you need to multiply the function by a certain factor to get the desired amplitude.
t = 3*pi; % total simulation time
T = 2*pi; % period (from -π to +π) --> π - (-π) = 2π
x = -t:0.01:t;
y = 2*(mod((x - pi), T)) - 2*T/2; % also need to shift x by pi
plot(x/pi, y), grid on,
xlabel('{$\frac{x}{\pi}$}', 'interpreter', 'latex', 'fontsize', 16)
ylabel('{$y$}', 'interpreter', 'latex', 'fontsize', 16)
3 commentaires
Or directly use the sawtooth() menthod.
T = 3*pi;
fs = 1000;
t = 0:1/fs:T-1/fs;
a = pi; % amplitude
y = a*sawtooth(2*t);
plot(t/pi, y), grid on,
xlabel('{$\frac{t}{\pi}$}', 'interpreter', 'latex', 'fontsize', 16)
ylabel('{$y$}', 'interpreter', 'latex', 'fontsize', 16)
Daniel Niu
le 20 Oct 2022
Sam Chak
le 20 Oct 2022
Don't mention it @Daniel Niu. I have edited the code to display the sawtooh wave as per your sketched diagram. If you find the solution is helpful, please consider accepting ✔ and voting 👍 the Answer. Thanks!
Catégories
En savoir plus sur MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



