将语音信号分成10ms非重叠窗口

时间:2013-07-18 02:50:32

标签: java android signal-processing

在我的应用中,我需要将来自麦克风(采样后)的整个语音信号分成10毫秒非重叠窗口。

我目前正在我的代码中使用hanning窗口来执行此操作:

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毫秒非重叠窗口?

1 个答案:

答案 0 :(得分:4)

你只需将你的信号分解成大块的Fs * 0.01样本,例如如果您的采样率Fs = 44.1 kHz,那么您将处理4410个样本的连续块。然后,您可以将窗函数,FFT等应用于441个样本的每个块。