Как да се открият върховете в MATLAB

Функциите на MATLAB могат да намерят върхове, известни също като локални максимуми.

Стъпка 1

Определя източник на информация чрез импортиране на данни в MATLAB. Например, създайте синусова вълна с произволен шум:

my_signal = sin (0: 0, 1: 10) + rand (1, 101);

Стъпка 2

Намерете върхове във вашия сигнал, използвайки квадратичния интерполационен метод на "findpeaks ():"

[peak_value, peak_location] = findpeaks (my_signal);

Стъпка 3

Потърсете върхове с минимална височина, като използвате параметъра "minpeakheight". Височината е скаларна реална стойност, която се отнася до минималната стойност на данните на разрешените пикове:

[peak_value, peak_location] = Намерител (my_signal, "minpeakheight", 2.5);

Стъпка 4

Потърсете върхове, разделени с минимално разстояние, като използвате параметъра "minpeakdistance". Стойността е минималният брой индекси между пиковете във вектора "my_signal" и трябва да е цяло число:

[peak_value, peak_location] = findpeaks (my_signal, "minpeakdistance", 5);

Стъпка 5

Търсете само върхове над определена граница, като използвате параметъра "Threshold". Това е скала на действителната стойност, която се отнася до разрешената минимална разлика между пика и съседните информационни точки:

[peak_value, peak_location] = findpeaks (my_signal, "праг", 0.5);

Стъпка 6

Намерете само няколко върхове, като използвате параметъра "npeaks". Стойността трябва да е цяло число:

[peak_value, peak_location] = findpeaks (my_signal, "npeaks", 5);

Стъпка 7

Фиксирайте списъка, върнат от пиковете, като използвате параметъра "sortsr". Допустимите стойности са "ascend" (ascend), "descend" (descend) и "none" (none):

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