Как да открием връх в 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] = findpeaks (my_signal, 'minpeakheight', 2.5);

Стъпка 4

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

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

Стъпка 5

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

[peak_value, peak_location] = findpeaks (my_signal, 'праг', 0,5);

Стъпка 6

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

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

Сортирайте върнатия списък с пикове, като използвате параметъра "sortstr". Допустимите стойности са "възходящ", "низходящ" и "няма":

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