
グラフ内のピークの検出
27 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Naoki Ishibashi
am 9 Nov. 2016
Kommentiert: mizuki
am 10 Nov. 2016
以下のプログラムである点での3時間おきの気温をフーリエ変換しプロットしました。 次に添付のようにピークを検出しそのピーク値を出力し図示するようにしたいのですが、以下のプログラムでは図示できません。 図示し、ピーク値の大きい順に番号をふり、何番目までを出力と制限できればと考えています。 サイトをやって見たのですが、うまくいかず、何かアドバイス頂けると幸いです。
以下プログラムです
filename =('1.txt');
x = load(filename);
[pxx,w] = periodogram(x);
plot(w,10*log10(pxx))
pks = findpeaks(pxx);
xlabel('Frequency (Hz)')
ylabel('Power/Frequency (dB/Hz)')
0 Kommentare
Akzeptierte Antwort
mizuki
am 9 Nov. 2016
ピーク値の数を定めるには 'NPeaks' オプションを使用します。
また、ピーク値をソートするには 'SortStr' オプションを使用します。
例えば、ピーク値の大きいものから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コマンドの部分は、ドキュメントの例 "ピークとその位置の検索" にあるものを使用しました。
3 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu MATLAB Mobile finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!