FFTを用いたパーセバルの等式とは?

このQ&Aのポイント
  • パーセバルの等式は、離散フーリエ変換の計算結果を確認するために使用されます。
  • xの周期と同じ(もしくは整数倍)の周期を持つ関数に対しては、パーセバルの等式の両辺の値が一致します。
  • しかし、xの周期と一致しない関数や観測データを入力した場合、パーセバルの等式は誤差が生じることがあります。
回答を見る
  • ベストアンサー

FFTの出力を使ったパーセバルの等式

FFTによる離散フーリエ変換の計算結果を確認するためにパーセバルの等式を利用しました。 f(x)=sin(2π*x) [xの周期1] 上記のようなxの周期と同じ(もしくは整数倍)の周期を持つ関数に対しては、 パーセバルの等式の両辺の値が一致しているのですが、 f(x)=sin(2π*1.5x) のようなxの周期と一致しない関数の場合、パーセバルの等式に誤差が生じます。 そして、観測データなどを入力値とした場合は、パーセバルの等式の両辺の差はかなり大きくなってしまいます。 そこで、離散フーリエ変換の場合、パーセバルの等式が常に成り立つものなのかどうかに関して教えていただけないでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
回答No.3

#1,#2です。 お求めにより「各フーリエ成分の2乗の値を表記」します。 f(i)=sin(2π*(i/n)) のとき、 X(1)^2=ほぼ0 X(2)^2=2500 それ以外はほぼ0 f(i)=sin(2π*1.5*(i/n)) のとき、 X(1)^2=449.65 X(2)^2=1457.82 X(3)^2=745.259 X(4)^2=50.258 X(5)^2=12.1678 X(6)^2=4.47126 X(7)^2=2.04643 X(8)^2=1.07574 以下省略 ここで気になるのですが、 もともと最初の式では右辺はi=0~n-1で書かれています。そういう書き方をするならフーリエデータの最初の項、つまり直流項はX(0)ということになるのですが、今回はX(1)で書かれています。そこに混乱はありませんか? 私の上記の数値のX(1)^2は周波数がゼロつまり直流成分です。f(i)=sin(2π*1 (i/n))では計測範囲で1周期ですから、フーリエ面の直流成分はほぼゼロ。次の基本周波数成分がX(2)ですが、そこにパワー集中。自然な結果です。 ty1048様の番号付けは、直流項はi=0ですか?i=1ですか? このズレが原因では無いのですか?このズレがあると、 (1/n)*{X(0)^2+2*Σ(i=1~n/2-1)X(i)^2+X(n/2)^2} という細工をした形の計算の妥当性が損なわれるでしょうから。 もしもそういう細工した計算では無く、ストレートに全項についての自乗和をとれば、直流項がi=0でもi=1でも結果は同じで混乱は起きませんが。

ty1048
質問者

お礼

回答ありがとうございます。 おっしゃっていただいたとおり直流成分の扱いに誤り、 正しい計算をもう一度行った結果、パーセバルの等式を満たすことが出来ました。 このような初歩的な質問にも関わらず協力していただき、本当にありがとうございます。 では、失礼いたします。

その他の回答 (2)

回答No.2

#1です。 補足コメントを確認させていただきましたが、私のほうでの計算では両ケースにおいて実空間総和(左辺)もパワースペクトル総和(右辺)もぴったり50.00000になります。 ただし、X(i)等は絶対値化して|X(i)|等としています。 どこかで計算ミスしている程度のことしか考えられませんが。。。。。

ty1048
質問者

お礼

確認していただき、ありがとうございます。 続けてのお願いとなってしまうのですが、各フーリエ成分の2乗の値を表記していただくことは可能でしょうか? ちなみに自分の場合は、 f(i)=sin(2π*(i/n)) のとき、 X(1)^2=2500 それ以外はほぼ0 f(i)=sin(2π*1.5*(i/n)) のとき、 X(1)^2=1457.82458 X(2)^2=745.258911 X(3)^2=50.2580490 X(4)^2=12.1677599 X(5)^2=4.47126150 X(6)^2=2.04642415 X(7)^2=1.07574201 それ以外、ほぼ0 となっています。 f(i)=sin(2π*1.5*(i/n)) のときの値の合計が2500になっていないので、 おっしゃるとおり計算上の問題かもしれません。 (そもそも、f(i)=sin(2π*1.5*(i/n))の場合はX(1)とX(2)が同じ大きさで、他は0にならないとおかしい気がしますが...) 引き続き、アドバイスをいただけたら幸いです。

