正弦波を FFT した結果を表示しても、周波数のピークが完全に一致しないのはなぜですか?
106 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 25 Okt. 2013
Beantwortet: MathWorks Support Team
am 25 Okt. 2013
以下のように、FFT 関数の例題を参考に FFT を実行し、スペクトルを表示しました。信号の周波数のピークが、元のデータに一致しません。
Fs = 100; % サンプリング周波数
t = 0:1/Fs:1; % 時間ベクトル
x = sin(2*pi*5*t); % サンプル信号(周波数 5[Hz])
NFFT = 128; % FFT点数
y = fft(x,NFFT); % FFT
F =Fs/2*linspace(0,1,NFFT/2+1); %周波数軸
plot(F,abs(y(1:(NFFT/2+1))))
grid on
Akzeptierte Antwort
MathWorks Support Team
am 25 Okt. 2013
周波数分解能に関係しています。サンプリング周波数 Fs, FFT点数 NFFT のとき FFT を実行すると、周波数全帯域においてその時の周波数軸は下記のようになります。
開始点: 0 [Hz]
間隔(分解能): Fs/NFFT [Hz]
点数: NFFT [点]
実行例では、
Fs = 100;
NFFT = 128;
であるため、周波数軸の間隔は、100/128 ≒ 0.7813 となり、この間隔では、5[Hz] を表現することができません。
例えば、
NFFT = 200;
にすると、周波数軸の間隔が 100/200 = 0.5 となり、5Hz を表現できます。
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu フーリエ解析とフィルター処理 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!