エクセルを用いたフーリエ変換(FFT)

        


Excelを用いた科学技術計算が第2版になりました 30年10月
大学の教科書にも採択されています

amazon:Excelで操る! ここまでできる科学技術計算 第2版

楽天: Excelで操る! ここまでできる科学技術計算 [ 神足 史人 ]


図-1 フーリエ変換を行う例題の波形グラフ



 音波、電磁波、地震波などの波は大きさ(振幅)、周波数、位相が異なる三角関数波(sin,cos)の組み合わせで表すことができる。フーリエ変換は波の分析ツールとしてよく使用され、オーディオ機器は音波を分析し、周波数(低音、中音、高音等)ごとの波の大きさをディスプレイしている。
 周波数(ヘルツ:Hz)とは、波が1秒間に振動する回数のことで、音波の場合、高音になるほど周波数が大きくなる。
フーリエ変換は時間(t)の関数である波形 f(t) を周波数(k)の分布関数F(k)に変換し、その逆がフーリエ逆変換である。

  フーリエ逆変換 f(t) = ∫F(k) ei2πkt dk     ・・・・・ (1)

  フーリエ変換  F(k) = ∫f(t) ei2πkt dt      ・・・・・ (2)

                       i : 虚数 i2 = -1となる。

F(k)は一般的に複素数で、

   F(k) = x + iy

とした場合、図-2のような複素平面上の点として表現できる。


    図-2 複素平面での説明図

 周波数kの波の振幅は|F(k)|となり、その位相はx,yのなす角αとなる。

  |F(k)| = √(x2+y2)    ・・・・・ (3)

  α = tan-1(y/x)     ・・・・・ (4)

図-3のように、位相とは波の時間ずれのことで、振幅A,周波数kの波 A・cos(2πkt) の位相がαずれると波 A・cos(2πkt+α)となる。


                   図-3 位相がπ/2づれた波のグラフ


たった1日で即戦力になるExcelの教科書

入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス)

Excel VBAのプログラミングのツボとコツがゼッタイにわかる本

ディジタルフーリエ解析(1(基礎編))


ディジタルフーリエ解析(2(上級編))

図解雑学 三角関数

やり直しのための信号数学―DFT、FFT、DCTの基礎と信号処理応用

はじめて学ぶディジタル・フィルタと高速フーリエ変換―基礎・原理からよく理解するための

フーリエの冒険

フーリエ解析と偏微分方程式

キーポイントフーリエ解析


エクセルを用いてフーリエ変換を実行する



 エクセルのフーリエ変換は高速フーリエ変換(FFT)のため、波形データの個数は2のn乗(2,4,8,16,32,・・・)になる。メニューバーからツール→分析ツールをクリックすると、図-4のデータ分析ツールの選択画面が現れる。


          図-4 データ分析ツールの選択画面

フーリエ解析を選択し、OKボタンをクリックすると図-5 のフーリエ解析設定画面が現れる。入力範囲に入力波形を設定し、隣接するセルに出力先(フーリエ解析結果)を設定する。


          図-5 フーリエ解析設定画面

OKボタンをクリックすると、図-6のフーリエ変換結果が出力する。フーリエ変換結果は複素数にためx+iyの複素数標記になっている。

  
                      図-6 フーリエ変換結果

今回、波形のデータ数(n)を128、時間刻み(dt)を0.1秒とした。周波数が1/(n・dt)刻みのフーリエ変換結果となる。(1番目のフーリエ変換結果の周波数は1/(n・dt)となる。)また128あるフーリエ変換結果の後半は前半と対称であり、前半の64個のデータしか意味をもたない。図-7の様に、フーリエ変換結果の絶対値(関数:IMABS(複素数))をとり、振幅を算出する。
注) 入力の波とフーリエ変換した振幅を対応させるためには、算出した振幅を(データ数/2)で割る必要がある。ここでは(128/2)で割る必要がある。


            図-7 フーリエ変換結果の周波数と振幅を求めるエクセルデータ

周波数と振幅の関係をグラフにすると、図-8 となる。


                    図-8 振幅の周波数分布グラフ



