我在一个对音频数据进行实时 FFT 图的程序中遇到了这段代码:
data=scipy.array(struct.unpack("%dB"%(bufferSize*2),data))
ffty=scipy.fftpack.fft(data)
ffty=abs(ffty[0:len(ffty)/2])/1000
ffty1=ffty[:len(ffty)/2]
ffty2=ffty[len(ffty)/2::]+2
ffty2=ffty2[::-1]
ffty=ffty1+ffty2
ffty=scipy.log(ffty)-2
我不明白后面的部分背后的数学abs()
。它的作用类似于添加幅度数组的前半部分,后半部分反转,然后添加 2。
这是某种标准化吗?
这是来源: