2014年8月7日 星期四

從系統面簡述DAC各功能方塊來與探討數位線的差異

這個話題好像每隔一段時間就會出現,我以在系統廠工作的經驗提出一點看法。
首先我們先來看看一台DAC(整機)從數位輸入到類比輸出資料流(data stream)是怎麼走的:
同軸/光纖輸入-->數位接收IC-->DAC IC-->I/V+LPF-->Audio Out
以上看起來很簡單對吧?阿DAC不就是吃數位資料0101,然後根據收到的數位資料再把聲音還原,變成我們聽到的聲音。
數位線只要負責把數位0101的資料完整無誤的傳遞到DAC就好,如果傳錯資料,我們聽到的就會是爆音,所以換數位線是沒有差的。
我想一般常見到的支持換數位線沒差的論點,大多都是著墨於bit error的看法,但實際上真的是只有這樣嗎?
為什麼有這麼多人親身試過後都覺得換數位線有差呢?
我想這個需要從DAC的工作原理開始看起。(以下的DAC指的是DAC IC,不是整台DAC)
DAC,大家都是知道是Digital to Analog Converter,也就是把數位的0101聲音資料轉換成類比人耳可聞的音波(sinusoidal wave),
如下圖(一),原始聲音訊號(Original)經過數位取樣後,會變成中間的圖,每根的高度,則是用16/24/32bit的0101去代表,
例如說用1001100001010001代表這個瞬間取樣到的弦波高度是1.234V這樣~
然後最下面則是DAC根據接收到的數位資料還原出的聲音訊號,再經過LPF之後,就會變成平滑的弦波了。
雜物      
以上看來沒什麼問題,只要DAC接收到的數位0101資料沒有錯,就能夠正確無誤還原聲音訊號。
如果接收到的數位0101訊號傳錯了呢?
DAC並沒有揪錯的能力,它只會根據收到的資料是什麼就轉換出什麼聲音訊號。
假設聲音訊號是16bit,這時候錯了三個bit,這時候DAC解出來的就不再是1.234V,而可能變成1.001V
這時候原本應該要有1.234V的弦波變成只有1.001V了,我們聽到的聲音在這個瞬間就產生了失真......
所以,只要數位線能確保不要發生bit error,那DAC就能正確無誤地還原聲音了。
基本上這個論點是對的,但是就一條合格的SPDIF數位線而言,通常Bit error rate都在10e10以上,
以這個級數來說,需要很長一段時間才會有一個bit error出現
如果你的數位線真的會造成很大的傳輸錯誤,那你聽到的聲音早就荒版走調了。
所以照著這個論點走,數位線只要傳輸數位資料正確,就不會有任何差異?讓我們再繼續看下去.......

話說回來,我們再回頭看看DAC的工作原理:如下圖(二)
dac      
我們可以很清楚看到,DAC每隔一段t時間,就會把其相對應的16/24/32bit的數位資料,轉換成其表示的類比振幅訊號。
如上圖,1t的時候,這時候轉換的類比振幅是1.001,2t變成1.234,3t的時候是0.998,4t的時候是0.885,以此類推。
然後這些階梯狀的訊號,經過LPF後,就會平滑還原成上圖淡藍色線形成的平滑弦波了。
那這邊t代表什麼意思?就是指sample rate的倒數,例如說1/44.1khz、1/48khz、1/96khz等等,
DAC藉由外部(別顆IC)送入的時鐘訊號(Clock),得以每隔固定的1/44.1khz、1/48khz、1/96khz時間就送出一筆類比振幅訊號。
(DAC IC本身並沒有來自石英振盪器的時鐘訊號輸入,DAC的時鐘訊號是來自I2S介面)
上圖可以看到,每個t都是固定的,但是實際生活中,這是不可能發生的,當DAC在每個t時間準備要送訊號的時候,都會抖一下,
以44.1khz來說,t = 22.67573699us,但是DAC不會這麼準確的送,可能這時候是22.67573699us,下一次送的時候,反而過了22.67573600us就送了,
每次間隔的差異,或每t時間的差異,就叫做jitter。
那jitter會對DAC什麼影響呢?由物理學我們可以得知一個弦波的頻率,定義為波峰到波峰的時間的倒數,
由上圖為例,就是2T到7T,這段時間代表該弦波頻率的倒數。
所以如果當t不是很穩定的t = 22.67573699us,而是會上下飄動的時候,這就會造成該弦波頻率的改變
當t短一點的時候,我們會聽到頻率較高的聲音,t長一點就是較低的聲音,這也就是為什麼每台DAC聽起來聲音差很多的主要原因之一。
那這個Jitter怎麼來的,當然是由外部(別顆IC)送入的時鐘訊號(Clock)帶來的,這顆IC,就是數位接收IC。
在解釋之前,首先要有一個觀念,在數位世界,任何IC做出每一個動作的時候,都需要按照某個特定的時鐘,一個動作一個動作的執行。
這個時鐘,可以是別顆IC傳給它的時鐘訊號,也可以是這顆IC自己的時鐘器件(石英振盪器)傳給它的訊號,
更可以是從別人送給它的資料訊號(DATA)中把時鐘訊號還原出來。

了解了這個以後,我們再來看一下整台DAC的系統架構圖:如下圖三
  dac structure    

 這邊我們可以看到,三個主要的IC(USB IC、數位接收IC、DAC IC),只有USB IC有一個自己的12Mhz的石英振盪器,其他的都沒有。