回答No.1

常に成り立つと信じていますが。。。。 「xの周期と同じ」とか同じで無いとかは、xは周期関数では無いはずですから、xの範囲にsinが整数サイクル入るかどうかという意味だと解釈します。(勘違いなら済みません) その限りにおいて、テスト確認してみたところ、どっちでもパーシバルの等式は成立しています。 そうでなくても、ランダム変数であっても(つまり周期なんか関係ない)、同様に成立しています。 そうならないということのようですが、具体的な数値等を開示されるとおそらく他の方からもっと適確な答えが返ってくるのではないかと思います。

ty1048
質問者

お礼

回答ありがとうございます。 >「xの周期と同じ」とか同じで無いとかは、xは周期関数では無いはずですから、xの範囲にsinが整数サイクル入るかどうかという意味だと解釈します。 おっしゃるとおりです、紛らわしい表現をしてしまい申し訳ありません。 以下に計算の概要を記します。見ていただいてければと思います。 ---------------------------------------------------------------------- 離散フーリエ変換のパーセバルの等式: Σ(i=0~N-1)x(i)^2 = 1/N Σ(k=0~N-1)X(k)^2 n=100 f(i)=sin(2π*(i/n)) のとき、 (パーセバルの左辺)=Σ(i=0~n-1)f(i)^2 = 49.9999962 f(i)のフーリエ成分をX(i) (パーセバルの右辺) = (1/n)*{X(0)^2+2*Σ(i=1~n/2-1)X(i)^2+X(n/2)^2} = 50.0000000 f(i)=sin(2π*1.5*(i/n)) のとき、 (パーセバルの左辺) = 49.9999924 (パーセバルの右辺) = 45.5034714 ---------------------------------------------------------------------- 上記のような計算を行っていますが、 何か気付く点があれば、ご指摘いただけないでしょうか? よろしくお願いいたします。

