3

Wave ファイルを読み込んでおり、それに高速フーリエ変換を適用したいと考えています。しかし、ステレオ信号があり、左右のチャンネルをどうするか迷っています。FFT は両方のチャネルに別々に適用する必要がありますか?

4

2 に答える 2

8

はいといいえ。

確かに、各チャネルの FFT は独立しているため、それぞれに個別の FFT が必要です。

ただし、複素数データの FFT のルーチンへの 1 回の呼び出しといくつかの追加演算を使用して、実数データの 2 つの FFT を計算することは可能です。これはNumerical Recipeshereで説明されています。1 つの実信号は複素信号の実部として使用され、2 番目の実信号は虚部として使用されます。それらの変換は、追加の演算を使用して結果で分離できます。

これが機能するのは、FFT が線形操作であるため、変換の実部と虚部はある意味で分離可能であり、実数から複素数への FFT の対称性により、その分離が比較的単純になります。

公開されたライブラリの FFT ルーチンは、通常、高度に最適化されています。追加の演算のコードも十分に最適化されていない限り、実数から複素数への FFT ルーチンを 2 回呼び出す方が、独自の実装で補完された複素数から複素数への FFT ルーチンを 1 回呼び出すよりも高速になる場合があります。追加の算術。

FFT の一般的な用途は、信号を変換し、実際のインパルス応答フィルターの変換を乗算し、逆変換を実行することです。この場合、2 つの信号を分離する必要はありません。結合されたデータに対して乗算が実行され、逆変換によって新しい信号が分離されます。

于 2013-01-23T10:46:53.880 に答える
2

ステレオチャンネルは独立しているため、各チャンネルにFFTを適用する必要があります。単一のチャンネルのみを処理したい場合は、両方のステレオチャンネルをモノラルチャンネルに変換する必要があります。

于 2013-01-23T10:31:22.187 に答える