我碰到這個代碼片段的程序,它的音頻數據的實時FFT圖來:理解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。
這是一種正常化嗎?
這是源:
謝謝。任何想法爲什麼'log(ffty) - 2'完成? –
那麼日誌可以讓你縮放dB幅度,但由於dB值是任意的,沒有某種類型的0 dB基準,所以我猜-2只是達到繪圖/顯示所需的範圍。 –
有道理 - 謝謝。 –