How to select the maximum points of the absolute values of a sin function

9 views (last 30 days)
I would like to get all the maximum values of x in another matrix any idea? Sorry I am new
fs = 500;
t = 0:1/fs:10-1/fs;
x = abs(sin(2*pi*3*t));
  1 Comment
Adam
Adam on 17 Aug 2017
Edited: Adam on 17 Aug 2017
Due to discretisation and the imperfect reproduction of the sine wave you will only pick up certain peaks as being the maximum.
find( x == 1 )
will give the indices of these locations, but when I run it this gives me only every 3rd peak. If you want the actual peak locations of the continuous curve surely that is just trivial maths?
peakLocs = 1/12 : 1/6 : ( 10 - 1/fs );

Sign in to comment.

Accepted Answer

Torsten
Torsten on 17 Aug 2017
https://de.mathworks.com/help/signal/ref/findpeaks.html
Best wishes
Torsten.
  2 Comments
Mauricio Galván García Luna
thank you so much!!
But once I get the maximum points is there a way to put them back in the time that they belong.
Torsten
Torsten on 17 Aug 2017
Edited: Torsten on 17 Aug 2017
[xp,locs] = findpeaks(x);
for i=1:numel(xp)
tp(i)=t(locs(i));
end
Best wishes
Torsten.

Sign in to comment.

More Answers (1)

Selva Karna
Selva Karna on 17 Aug 2017
fs = 500;
t = 0:1/fs:10-1/fs;
x = abs(sin(2*pi*3*t));
p=find(x==1)

Categories

Find more on Argument Definitions in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!