[英]Dividing speech signal into 10ms non overlapping windows
在我的應用程序中,我需要將來自麥克風的整個語音信號(采樣后)划分為10 ms的非重疊窗口。
我目前在我的代碼中使用漢寧窗口來做到這一點:
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;
}
現在我的問題是,我在哪里指定我需要10ms不重疊的窗口?
您只需將信號分解為Fs * 0.01個樣本,例如,如果您的采樣率Fs = 44.1 kHz,則可以處理4410個樣本的連續塊。 然后,您可以將窗口函數,FFT等應用於441個樣本的每個塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.