シェアする

  • このエントリーをはてなブックマークに追加

【NumPy】高速フーリエ変換 (FFT)

スポンサーリンク
ビッグバナー(上2)

この記事では、Python言語とNumPyを用いた高速フーリエ変換(FFT)の使い方をソースコード付きで解説します。

高速フーリエ変換

高速フーリエ変換(Fast Fourier Transform:FFT)とは、フーリエ変換を高速化したものです。
フーリエ変換とは、デジタル信号を周波数解析するのに用いる処理です。
PythonモジュールNumpyでは「numpy.fft.fft」を用いることで高速フーリエ変換を実装できます。

【書式】
numpy.fft.fft(ndarray)

■引数
ndarray:1次元のNumpy配列

■返り値
フーリエ変換の結果(複素数)

ソースコード

サンプルプログラムのソースコードは下記の通りです。

■使用したデータ:nikkei.csv
(2016年の日経平均株価のデータ)

実行結果

サンプルプログラム実行結果は下記の通りです。
2016年の1年分の日経平均株価の終値をサンプルとしています。

左上のグラフは、サンプルデータ(日経平均株価の終値)です。(単位は千円)
右上のグラフは、FFT処理されたサンプルデータ(複素数)の大きさ(絶対値)です。
左下のグラフは、FFT処理されたサンプルデータ(複素数)の位相です。
見てやると、FFT処理されたサンプルデータは、対称性があることがわかります。

この対称性は、エイリアシング現象と呼ばれるものです。
この現象を考慮したFFTによる解析については下記事で解説しています。
【NumPy】高速フーリエ変換でパワースペクトル解析

【関連記事】
Python入門 基本文法
NumPy入門 サンプルプログラム集

スポンサーリンク
レクタングル(下2)
レクタングル(下2)