- ベストアンサー
FFTを用いたパーセバルの等式とは?
- パーセバルの等式は、離散フーリエ変換の計算結果を確認するために使用されます。
- xの周期と同じ(もしくは整数倍)の周期を持つ関数に対しては、パーセバルの等式の両辺の値が一致します。
- しかし、xの周期と一致しない関数や観測データを入力した場合、パーセバルの等式は誤差が生じることがあります。
- みんなの回答 (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でも結果は同じで混乱は起きませんが。
その他の回答 (2)
- imoriimori
- ベストアンサー率54% (309/570)
#1です。 補足コメントを確認させていただきましたが、私のほうでの計算では両ケースにおいて実空間総和(左辺)もパワースペクトル総和(右辺)もぴったり50.00000になります。 ただし、X(i)等は絶対値化して|X(i)|等としています。 どこかで計算ミスしている程度のことしか考えられませんが。。。。。
お礼
確認していただき、ありがとうございます。 続けてのお願いとなってしまうのですが、各フーリエ成分の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にならないとおかしい気がしますが...) 引き続き、アドバイスをいただけたら幸いです。
- imoriimori
- ベストアンサー率54% (309/570)
常に成り立つと信じていますが。。。。 「xの周期と同じ」とか同じで無いとかは、xは周期関数では無いはずですから、xの範囲にsinが整数サイクル入るかどうかという意味だと解釈します。(勘違いなら済みません) その限りにおいて、テスト確認してみたところ、どっちでもパーシバルの等式は成立しています。 そうでなくても、ランダム変数であっても(つまり周期なんか関係ない)、同様に成立しています。 そうならないということのようですが、具体的な数値等を開示されるとおそらく他の方からもっと適確な答えが返ってくるのではないかと思います。
お礼
回答ありがとうございます。 >「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 ---------------------------------------------------------------------- 上記のような計算を行っていますが、 何か気付く点があれば、ご指摘いただけないでしょうか? よろしくお願いいたします。
お礼
回答ありがとうございます。 おっしゃっていただいたとおり直流成分の扱いに誤り、 正しい計算をもう一度行った結果、パーセバルの等式を満たすことが出来ました。 このような初歩的な質問にも関わらず協力していただき、本当にありがとうございます。 では、失礼いたします。