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

조회 수: 49 (최근 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개)

Community Treasure Hunt

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

Start Hunting!