グラフの横軸の範囲を指定し、findpeaksで指定の数だけ取り出す
조회 수: 49 (최근 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!