• 締切済み
  • すぐに回答を!

離散フーリエ変換によるパワースペクトルについて

研究で、閉ループ内の自然循環について調べています。 各箇所での温度変動の特徴を調べるために、ある一定時間の温度のデータをパソコンのフリーソフトで周波数解析(=DFT(離散フーリエ変換)計算)を行いパワースペクトルを得ました。 その評価の仕方は一応わかっているのですが、離散フーリエ変換についてまったく知識がないので、どのような計算でパワースペクトルが得られるのかわかりません…。 たとえば、計算は、サンプリング周期2sで1000sの温度変動のデータ(データ点500個)を用いて行い、横軸に周波数[Hz]、縦軸にパワースペクトル[℃の2乗/Hz]でグラフを出したって感じです。ちなみに作動流体は水です。 ウィキペディアなどで調べても、あれらがこの解析にどう利用されているのかがわかりません…上記の場合なら式はどうなるのかや、このような解析が行える理由等をわかりやすく示していただけないでしょうか? お願いします!

共感・応援の気持ちを伝えよう!

  • 物理学
  • 回答数3
  • 閲覧数1834
  • ありがとう数2

みんなの回答

  • 回答No.3

>フリーソフトの離散フーリエ変換を上記の条件で行うと、実際にどんな式でどんな計算が行われているのかが知りたいのです。 「離散フーリエ変換」で検索すると、すぐにたとえば下記のHPがヒットします。 http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/basic/chap6/ ここにしっかり式は書いてありますよね? これが判らないから、判りやすく説明してくれと言うことでしょうか? あるいは、FFTを実行するためのプログラムのコードを知りたいと言うこと? いずれにせよ、自分で苦労して理解するしかないと思うが

共感・感謝の気持ちを伝えよう!

質問者からの補足

>これが判らないから、判りやすく説明してくれと言うことでしょうか? そうです。貼ってくださったリンク先の式はウィキペディアでも書いてありました。見てもまったくわかりません…なので、ここで質問させてもらってます。 ただ、このリンク先のページを見てもまったくわからないんですが、それを解説してほしいというより、実際に上記ではどのような計算が行われたのか、それが知りたいのです。 質問の仕方が悪いのですかね…。 質問にあるような情報だけだと、答えようがないのでしょうか? フリーソフトに、時間ごとの温度変化を示したデータを入力すると、一瞬で計算してくれます。そして、グラフにおこすことができます。そのグラフの見方はわかっています。 たとえば、計算結果のひとつを示すと、Hz=0.035900でパワースペクトル1650.0という値になります。 つまり、ソフトは時間と温度の2つのデータより、ある周波数におけるパワースペクトルを算出しているということですよね? それが実際にはどのような計算で出ているかが知りたいのです。

  • 回答No.2

わからないのは「フーリエ変換」でしょうか?それともFFTのアルゴリズム的なことでしょうか? 自分が出したグラフがどんな物理現象を表現しているかわからなければ「フーリエ変換」のことを調べましょう。 「窓関数とは?」とか「本当に必要な精度があるのか」とかが知りたくなってから離散フーリエ変換にのことを考えれば十分だと思います。

共感・感謝の気持ちを伝えよう!

質問者からの補足

>わからないのは「フーリエ変換」でしょうか?それともFFTのアルゴリズム的なことでしょうか? フーリエ変換も離散フーリエ変換もわかりません。 >自分が出したグラフがどんな物理現象を表現しているかわからなければ それはわかっています。ただ、ソフトにデータを入力するだけでグラフが得られるので、実際にはどのような計算が行われているか知りたいのです。 私自身が、フーリエ変換などの分野を完全に理解したいと言うわけではなく、ただ、上記の研究の評価をする上で知りたいのです。 引き続きお願いします。

  • 回答No.1

離散フーリエ変換のアルゴリズムがわからないということでしょうか? 検索すれば山のように情報は集まると思いますが。 質問の内容をもう少し具体的にしないと、何を知りたいかわかりません。