パワースペクトル


 図-8のように振幅と周波数の関係を示すグラフをパワースペクトルという。パワースペクトルだけでは周波数ごとの位相が不明なため波形は再現出来ない。しかし音波の場合、位相が異なっていても、パワースペクトルが同じであればほとんど同じ音に聞こえる。



エクセルを用いてフーリエ逆変換を実行する


 フーリエ変換したデータを逆変換する。フーリエ解析設定画面において、入力範囲にフーリエ変換結果を設定し、隣接するセルに出力先(フーリエ学変換結果)を設定し、逆変換にチェックを入れる。


  図-9 フーリエ逆変換の設定画面

OKボタンをクリックすると、図-10のように、フーリエ逆変換結果は入力波形と等しくなる。

                       図-10 フーリエ逆変換結果



指数関数に虚数がある場合の計算(オイラーの公式)


 フーリエ変換では指数に虚数をもつ関数が現れる。計算できそうにないが指数関数をテイラー展開すると次式となる。

  ez = Σzn/n! = 1 + z + z2/2! + z3/3! + ・・・・・        ・・・・・ (5)

 z = ix とすると、

  ez = eix = 1 + ix - x2/2! + ・・・・・
    = (1 - x2/2! + x4/4! - ・・・) + i ( x - x3/3! + x5/5! - ・・・ )

となる。実数部はcos(x)、虚数部はsin(x)のテイラー展開結果であるため、これはオイラーの公式と呼ばれ

 eix = cos(x) + i sin(x)     ・・・・・ (6)

と書くことができる。

 x=πのとき、オイラーの等式と呼ばれる。

  e = -1     ・・・・ オイラーの等式




エクセルを用いたフーリエ級数

エクセルを用いた複素数計算

エクセルを用いた三角関数(sin,cos,tan)の計算

エクセルを用いた数値積分(シンプソン公式)によるクロソイド曲線

エクセルのソルバーを用いた最小作用の原理に基づく質点の軌道計算
 
大発見、エクセルのソルバーで質点の軌道計算ができる!


Excelを用いた地球温暖化計算



現状の二酸化炭素濃度を370ppmとしたときの濃度と大気温度変化のグラフ


Runge-Kutta-Fehlberg法


 新潟大学工学部化学システム工学科からの依頼により、エクセルを用いたRunge-Kutta-Fehlberg法を製作しました。Runge-Kutta-Fehlberg法は誤差をチェックし、時間刻み幅を変更しながら計算するため、通常のルンゲクッタ法と比較して非常に精度が良い方法です。通常のルンゲクッタ法では発散してしまう温度境界層問題も解けます。Runge-Kutta-Fehlberg法によるVBAは化学工学(反応速度式などに適応)のみならず機械工学にもたいへん有用と思われます。この常微分方程式解法シート(ITOシート)は新潟大学の化学工学資料のページからダウンロードできます。

参考 : 化学工学資料のページ   Excelで気軽に化学工学

エクセルを用いたルンゲクッタ法による多質点系バネマスモデルの振動解析

上記振動解析において、4次のルンゲクッタ法とRunge-Kutta-Fehlberg法を比較しました。Runge-Kutta-Fehlberg法はエネルギー保存則(運動エネルギー+バネのエネルギー)を満たしており、ひじょうに精度の良い解法であることがわかる。また4次のルンゲクッタ法より精度が良いにもかかわらずその演算時間が格段に小さく、性能が優れていることが解る。

エクセルを用いたルンゲクッタフェールベルグ法によるクロソイド曲線(緩和曲線)

計算が難しいといわれているクロソイド曲線も容易に算出できる。

ルンゲクッタフェールベルグ法により電気回路方程式を解く

電気回路にも適用できる。

Excelを用いてラグランジュポイントにおける物体の運動方程式を解く
(決して宇宙人には教えないで下さい)


ラグランジュポイントでは物体は奇妙な運動を行う。


 






EXCELを用いた科学技術計算

EXCELのソルバーを用いた科学技術計算

EXCELを用いた構造力学(材料力学)計算



〒673−0036 兵庫県明石市松江62−14
(有)ゴッドフット企画



感想をお聞かせ下さい



JR福知山線 脱線事故シミュレーション

脱線事故シミュレーションもEXCELで
(Yahoo Japan 掲載)


Copyright (C) GODFOOT 2007.8 All Rights Reserved.