バックナンバーはこちら。
https://www.simulationroom999.com/blog/stock-predict-matlabpython-backnumber/
はじめに
前回までで、VTIやそれのチャート関連の話をやったところ。
今回から実際にFFT、IFFTを使ってみる。
とは思っているが、そもそもFFT、IFFTがどういった入出力をするのかを確認したい。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
FFT、IFFTを使えるか?

よし!
こんどこそVTIチャートをFFT、IFFTに掛けるぞ!

ちょい待ち!

(またか・・・。)

まだ何かあるの?
もうFFT、IFFTの性質とかVTIチャートも揃ってるから、何か残ってる印象は無いんだけど。

FFTとIFFTの実際の特性を事前に掴んでおいた方が良いかと思って。

FFTがどういう値を返してるかってわかってる?

うーんと周波数的な何か?

1[Hz]のsin波があるとして、FFTはどのような値を返す?

え?1[Hz]なんだから1[Hz]?

1[Hz]って値が返ってくるの?

いや、なんかパワースペクトル的な感じが返ってきてた気がするが、
具体的に何かってのはちょっと分からないな・・・。

それが分らないと分析にもならないんで、
まずはシンプルな波形でFFT、IFFTの特性を認識する方が先かなって思ったわけだ。

確かに言われてみると、まともに使いこなせる自信は全くなくなったな・・・。
シンプルな波形

で、フクさんの言うシンプルな波形って何を使うの?

さっきも言ったsin波や、
異なる周波数のsin波の合成波を使う予定。
こちらで意図的に作った波形なので、合成した周波数は自明な状態なので、いろいろ分かり易いとは思う。

なるほど。
確かに1[Hz]のsin波を入れる場合だったら、FFTは1[Hz]に相当する結果を返すはずだもんね。

あとはFFTが想定する1周期と三角関数の1周期は異なるんで、その点も要確認事項だな。

うーん、その話は以前から出てきてはいるけど、
イマイチ、ピンと来てないんだよなー。

なら、なおさら要確認してしっかり特性を認識すべきだね。

なるほど。
割と重要なイベントな気がしてきた。
確認環境

で、何で確認するの?
MATLAB?Python?

基本はMATLABかな?
同じことを確認できるPythonコードも起こすつもりだけど。

あ、ちゃんと両方やるのね。
タイトル詐欺にならないか心配になったんだよね。

(なんかぶっちゃけMATLABだけでも良いんじゃね?って思ってるけどね。中の人が)

(MATLABとPythonだと1オリジンか0オリジンかのせいで同じ目的のコードなのに微妙に調整が違ったりするから面倒そうとは思うけどね。中の人が)
まとめ

まとめだよ。
- FFT、IFFTの入出力って実は良く分かってない。
- よって、自明且つシンプルな波形を入れて評価して見た方が良い。
- 自明且つシンプルな波形はsin波とかそれらの合成波。
- よって、自明且つシンプルな波形を入れて評価して見た方が良い。
- 実験はMATLABで実施するが、Pythonコードを起こす予定。
- ぶっちゃけメンドクサイとは思ってるけど頑張ってやる。
バックナンバーはこちら。
コメント