2018年4月15日 星期日

Jitter到底從何處來?

啥叫jitter?抖動,在數位音樂這領域談的是clock的jitter,也就是clock頻率不規律,而且是極短時間,每個clock之間的差異,所以先要問的是clock從何處來?
一張CD有帶clock嗎?一個檔案有帶clock嗎?
上面只是標示著,這該用44.1KHz唱,那該用96KHz唱,搞錯了,唱出來的音調就很詭異,就像45rpm的vinyl用33又1/3的速度唱一般;
那,clock出現在何處?
顯然是讀檔案出來後,要餵給DAC唱時,才給它clock,通知DAC說,嘿,照這個頻率唱這資料喔~

請各位先搞清楚這點!!!

Clock實際上怎麼應用的?

典型的作法是,在電壓上升或下降時,將數位資料丟進DAC轉成類比訊號;
因此,如果這上升或下降的時間,每次都抖動呢?
那就像你在唱歌時中氣不足抖動,唱出來的聲音也就是抖的。

再問,clock是數位訊號?還是類比訊號?
看起來是個數位訊號啊?長的典型數位訊號的樣子,是嗎?
那clock有0或1嗎?
其實沒有,clock的重點在那上升或下降的變動,其實是個類比訊號!(數位訊號只是種特化的類比訊號而已)
任何類比訊號都不可能完美!
任何clock都會有jitter,這世上不存在完美的clock,只是jitter不同的差異而已,有些很嚴重,有些非常輕微,當然,我們希望jitter越少越好;
喔,還有,jitter也是有頻譜的勒~有些偏高頻,也就是抖動的很快,有些偏低頻,緩緩變化;
如果快到人耳聽不出來?那根本不用在意;慢到某個程度也是如此。

既然clock是個類比訊號,那麼每次clock經過一手傳遞會?
一定會失真,一定會引入雜訊,jitter一定會越來越嚴重;
因此,最好的手法是?
clock就擺在DAC IC旁,直接餵給DAC IC,傳輸距離最短,最乾淨,沒錯吧?
這就是所謂的async USB DAC搞的,這是相對於由電腦端決定clock的adaptive USB DAC;
async的動作是,電腦通知DAC說,我們來唱音樂吧,DAC就告訴電腦說,來一筆資料吧,收到後開始唱,唱到資料快唱完了,再對電腦說,再來一筆吧;
像是在翻譜一般,電腦只負責給資料,完全沒給clock!
clock由這USB DAC自己產生,那麼clock好壞就能由DAC自己決定囉~砸大錢才能搞好,隨便搞搞就很爛。
若是CD唱盤走光纖或同軸這種S/PDIF到DAC去勒?clock哪裡來?
就由S/PDIF訊號產生,也就是由CD唱盤發送出,看這邊 https://en.wikipedia.org/wiki/S/PDIF#Protocol_specifications
the format has no defined data rate. Instead, the data is sent using biphase mark code, which has either one or two transitions for every bit, allowing the original word clock to be extracted from the signal itself.
...
...
The receiver does not control the data rate, so it must avoid bit slip by synchronizing its reception with the source clock. Many S/PDIF implementations cannot fully decouple the final signal from influence of the source or the interconnect. Specifically the process of clock recovery used to synchronize reception may produce jitter.[9][10][11] If the DAC does not have a stable clock reference then noise will be introduced into the resulting analog signal. However, receivers can implement various strategies that limit this influence.
這麼做是為了避免CD唱盤與DAC之間各跑一個clock必然會發生的二者不可能頻率完全相同,唱久了必然會掉資料或資料塞爆;
那麼,這clock過了幾手?
clock源,送到S/PDIF發送器,經過光纖或同軸線,送到S/PDIF接收器,PLL"猜"出clock頻率,再送到I2S,再送到DAC IC,過了幾手?
那,貓窩的DAC2.1, DAC3, DacAmp2搞的re-clocking又是啥勒?
這是很細部的技術手法,DAC IC的輸入訊號是I2S,其中就包含clock與資料,這I2S訊號源自於前端與USB介面溝通的processor,再前面當然是個石英震盪子(最原始的clock來源),
也就是說這個架構中clock一定會多過一手 -- processor,而且這processor是整個系統中最耗電,運作最快的,產生的雜訊也最大,數位嘛,難免...clock經過這一手一定會很糟...怎麼辦呢?
就把石英震盪子擺在靠近DAC IC處,在I2S進DAC前,重新用石英震盪子直接出來的clock重新鎖定I2S訊號,重發一次,就搞定了~
效果呢?當初DAC2是手工改這部份,一換上去,哈~天壤之別囉~
就說癥結點就在clock/jitter啊!