MATLAB'de Zirve Nasıl Tespit Edilir

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');