1
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我的第一次 - 請告訴我,如果這是應用漢寧窗的正確方法到信號?
pos是其中Android是使用AudioRecord.read()函數讀取的位置。我在這裏做的是給出整個signal_in.length,它是11776,只讀取512個樣本。爲什麼我必須做int j = i - pos? – 2012-07-22 15:15:39
'j'需要從'0'到'size-1'的值,以便餘弦函數操作範圍'[0..2π]'。 – 2012-07-22 19:08:25
是不是我的代碼在那裏的「我」是什麼? – 2012-07-22 19:49:22