0

私のアプリケーションでは、マイクからの音声信号全体 (サンプリング後) を 10 ミリ秒の重複しないウィンドウに分割する必要があります。

私は現在、それを行うためにコードでハニング ウィンドウを使用しています。

public short[] HanningWindow(short[] signal_in, int pos, int size)
    {
for (int i = pos; i < pos + size; i++)
{
    int j = i - pos; // j = index into Hann window function
    signal_in[i] = (short) (signal_in[i] * 0.5 * (1.0 - Math.cos(2.0 * Math.PI * j / size)));
}
return signal_in;
   }

ここで私の質問は、、、、、、、、、、、、、、、、、 10 ミリ秒の重複しないウィンドウが必要であることをどこで指定しますか?

4

1 に答える 1

4

信号を Fs * 0.01 サンプルのチャンクに分割するだけです。たとえば、サンプル レート Fs = 44.1 kHz の場合、4410 サンプルの連続ブロックを処理します。次に、ウィンドウ関数、FFT などを 441 サンプルの各ブロックに適用できます。

于 2013-07-18T05:48:08.650 に答える