正弦波を FFT した結果を表示しても、周波数のピークが完全に一致しないのはなぜですか?
106 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 25 Ott 2013
Risposto: MathWorks Support Team
il 25 Ott 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
Risposta accettata
MathWorks Support Team
il 25 Ott 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 Commenti
Più risposte (0)
Vedere anche
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!