本文介绍了汉宁(冯翰)窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
public short[] HanningWindow(short[] signal_in ,int pos ,int size)
{
for (int i= pos; i < pos+size; i++)
{
signal_in[i] = (short) ((signal_in[i]) * ( 0.5 * (1-Math.cos( (2 * Math.PI * i) / (size - 1))))) ;
}
return signal_in;
}
我想用它在
pos = (ring+delay*frame_rate*frame_size)%(frame_size*(frame_rate+1));
num = record.read(lin,pos,frame_size);
GGSpecSub tempSpecSub = new GGSpecSub();
lin = tempSpecSub.HanningWindow(lin, pos, frame_size);
这是我第一次使用实时DSP - 请告诉我,如果这是正确的方式来汉宁窗适用于信号
It's my first time using real-time DSP - please tell me if this is the right way to apply a Hanning window to a signal?
推荐答案
没有,它需要更多的像这样的:
No, it needs to be more like this:
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;
}
这篇关于汉宁(冯翰)窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!