• ベストアンサー

ピリオドグラムって…

時系列データの周波数うちわけを知る統計量(?)として, ピリオドグラムというものがあることを知りました。 p(f) = C_0 + 2 Σ{k = 1 to ∞}C_k cos(2πkf) 周波数のうちわけを知るだけなら FFT で十分なのに, なぜピリオドグラムというものが存在するのでしょうか。 不運にも私には,高校数学程度の理解しかありません。 ピリオドグラムのメリットとかデメリットが気になります。 ピリオドグラムをかみくだいて語ってくださると幸いです。

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

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

ピリオドグラムというのは,つまり,確率的な信号についての,FFTの平均値みたいなものです. 普通,信号解析をする場合,多かれ少なかれ,外部ノイズなどの確率的な現象を含む信号(時系列)を対象にしています. なんでスペクトル解析なんかをするときにも,確率的な取り扱いが入ってきます. 例えば,なんかの観測を無限回,繰り返したとします. 1回目は,時系列 f1(t) を観測, 2回目は,時系列 f2(t) を観測, … f1(t),f2(t),…は,だいたい似ているわけですが,細かく見るとノイズなんかの影響でちょっとずつ異なります. なんで,f1(t),f2(t),…をそれぞれ,フーリエ変換(あるいはFFT)したF1(ω),F2(ω),…もちょっとずつ違います. で,ピリオドグラムというのは,こいつらの各ωごとの平均のことです.つまり  Periodogram(ω) = E[ Fn(ω) ]_{n=1,2,…} です.(つまり.確率空間全体にわたる平均のこと) あと,パワースペクトルというのもあります.これは Fn(ω)の絶対値の2乗の平均のことです. 信号解析では,各周波数成分ごとのパワーのほうに興味があることが多いので,こっちのほうがよく使われます. つまり,  PowerSpectrum(ω)= E[ |Fn(ω)|^2 ]_{n=1,2,…} です,(これも,ほんとは,確率空間全体にわたる平均のこと) 注意しないといけないのは,  PowerSpectrum(ω) ≠ |Periodogram(ω)|^2 ということです.これは,ある確率変数Xについて  E[X^2] ≠ (E[X])^2 てことを考えればわかりますね. なんで,パワースペクトルを計算するには,普通は観測した時系列を直接FFTするのではなくて, 時系列の自己相関をとってそれをFFTします.(ウィーナー・ヒンチンの定理) 定義上は,各観測時系列直接FFTして,それぞれ絶対値の2乗を計算してから,平均すればいいわけですが, これだと,収束性がものすごく悪いです.

k1220011_2005
質問者

お礼

