私の質問の短いバージョン:
オーディオ サンプルの配列 (Int16 など) から、AForge などの一般的な FFT ライブラリで使用される複雑な構造体に変換するにはどうすればよいですか?
私の質問の長いバージョン:
私はオーディオ処理が初めてで、音楽のオーディオを分析したいと考えています (ビート、テンポなどの検索)。これを読んで数日後、高速フーリエ変換(FFT)アルゴリズムは正しい方向への一歩のようです.
アルゴリズムをゼロから実装する必要がないように、いくつかのオープン ソース ライブラリ、Exocortex と AForge.net をダウンロードしました。
オーディオをメモリ バッファにデコードしています。16 ビット 48kHz オーディオ ステレオ トラックの各サイクルで、48000 バイトまたは 24000 サンプルを取得します。これらは現在、short の配列 (Int16) にコピーされています。ここで、配列を複雑な構造体に変換する必要があります (AForge の場合)。これは、「実数」と「虚数」の double 値で順番に初期化されます。しかし、これらは正確には何であり、配列からこれら 2 つの double 値に移動するにはどうすればよいでしょうか? また、渡す前に左右のチャンネルを分割する必要がありますか?
残念ながら、コードとして提示されていない限り、数式を読むのは苦手です。私がこれまでに訪れたほぼすべてのサイトで、アルゴリズムを説明するのに役立つギリシャ記号と複雑な数式がすぐに出てきます。その結果、すぐに翻訳に迷います。私を信じてください、私は「ダミーのためのFFTアルゴリズム」を見つけるのに苦労しました。;)
モデレーターへの注意: これは、「オーディオ サンプルをバイトから複素数に変換する」の複製ではありませんか? 質問は似ていますが。