ピーク値の数を定めるには 'NPeaks' オプションを使用します。
また、ピーク値をソートするには 'SortStr' オプションを使用します。
これらオプションについては、 findpeaks のドキュメントの入力引数 > 名前/値のペアの引数 の項目に詳細が記載されています。 例えば、ピーク値の大きいものから5番目までを抽出したい場合は、以下のようなコードになります。
filename =('1.txt');
x = load(filename);
[pxx,w] = periodogram(x);
plot(w,10*log10(pxx))
xlabel('Frequency (Hz)')
ylabel('Power/Frequency (dB/Hz)')
[psor,lsor] = findpeaks(10*log10(pxx), w, 'NPeaks', 5, 'SortStr','descend');
findpeaks(10*log10(pxx), w, 'NPeaks', 5)
text(lsor+.02,psor,num2str((1:numel(psor))'))
最後のtextコマンドの部分は、ドキュメントの例 "ピークとその位置の検索" にあるものを使用しました。
Best Answer