• ベストアンサー

excelでのフーリエ変換の意味

EXCELである離散データに分析ツールでフーリエ変換をかけると、データ個数の半分の値を中心とした左右対称のスペクトルが現れます。 右半分のデータは不要とどこかのHPに書いていましたが、何故不要で、何故左右対称で現れるのでしょうか? また、同じ周期のデータ(T=1000sec)をデータ数を変えてフーリエ変換すると何故ピークの現れる周波数やピーク値が変わるのでしょうか? ピーク値が表す意味もわかりませんが、どのくらいのピークが現れるとこのデータは周期的な成分を持っていると言えるのでしょうか? フーリエ変換について理解する前に質問してしまっていますが、全く理解できない為、このような質問になってしまい、申し訳ありません。

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

  • ベストアンサー
  • masudaya
  • ベストアンサー率47% (250/524)
回答No.4

>膨大なデータからどのデータが周期的なデータを含んでいるかを判断したいので何か指標とできる値があれば というのであれば,例えば,すべてのデータのパワーみたいなもの(単純には2乗和)と,ピークが出た周波数のパワーの比(複数ピークがある場合はパワーの和)を取れば,どれが,周期性を強く持っているか議論できるのではないでしょうか. もう少し,最初の質問内容を工夫すれば,(補足で書かれたような内容にすれば)一度の回答ですむのではないかと思います.

shirote
質問者

お礼

アドバイスありがとうございます。 言われる通り、最初の質問をきちんとすれば良かったです。すみませんでした。

その他の回答 (3)

  • inara
  • ベストアンサー率72% (293/404)
回答No.3

ピークの対象性の回答はすでに出ているので、FFT演算後の数値に意味についてコメントします。 時間間隔をΔt [s] として取った波形 A(1)~A(N) をExcelのFFTにかけて、B(1)~B(N)というデータ列(複素数です)が得られたとき、B(1)に対応する周波数 f1 [Hz]は、f1 = 1/(N*Δt)、B(2)の周波数は f2 = 2/(N*Δt)、・・・、B(N)の周波数は fn = 1/(Δt) となります。つまり、B()はf1~fnまでの周波数に対応した複素振幅の値です(その対値を計算すれば普通の振幅の意味)。 例えば、Δt = 1ms でとった1024点からなる波形をFFTにかけたとき、周波数範囲は 1/1.024 Hz、2/1.024 Hz、・・・、1000 Hz になります。波形取り込み時間(N*Δt)が 1s なら f1 = 1Hz から 1Hz きざみのスペクトルになります。0.1Hzの分解能のスペクトルを得たいのなら、10秒間の波形データを取る必要があります。一方、最大周波数は、1/Δt ですので、10kHzまでのスペクトルを得たいのなら、Δt = 0.1 ms とする必要があります。 FFTだと N が2の倍数しか許されないので、(N*Δt)を 1s にしようとすると、Δt がキリのいい数値になりません(N = 1024 だと Δt = 1/1024 [s])。私個人としては、そういうのが気に入らないので、FFTでなくDFTを使って、N = 1000、Δt = 1ms とか、キリのいい数値にして計算したりします(N が10000未満ならExcel VBAで DFT 計算させてもそんなに時間がかからないので)。趣味の問題ですが。 Excelの分析ツールのフーリエ変換の結果は複素数で出てきますので、関数 IMABS(FFT後の数値)で絶対値に変換すれば振幅スペクトルになります。振幅をdB単位で出したいなら20*log10(IMABS(FFT後の数値))としてください。

  • masudaya
  • ベストアンサー率47% (250/524)
回答No.2

離散フーリエ変換をする場合,サンプリング周波数の半分の周波数までの解析までしか出来ません.(サンプリング定理)それ以降の周波数はサンプリング周波数の半分の周波数からの折り返しになります.例えば,1MHzでサンプリングしている場合.0.9MHzの信号を入れると,(エクセルで試してみてください.)サンプリングした値は0.1MHzの信号をサンプリングしたものと同じになります.このため,左右対称になり,右半分は不要となります. エクセルでフーリエ変換したこと無いので良く知りませんが,サンプリング周波数なり,サンプリング時間(サンプリング周波数の逆数)を入れる項目はありませんか? 無い場合はサンプリング時間がいくらの場合と言う風に決まっているのかと思います.この場合はサンプリング時間から実際の周波数になるように変換が必要です. データ点数は,周波数の分解能を示しているので,分解能をあげたいのであれば,'0'を沢山データにつけて解析したりしています. 最後にピークですが,フーリエ変換を学ぶと分かるのですがフーリエ変換とは,波形の正弦波分解です.ですので,ピークがあれば,その周波数成分は含まれることになります. しかし実際に使いこなすにはフーリエ変換や離散フーリエ変換を学ぶ必要があります.フーリエ変換は応用範囲が広いので,学んでいて損は無いと思います.

