- ベストアンサー
MATLABによるFFT
MATLABのfft関数を使用して,フーリエ変換してPSDを算出すると,スペクトルの周波数領域での積分値が元データの二乗平均値と一致しないのですが,原因は何が考えられるでしょうか?FFTの出力がフーリエ係数であれば一致するはずなのですが.
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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) となります。
その他の回答 (2)
- ICE_FALCON
- ベストアンサー率56% (63/111)
回答No.2
#1です。 間違ってますね・・。 そういえば、FFT長で割る必要があったような・・・・。
質問者
お礼
ありがとうございます. FFT長で割っても一致しないのです.
- ICE_FALCON
- ベストアンサー率56% (63/111)
回答No.1
手元にmatlabないので確認できないけど、 fft前後のエネルギーは一致したはずですよ。 s=randn(1000,1); Ps=sum(s.^2) h=fft(s); Ph=sum(abs(s)^2) 一致しません?
お礼
ありがとうございます. しかし,Nで割っても一致しないのです.