• 締切済み

フーリエ変換のプログラムについて

「NUMERICAL RECIPES in C」という本でフーリエ変換を試しているのですが、うまくいきません。 変換している配列は一つだけ100であとは0のデルタ関数です 変換にはfour1.cを使っています 変換結果が1にならずに実数に100、虚数に0が入っています デルタ関数を変換するためには配列にどのような数字を入れたらいいのか教えていただけませんか? あと、sin波も変換したいのですが配列にはどのような数字を入れたらよろしいでしょうか? よかったらお答えください

みんなの回答

  • fxdoctor
  • ベストアンサー率0% (0/0)
回答No.2

なぜ変換結果が1になると考えているのでしょうか? フーリエ変換の定義から考えると、cos,sinで計算された係数の行列式に、[100,0,0,....,0]を掛けるだけですよね。 スペースがありませんので展開した式はかけませんが、答えはすべて100で正しいですよ。先頭のcos(0)=1だけが利いてきますから。 まずフーリエ変換の定義式からオイラーの式で展開して、単純な行列式に書き直すところまで自分でやってみたら良いと思います。 そうすればフーリエ変換が単純な計算式で成り立っていることが一発で理解できます。これが分かれば重複する計算を簡単にするFFTがすぐに理解できます。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

ここを見ている人が、その本を持っているとは限りません。 four1.cといわれましても、何のことだかわかりません。 どういう風に質問したらいい答えが返ってくるかを考えてみてはいかがでしょう。

関連するQ&A