グラフの横軸の範囲を指定し、findpeaksで指定の数だけ取り出す
16 次查看(过去 30 天)
显示 更早的评论
FFTをかけた後のグラフに関して、x軸の指定範囲(1~5Hz)の中にあるピークを左から順に2つ取り出したいです。まだまだ初学者でfindpeaksのオプションを調べたのですがこれといったものが見つからなかったので、どのようにすればよいかご教授いただけると幸いです。
0 个评论
采纳的回答
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) % 値を取り出す
グラフの横軸の範囲は、入力データ範囲を指定して入力する方法しか見つかりませんでした。サンプルプログラムの都合で(1~5Hz)になっていない点はご容赦願います。
ピークを左から順に2つ取り出すには「NPeaks — ピークの最大数」オプションを2に指定します。
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 記述統計 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!