-1

.wav ファイルがあり、STFT を実行する必要があります。ファイルの長さがわからないと言います。それを小さなフレームに分割して STFT を実行するにはどうすればよいですか??

4

1 に答える 1

0

最後に MatLab に取り組んでから長い時間が経ちましたが、一般的なアルゴリズムは次のようになるはずです。

  1. 入力信号を取得します。
  2. ウィンドウ関数でポイントごとに乗算します(「n」個のサンプルの長方形など)。これは、「n」個のサンプルのフレームがあることを意味します。
  3. このフレームの FFT を取得します。
  4. 'm' サンプル (m = シフト、通常は 'n' の約 25%) だけウィンドウを移動します。手順 2 と 3 を実行します。
  5. 信号の終わりに達した場合は、取得した信号のサンプルをいくつでも取得し、残りをゼロで埋めます。手順 2 と 3 を実行します。
  6. これで、周波数、振幅、時間の 3D プロットができました。プロットして STFT を取得します。

余談ですが、MatLab には STFT 関数はありませんか? チェックしましたか?

于 2013-07-25T15:04:27.160 に答える