Phase Shift Sawtooth Wave
Mostra commenti meno recenti
Hi everyone,
I am trying to plot a triangular wave for a specified time using the sawtooth function in Matlab. The user inputs values for T_amp, T_freq, and ft and the code then calculates the sawtooth and plots the function vs time, ft.
When plotted, the plot shows the sawtooth starting at -T_amp. I was wondering if there was a way to shift the function so that the sawtooth starts at 0, where the first point would be (0,0) instead of (0, -T_amp). If anyone could help me out with this, I would really appreciate it. Thanks!
tri = T_amp*sawtooth(T_freq*ft, .5);
plot(ft, tri;)
Risposta accettata
Più risposte (1)
if you just want to shift it so that it starts at (0,0):
tri = T_amp*sawtooth(T_freq*ft, .5) + T_amp;
Note that with the above tri will range from 0 to 2*T_amp,
if you actually wanted it to range from 0 to T_amp you could use:
tri = T_amp/2*sawtooth(T_freq*ft, .5) + T_amp/2;
6 Commenti
Ethan
il 15 Ott 2020
Ethan
il 15 Ott 2020
Sorry, I misunderstood your question. So it sounds like you want to phase shift the sawtooth. You could do something like this:
% generate a few cycles of the sawtooth waveform
amp = 5;
theta = linspace(0,6*pi,1000);
tri = sawtooth(theta,0.5)*amp,
% now phase shift the waveform
thetaShift = theta - pi/2;
% just keep the values for positive time (angle)
iKeep = thetaShift >= 0;
theta = thetaShift(iKeep)
tri = tri(iKeep);
% plot the results
plot(theta,tri)
grid
Here I did it in terms of radians, since the sawtooth is defined to have a period of 2*pi it is clearer to see the phase shift. I think you can easily adapt this to do it in terms of your desired frequency and using units of time.
Ethan
il 15 Ott 2020
Jon
il 15 Ott 2020
Oh even better, just feeding the sawtooth with the shifted angles
Jon
il 16 Ott 2020
It would be good to either post your solution as an answer and then accept it, or accept this thread and let people find it in the comments just so that others who might have a similar question will know there is an answer available
Categorie
Scopri di più su Numerical Integration and Differentiation in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
