כיצד לזהות פסגות ב- MATLAB

פונקציות MATLAB יכולות למצוא פסגות, הידועות גם בשם מקסימום מקומי.

שלב 1

מגדיר מקור מידע על-ידי ייבוא ​​נתונים ל- MATLAB. לדוגמה, ליצור גל סינוס עם רעש אקראי:

my_signal = חטא (0: 0.1: 10) + ראנד (1, 101);

שלב 2

מצא פסגות האות שלך באמצעות שיטת אינטרפולציה ריבועית של "findpeaks ():"

[השיא, השיא] = למצוא את השמות (my_signal);

שלב 3

חפש פסגות של גובה מינימלי באמצעות פרמטר "minpeakheight". הגובה הוא סקלר של ערך אמיתי המתייחס לערך הנתונים המינימלי של הפסגות המותרות:

[השיא, השיא], [=], (=), (2.5);

שלב 4

חפש פסגות מופרדות על ידי מרחק מינימלי באמצעות פרמטר "minpeakdistance". הערך הוא המספר המינימלי של אינדקסים בין פסגות בקטור "my_signal", והוא חייב להיות מספר שלם:

[השיא, השיא], [=], (5);

שלב 5

חפש רק פסגות מעל גבול מסוים באמצעות הפרמטר "סף". זהו סולם ערכים בפועל המתייחס להפרש המינימלי המותר בין הפסגה לבין נקודות המידע הסמוכות:

[השיא, השיא], = = (= סף, 0.5);

שלב 6

מצא רק מספר פסגות באמצעות פרמטר "npeaks". הערך חייב להיות מספר שלם:

[השיא, השיא] = מציאה (my_signal, 'npeaks', 5);

שלב 7

תקן את הרשימה שחזרה מהפסגות באמצעות הפרמטר "sortsr". הערכים המותרים הם "לעלות" (לעלות), "לרדת" (לרדת) ו "אף אחד" (אף):

[height_value, peak_location] = findpeaks (my_signal, 'sortstr', 'ascend');