株価予測

【FFT】MATLAB、Pythonで株価予測 その34【IFFT⑬】

MATLABのインデックス検索には線形インデックス検索と論理インデックス検索がある。線形インデックス検索はC言語の配列の添え字の考え方と一緒だが、添え字に設定できる値がベクトルにできる。C言語はスカラーのみ。論理インデックス検索は渡すベクトルの1かtrueのところだけが参照できる。それぞれ書き換えも可能。
株価予測

【FFT】MATLAB、Pythonで株価予測 その33【IFFT⑫】

MATLABで超簡易バンドパスフィルタ実施。コード開示&結果確認。想定通り、3Hzだけ抽出で来た。3[Hz]と-3[Hz]以外を0にしてる部分のコードが妙。論理インデックス検索という手法を使っている。
株価予測

【FFT】MATLAB、Pythonで株価予測 その32【IFFT⑪】

Python(Numpy)でFFT出力の周波数分布をローテーションするコードを作成。上記の動作確認。MATLABの結果と同じく、負の周波数側に複素共役を持ってくれた。これで超簡易バンドパスフィルタの事前準備が整った。
株価予測

【FFT】MATLAB、Pythonで株価予測 その31【IFFT⑩】

Python(Numpy)によるベクトルのローテーションをお試し。無事ローテーション可能。Pythonはベクトルに種類がある。ベクトル。転置等の行列由来の演算ができない。行ベクトル。列ベクトル。行列演算を意識する際はベクトル以外の定義をする必要がある。※ 今回は「ベクトル」でOK。
株価予測

【FFT】MATLAB、Pythonで株価予測 その30【IFFT⑨】

FFT出力の周波数分布をローテーションをMATLABで実施。複素共役が0点を中心とした線対称になるように配置。この配置の方が確認し易さ、処理のし易さが増す想定。よって、配置が意識できていればやらなくてもOK。効能は実際の処理をする際に確認。
株価予測

【FFT】MATLAB、Pythonで株価予測 その29【IFFT⑧】

MATLABでベクトルローテーションをさせたい場合はcircshift関数を使えばOK。ただし、次元指定の罠がある。デフォルト次元が列方向なので、行ベクトルに対して行うとローテーションされない。(実際には列方向にローテーションはされてると思う)[0,3]のように列行それぞれにローテーション数を指定する。
株価予測

【FFT】MATLAB、Pythonで株価予測 その28【IFFT⑦】

IFFTにも活躍してもらうため簡易的なバンドパスフィルタを実施予定。周波数分布関数の後半に複素共役が居るため、これも同等の処置が必要。複素共役の位置を分かりやすくするため、マイナス側に持ってくる予定。ベクトルに対するシフト、ローテーションで対応可能。なはず。
株価予測

【FFT】MATLAB、Pythonで株価予測 その27【IFFT⑥】

複数の周波数のsin波を合成したもの大してFFT&IFFT実施のPython版。当然ではあるが、同一の結果が得られた。加えて、入力サンプリング期間を延ばしたものも実施。これも当然、同一の結果が得られた。FFT,IFFTの理屈は兎も角として使い方に関してはなんとなく慣れてきたところ。
株価予測

【FFT】MATLAB、Pythonで株価予測 その26【IFFT⑤】

複数の周波数のsin波を合成したもの対してFFT&IFFT実施。波形の合成は単純に足し算するだけ。想定通りの周波数分布になった。試しに入力サンプリング期間を2倍に伸ばしてみた想定通り、周波数が2倍になる分布に変化。
株価予測

【FFT】MATLAB、Pythonで株価予測 その25【IFFT④】

これまでMATLABで実験してきたので、Python版コードも作成。結果は同一と見なせる。MATLABとPython(Numpy)のFFT、IFFTは同一の数式を元にしている。よって、互換性ありと見なしてOKそう。演算誤差の方が異なるが無視してもOKなレベル。