フーリエ変換
フーリエ変換とはあるデータ列D=(d1, d2, d3, ... dN)を
様々な周波数F=(f1, f2, f3, ... fN)の波(sinカーブ, cosカーブ)
に分解する方法である。
また様々な周波数の波を元のデータ列に戻すこともできる
(逆フーリエ変換)。
フーリエの基本概念は周期のあるデータ列は様々な周波数の波(sin,cos)
を合成したものとすることで、音楽やスペクトル解析など
幅広い分野で使われている。
でもふとフーリエ変換を使ってみようと思っても、
なかなか自分でプログラムを元から作成するのは敷居が高い(>_<)
そこでGoogle先生でサーチしてみたところ、いいもの発見(^o^)v
FFTW3(http://www.fftw.org/)
フーリエ変換を少ない計算時間で行う高速フーリエ変換(FFT)のC言語ライブラリ。
いろいろなサイトで引用されていて、FFTのライブラリの中では一番いいらしい。
(もちろんフリーですd(^-^))
基本的な使い方は
#include
#include
#include
#includeusing namespace std;
fftw_complex *in, *out;
fftw_plan plan;
int i;
int size = 100;//secure data region
in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * size);
out = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * size);//input data
for(i=0; i
最初自分のVineLinuxマシンに
apt-get install "fftw3"
でインストールして使っていたが、結構簡単で使いやすく、
スピードも速いので、今はSEサンに頼んで大学のスパコンに
インストールしてもらって使ってます。