FFT

株価予測

【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なレベル。
株価予測

【FFT】MATLAB、Pythonで株価予測 その24【IFFT③】

引き続きsin波をFFTに入れる実験継続。 今回は入力期間を2πから4πに増やしてみた。 これにより、結果的に期間内のsin(x)の振動は増える。 よって、FFTの結果としてのsin(x)の周波数は1Hzではなく2Hzとなる。 あくまで、入力サンプリングを1周期とした周波数である点に注意。 物理的な周波数とは異なる。
株価予測

【FFT】MATLAB、Pythonで株価予測 その23【IFFT②】

sin波でFFT、IFFTを実施。 パッと見ちゃんと元に戻ってるのは確認。 FFTの出力である周波数の分布は前半と後半で意味が異なる。 後半が前半の複素共役に当たり、IFFT時に虚数部を相殺する役割を追っている。 特定周波数を取り出すばあは複素共役部分も一緒に取り出す必要がある。
株価予測

【FFT】MATLAB、Pythonで株価予測 その22【IFFT①】

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

【FFTへ】MATLAB、Pythonで株価予測 その15【至る道⑬】

バタフライ演算を図示した。 演算が交差している様が蝶々のようなのでバタフライ演算と呼ばれている。 入力サンプリングの入れ替えルールはビットリバースに準じている。 これら一連の流れを「CooleyTukey型FFTアルゴリズム」と呼ぶ。 このアルゴリズムは入力サンプリングが2のべき乗であることが前提。
株価予測

【FFTへ】MATLAB、Pythonで株価予測 その14【至る道⑫】

Nの回転因子にN/2の回転因子を含めることが可能 複数段の行列に分解可能。 つまり、演算を分解できる。 最終的に残る値はかなり限られる。 これを利用してバタフライ演算を行うことになる。