• ベストアンサー

フーリエ変換のプログラム

 プログラム言語の種類は問いません。 入力数値データを読み込み(ファイルからでも直接入力によるものでもかまいません)、 フーリエ変換を行うプログラムの基本的な考え方を教えてください(プログラムそのものは求めません。考え方を教えてください)。  しばらくの間フーリエ変換について勉強してはいるものの、まだよく理解していない状況ですし、プログラムに関してもまだまだ未熟者です。 しかし、どちらも勉強しながらこのプログラムを作ってみようと思っています。  けれども、フーリエ変換の指数関数を用いた式だと虚数を扱わなければならないし、 sin, cosを使った式だと計算量が膨大になってしまいそうで(指数関数を用いた式でもそんなに変わらないとは思いますが)、 どこから手をつければよいかまったく見当がつきません。 考え方を教えていただければ結構ですので、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#11476
noname#11476
回答No.2

このスペースで全部をご説明するのはとても大変なので、 Numerical Recipies in C ニューメリカルレシピ・イン・シー ~C言語による数値計算のレシピ~ ISBN4-87408-560-1 技術評論社 という本をご紹介します。ちょっと高い(5,000円)ですが、この手の数値計算の基礎はこの本が一つあれば十分まかなえるもので、C言語を対象とはしていますが、考え方を中心にまとめてありますので、どの言語でも使えます(事実この本は昔はfortranを対象としていた)。 基礎から実践的な方法までを詳しく解説してあり、この分野ではバイブルというべき本です。 ご質問のような、虚数の扱いをどうするのか、sin,cosの計算量をどうやって減らすのか(これには離散高速フーリエ変換:DFFTがその解となります)など詳しく解説されいます。 サンプルプログラムまでついていますから、間違いなくプログラムが書けるところまで手ほどきしてくれる名著です。 では。

その他の回答 (2)

  • kei_
  • ベストアンサー率29% (5/17)
回答No.3

#2 さんの紹介している本は、英語版なら無料で公開してますよ。 FFT(Fast Fourier Transform) は Chap. 12, その応用は Chap. 13 に書いてあります。

参考URL:
http://www.library.cornell.edu/nr/nr_index.cgi
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.1

大きな問題は分割して小さくしましょう。 基本中の基本です。 銀行のオンラインシステムでも、スペースシャトルの制御プログラムでも そうやって作られています...多分。

関連するQ&A