• ベストアンサー

エクセルでFFT

エクセルの分析ツールにフーリエ解析というのがあるのですが、使い道を教えてください。オンラインヘルプ見ても良くわからんのです。 例をみると1,0 の数列を変換しているのですが、そもそも連続波の解析には使えるのでしょうか? 私がイメージしているのは例えばオシロでやってるFFTをパソコン上で出来るか?というものです。あまり精度は期待してませんが。

noname#16572
noname#16572

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

  • ベストアンサー
noname#11476
noname#11476
回答No.2

はい。出来ます。精度も問題ありませんよ。 ただ、使い方がわかりにくいですよね。helpも全然役に立たないし。 FFTは「離散フーリエ変換」を高速に行う方法です。 まず、離散フーリエ変換は、 xi = f(ti) -T <= ti <= T i = 0,1,...,N-1 N:データ数 の式があって、 これをFFTすると、 yi = F(wi) が得られます。 ここで、 ti = ΔT×i (ΔT:サンプリング間隔) ですね。オシロデータだとtiは時間になります。 wi = i/(NΔT) i = -N/2 ... N/2 で、tが時間ならばwiは周波数になるわけです。 で、Excelでの処理方法です。 まず、FFTの条件として、Nは2の累乗でなければなりません。(N=2^m) まず、データxiの配置の仕方です。 わかりやすいように、一行目はタイトルにして、2行目から縦に(行方向)データを入れていくことを考えます。 A列(計算用): セルA2より 0...N-1までの数字を順に並べる。 B列(添え字): セルB2より 「if(A2<=N/2,A2,A2-N/2)」を入力(N個) C列( 時間 ): セルC2より 「ΔT(サンプリング間隔)×A2」を入力 D列(データ): セルD2より A列の添え字に対応するxiを並べる E列(周波数): セルE2より 「B2/(N×ΔT)」を入力する。 F列( 結果 ): FFTの結果を入力するセルとして指定する。(F(wi)が入ることになります。) さて、これでFFTを選んで、入力をD列のデータ、出力をF列に選んで実行して下さい。 結果がF列に入ったと思います。 このとき、E列が周波数で、F列が結果です。 ただし、F列はそのままでは複素数になっています。(エクセル上は文字列扱い) もし周波数強度を知りたいときには、絶対値(IMABS関数)、又は2乗してあげるとよいです。 周波数成分も正負両方出てきますが意味がなければマイナス成分は無視します。 なお、上記の添え字の付け方では周波数成分の、i=-512のデータがありません。 しかし、これは問題はなく、i=512のデータとi=-512のデータは同じデータになるためです。 データの配列の順番が特殊なのはFFTの処理の仕方の特徴です。 FFTの中身を詳しく知りたいときには、Numerical Recipes in C(技術評論社:ISBN4-87408-560-1)あたりが参考になるでしょう。

noname#16572
質問者

お礼

mickjey2様 詳細な回答ありがとうございます。しかも実際にご活用されているのですから非常に参考になります。正直に言ってフーリエ変換の理論自体忘れており、測定するときも中身はブラックボックスと化しています。せっかく、細かい手順までご教示くださったのですから、これから理論も勉強しつつ活用させていただきたいと思います。改めて御礼申し上げます。

その他の回答 (2)

noname#11476
noname#11476
回答No.3

補足です。 オシロで表示されるようなパワースペクトルI(w)を求めたい場合は、 得られたスペクトル関数F(wi)を使って、正と負のスペクトルの二乗値の加算、 I(w)=|F(+w)|^2 + |F(-w)|^2を計算して下さい。 なお、関数が実数のみならば、単純に+wの方を2倍しても可能です。 ちなみに、オシロスコープの計算精度がどれほどかわかりませんが、普通は8bitの整数値からだから、エクセルの倍精度計算よりも劣ると思いますよ。 FFTの使い方を覚えると、デジタルフィルタリング、コンボリュション処理等々とにかく様々な信号処理が出来るので重宝します。 私も結構これを駆使して信号処理することがあります。 (さすがに複雑かつデー多数が多いと専用プログラムを書きますが)

noname#16572
質問者

お礼

行き届いた補足、重ねてお礼いたします。 確かにオシロスコープのような単機能と違って色々応用が利きそうですね。業務上実測波形、sim波形を分析する機会が多いのですが根がデジタル系なので論理解析が主、シグナルインテグリティチェックは近年の周波数upにともない始めたばかりです。貴重なノウハウ活用させていただきたいと存じます。

  • j_euro
  • ベストアンサー率25% (29/115)
回答No.1

いきなり回答ではなくて、ごめんなさい 私もExcelのFFTでちょっとやりたいことがあったので・・・ で、試してみると、それらしい数字は出てますね。 ただ、オシロで見るような、パワースペクトルのグラフに 直すやり方が、よく分かりません。 実は、私も同様のことをやりたかったのですが、 途中で止まっているんです。 多分、ご質問の「使い道」の多くは、bupu4uさんと同じく、これだと思いますよ。 で、「連続波の解析に使えるか?」については、 (もろもろ細かい言葉づかいはおいといて、) 「できそうです」 私が試したのは、・・・ 0.001から0.001刻みの数字の列を作り、 それのSIN値の列を作り、 ツール/分析ツール/フーリエ解析で SIN値の列を入力範囲に指定(4096点まででした) 適当な空き場所を出力範囲に指定 すると、複素数の列が出ます。 MBABS関数、ABREAL関数で実数部、虚数部を分離。 ・・とここで止まってます・・ bupu4uさん、ここからやってみてはどうですか? で、うまくいったら教えてね。 パワースペクトルのグラフについては、識者のかた、フォローくださいよ~。

