close

  這個篇章稍微往軟體走一步,我們來談談 DSP (Digital Signal Processing),數位訊號處理在整個音訊架構扮演怎麼樣的角色。DSP在整個電聲領域的位置是在軟體與硬體之間,通常在DSP處理音訊有一些好處:較省電、較快速。下圖是簡單的比較表,可供開發人員參考。

 

 

軟體

DSP

編譯方式

簡單

上層C\JAVA等等

困難

Assembly code or C compiler

聲道處理

通常一個串流是雙聲道

高階或具備DAC的晶片可直接做多聲道處理

速度

以目前的處理器來說,軟體演算法已不見得比硬體要慢。不過通常來說,還是DSP的編解碼或處理要更快,因為assembly code可以做最底層的優化

訊號格式

Floating point

32\64 bit以上

Floating\fixed point

通常為16bit

 

    DSP的門戶是ADC \ DAC (Analog-to-Digital Convertor),技術內容是取樣(Sampling)、量化(Quantization)與編碼(encoding);工程技術細節網路上找就能看到許多,在此不多贅述。但是一定要知道的是他們的背後意義:

 

(1) Sampling是指時間軸上的數位化(切割成”, n/s)frameslotsample的更大集合,通常語音處理上會因為特性需求訂為16~32ms1frame,若sampling rate = 48kHz, 則 1 frame = 32ms = 48k*32m = 1536 samples。一般CD的取樣率是44.1kHz,另一常見的是48kHz,越高代表取樣越不失真。學理上講到的Nyquist rate,是不是真的可以還原出1/2 頻寬呢?運氣好取樣的曲線就像下圖:

運氣不好取樣的曲線就像下圖:

還覺得剛好兩倍頻寬是足夠的嗎?

(2) Quantization是指大小振幅上的數位化(切割成位階”),越高bit數代表可以量化的更細緻,好比說0.49876就比0.5要更精確,展現的細節就越多。

(3)Encoding跟常見的wavmp3不同,學術上的encode指的是更底層NRZ等硬體介面傳輸的編碼。不過筆者在應用上傾向於檔案格式這個解釋,因為比較親民。除了.pcm檔以外,每個音檔標頭(header)都記載了這個音檔的取樣速度sampling ratebit、聲道channel,甚至於作者、曲風等等資料。

 

接著本篇重點中的重點,學校沒教、只有DSP界才懂的核心概念是:數位最大的單位是0dBFS (Full Scale)。類比世界裡,我們習慣說這個電壓是幾伏特,無論大小或正負我們都很常見,要做加減乘除運算十分的流暢,那麼,數位只剩下0101的世界中我們該怎麼定義呢?別忘記我們在量化的段落裡講到,bit數越高能夠表達的就越精細,也就是說如下圖:

 

 

        我們將數位的最大訂為0dBFS,也就是量化單位的10dBFS在不同的運算器裡都代表111111…..1;而量化單位的0,在不同位元的運算裡面表達的就不同了,16位元裡是 -96dBFS24位元裡則是 -144dBFS。別忘了,負的dB越多,是代表值越小,並不是負數。( 1 =  11111........1 = 0 dBFS,0 = 00000.......... = -96dBFS(16bit) = -144 dBFS(24bit))

 

        可能你會有一些疑惑:數位世界最大的0dBFS到底是多大聲呢?恭喜你問到另一個重點了。先前我們講到,DSP的門戶就是ADC\DAC0dBFS多大聲就要從DAC身上來著手,DACfull scale reference voltage就是數位的0dBFS大小。iPhone的耳機輸出,0dBFS大約是0.95Vrms左右,而在其他手機上,就不見得會這麼大了。

 

        我們下篇將進入到另一個主題:音量。

 

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

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