Peak to Peak Value of Sinusoidal Grad

8 views (last 30 days)
k
k on 31 Mar 2020
Commented: Star Strider on 31 Mar 2020
I have a sinusoidal position vs. time graph. The graph is from time t=0s to t=40s. I need to caluclate the peak to peak amplitude between each of the peaks from 10 to 20 seconds. How would I do this?
I tried doing X1 = peak2peak(time) where X1 is the position values on the y axis of my graph, but it only returns one value.

Answers (1)

Star Strider
Star Strider on 31 Mar 2020
Use the islocalmax function to find the maxima, islocalmin to find the minima, and go from there. (These functions were introduced in R2017b.)
  2 Comments
Star Strider
Star Strider on 31 Mar 2020
Then use the Signal Processing Toolbox findpeaks function. To detect the peaks, use it normally, to detect the valleys,use findpeaks on the negated signal.
[pks,pklocs] = findpeaks(signal);
[vys,vylocs] = findpeaks(-signal);
Remember that the amplitudes of the valleys (the ‘vys’ variable) are the negatives of the returned values. The locations of both are valid regardless, and do not need to be changed.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!