noname#16572
質問者

お礼

j euroさん 回答ありがとうございます。 悩んでいたのは自分だけではないと思うと心強いです。しかもmickjey2さんの完璧フォロー付き。ただし、理論は殆ど忘れてしまったのでこれから勉強はじめないといけないんです。 ところで、EXCEL2000をお使いですか、MBABS,ABREAL関数は私のEXCEL97には無いもんで。でも Z -> |Z|, Re(Z),Im(Z)はありますから適当に読みかえられますけど。j euroさんの方もうまく行くと良いですね。

関連するQ&A

  • エクセルでのFFTで出力できず

    0 0 0 0.006105  0 1 1 0.001 -0.010989  0.9765625 2 2 0.002 -0.025641  1.953125 3 3 0.003 -0.037851  2.9296875 4 4 0.004 -0.042735  3.90625 5 5 0.005 -0.047619  4.8828125 6 6 0.006 -0.047619  5.859375 7 7 0.007 -0.042735  6.8359375 Q&Aを参考に,上記のような形で(データは4列目),分析ツールのFFTにかけようとし,配列を指定して実行ボタンを押すと,「フーリエ解析すべての複素数は,iまたはjの接尾語が必要です」というポップアップウィンドウが出てきて計算が進みません.どのような問題が考えられますでしょうか?

  • FFT解析ツールについて

    設備調査の関係で、加速度計による加速度データの収集を行いました。 このデータをFFT解析を実施しようとしています。 Excelではアドインでデータ分析ツールとしてフーリエ変換が付属していますが、 わが家のPCには予算の関係でキングソフトのOfficeをインストールしています。 キングソフトのOfficeでFFTを実施しようとすれば、手段はあるのでしょうか?

  • FFTによるフーリエ変換のピーク値

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

  • FFT解析について

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

  • エクセルでのフーリエ解析について

    ある実験データをエクセルのフーリエ解析ツールで解析したのですが、 出てきた複素数の値をどのような式にあてはめれば、 フーリエ級数を求められるのでしょうか? ※FFTでフーリエ級数を求めて、データ間の補間に使用したいと考えています。参考書などを見ても、パワースペクトルを求めるところまでしか書ていないので・・・

  • MS-EXCELのフーリエ解析について

    自分で作成したFFTのプログラムを検証するためにマイクロソフトのエクセルの分析ツールにあるフーリエ解析を用いたところ、結果が合いません。 Microcal OriginというグラフソフトにもFFTの解析機能があるので、これで検証したところ、自分のプログラムと一致しました。 いろいろデータをかえて検証してみたところ、自分及びoriginの解析結果の実数部、虚数部ともに、データ個数/2をかけるとちょうどエクセルの結果と同じ値になることがわかりました(2048個のデータを用いると1024倍、16個のデータを用いると8倍)。 エクセルのフーリエ解析結果はなぜデータ個数/2がかかっているのでしょうか?

  • フーリエ変換? FIT curveって??

    生物リズム学論文を読んでいたら、FFT-NLLS(The fast Fourier transform-nonlinear least squares method )という解析方法がでてきました。 ネットで調べて 「FFT=高速フーリエ変換」、 「フーリエ変換を行うことにより、解析したい音・振動の波形が、どのような周波数と振幅を持つ波形の合成で成り立っているかを知ること(スペクトル分析)ができる」 ということはわかったのですが、 ・「NLLs」とはどんな意味なのか? ・このFFTによって得られる「FIT curve」がどんな物なのか、日本語ではなんというのか がわかりません。FIT curveは近似値曲線のような物でしょうか?? どなたか詳しい方教えてください、よろしくお願いします!!

  • Excelのフーリエ解析

    Excelを使ったフーリエ解析についてお聞きします。 例えば, 時間 0.1 0.2 0.3 0.4 0.5 ・・・(2の偶数乗個のデータ) 強度 0  0 1  0 5 ・・・(2の偶数乗個のデータ) というような時間-周波数テーブルがあると仮定します。このテーブルをExcelのフーリエ解析を使って,周波数-強度のテーブルに変換できますか?  具体的な手順を教えていただけたら助かります。  大学のときに,FFTのプログラムがあって,似たようなことをやっていたのを見たことがあるのですが,Excelを使うのは初めてです。ご存じの方がいたら教えて下さい。

  • 周波数解析について

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

  • FTIRによる過酸化水素の含有有無は確認可能?

    FTIR(フーリエ変換赤外分光計)で、溶液中に過酸化水素が含まれているかの確認は可能でしょうか?また、定量分析精度はどの程度でしょうか?宜しくお願いします。

専門家に質問してみよう