How to find peaks in a data vector?

1 回表示 (過去 30 日間)
Kelvin Prado
Kelvin Prado 2017 年 1 月 30 日
コメント済み: Star Strider 2017 年 2 月 2 日
Hello,
I have the following data
data = [9 12 8 11 10 10 11 12 11 11 12 8 11 9 9 12 8 11 10 12 8 11 12 8 11 10 18 20 10 18 20 24 28 30 31 32 33 33 34 33 32 34 35 32 33 31 30 37 38 39 40 39 40 38 37 40 41 38 37 36 33 32 34 35 32 33 31 30 32 34 31 30 28 26 25 23 20 18 15 12 11 10 10 11 12 11 11 9 12 8 11 10 12 8 9 11 7 9 10 7 3 4 2 1 5 4 3 7 8 9 10 5 4 6 11 12 8 11 12 12 13 14 15 12 13 15 15 16 17 18 19 17 16 15 19 20 21 20 18 17 16 19 21 18 20 24 28 30 31 32 33 30 31 35 36 38 40 42 41 41 42 46 48 47 45 42 40 41 43 40 39 39 38 36 32 34 31 30 28 26 25 23 20 18 15 12 11 10 12 8 9 11 7 9 10 12 11 10 11 10 11 12 11 11 9 12 8 11 10 10 11 12 11 11 9 12 8 11 10 14 15 18 17 16 15 18 19 14 15 17 18 19 20 21 19 18 17 16 15 14 12 15 15 15 16 17 18 18 19 20 20 20 21 19 17 16 17 18 19 22 24 26 29 30 35 37 40 42 44 44 46 48 48 49 50 50 51 52 53 51 52 55 58 57 51 56 57 52 50 49 52 52 51 49 48 46 46 42 43 45 41 42 40 41 43 40 38 37 34 32 28 25 19 15 14 13 12 8 5 3 7 8 9 11 12 10 7 9 14 13 11 10 8 5 4 3 5 7 8 9 10 12 11 6 8 10 7 6 8];
and I need to find exactly 3 peaks in these data, for example:
How can I do that?
Note 1: I always need to find 3 peaks (this value doesn't change), but the X and Y axis range may change.
Note 2: The last peak/curve will always be higher than the other two.
Note 3: I don't need to get the value itself, I need to get the index of the value.

採用された回答

Star Strider
Star Strider 2017 年 1 月 30 日
If you have the Signal Processing Toolbox, use the findpeaks function. It will do what you want. You will have to experiment with its name-value pair arguments to get the ‘correct’ result.
  6 件のコメント
Kelvin Prado
Kelvin Prado 2017 年 2 月 2 日
  • Thanks again Star Strider, I will try to use the fft to find the dominant peak and determine the 'MinPeakDistance'. It seems to be relatively easy (in Matlab) and I think it solves my problem.
  • Image Analyst, cause I need to create an algorithm that automatically finds the peaks. The user of my algorithm doesn't need to have a previous knowledge about the data it self, just need to know what time (X axis) each peak occurs.
  • Thanks Adam, I will take a look at the 'MinPeakProminence' attribute. I didn't know about that.
Star Strider
Star Strider 2017 年 2 月 2 日
Our pleasure!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by