注: これは重複ではありません。関連する質問以外に特定の要件があります。
まず、オーディオ ファイル (.wav) のスペクトルを audacity と同じようにプロットします (類似:フーリエ変換から周波数スペクトルを描画する方法)。
これまでのところ、wav ファイルを読み書きできます。しかし、私の問題は、FFT 関数に渡す必要がある値が正確にわからないことです。ちなみに私はC#でFFTにExocortexを使っています。FFT 関数では、適切なサイズ (512、1024 など) の複素数の配列、長さのオプションの整数パラメーター、およびフーリエ方向 (前方/後方) を渡す必要があります。
具体的な質問:
- Exocortex ライブラリの Complex (クラス) には、Real と Imaginary という 2 つの値があります。私はサンプルの配列を持っているので、どれが実数でどれが虚数である必要がありますか?
- 私はwavファイルを持っているので、長さは可変であると想定する必要があります。それをFFT関数に渡すにはどうすればよいですか?サイズ (512/1024/etc) を選択し、サンプル全体をそのサイズに分割してから、そのすべてを FFT に渡す必要がありますか?
- どの周波数を x 軸にリストする必要があるかを知るにはどうすればよいですか?
- FFT されたデータをプロットするにはどうすればよいですか? (x軸を周波数、y軸をデシベルにしたい)
意味がわからない場合は、Audacity を使用してオーディオ ファイルをインポートし、[分析] > [スペクトルのプロット] をクリックしてみてください。それらは再現したいものです。私は本当にこれを学びたいので、私の質問に詳しく答えてください。私はこれについて少しだけ背景を持っています。私はデジタル信号処理の初心者です。また、私の質問に具体的に答えてくれないので、できるだけ他の FFT サイトに誘導しないでください。
編集:
私はいくつかの読書をして、オーディオデータを FFT する方法を見つけましたが、2 のべき乗でしかありません。一部によると、「ウィンドウ」を使用する必要があります。私もそれについて調べてみたところ、後で処理するのに必要なのは波形の一部だけであることがわかりました。上記のことを思い出してください。オーディオ ファイルの一部ではなく、その FFT を取得したいのです。それで、私は今何をすべきですか?助けてください :(