FFTWを使ってみた
大量にあるデータを一辺にFFT掛けたいっつーことで、OctaveとかMathematicaでやるのはちょっとよく分からんのでC言語でやっちまう。自分でFFTのコード書くのは愚の骨頂なので、当然パッケージを使う。っつーかさあ、波数空間でやってりゃこんな面倒なことねーんだよな。だから数値計算は(ryとかいつも思う。
Ubuntuの場合、aptでゲットできます。
$ sudo apt-get install fftw-dev
これで終わり。超簡単。
fftw.hをインクルードして、コンパイルオプションに、-lfftw -lm付ければ使えるらしい。
http://www.sip.eee.yamaguchi-u.ac.jp/kou/fftw.html
http://wwww.vis.ne.jp/mt/archives/000680.html
http://www.alab.t.u-tokyo.ac.jp/~bond/doc/fftw3.html
色々と疑問の残る所も多々あるので、答え合わせしてみる。1/N掛けなくていいの?とか、そういうの。あとはFFTWでスペクトルとるときに絶対値は何でとればいいんだよとか。まあ絶対値の定義どおりにやりゃ良いんだけどよ。あーまとめつくんなきゃ。報告用の。だりーーーーー。面倒臭えーーーーーーーーー。明日だ明日。
追記: サンプル数で割るらしい
スペクトル出してみたらとんでもなくでけー値がでた。どうやらサンプリング数で割らないといけないみたい。あれですね、教科書的に出てくるFourier変換の積分の部分だけやってるみたい。ので、出てきた値を割らないとダメらしい。
面倒なのでまた明日。明日だ明日。明日は京成線乗りにいくんだこの野郎。