Cara Mendeteksi Puncak di MATLAB

MATLAB adalah paket perangkat lunak teknis yang dapat digunakan untuk pemrosesan dan analisis sinyal. Prosedur umum dalam analisis sinyal adalah deteksi puncak, atau menemukan maxima lokal -- nilai yang lebih besar dari titik data yang berdekatan -- dalam sinyal yang bising. Biasanya diperlukan untuk membatasi deteksi puncak ke maksimum lokal dengan lebar tertentu -- durasi saat sinyal berada dalam domain waktu -- serta ketinggian atau besaran tertentu.

Langkah 1

Tentukan sumber data dengan mengimpor data ke MATLAB. Misalnya, buat gelombang sinus dengan derau acak:

my_signal = sin(0:0.1:10) + rand(1.101);

Langkah 2

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

[peak_value, peak_location] = findpeaks(my_signal);

Langkah 3

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

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

Langkah 4

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

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

Langkah 5

Cari hanya puncak di atas ambang tertentu menggunakan parameter "ambang". Ini adalah skalar bernilai nyata yang mengacu pada perbedaan minimum yang diizinkan antara titik data puncak dan titik data yang berdekatan:

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

Langkah 6

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

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

Urutkan daftar puncak yang dikembalikan menggunakan parameter "sortstr". Nilai yang diizinkan adalah "naik", "turun", dan "tidak ada":

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