関連するQ&A

  • DTFTとDFT、FFTについて

    離散時間フーリエ変換(DTFT)と 離散フーリエ変換(DFT) 及び高速フーリエ変換(FFT)について 比較的詳しく紹介されているサイトを探しています。 ご存知の方がおられましたら教えてください。 よろしくお願いします。

  • MATLABによるFFT

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

  • FFT解析について

     FFT解析について不明な点があります。 例えばf(t)=2sinωt という時間関数があったとします。  これをFFT解析してF(ω)-ωグラフにしたとします。この時、ω=ωに対してのみF(ω)という出力が得られると思うのですが、この時F(ω)はf(t)=2sinωtの振幅の2になるのでしょうか?  フーリエ変換の式では、e^(-jωt)とf(t)を積分した値が、F(ω)になるので感覚的に考えても違うのかな と思っているのですが。  

  • パーセバルの等式

    f(x)=x(π-x) (0<x<π)のフーリエ余弦級数を求めよ。さらにパーセバルの等式を用いてΣ(1/n^4)[n=1..∞]の値を求めよ。 という問題なのですがフーリエ余弦級数はf(x)=(π^2/6)-Σcos2nx/(n^2) [n=1..∞]と出ました(これも合っているか分からないのですが)。この後はどのようにしてΣ(1/n^4)[n=1..∞]の値を求めればいいのでしょうか。 どなたかよろしくお願いいたします。

  • フーリエ変換

    【1】次のような関数をフーリエ変換するにはどうしたらよいのでしょうか? f(t) = 1 ( nT-d <= t <= nT+d )     0 ( (n-1)T+d < t < nT-d )     n = 0, ±1, ±2, ±3, ... ..., 0, 1, 0, 1, ... を繰り返す周期関数のようですが,周期関数のフーリエ変換はどのようにするのでしょうか.また,範囲を表すのに文字が三つも使われていて,うまくイメージできないのですが,グラフに描くとどのようになりますか? 【2】二つの関数 f(t), g(t) の積 f(t)g(t) をフーリエ変換するにはどうしたらよいのでしょうか? 詳しい手順を教えてください.また,具体例を示していただけるとうれしいです. 「たたみこみ」が関係しているようですが,いまひとつよくわかりません. F[f(x)g(x)](ω) = (1/(2π))F*G(ω) の右辺の意味がわかりません. 【3】エネルギースペクトルを求めるにはどうしたらよいのでしょうか? 「パーセバルの等式」を使うのでしょうが,使い方がわかりません. 詳しい手順を教えてください.また,具体例を示していただけるとうれしいです.

  • 等式についてです

    周期が2Lの任意の周期関数f(x)を f(x)=a0/2+∑[an・cos(nπx/L) + bn・sin(nπx/L)] とフーリエ展開表示したとき (1) ∫sin(nπx/L)・sin(mπx/L) dx =Lδ ∫cos(nπx/L)・cos(mπx/L) dx =Lδ を示せ (δはクロネッカーのデルタでm=nのとき1、それ以外は0) (2) パーシバルの等式 ∫[f(x)]^2 dx = a0^2/2+∑(an^2+bn^2) が成り立つことを証明せよ という問題が出されました (全部積分範囲は-LからLまでです) (1)はm=nの場合Lになったのですが mノットイコールnのとき  sin(nπx/L)・sin(mπx/L) を -1/2[cos(m+n)π/L-cos(m-n)π/L]として積分していくと [sin(n+m)π-sin-(n+m)π]-[sin(n-m)π-sin-(n-m)π] という部分が出てきました(分数部分はごちゃごちゃになるので省略しました) 初めはnとmはともに整数なのでsin(n+m)πもsin(n-m)πも0になるかな?とか考えたのですが nは整数なのでしょうがmに関してはどうなのでしょうか? (2)についてはf(x)をそのまま代入して計算したのですがそれで良いのでしょうか? 一応両辺が一致しましたがちょっと不安です。 考え方が違う!などありましたらご教授願います。

  • 数学、フーリエ変換に関する質問です。

    月曜日にテストがあるんですが、答えが合わなくて困っています。 わかる方いましたら答えと解法を教えていただきたいです。 0≦x<2のときf(x)=1、それ以外はf(x)=0 Q1このときfのフーリエ変換を求めよ Q2パーセバルの等式を用いて∫-∞~+∞(sinλ/λ)^2dλを求めよ Q1は何度解いても答えが-1/iλ{(e^-2iλ)-1}となってしまうのですが、模範解答は1/iλ{(e^2iλ)-1}となっています。フーリエ変換の公式をf(λ)=∫-∞~+∞(f(x)e^-iλx)dλと習ったのですが、模範の方はeの次数の-をとって計算した時の答えだと思うんですが、どちらが正しいんでしょうか。 Q2はQ1の模範解答の答えが正しいとして進むと、f(λ)=(2e^iλ)sinλ/λとなると思うんですが、パーセバルの等式に入れると∫の中にeの式が残ってしまって問題の式に持っていけないのですが、わかる方お願いします。

  • sin(wt)のFFT

    フーリエ変換に関して全くの初心者なのですが、sin(wt)をFFTしなければなりません。どのようにプログラムを書いたらよいのでしょうか?FFTに詳しいかた、教えて下さい。よろしくお願いします。

  • sin(wt)FFT

    フーリエ変換に関して全くの初心者で、今sin(wt)をFFTする事を求められていて困っています。どなたかFFTに詳しい方がいらっしゃったら教えて下さい。

  • 離散フーリエ変換

    フーリエ変換を計算機で扱う場合について聞きたいです。 ある関数(例えばsin(x))を離散フーリエ変換しようとして、まずxを0.1ずつ増やしながらsin(x)をサンプリングします。これを虚部を0として複素数にします。 この後、複素数のフーリエ変換を行い結果が得られます。 と、ここまでは正しいと思うのですが、 その後が分かりません。 文献などに載っているフーリエ変換後のグラフは、横軸が周波数νで、縦軸がf(ν)です。 このグラフと合うようにするには 横軸・縦軸には何をとればいいのでしょうか? 横軸が周波数って言うのは、この場合は1/0.1のことでしょうか? 教えて頂きたいです。お願いします。