バックナンバーはこちら。
https://www.simulationroom999.com/blog/stock-predict-matlabpython-backnumber/
はじめに
前回は、フーリエ変換、逆フーリエ変換のPython(Numpy)版のコードを作成。
Numpyの場合、内積の演算子は「@」で「*」だとアダマール積になり、結果が全く異なる点に注意が必要。
今回は実際にコードの動作確認。
登場人物
博識フクロウのフクさん

イラスト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
フーリエ変換、逆フーリエ変換(Python版)

じゃ、前回のPythonコードを動かすよー。
・・・実行中・・・

うん。
狙い通りの結果じゃないかな。


1[Hz]、3[Hz]、7[Hz]が取れてるからOKだね。

ただ、この状態はまだFFTと同レベルの粒度だけどね。
周波数粒度を上げてみる。

確か、Wmaxを調整すればOKだったよね?

そうそう。
MATLABの時は20[Hz]に設定したね。

じゃー、コード内のWmaxを20[Hz]に調整。
その結果がこれ。


MATLABの時と同じ結果だね。

MATLABでもPythonでも同じような実験はできそうだな。
ちょっと気になった点

そういえば、MATLABもPythonもフーリエ変換、逆フーリエ変換でfor文で回してたじゃん?

そうだね。

で、MATLABの時は、これをfor文無しでできるようなこと言ってたけど、
それはPython(Numpy)も一緒と思って良いのかな?

うーん、それは試してないからわからないなー。
そういう意味では、MATLABの方もコードレベルでは試してないな。
現状、
「つまり両方ともできるはず」
って程度だ。

そこも確認できると面白そうかなーって思ったんだけど。
実はMATLABで出来て、Python(Numpy)では出来ない。
とかあるなら知っておきたいし。

まぁどっちもできるとは思うけど、
確かに何かしら制約はあるかもしれないな。

じゃ、そこら辺の確認よろしくー。

(やっぱり私がやるのか・・・。)
まとめ

まとめだよ。
- フーリエ変換、逆フーリエ変換(Python版)の動作確認実施。
- Wmaxを修正して周波数精度を引き上げた処理を実施。
- 以前、for文無しでもフーリエ変換、逆フーリエ変換が可能と言ったが、MATLAB、Python(Numpy)双方でできるか確認してみる。
バックナンバーはこちら。
コメント