表示數位接收IC跟DAC的時鐘訊號是由其他人提供的。
圖三可以看到,DAC IC的時鐘訊號,主要是來自於I2S介面的clock,這個是由數位接收IC產生的。
那數位接收IC的時鐘訊號又是哪來的呢?
答案是由SPDIF所傳送的DATA中還原出來的。
看到這邊就應該可以了解,Jitter是怎麼從前端(數位器材)一路傳遞到DAC IC,進而影響聲音了吧:
那數位線又是如何影響jitter的呢?
這邊我們先要有以下幾個觀念:
1. 導線有其阻抗、電容、電感,並非如電路學中是條毫無損耗的理想導線。
2. 數位訊號在傳輸的過程中,由0-->1以及由1-->0,並不是立即發生,從0-->1會需要一段時間,這段時間叫做上升時間(rise time),相對的,1-->0的時間叫fall time
    這兩個時間的長短與傳輸該數位訊號的傳送IC(transceiver)的輸出能力有關,一般比較常聽到的是slew rate。
3. Slew rate會受到負載的電容、電感影響(在接收端量測時),所以傳送IC的slew rate會受到導線的等效電容、電感影響,
    原因是傳送IC的輸出電流能力是有限的,通常只有幾個mA,如果負載有電容電感的情況下,對負載充完電後,訊號才會從0變成1。
   (通常導線的電容值都非常小,只需要很短的時間就會充滿,但也會影響到上升時間)
所以,換數位線的影響,就來自於不同數位線的阻抗、電容、電感值的不同,造成接收端(數位接收IC)收到每筆數位資料的時間不同,(從0變1的時間與從1變0的時間),進而造成jitter傳遞到後端的DAC IC。
所以我們可以下一個結論:
「數位訊源藉由數位線將自身的jitter傳到DAC,同時間也會因為不同的數位線,造成傳遞到DAC的jitter也會有所不同。」

而USB也是一樣,現在的USB Audio傳輸分兩種,synchronous / asynchronous mode,這個我想大家都知道。
跟SPDIF比較不同的是,在現在的DAC(整機)架構裡,USB訊號輸入後,絕大多數是先經過一顆USB IC把USB的訊號轉成SPDIF後再送到數位接收IC。
前面我們有提過,只有USB IC有自己的時鐘,那是不是就表示換USB線沒用?
錯了,在synchronous mode同步模式中,USB IC主要是靠著隱藏在USB封包中的時鐘資訊來解調USB封包,並且用解調出來的時鐘訊號與數位聲音資訊,調變成SPDIF格式後送往下一級的數位接收IC。
這邊就跟SPDIF的時鐘訊號是從傳輸的DATA中解調出來是一樣的,所以更換USB線造成聲音的改變一樣是來自於Jitter的影響。
那有關最近很夯的非同步傳輸USB又是如何呢?
理論上來說,非同步傳輸的時候,USB IC會用自身的時鐘訊號去做USB封包解調,所以數位線造成的影響應該會被減到最小,甚至不應該有差別,
巴特......人生就是這個巴特......事情沒有這麼簡單阿=3=
目前的非同步USB IC的實現,例如說XMOS或是Cmedia,他們的非同步USB IC其實是一顆多功能的processor,只是裡面有寫非同步USB介面的IP進去。
這兩家的非同步USB IC的規格書並沒有公開,無法得知他們怎麼實做非同步USB傳輸,但是,有個問題是,通常本地的時鐘都是12Mhz的整數倍,如12Mhz、48Mhz、96Mhz
如果送的聲音資料,是48Khz、96Khz的時候,還可以直接把本地時鐘做除頻後來當做MCLK使用 (I2S MCLK的頻率會隨著聲音資料的取樣率改變,通常是256倍或512倍的取樣頻率),
若送的聲音資料是44.1khz或其整數倍的時候呢?USB IC還是只能把它從USB DATA解調出來的時鐘訊號拿來使用,這樣回來,數位線與數位訊源所造成的jitter還是會進入後端。
以上三行是我的猜想,因為沒有規格書,並無法得知像XMOS、Cmedia如何實現非同步傳輸的,那這三行推論來自以下:
「因為搜尋XMOS的規格書無果,我發現TI其實也有USB controller IC有支援非同步傳輸,但是在音響界沒人拿來使用。
這顆IC是TAS1020,裡面有提到說,在非同步模式底下,輸出的I2S MCLK會來自於本地clock input,但是,在這顆的IC的時鐘架構圖中,還可以看到,
輸出的I2S MCLK除了用來自本地的clock input之外,其時鐘合成器還會加上來自USB DATA解調出來的時鐘訊號後,再送出。」

就筆者自身經驗中,更換非同步USB裝置的USB線,還是會有所差異,但不知道是不是知見障,筆者個人覺得用在非同步USB裝置的USB線之間差異略較
相同線材更換成Aune T1 USB輸入上來得小。但整體來說,差異的走向是一致的。
非同步USB:M2tech EVO
一般USB:Aune T1 (TE7022)
USB線:Viablue USB、Zonotone 6N純銀、Probest USB cable

============================================Q&A=====================================
Q1:Jitter大好?還是Jitter小好?
A:就實務來看Jitter希望是越小越好,但是jitter小不代表聲音一定比較好聽,jitter大不見得一定不好聽,要看整體系統搭配上,是哪個頻率的jitter影響最大,這是很主觀的。
Q2:該如何看數位線的規格得知它好不好聽?
A:不知道,請耳聽為憑,
Q3:光纖跟同軸比哪個好?
A:不是亂做一通的同軸線基本上海放光纖! 為什麼呢?光纖雖然說在傳輸過程中不會受到電磁干擾,但是光纖在接受端光訊號轉電氣訊號的時候,
     因為audio用的光纖都常是多模光纖,光在光纖中行進時不是單一模態,且TOSLINK接收端是最廉價的設計,會產生大量額外的jitter,所以一般光纖的聲音都不如同軸許多。