Bagaimana mendeteksi puncak di MATLAB

Fungsi MATLAB dapat menemukan puncak, juga dikenal sebagai maxima lokal.

Langkah 1

Menentukan sumber informasi dengan mengimpor data ke MATLAB. Misalnya, buat gelombang sinus dengan gangguan acak:

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

Langkah 2

Temukan puncak sinyal Anda menggunakan metode interpolasi kuadrat dari "findpeaks ():"

[peak_value, peak_location] = findpeaks (my_signal);

Langkah 3

Carilah puncak ketinggian minimum menggunakan parameter "minpeakheight". Ketinggian adalah skalar nilai nyata yang mengacu pada nilai data minimum dari puncak yang diizinkan:

[peak_value, peak_location] = findpeaks (my_signal, 'minpeakheight', 2.5);

Langkah 4

Carilah puncak yang dipisahkan oleh jarak minimum menggunakan parameter "minpeakdistance". Nilai adalah jumlah minimum indeks antara puncak dalam vektor "my_signal" dan harus berupa bilangan bulat:

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

Langkah 5

Pencarian hanya memuncak pada batas tertentu menggunakan parameter "Ambang". Ini adalah skala nilai aktual yang mengacu pada perbedaan minimum yang diizinkan antara titik puncak dan titik informasi yang berdekatan:

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

Langkah 6

Temukan hanya sejumlah puncak menggunakan parameter "neak". Nilai harus berupa bilangan bulat:

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

Langkah 7

Perbaiki daftar yang dikembalikan dari puncak menggunakan parameter "sortr". Nilai yang diizinkan adalah "naik" (naik), "turun" (turun) dan "tidak ada" (tidak ada):

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