- ベストアンサー
フーリエ変換のプログラム
プログラム言語の種類は問いません。 入力数値データを読み込み(ファイルからでも直接入力によるものでもかまいません)、 フーリエ変換を行うプログラムの基本的な考え方を教えてください(プログラムそのものは求めません。考え方を教えてください)。 しばらくの間フーリエ変換について勉強してはいるものの、まだよく理解していない状況ですし、プログラムに関してもまだまだ未熟者です。 しかし、どちらも勉強しながらこのプログラムを作ってみようと思っています。 けれども、フーリエ変換の指数関数を用いた式だと虚数を扱わなければならないし、 sin, cosを使った式だと計算量が膨大になってしまいそうで(指数関数を用いた式でもそんなに変わらないとは思いますが)、 どこから手をつければよいかまったく見当がつきません。 考え方を教えていただければ結構ですので、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
このスペースで全部をご説明するのはとても大変なので、 Numerical Recipies in C ニューメリカルレシピ・イン・シー ~C言語による数値計算のレシピ~ ISBN4-87408-560-1 技術評論社 という本をご紹介します。ちょっと高い(5,000円)ですが、この手の数値計算の基礎はこの本が一つあれば十分まかなえるもので、C言語を対象とはしていますが、考え方を中心にまとめてありますので、どの言語でも使えます(事実この本は昔はfortranを対象としていた)。 基礎から実践的な方法までを詳しく解説してあり、この分野ではバイブルというべき本です。 ご質問のような、虚数の扱いをどうするのか、sin,cosの計算量をどうやって減らすのか(これには離散高速フーリエ変換:DFFTがその解となります)など詳しく解説されいます。 サンプルプログラムまでついていますから、間違いなくプログラムが書けるところまで手ほどきしてくれる名著です。 では。