バックナンバーはこちら。
https://www.simulationroom999.com/blog/stock-predict-matlabpython-backnumber/
はじめに
前回、細かい周波数特性の取り方としてフーリエ変換を利用することとした。
フーリエ変換とDFT,FFTは別物。
フーリエ変換の連続的、範囲が∞であることがプログラム化に対しての大きな課題であるため、その点を加味しながら検討する。
(そもそも出来ない可能性もある)
登場人物
博識フクロウのフクさん

イラスト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
【再掲】フーリエ変換、逆フーリエ変換

で、フーリエ変換と逆フーリエ変換のプログラム化の目途はついた?

まぁやってみなければわからないが本音ではあるが、
一応、こうすればいけるんじゃん?
ってのは考えてきた。

やってみないとわからんのかー。
まぁそれは仕方ないことだよねー。

まずはフーリエ変換と逆フーリエ変換の数式を再掲しよう。
■ フーリエ変換
\(\displaystyle F(\omega)=\int^{\infty}_{-\infty} f(t)e^{-i\omega t}dt\)
■ 逆フーリエ変換
\(\displaystyle f(x)=\frac{1}{2\pi}\int^{\infty}_{-\infty}F(\omega)e^{i\omega x}d\omega\)

うーん、やっぱり何度見ても何を示してるかわからん。

本来であれば、フーリエ係数/級数、複素フーリエ係数/級数の話からじっくりやるべきところを、かなり端折ってしまったからね。
あんまり数式そのものにあまり気を取られる必要は無いと思うよ。

まぁ、こういう数式なんだなって程度で見ておく。
いろいろ課題と対策

まず、フーリエ変換の数式の厄介な点は以下になるな。
- \(-\infty ~ \infty \)の範囲に於いての「関数同士の内積」を行っている。
- 関数同士の内積はそれぞれの関数を無限次元ベクトルと解釈する必要がある。

とありえず、無限が話をややこしくしてるってことだな。

そう。
全ては無限が悪い。
大雑把な対策

で、この無限対してのアプローチを考えた。

ほう?
どんな感じ?

この方針で行けると思う。
- 入力サンプリングの半分の期間を\(L\)とし、これを\(\infty\)と解釈する
- 半分の期間\(L\)がどんな値であっても\(\infty\)に相当する十分に大きい値とする。
- 関数同士の内積が取れる用、\(f(t),F(\omega),f(x)\)は全て同一の要素数\(N\)とする。
- 要素数\(N\)がどんな値であっても\(\infty\)に相当する十分に大きい値とする。
- これに伴い\(t,\omega,x\)も要素数\(N\)
- \(d\omega\)は好きな値を取れるが、要素数\(N\)が有限であるため、あまり小さいと高周波成分が欠落する可能性はある。

お、おう。

まぁ次回ももうちょっと説明をするんで、今回の話を可能な限り咀嚼しておくんだね、

(じ、地獄だ・・・。)
まとめ

まとめだよ。
- フーリエ変換、逆フーリエ変換を再確認。
- 問題点は無限の解釈の仕方。
- 無限の範囲に於いての「関数同士の内積」。
- 「関数同士の内積」も無限要素のベクトルと解釈する必要がある。
- 有限数を便宜上、無限に近いものとすれば、ある程度成立する可能性はある。
バックナンバーはこちら。
コメント