上一篇我們講到DSP的入門,也就是 ADC\DAC,也有講到數位訊號的音量最大是0dBFS。本篇延續話題,講的是音量控制,適合所有聆聽好聲音的大家。

        進入到重點之前,SNR這個詞是我們必須要懂的。Signal-to-Noise Ratio,訊噪比。雖然人的聽覺有遮蔽效應(masking,有時域與頻域,我們留在心理聲學篇章再來詳述),音樂下來的時候,些許噪音可能不是這麼重要,但基本上SNR是越高越好。音量控制就是在音響系統上將SNR極大化的一種方法。

 

        下圖舉例來講藍芽喇叭放音的流程(紅色箭頭):

 

        手機播放音樂,由播放程式(軟體)讀取音檔,開啟音訊串流,音訊往底層硬體走。這時會判斷使用者要用耳機輸出或藍芽輸出,若藍芽輸出,則音訊串流將送至藍芽晶片進行傳輸作業。因為藍芽為低功耗短距離傳輸協定,所以傳輸速度無法很快,因此大多藍芽音樂傳輸會將音訊串流壓縮成A2DP(Advanced Audio Distribution Profile),送到接收端的藍芽晶片進行解碼(decode)。目前好一點的藍芽音訊傳輸是APT-X,不管在時序延遲與音訊優化上都比A2DP要強許多。接收端將解碼後的音訊串流再經過DAC將音訊轉成類比訊號輸出。

 

        重點在於,音量是在哪裡控制?下圖來解析數位音量與類比音量的差異。下圖紅色為噪音(noise),藍色為聲音(signal),請注意在數位的世界中,撇除量化誤差、演算法或編解碼問題,是不會有noise的,也就是說噪音都在類比世界中出現。圖一左與圖一中是類比放大的波形,可以看到不管噪音或聲音都同時被放大了。在正常情況下SNR是能夠維持一樣的。但如果將訊號拿掉(換歌空檔)就會聽到大聲的底噪了(圖一右)

圖一。類比放大

       

而若是數位放大,可以看到圖二中,訊號變大但底噪不變,換句話說SNR變好了,而且在不播放歌曲時,底噪也較類比放大要小。BUT,人生中就是這個BUT,沒有十全十美的辦法。數位放大的優點,在數位縮小的時候就是缺點了,因為訊號變小,底噪維持不變,所以SNR是變小的。

圖二。數位放大

 

        如上述所說,基本上我們要將數位音量最大化才有最好的SNR。接下來,我們怎麼判斷音樂播放器的音量是數位或類比呢?基本上,大多數的播放程式都是數位音量,除了一些測試設備或外接擴大機附的控制軟體,這是因為軟體工程師設計的程式往往適用於所有不同的硬體,換言之就是不做硬體控制。以藍芽喇叭為例,手機上的音量控制是數位的,不管播放器或手機顯示是正的或負的,有個好理由是若加入多的增益,原本0dBFS的音檔將會面臨到截波(clipping)的問題而產生失真(harmonic)

        有個簡單辨別數位或類比音量的方法:調整音量,將耳朵靠近播放器(危險請注意),若聽到底噪隨著音量增減,就是類比控制;反之底噪不隨音量增減則是數位控制。

 

        最後,魔鬼藏在細節裡,不要輕易將數位音量降太低,因為會造成之後演算法或下一級的數位增益出現底噪或失真,請見下圖。圖三中反白處減了60dB,圖三右再加回60dB。可以看到有些許失真造成,這是因為先前講的bit depth問題,當二進位100(8)除以10、再乘以10會發生什麼事?8除以10等於0.8,若該DSP四捨五入會等於1,再乘以10就會變成10;若該DSP無條件捨棄會等於0,再乘以10就會變成0。要避免這類的事情就必須使用更高位元數的處理器,或是選擇浮點運算(floating)的處理器。

圖三。數位增益

 

arrow
arrow
    文章標籤
    DSP audio SNR
    全站熱搜

    IJDK 發表在 痞客邦 留言(0) 人氣()