Python FFT & IFFT
豪ドル/円 CSV デ-タ FFT 解析まとめ
ここまで、豪ドル/円 CSV ダウンロ-ドデ-タ FFT 解析プログラムの個々に区切った説明をしてきました。
引き続き、これまでの内容をまとめたファイルを以下に示します。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
xl_df = pd.read_csv("/home/yamada/public_html/manep/mane_chart_go.csv", encoding="cp932")
Close0 = xl_df["終値(売り)"].values
app = Close0[-1:]
app1 = np.hstack((app, app, app, app, app))
Close1 = np.hstack((Close0, app1))
cent = np.average(Close1)
Close2 = Close1 - cent
fs = len(Close2)
t = np.linspace(0, fs-1, fs)
plt.plot(t, Close2)
plt.show()
f = np.fft.fft(Close2)
# フーリエ変換(FFT)
f_abs = np.abs(f)
plt.plot(f_abs[:int(fs/2)+1])
plt.show()
fc = 10 # cut off
f[fc:] = 0 # low pass filter
f_abs = np.abs(f)
plt.plot(f_abs[:int(fs/2)+1])
plt.show()
f_ifft = np.fft.ifft(f*2)
# 逆フーリエ変換(IFFT)
f_real = f_ifft.real
# 実数部のみにする
plt.plot(t, f_real)
plt.show()
本内容を TeraPad 等で作成したら、ファイル名を適当に
si_fft_filter-go.py
として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の 共有フォルダ c:\vb_public_html にして、
ブラウザでアクセスできるようにします。
なお、
c:\vb_public_html
はゲスト OS Ubuntu のなかの
/home/yamada/public_html
とリンクしていて共有フォルダの関係にあります。
詳細は
ユ-ザ-ごとの公開ディレクトリを用意する
を読んでみてください。
si_fft_filter-go.py ファイル動作確認
それでは s_fft_ifft-go.py ファイルを実行してみましょう。
Ubuntu ディスクトップにある □>_ アイコンから端末画面を開き、
public_html ディレクトリに移動します。
yamada@ubuntu-20:~$ cd public_html
私の Virtual Ubuntu も 20.04LTS にアップグレ-ドしてしまいました。
yamada@ubuntu-20:~/public_html$ python3 si_fft_filter-go.py
として確認します。
Matplotlib の表示画面が出現し、上図のような元波形のグラフが表示されますので
×印をクリックして、次に進めます。
今度は、フーリエ変換(FFT)波形が表示されます。
再び、×印をクリックして、次に進めます。
今度は、ロ-パスフィルタ処理後の FFT 結果画面が表示されます。
再び、×印をクリックして、次に進めます。
今度は、ロ-パス処理後の IFFT 結果画面が表示されます。
ノイズ波形がなくなっているのを確認することができます。
ここまでで、豪ドル/円 CSV ダウンロ-ドデ-タ FFT 解析 プログラムの確認が終わりました。
引き続き、豪ドル/円チャ-トロ-ソク足表示 に進みます。