0

コード認識のために高速フーリエ変換を Java で実装したいのですが、よくわかりません。サンプル数は 2 のべき乗であると書かれていますが、サンプル数が 2 のべき乗でない曲はどうすればよいでしょうか。また、STFTについても知りたいです。

4

2 に答える 2

3

通常、ファイル全体のスライディング ウィンドウでSTFTを生成します。ウィンドウのサイズは、サウンドの特性が大きく変化しない妥当な期間を与えるように選択されます。通常、ウィンドウは約 10 ミリ秒であるため、たとえばサンプル レートが 44.1kHz の場合、ウィンドウ サイズ N = 512 を使用すると、必要な持続時間と 2 のべき乗のサイズが得られます。次に、ファイルからサイズ N サンプルの連続チャンクを取得し、N ポイント チャンクごとに FFT を生成します。(注:ほとんどの場合、実際にはマグニチュードが必要ですパワースペクトルの推定値を取得するために、FFT 出力の 最終的な結果は一連の短期間のスペクトルであり、事実上、周波数ドメインで音の内容を記述する 3D マトリックス (振幅 v 周波数 v 時間) が得られます。

于 2013-10-09T16:11:25.097 に答える