グラフの横軸の範囲を​指定し、findpe​aksで指定の数だけ​取り出す

16 次查看(过去 30 天)
gs
gs 2022-12-15
评论: gs 2022-12-15
FFTをかけた後のグラフに関して、x軸の指定範囲(1~5Hz)の中にあるピークを左から順に2つ取り出したいです。まだまだ初学者でfindpeaksのオプションを調べたのですがこれといったものが見つからなかったので、どのようにすればよいかご教授いただけると幸いです。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2022-12-15
NPeaks ピークの最大数: 正の整数スカラー
返されるピークの最大数。正の整数スカラーとして指定します。findpeaks は入力データの最初の要素から演算を開始し、ピークの数が 'NPeaks' の値に達すると終了します。
高速フーリエ変換 - MATLAB fft (FFT の内挿) からサンプルとしてコードを拝借しました。
Fs = 80; T = 1/Fs; L = 65; t = (0:L-1)*T;
X = 3*cos(2*pi*2*t) + 2*cos(2*pi*4*t) + sin(2*pi*6*t);
n = 2^nextpow2(L); Y = fft(X,n); f = Fs*(0:(n/2))/n;
P2 = abs(Y/L); P1 = P2(1:n/2+1);
plot(f,P1,"-o"); % P1をサンプル波形とします
findpeaks(P1(1:20),'NPeaks',2); % グラフに表示する
[pks,locs] = findpeaks(P1(1:20),'NPeaks',2) % 値を取り出す
pks = 1×2
1.4997 0.9831
locs = 1×2
4 8
グラフの横軸の範囲は、入力データ範囲を指定して入力する方法しか見つかりませんでした。サンプルプログラムの都合で(1~5Hz)になっていない点はご容赦願います。
ピークを左から順に2つ取り出すには「NPeaks — ピークの最大数」オプションを2に指定します。
  1 个评论
gs
gs 2022-12-15
ご回答ありがとうございます。
グラフの横軸の範囲の件、承知いたしました。
NPeaksの使い方も参考になりました。
ありがとうございました。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 記述統計 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!