オーディオデータのリアルタイム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を追加するようなものです。
これはある種の正規化ですか?
これがソースです: