另一個常碰到的問題,是音高解析度的問題。通常一個半音差等於 100 個「音分」(Cents),若希望能得到高解析度的音高,我們可以調高取樣頻率以增加音訊在時域的解析度,這也會使 ACF 或是 AMDF 的解析度隨之提高,進而提高音高的解析度。從數學上來說,音高和基本頻率的關係如下:p = 69 + 12*log2(f/440) = 69 + 12*log2((fs/L)/440) 其中 L 是基本週期的點數。當 L 增加 1 時,音高的改變量可以表示如下:DP = (69 + 12*log2((fs/L)/440)) - (69 + 12*log2((fs/(L+1))/440)) = -12*log2(1+1/L) = -12*log2(1+f/fs) 其中 f 是基本頻率,fs 則是取樣頻率,DP 隨 fs 的變化情況可以使用下列範例來畫圖說明:
由以上圖形可以看出,當取樣頻率降低時,或是基本頻率提高時,音高的誤差就會變大(解析度降低)。通常基本頻率不是我們所能控制的,因此若要提高音高的解析度,對於在時域上的音高追蹤方法,我們可以提高取樣頻率,或是對聲波(或是 ACF、AMDF)進行向上取樣(Up Sampling)或是內差(Interpolation)。同理,若要提高音高的解析度,對於在頻域上的音高追蹤方法,我們可以直接在每個音框進行補零(Zero Padding),此時在頻譜的解析度就會提高,所計算出來的音高解析度也就跟著提高了。
Audio Signal Processing and Recognition (音訊處理與辨識)