こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MATLABによるFFT

MATLABのfft関数を使用して,フーリエ変換してPSDを算出すると,スペクトルの周波数領域での積分値が元データの二乗平均値と一致しないのですが,原因は何が考えられるでしょうか?FFTの出力がフーリエ係数であれば一致するはずなのですが.

投稿日時 - 2009-10-19 17:21:30

QNo.5379729

すぐに回答ほしいです

質問者が選んだベストアンサー

FFTというのは、離散フーリエ変換(DFT)の算法の名前ですから、
DFTとして考えます。

DFTは
X(k)=Σx(n)exp(-j2πkn/N) (和分の範囲は0~N-1)

時間領域の信号エネルギーと周波数領域の信号エネルギーは
比例関係にありますが、一致はしません。
DFTの点の数をNとすると、
Σ|x(n)|^2 = (1/N)Σ|X(k)|^2
(和分の範囲は0~N-1)
となります。

投稿日時 - 2009-10-19 18:38:59

お礼

ありがとうございます.
しかし,Nで割っても一致しないのです.

投稿日時 - 2009-11-09 21:18:38

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

#1です。
間違ってますね・・。
そういえば、FFT長で割る必要があったような・・・・。

投稿日時 - 2009-10-19 18:28:41

お礼

ありがとうございます.
FFT長で割っても一致しないのです.

投稿日時 - 2009-11-09 21:17:53

ANo.1

手元にmatlabないので確認できないけど、
fft前後のエネルギーは一致したはずですよ。
s=randn(1000,1);
Ps=sum(s.^2)

h=fft(s);
Ph=sum(abs(s)^2)
一致しません?

投稿日時 - 2009-10-19 18:26:12

あなたにオススメの質問