Azzera filtri
Azzera filtri

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

106 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
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
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 を表現できます。

Più risposte (0)

Categorie

Scopri di più su フーリエ解析とフィルター処理 in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!