共感・感謝の気持ちを伝えよう!

質問者からの補足

情報が山のようにありすぎて、逆にわけわからないんですよ…(^^;) 上記の質問文では不十分でしょうか? フリーソフトの離散フーリエ変換を上記の条件で行うと、実際にどんな式でどんな計算が行われているのかが知りたいのです。 一般的なアルゴリズムでも結構です。 引き続きお願いします…m(_ _)m

関連するQ&A

  • 離散フーリエ変換の周波数分解能

    失礼します。 DFT(離散フーリエ変換)について質問させてください。 DFTの周波数分解能は時間領域でのデータが持つ幅の逆数で決まりますが、 この周波数分解能で表現されなかった周波数成分はどこに行くのか教えていただけないでしょうか? DFTでの離散的な周波数の間にある成分はどこへ行くのか? 単純に考えて、DFTは形としては級数和なので、 それらの成分はどこかに畳み込まれているように思うのですが、 表現されない周波数成分の情報は消されたりするのでしょうか? よろしくお願い致します。

  • 離散フーリエ変換

    離散フーリエ変換(DFT)に関する質問です。 N個のデータ(次数)をDFTすると、N個の係数が導き出せます。 これらの係数のなかで、周波数が中域成分である係数の値を操作したいのですが、 求まった係数や次数からどのように高周波成分、中周波成分、低周波成分とわかるのでしょうか。 Nの値が大きいほど高周波成分なのでしょうか。

  • 高速フーリエ変換によりパワースペクトルについて

    純粋な正弦波を高速フーリエ変換によりパワースペクトルを求めたのですが 混合波では無いのに元の周波数よりも高い周波数や負の周波数が周期的に検出されます。 これは離散フーリエ変換の周期性や共役性が関係しているのですか? 周期性ですと、元よりも高い周波数は検出されないと思うのですが。 また、この周期的に現れる周波数の他にも細かいパワースペクトルが検出されるのはなぜでしょうか

  • 離散フーリエ変換

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

  • ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの振幅値に

    ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの振幅値について教えて下さい。 今想定している離散フーリエ変換の式は一般的なもので Σ(k=0~N-1) f(k)exp(-2πkni/N) を考えています。 また、離散フーリエ変換して得られるスペクトルは √(Re^2+Im^2) で計算します。 離散フーリエ変換を適用する関数を、 振幅1の直流、及び振幅1で周波数5[Hz]の正弦波とします。 (この2つの信号は別々の信号で合成されていません。) サンプリング周波数を20[Hz]とした場合、サンプリングして得られるデータ列はそれぞれ、 直流: 「1, 1, 1, 1」 正弦波: 「0, 1, 0, -1」 となると想定されます。 (正弦波をサンプリングする場合は位相が関わってきますが、今回は気にしないで下さい。) このデータ列に対して上記の離散フーリエ変換を適用した場合、 得られるフーリエスペクトルの振幅値はそれぞれ、 直流: 「4」(直流のフーリエスペクトルの振幅値値) 正弦波: 「2」(5[Hz]のフーリエスペクトルの振幅値) となります。 (データ点数は上の通り4点) ここで質問なのですが、 離散フーリエ変換して得られるスペクトルの振幅値から元の関数の振幅値を求める場合、 フーリエスペクトルをサンプリングの総データ点数で割ることは数学的に納得できます。 しかしこの例の場合、フーリエスペクトルを総データ点数で割ると、 直流: 「4 -> 1」 正弦波: 「2 -> 0.5」 となってしまい、直流は正しいのですが、正弦波の元の振幅値を正確に求めることは出来ません。 この例の場合、フーリエスペクトルの振幅値から正弦波の振幅値を正しく求めるには、 「フーリエスペクトルの振幅値*2/データ点数」 としてやらなければいけません。 上記のことに関して、なぜこのようになるのかを(2をかける理由を)教えて頂けないでしょうか。 当方、数学についてはあまり詳しくないため、簡単に説明して頂けると幸いです。

  • パワースペクトルから時間を求めたい

    FFTアナライザーを使用して求めたパワースペクトルからその周波数を検知した時間を求めることはできるでしょうか? 出来るのであれば計算方法を教えていただきたいです

  • フーリエ変換により得られる周波数スペクトルの単位

    離散フーリエ変換(デジタル信号に対して行う周波数解析)により得られる 周波数スペクトルの単位について教えて頂きたいと思い,質問させて頂きました. デジタル信号処理やフーリエ変換に関する書籍,またはホームページを調べてみますと 周波数スペクトルには ・振幅スペクトル ・位相スペクトル ・パワースペクトル ・パワースペクトル密度 というような様々な表現方法があることがわかりました. しかし,それぞれが持つ意味や単位がはっきりと書かれた書籍をみつけることができませんでした. 離散フーリエ変換の定義式やホームページを参考にして考えてみますと 周波数解析を行う対象の波形の縦軸の単位がVで,横軸の単位が秒であれば, 求められるスペクトルの単位は,以下のようになると考えております. しかし,確信がなく不安な気持ちです. ・振幅スペクトル [VまたはdB] ・位相スペクトル [rad] ・パワースペクトル [V^2またはdB] ・パワースペクトル密度 [(V^2)/Hz] もしスペクトルに関してご存知の方がいらっしゃいましたら, 教えて頂けると本当にうれしいです. 参考になるホームページや書籍等も教えて頂けると助かります. つたない文章ですが,どうぞよろしくお願い致します.

  • 離散フーリエ変換のスペクトルについて

    関数f(x)=2sin(πx)をx=0~2まで等間隔1000点でサンプリングし、 離散フーリエ変換 Σ(k=0~N-1) f(k)exp(-2πkni/N) の式から、言語プログラムで計算する式をつくり、1000個の実数Reと虚数Imを得ました。 ピークはもちろん周波数πのときで、スペクトルの値が1000でした。 √(Re^2+Im^2)をスペクトル値、√なしをパワースペクトル値をいうそうですが、元の関数の振幅2とこのスペクトル値とはどのような関係があるのでしょうか? 異なる正弦波を混ぜれば、スペクトル値を見ることによって振幅の比は分かりますが、スペクトル値と振幅には式的になんらかの関係は存在するのでしょうか?  波のエネルギーは振幅の2乗になると思い、2^2=4がスペクトル値としてでる事を期待していましたが途方もなく異なる値が出てしまいました。 どうぞよろしくお願いします。

  • 離散フーリエ変換をC言語でどの様に書けばいいですか?

    C言語でDFT離散フーリエ変換を書くにはどの様に書けばよろしいですか? Googleで検索すれば書き方は出てくるのですが、使ってる関数がいまいちよく分かりません。 ・データの入力 ↓ ・フーリエ変換の計算 ↓ ・結果の出力というのをやればいいのは理解できるのですが、C言語でどの様に書けばいいか分からなくて…

  • 離散フーリエ変換について

    離散フーリエ変換によって得られた値についての質問です。 多くのサイトでその値は Σ(k=0~N-1) f(k)exp(-2πkni/N) という式から求められるとあります。 離散フーリエ変換は本来、ある周期関数が、どのくらいの振幅でどのくらいの周波数の波からできているかを調べるために行うものだと思います。 しかし上記の公式から得られるスペクトル(sqrt(Re^2+Im^2))では振幅の値は得られません。振幅を得るには刻み幅Δ(関数をサンプリングした際の幅)を乗じて Σ(k=0~N-1) f(k)exp(-2πkni/N)*Δ とすれば得られることが分かりました。 最初の公式から得られるスペクトルはなにを表しているのでしょうか?またなぜ刻み幅Δを乗じることで、振幅が求まるのでしょうか? よろしくお願いします。m(__)m