かみくだいてご説明いただき,助かりました。 FFT とピリオドグラムとで結果を比較してみました。 たしかにピリオドグラムは,ノイズ成分が非常に少ない! でも拾いたい(高次の)周波数まで,低減されてました(笑 今後,ピリオドグラムを使うことがあれば,活用したいです。 とてもよい勉強になり今後,ツールの一つとして覚えておきたいです。

関連するQ&A

  • FFTの計算結果について

    FFTについて勉強しています。 「教えてgoo」でFFTで、検索したら、 http://momonga.t.u-tokyo.ac.jp/~ooura/fft-j.html の、計算パッケージが良いと分かったのですが、計算結果の、読み方?が、分かりません。fftsg.c か、fft8g.c を利用して、計算結果を利用してグラフを描こうと考えています。それで、質問なのですが、 1.サンプリング周波数 44.1KHz  16ビットで 8192個のデータを計算させた場合、計算値として得られる、配列は、周波数の小さい順に並んでいるらしいことは、分かるのですが、それぞれのデーターの周波数は、どうなっているんでしょうか?  単純に0Hzから22050Hzを8192で、割った小さい順で良いのでしょうか? 2. また、パワースベクトルは、どの様に計算したらいいのでしょうか? 20log絶対値 で、良いのでしょうか?  よろしくお願いします。

  • FFTを使って信号から特定の周波数を抜き去る方法

    FFTを用いてある時系列データから特定の周波数の成分を抜き去ろうと思っていますが、 うまくいかないのでお伺いします。 調べてみると、スペクトルを出すとき、例えば同じ振幅で周波数の異なるの正弦波を 10個入れても全て同じ振幅にならず、振幅の大きさにばらつきが出ていて周波数成 分の成分の推定がうまくいっていないようです。FFTの2乗のデータを小さな周波数区 間で積分してスペクトル密度にしても、先ほどの10個の正弦波の振幅がそろわない のと、周波数推定が悪くなりうまく、引き去れなくなっています。 よくある状況だと思いますが、どういう工夫が必要なのでしょうか。 ちなみに、FFTのルーチンはnumerical recipeとFFTWの二つで試しました。

  • 高次フーリエ変換のプログラム

    お尋ねします。 1次元のデータ(例えば時系列)をフーリエ変換して周波数による系列に置き換えるプログラム(その逆も)は良く見かけます。FFTなどですね。周波数空間と時間空間の行き来に対応します。 一方、2次元、3次元に対応した高次フーリエ変換のプログラムがダウンロードできないでしょうか。3次元ということは空間ということになり、波数空間と実空間の行き来を可能にするものです。高次のFFTとなるでしょうか。入力としては3次元の空間離散化されたデータA(x,y,z)で、変換されるとA(k1,k2,k3)(離散化)のデータです。その逆もあり、というものです。 スペクトル法などによる数値計算を考えていますが、変換の部分は出来合いのものを使いたいと思っています。よろしくお願いします。

  • 加速度の時系列データからFFT解析を行い周波数に対するパワースペクトルのデータから周波数に対する加速度のデータをへの変換。

    加速度の時系列データからFFT解析を行い周波数に対するパワースペクトルのデータを得ました。ここから周波数に対する加速度のデータを得たいのですが、このようなことは可能なのでしょうか。この考えをすること自体間違えかもしれないのですが、教えていただけますでしょうか。

  • クロススペクトルを算出する方法

    クロススペクトルを計算して求める具体的な方法についてお尋ねします.2つの時系列があって,各周波数ごとのコヒーレンスとかフェイズを算出して周波数による変化を図示したようなものだと思います. 2つの量をいっぺんに処理するようなので複素数ということになると思いますが.実部,虚部をそれぞれコスペクトル,クオドラチャスペクトルなどと言っていたと思います. さて,そこで質問ですが,1つの時系列でスペクトルを算出するFFTプログラムがある場合,その結果を元にしてクロススペクトルを算出することは可能でしょうか.2つの時系列のそれぞれのスペクトル(振幅,位相)を個別に算出できるプログラムがあり,それらからクロススペクトルを求められないかということです.それともクロススペクトルを求めるルーチンは,2つの時系列を放りこんでそれ専用のFFTのルーチンを経て出力されるものなのでしょうか. スペクトルを求める方法は,FFT, 最大エントロピー,相関関数の変換などいろいろあると思います. FFTだけが手元にあります. よろしくお願いします.

  • DCモータの騒音分析について

    ブラシ付きDCモータの騒音分析をしていますが、少々わからないことがあって質問いたします。 普通騒音計を使用し、A特性を用いてFFTアナライザで騒音測定しました。 出力をx-y軸それぞれ周波数-騒音レベル[dB]としたところ、 ある周波数k[Hz]で大きなピークがありました。 このピークの原因は、モータのブラシとコミューテータの接触によるものだと考えるのが普通だと思い、この接触で発生する騒音周波数を算出しました。 この騒音周波数nとさきほどの騒音ピーク時の周波数kの関係は、 k = 2 * n となりました。 よく、基音周波数の整数倍にピークがくることがあるということを聞きますが、これはどのような理論で導き出されているのでしょうか? やはり共振・共鳴とかの話でしょうか?しかし、今回の場合、ブラシとコミューテータの接触する時の周波数から導き出した値の倍数なので、 私の中では、共振・共鳴とは考えずらいのですが。 ブラシとコミューテータの接触する音(時系列では矩形波?)をFFTで周波数領域に落とし込むと、整数倍の周波数成分帯に反応する原理があるのでしょうか?もしこれだとしたら、詳しく教えていただきたいです。よろしくお願いします。

  • 周波数変調

    周期の異なる2つの観測データがあります。 (いずれも綺麗なサイン波ではありません。) 一方の周波数の高い波を搬送波として周波数変調を考えていますが、 数学の知識が無いので困っています。 エクセルで処理をしたいのですが、やはりFFTとか使わないと無理でしょうか。 お詳しい方、宜しくお願いします。

  • 周波数解析について

    周波数解析について何点か質問があります。 FFTを用いてパワースペクトルを求めているのですが、 (1)FFTポイントを小さく、大きくするとそれぞれどのようなメリットがあるのか。 FFTポイントを小さくすると分析時間が短く、大きくすると分析時間が長くなるのは知っているのですが、それに伴い周波数分解能の精度が変化してくるのがいまいち理解できません。 (2)FFTを行う平均回数は例えば5回行うと、加算平均時に使われるデータがFFTポイント5つ分という解釈でいいのか。 以上の二点について分かりやすく解析していただけると幸いです。 当方、数学についての知識が乏しく、この質問内容だけでは答えられないという場合には分かる範囲で追記していきたいと思っています。

  • 周波数解析について

    ある時系列データをセンサを使って計測し、FFTを行ったのですが、結果の見方など、いくつか疑問があります。 得られた時系列データを見ると、直流成分に比べて交流成分が非常に微小であったとします。 (たとえば大気温度を計測した結果、直流成分は20℃であり、それから±0.01℃変動など) ここで、この変動がどこから由来するものなのか知るためにFFTを行いました。 そこで質問です。 (1)振幅スペクトル(あるいはパワースペクトル)を求めると、直流成分が大きすぎて、交流成分は潰れて表示されてしまうと思うのですが、普通直流成分は除いて表示するものなのでしょうか? (2)実際には綺麗な周期性はない波形であるためFFTを行うとエイリアシングの様な現象が起こると思うのですが、FFTで得られた結果は低周波数領域、高周波数領域どこでも信憑性のある結果なのでしょうか? といいますのも、 (3)パワースペクトル密度の単位は今回ならば[℃^2/Hz]だと思うのですが、表示の仕方が人によってはデシベルであったり無次元であったりするのですがどれが正しいのでしょうか? 長くなりましたが、よろしくお願い致します。

  • FFTで小数点以下のsin周波数を検出することはできるのでしょうか?

    FFTで小数点以下のsin周波数を検出することはできるのでしょうか? 私はFFTどころか「フーリエの冒険」を読んででやっとDFTがなんたるかを理解できた人間なんですが、 今どうしてもC言語のFFTのプログラムを必要としています。 で、今の私ではFFTのプログラムを作ることはできないと思ったので インターネットからプログラムをコピーして使用していたのですが、 私が調べた限りだと小数点以下のsin周波数を正常に検出できるようなFFTのプログラムはみつかりませんでした。 ですので、詳しい人がいたら小数点以下のプログラムがあるところを教えてください。お願いします。 あと気になる点があるのですが、 http://mak-oto.cocolog-nifty.com/blog/2009/10/post-84b1.html ↑のURL先の記事を読んで、小数点以下の周波数をどう検出したらいいのかよく分からなくなりました。 そこについての補足もできればよろしくお願いします。