shirote
質問者

補足

ご回答ありがとうございます。 エクセルでフーリエ変換すると初めのデータから最後のデータまでで1周期と考えるらしく、周波数は「1/(データ数*秒換算)* t」となります。 サンプリング定理により半分のデータしか使えないことについて教科書を読んできちんと理解します。ありがとうございました。 ピーク値は解析データによりマチマチで、多分振幅が大きくなればピーク値も大きくなるということは結果から読み取れますが、膨大なデータからどのデータが周期的なデータを含んでいるかを判断したいので何か指標とできる値があればと思ったのですが。(まず自分で勉強してみますが。。。)ちなみに解析データは温度データです。レンジ100℃で±10℃で周期的に振幅するときにピークは2とか出ます。 もし簡単に説明がつくことなら教えて頂けませんか?勿論勉強はします。

  • guuman
  • ベストアンサー率30% (100/331)
回答No.1

あなたが理解しているフーリエ変換の定義式を補足に書け

関連するQ&A

  • フーリエ変換のスペクトル

    フーリエ変換を勉強しても、なかなかわからないことが多くて困っています。現在EXCELのフーリエ解析ツールで変換して、パワースペクトルまで求められるようになっていますが、パワースペクトルがよくわかりません。 パワースペクトルは周波数領域の比みたいなものと勝手に認識しているのですが、例えばsin波の振幅を2倍するとピークのパワースペクトルはどうなるのか等、法則みないなものはありますか?実際に色々試しているのですが、よくわかりません。また、周波数0以外のデータの総和に何か法則がありそうなのですが、やはりよくわかりません。 1次元の周期成分を持つデータをフーリエ変換して、ピークが出るのですが、その値が何を示してるのかを上司に説明できるようになりたいので、アドバイスお願いします。

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

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

  • 離散フーリエ変換の対称定理について

    離散フーリエ変換において、 Re[X(k)]=Re[X(N-k)] Im[X(k)]=-Im[X(N-k)] |X(k)|=|X(N-k)| といった対称定理が成り立ちます。 数学的にこれらが成り立つということは、大体理解できたのですが、直感的な意味が分かりません。 僕の理解が正しいとしたら、N=128だとしたら、 N=1の極めて周期の大きな波と、N=127の極めて周期の短い波の、 振幅スペクトル(≒振幅?)が等しいということになると思うのですが、どうしても納得が行きません。 N>64の周波数をフィルターでカットした場合も、対称定理は成り立ち、N>64の周波数の波は出てくる(というか、カットしないと、エイリアシングが生じる)と思うのですが、どういうことなのでしょうか? N>64の周波数の波は、計算上は出てくるが、実際にはそのような波は存在しないのですか? あるいは、N>64の周波数同士の波で、上手く相殺されて、逆離散フーリエ変換をしたときには、影響が出ないということなのですか? また、通常のフーリエ変換では、対称定理は成り立たないと思うのですが、そのことも併せて教えて頂けたらと思います。 よろしくお願いします。

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

    ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの振幅値について教えて下さい。 今想定している離散フーリエ変換の式は一般的なもので Σ(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をかける理由を)教えて頂けないでしょうか。 当方、数学についてはあまり詳しくないため、簡単に説明して頂けると幸いです。

  • DFT(離散フーリエ変換)

    DFTで周波数分析をを行うと、左右対称のスペクトルがでますが、これのどちらかは不要なんでしょうか?30Hzの信号にDCTを行うと、確かに30Hzのところでピークがでますが、左右対称な位置にもピークがでます。

  • フーリエスペクトルの振幅について

    ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの 振幅値について教えて下さい。 今想定している離散フーリエ変換の式は一般的なもので Σ(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によるフーリエ変換のピーク値

    エクセルの分析ツールを使って,フーリエ解析をしました。その中でどうしてもわからないところがあったので教えて下さい。例えばある単純な正弦波をフーリエ変換したとします。そのときデータの個数を256, 512, 1024, 2048, 4096というように増加させると,ピーク値に相当する周波数は変化しないのに,ピーク値が増加します。これはどうしてなのでしょうか?このときはどのように処理すればいいのでしょうか?基本的な質問かもしれませんが,どうぞよろしくお願いいたします。

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

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

  • アナログ信号とフーリエ変換

    デジタル信号の周波数分析として離散フーリエ変換があります。そして、アナログ信号の周波数分析としてフーリエ変換と考えていました。またアナログ信号を離散フーリエ変換で考える方法もあり、アナログ信号をサンプリングすることで離散フーリエ変換で考えることが出来ると考えています。 ですが、「アナログ信号の周波数分析にフーリエ変換を使うと定義されている」という考え方は間違いであると言われました。 何が違うのか分かりません。よく分からないので詳しく教えてください。