[英]Calculating power-spectrogram on a window of a .wav file
我正在嘗試計算聲音文件的一部分的功率譜圖。 目前我正在使用librosa 。
我用20 * 1e-3 * samplerate計算我的windowsize。 我想知道的是結果(特別是t的長度),如下例所示:
44.1kHz的采樣率與20ms的時間幀相結合產生882個樣本的窗口。
In [2]: D = np.abs(librosa.stft(y[:882]))**2
In [3]: np.shape(D)
Out[4]: (1025, 2)
我得到的是我的結果中的2ms時間幀,這不是我的預期。 有人可以幫助我/指出我做錯了什么嗎?
默認情況下, librosa.stft
使用的FFT大小為n_fft
為2048,輸出的第一個維度與實際輸入信號的非冗余頻率分量的數量相匹配( 1+n_fft/2
,在本例中為1025)。
第二個維度由時間片的數量決定,我認為這是你有點困惑的地方,期待你的882個樣本中的一個時間片。 但是, librosa.stft
計算重疊時間片的輸出。 默認情況下,每個切片使用的樣本數設置為win_length / 4
,因為您沒有指定win_length
,所以設置為n_fft / 4
或512.充分利用您的882個樣本(並根據需要填充) ,這給你兩片:
如果您不想重疊,可以將hop_length
參數設置為與n_fft
匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.