Peak to Peak Value of Sinusoidal Grad

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)

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

I have R2016a
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.

Asked:

k
k
on 31 Mar 2020

Commented:

on 31 Mar 2020

Community Treasure Hunt

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

Start Hunting!