Re: [問題] FFT 動態範圍限制

作者: Dmix   2019-05-22 14:56:01
※ 引述《Dmix ()》之銘言:
: https://imgur.com/ua8qus9
: 請教各位,上圖中黑線是儀器讀取音源產生的FFT;紅線是我用python讀取相同音源並
: 計算出的FFT。約3KHz以上儀器可以計算出更低的值,紅線卻沒有辦法。
: 請問有什麼指令可以增加FFT的動態範圍(最高值/最低值)呢?
python的資料是開啟音檔(*.wav,單音軌)
f = wave.open('1k_Cal - single.wav','r')
params = f.getparams()
num_ch, quantized_byte, sample_rate, Total_length = params[:4]
# (聲道數量, 量化位元(以byte為單位), 取樣速率, 資料總長度(點數))
Total_time = Total_length / sample_rate
quanitized_level = (2**(quantized_byte*8))/2 # 滿刻度的最大值2^(L-1)
data_wave = f.readframes(Total_length)
f.close()
data_string = np.fromstring(data_wave, dtype = np.short)
data = data_string / quanitized_level # 轉換成對應最大值(0dBV, 1V)的相對電壓
data.shape = -1, 1
# data.shape = -1, ch (ch = 音源檔聲道數目)
sig = data[:, 0].T
用sig計算FFT畫出圖形。

Links booklink

Contact Us: admin [ a t ] ucptt.com