ここから本文です

高速フーリエ変換について質問です。 高速フーリエ変換を実装するにあたってwiki...

dcu********さん

2017/8/2817:26:11

高速フーリエ変換について質問です。
高速フーリエ変換を実装するにあたってwikiのプログラムを参考にしました。
(高速フーリエ変換と検索すればでてきます。)

今回、高速フーリエ変換(以

下FFT)は実装することができたのですが逆高速フーリエ変換(以下IFFT)は実装することができません。そこでいくつか質問があります。

wikiの中にIFFTに関することが書かれており以下のように書かれていました。

(1) 複素共役を取り、F(t) を求める、
(2) F(t) の正変換の離散フーリエ変換を高速フーリエ変換で行う、
(3) その結果の複素共役を取り、N で割る

(1)はFFTした結果である実部と虚部の虚部に対してマイナスをかけることですよね
複素共役を取る前に既にマイナスのものには何もしないようにしています
つまり、虚部すべてをマイナスにするようにしています

(2)は実部と複素共役を取った虚部を入力としてFFTします

(3)は(2)で得られた実部と虚部の虚部に対してマイナスをかけるということですよね
つまり(1)と同じです
そしてNで割るというのがよくわかりません、いくつか試しました。
虚部をNで割ったりしました(ちなみにNはデータ数の事)

それとIFFTができたとして誤差はありますが理想として元の時間波形に戻りますよね。
それを出力の実部と虚部からどのように戻すのでしょうか。
ちなみにFFTの結果は実部と虚部から対数パワースペクトルに変換することは知っています。

閲覧数:
121
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

ano********さん

2017/8/2906:36:46

まず、自分の文章を読み直した方がよい。wikiに書いてあることと、自分が行ったことが区分されていない。
それが原因で、意味不明な文章になっている。

質問が意味不明なので、
こちらとしては推測で回答らしきものを書くことになる。

(1) 本題とはあまり関係ないが、IFFTなら、普通はF(ω)が入力。
(2) 「複素共役を取る前に既にマイナスのものには何もしないようにしています
つまり、虚部すべてをマイナスにするようにしています」
は「FFTした結果である実部と虚部の虚部に対してマイナスをかけることですよね
」と自己矛盾している。
複素共軛の意味を十分見直すことをおすすめする。

私はwikiは見ていないが、あなたの引用が正しいならそこに書いてあるIFFTの操作は、
「入力の複素共軛を取り、FFTをかけ、再度結果の複素共軛を取った後、Nで割る」こと。
確かにこれで逆変換になるが、普通はFFTの途中で使う位相因子を、その共軛複素数で置き換えて使い、結果をNで割る。

とにかく、折角調べたのだから、
勝手な解釈をせずに書いてある通りにすれば良い。

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる