※ ChatGPTを利用し、要約された質問です(原文:バタフライ演算を用いたフィルタ(数式)の畳み込みについて)
バタフライ演算を用いた音の空気減衰の畳み込みについて
このQ&Aのポイント
バタフライ演算によるFFTおよびIFFTのプログラムを用いて、音の空気減衰の理論式を畳み込みたいと考えています。
FFTで原信号を周波数領域に変換し、減衰量をパーセンテージに変換して、理論式を乗算する手法を試していますが、うまくいきません。
虚数の値が0ではない数になる原因は、FFTによって得られた値のサンプリング周波数と、理論式の周波数軸が一致していないためと考えられます。具体的な解決方法は不明です。
バタフライ演算を用いたフィルタ(数式)の畳み込みについて
現在、バタフライ演算によるFFTおよびIFFTのプログラムを用いて、
音の空気減衰の理論式を畳み込みたいと考えています。
理論式は横軸が周波数、縦軸が音圧レベルの減衰量のグラフで表されるもので、周波数の関数になっています。
そこで、FFTで原信号を周波数領域に変換し、この理論式を適用してIFFTしたらどうかと考え、減衰量をパーセンテージ(減衰量が6dBなら50%)に変換して、FFT結果の各値に周波数ごとの減衰量を乗算する、等を行っているのですがうまくいきません。
IFFTを行うと、虚数の値が0ではない数になってしまっています。
おそらく、FFTにより得られた値のサンプリング周波数と、減衰の理論式の周波数軸が一致していないためと考えられますが、具体的な手法が分かりません。
なお、入力している原信号のサンプリング周波数は44100Hzです。
どうかよろしくお願いいたします。
お礼
>全ての周波数範囲にわたって演算してしまっているということでしょうか。 周波数を折り返して演算してみたところ、 虚数項がうまく0になり、出力信号も期待されるものが得られました。 的確なアドバイス、ありがとうございました!