FFTと聞きますとファイナルファンタジータクティクスを思い出します。
ファイナルファンタジーシリーズは11あたりまでやった気がします。
その中でFFTは戦術シミュレーションの色濃いゲームでありましたが
ストーリーが無かったわけではなく..
微妙なポジションから始まる主人公の旅といいますか戦いといいますか
エンディングもこれまた微妙な終わり方をする辺りにリアリティを感じました。
レベル5デスを拡張展開したジョブ、算術士というのがチートといいますか
敵側に最初に現れた時には若干手を焼くのですが
幸いAI(?)知能が高くないおかげでやっつけることができ
自分達が習得できる様になりますと絶大な威力を発揮するのでした。
今手元にあったらまたやり込んでしまうのでありましょうけど。。
ちがう。。そうじゃない。。
今回はそちらではありませんで
(高速)フーリエ解析のお話であります。
大學の数学でやる内容ですが音波等波動(簡単に言えば波)を分解する数理技法と言いますか
どんなに複雑な合成波であろうと技術的に分解できてしまうという
考え出したフーリエ先生(1768-1830)は実にスマートな頭脳の持ち主であられたのでありましょう。
基本的な数学のところはたとえばたくみ先生の講座がよいのではないかと思いますが
(高校数学では物足りない高校生~理系大学生を対象とする講座です。)
頭と尻尾を繋げる発想が既にあったのだなあ、と
またしても200年の周回遅れを感じつつも
わけのわからんバラついたデータを整理したい時に試したい手法です。
とはいえ頭では理解したつもりになってもいざ使えるかと問われますと
なかなか自力でできるものでもないのですが
Excel にはフーリエ解析ソフトが内臓されていまして
作法に従って手を動かせば使えてしまうという点が有難いところです。
Excel 使用を前提に私が参考にしましたのは津山高専様の学習プログラムです。
https://www.tsuyama-ct.ac.jp/matsuda/MDataScienceTM2/pdf/13th_class.pdf
おかげさまで一通り走らせることができまして
理解の足りないところは自分で合成波を作って分解、再編成の実験をしました。
①まずは定義域 を2の乗数(2^n)に分割する。
扱うデータ数を規定すると言いますか、
自分の持っているデータ数の範囲で最大の2の乗数を使うデータ数として決めます。
例えば1024だったり512だったり256だったり、です。
(分割数の半数ー1:ひとつは周波数ゼロの定数)個の波に分解することになりますので
データ数は多いほど、決める分割数は大きいほど精度を上げて解析できることになります。
例えば64分割であれば0~6331倍波までの分解となります。
②振幅パワースペクトル(フーリエ解析後に出てきた虚数の絶対値実数成分を求めたもの:C列データ群)は
位相ゼロの場合、先の分割数の半数が最大値となる。
津山高専様の例ですと64分割しているので振幅パワースペクトルは半数の32となります。
③振幅2倍の波を解析すると振幅パワースペクトルも2倍になります。
④ランキング1の求められた係数3より y=cos 3x が最も強い関数となるわけですが
位相情報に応じ虚数側に分割されるため位相のずれ分がある場合には実数部は小さくなります。
ランキング3(実質2位)の求められた係数は2よりy=cos 2x が2番目に強い関数となるわけですが
位相ずれを求めたいのならば虚数情報に着目した更に細かな分析が必要です。
いわゆるオイラーの単位円で考えます。
実数・虚数空間におけるベクトル和をイメージし、
両者係数の比からタンジェントの逆関数(ATAN)で位相ずれ分を求めることができます。
以前、えりおっと(?)の記事を書いた時にいくつかの波を合成すると
エリオット波動に似たものが得られましたが
フーリエ解析は正に逆の手続きを踏むことになります。
エリオット波動っぽい生データ群が得られた時にフーリエ解析をかければ
何年周期の波の合成か(位相ずれの情報も込みで)分析ができるわけです。
ちなみに..
データ分析からフーリエ解析を選択せずに基本統計量を選択して同様の手続きを踏みますと
平均、標準誤差、メジアン、モード、標準偏差、分散、等々が得られます。
データ分析に移動平均の項目もありました。
データ群を選択し区間(N)を入力すればN平均が出力されます。