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

看板Python作者時間5年前 (2019/05/22 14:56), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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畫出圖形。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.206.157 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1558508163.A.618.html
文章代碼(AID): #1SvFA3OO (Python)
文章代碼(AID): #1SvFA3OO (Python)