How to select the maximum points of the absolute values of a sin function
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mauricio Galván García Luna
le 17 Août 2017
Modifié(e) : Adam
le 17 Août 2017
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 commentaire
Adam
le 17 Août 2017
Modifié(e) : Adam
le 17 Août 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 );
Réponse acceptée
Plus de réponses (1)
Selva Karna
le 17 Août 2017
fs = 500;
t = 0:1/fs:10-1/fs;
x = abs(sin(2*pi*3*t));
p=find(x==1)
1 commentaire
Stephen23
le 17 Août 2017
Modifié(e) : Stephen23
le 17 Août 2017
This answer is very fragile, and does not handle floating-point errors at all. This is not a general solution for this task (try changing fs to 499 and see what happens).
Read these to know why testing for equality of floating-point values is a bad way to write code:
and a hundred other discussion of this topic.
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!