MATLAB, sinyal işleme ve analizi için kullanılabilecek teknik bir yazılım paketidir. Sinyal analizinde yaygın bir prosedür, tepe tespiti veya gürültülü bir sinyal içinde yerel maksimum değerleri - bitişik veri noktalarından daha büyük değerleri - bulmaktır. Tepe algılamayı genellikle belirli bir genişlikteki yerel maksimumla (sinyal zaman alanındayken süre) ve ayrıca belirli bir yükseklik veya büyüklükle sınırlamak gerekir.
Aşama 1
Verileri MATLAB'a aktararak bir veri kaynağı tanımlayın. Örneğin, rastgele gürültülü bir sinüs dalgası oluşturun:
my_signal = günah(0:0.1:10) + rand(1.101);
Adım 2
"findpeaks()" ikinci dereceden enterpolasyon yöntemini kullanarak sinyalinizdeki zirveleri bulun:
[tepe_değeri, tepe_konumu] = findpeaks(my_signal);
Aşama 3
"minpeakheight" parametresini kullanarak minimum yükseklikteki zirveleri arayın. Yükseklik, izin verilen tepe noktalarının minimum veri değerini ifade eden gerçek değerli bir skalerdir:
[tepe_değeri, tepe_konumu] = findpeaks(my_signal,'minpeakheight',2.5);
4. Adım
"Minpeakdistance" parametresini kullanarak minimum mesafeyle ayrılmış zirveleri arayın. Değer, "my_signal" vektöründeki tepe noktaları arasındaki minimum dizin sayısıdır ve bir tam sayı olmalıdır:
[tepe_değeri, tepe_konumu] = findpeaks(my_signal,'minpeakdistance',5);
Adım 5
"Eşik" parametresini kullanarak yalnızca belirli bir eşiğin üzerindeki zirveleri arayın. Bu, tepe ve bitişik veri noktaları arasında izin verilen minimum farkı ifade eden gerçek değerli bir skalerdir:
[tepe_değeri, tepe_konumu] = findpeaks(my_signal,'threshold',0.5);
6. Adım
"npeaks" parametresini kullanarak yalnızca belirli sayıda tepe bulun. Değer bir tam sayı olmalıdır:
[tepe_değeri, tepe_konumu] = findpeaks(my_signal,'npeaks',5);
"sortstr" parametresini kullanarak döndürülen tepe noktaları listesini sıralayın. İzin verilen değerler "yükselme", "düşme" ve "yok"tur:
[tepe_değeri, tepe_konumu] = findpeaks(my_signal,'sortstr','ascend');