Effacer les filtres
Effacer les filtres

正弦波を FFT した結果を表示しても​、周波数のピークが完​全に一致しないのはな​ぜですか?

106 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 25 Oct 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

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 25 Oct 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 を表現できます。

Plus de réponses (0)

Catégories

En savoir plus sur フーリエ解析とフィルター処理 dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!