作者john0312 (Chen John L)
看板Audiophile
標題Re: [交易]徵-高雄 純銀USB線
時間Mon Apr 4 01:49:36 2011
本篇可能對非電資科系的朋友上會有閱讀困難, 在此致歉.
結論於最尾端.
Tosca兄提出的網站
http://www.jitter.de/english/engc_navfr.html
其中參考一篇Paper:
http://www.jitter.de/pdfextern/jitter92.pdf
這篇是1992年AES Convention的Paper, 確實詳細的說明了許多Jitter
的來源與數學模型.
然而1992年沒有USB. 當時大多也沒有超過48kHz/16bit, 因此
不需要很高的傳輸速度, 然而到了現在, USB 2.0由於需要以高速
來傳輸數據, 其訊號在線中的波長已經不會遠大於線的長度,
因此需要用所謂的傳輸線模型(Transmission Line Model),
也就是該Paper中提到更複雜的模型.
當然, 我們仍然可以照Paper中的數學模型去分析, 取得
一個大致上準確的結果, 作為參考, 這個模型會大致準確
的原因是USB下我們有做到阻抗匹配, 因此不會有很大的住波.
首先我們考慮一個一階線路, 作為USB傳輸線路的模型:
R
Vin ---/\/\/\/\---+----Vout
|
---
--- C
|
V (偷懶一下, 用V代替三角形接地符號)
對於一個Step Function輸入: Vin = 0 for t < 0
V0 for t >= 0
Vout = (1-e^(-t/(RC)))*Vo
其中, R = 45 Ω [1], 為USB訊號驅動線路的輸出組抗.
C <= 10 pF [2], 為線路與接收傳輸晶片的電容.
V0 = 400mV [1], 為USB 2.0 High Speed的高態訊號, 由於
低態為-400mV, 所以總共差距為800mV.
一條最好的線, 根據該論文的模型, C該為最小, = 0,
因此, 這種情況下, Vin = Vout, 所以完全沒有Jitter.
然而考慮一條C = 10pF, 勉強符合USB標準的線, 對於
上一個波時間為1/(480MHz), 與時間趨近於無限大, 的
狀況的反應. 這種狀況是能產生最大Jitter的情況.
時間為: 1/(480MHz)
Vinitial = (800mV * e^(-(1/(480*10^6))/(R*C)))
~= 7.806698116174247 mV
=> V0' = 800mV - Vinitial ~= 792.1933018838257 mV
=> Vout = ( 1 - e^(-t/(RC)) ) * V0' + Vinitial
求解輸出電壓為400mV (中間值)之時間,
Vout = 400mV = ( 1 - e^(-t/(RC)) ) * V0' + Vinitial
=> t ~= 3.16373*10^-10 s
時間趨近無限大:
Vout = 400mV = ( 1 - e^(-t/(RC)) ) * V0
=> t ~= 3.11916*10^-10 s
相减其差距為Jitter:
ΔTusb ~= 4.45654*10^-12 s = 4.45654 ps
現在考慮, 假設DAC運作於Asynchronous Mode, 那這時Jitter不影響,
因為USB的Clock跟DAC的Clock完全沒有關係.
所以我們假設DAC運作於Synchrounous Mode, DAC的Clock由USB的
1kHz Frame導出, 因此DAC受USB影響. 此時, 由於我們只考慮
與線有關的Jitter ( Line Induced Jitter ), 所以我們在
考慮兩個1kHz Frame之間的Jitter時, 我們要考慮, 開始與結束
的兩個bit的Jitter加總.
Jitter = (ΔTusb * 2 )/(1/(1kHz))
= ( 4.45654 ps * 2 ) / ( 1ms )
= 8.91307 * 10^-9
= 8.91307 ppb ( parts per billion )
考慮DAC輸出48kHz, 每個Sample之間的Jitter為:
ΔTdac = (1/(48kHz)) * 8.91307 ppb
~= 1.85689*10^-13 s
= 0.185689 ps
這已經遠小於你的石英震盪器的Jitter,
因此不會造成影響.
-----------------------------------------------------------
由於在1992, 大多數位音訊傳輸方式都是透過Synchronous的方式.
(註: 這裡的Synchrounous不是USB的那個)
也就是說有一個Clock, 所有訊號都是在這個Clock的Transition
進入目標IC的, 這種狀況Clock訊號線的Jitter當然會顯相當
重要. ( SPDIF屬於這類 ) 然而USB不是這樣的架構, 因此
這樣的模型對於USB不是很適用, 反而1kHz Jitter造成的
大多來源是系統Scheduling無法在正確時間給出Frame.
對於USB線的Jitter Modeling, 我個人認為從阻抗不匹配
還有▽ε != 0 ( Poisson's Equation的前提 )著手計算
會比較正確. 不過這部分我還沒做詳細的分析.
原因是如剛剛所說的, USB的Jitter大多來自一個封包
在不正確的時間被傳送, 而不是一個位元傳送時間不正確.
前者來自電腦作業系統Scheduler的缺陷, 後者來自
電路的Line Induced Jitter以及Transciever Jitter
( 也就是上一段沒有仔細分析的項目 )
但, 其中USB有規範後者的容許值, 約在15% of UI [3].
這些種種Jitter都是USB的, 這些Jitter要影響到
DAC的運作的前提是, USB的Clock要與DAC的Clock
有關聯, 其中Synchronous與Self Adaptive是有這樣
的關聯的. Synchronous的上面已經解釋了, Self Adaptive
的Clock是透過觀察電腦傳輸資料的速度作為Clock, 因此
受影響. 而對於Asynchronous來說, USB的Jitter一點
都沒有影響, 就好像同一張CD是空運還是海運來台不影響
音質.
-----------------------------------------------------
推 ultimatevic:好奇如果USB真的是在資料傳送上有差異...那外接硬碟.. 04/03 20:07
→ ultimatevic:傳一次檔案就少一點資料...多傳幾次就... 04/03 20:08
好問題, 我最愛好問題了.
首先, 任何電子設備都會有錯誤, 寫1到記憶體, 他有一定
的機率會變成0, 這機率很小, 小於10^-12 [4]. 這樣來說,
如果你沒有一秒幾十萬MB上下的話, 你恐怕沒有幸運到
會碰到一個這樣的錯誤.
當然剛剛那是說記憶體錯誤, 然而USB硬碟跟DAC
也會有這種問題, 只是他們的機率更大, 所以你更
容易遇到. 這你知, 我知, USB的開發者也知,
因此他們在傳送的封包中做了偵錯的動作[5],
降低了錯誤的機率.
如果所有USB封包都做了偵錯, 那就好了,
不過沒有. 我們都知道, USB有: Control,
Bulk, Isochronous, Interrupt, 四種傳輸方式,
其中USB Audio是使用Isochronous, 硬碟是使用
Bulk. Isochronous傳輸*沒有*偵錯, Bulk有.
所以, USB Audio的錯誤率會比USB硬碟的錯誤率高.
我是沒看到USB的Spec跟我Quote說那錯誤率是多少,
不過他們說不用擔心, 不會造成任何問題[6].
這與我的觀察相符, 我個人USB用到現在沒遇過
他Retry (至少沒被我觀察到).
如果擔心的話, 建議還是全部用Bulk,
甚至自己加偵錯碼. ( 假設USB DAC你是自己DIY的 )
----------------------------------------------------------
結論:
USB線的更換是不該造成任何差別的,
如果有差別, 造成的原因應該如下:
1. 非Asynchronous Mode的DAC.
2. 環境雜訊太多.
所以我建議, 如果你有聽到任何USB線的
差別, 你應該:
1. ABX測試確認不是心理作用.
2. 升級你的DAC, 使用Asynchronous DAC
3. 改寫你的DAC的韌體與驅動, 採用Bulk傳輸模式與額外的偵錯碼.
4. 把所有沒有FCC標誌的電子產品丟出窗外.
謝謝配合.
至於USB線影響傳輸速率, 那很明顯是那條線
不符合USB的標準, 所以去換一條符合USB標準的即可.
[1] USB-IF, USB 2.0 Specification, 7.1.1.3 Pg 129
[2] USB-IF, USB 2.0 Specification, 7.1.6.2 Pg 144
[3] USB-IF, USB 2.0 Specification, 7.1.2.2 Pg 133
[4] Bernd Panzer-Steindel, CERN/IT, Data integrity, Pg 2
[5] USB-IF, USB 2.0 Specification, 4.5 Pg 19
[6] USB-IF, USB 2.0 Specification, 4.7.4 Pg 21
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.19.219
→ Windf:請教一下,該篇文章裡的sampling jitter指的是? 04/04 01:55
→ Windf:還有一點,照你的分析,線能造成的jitter十分小 04/04 01:57
→ Windf:這樣在adative mode與synchrounous mode,線仍舊不影響不是 04/04 01:58
→ john0312:Sampling Jitter是ADC/DAC吃的Clock的Jitter. 04/04 01:58
→ Windf:嗎?線造成的jitter與電腦端的jitter是獨立事件吧 04/04 01:58
→ Windf:所以是ad/da電路上那個震盪器的jitter? 04/04 01:59
→ john0312:AD/DA的震盪線路的Jitter跟USB又是獨立事件. 04/04 02:01
→ john0312:其中前者是真正真正要注意的. 04/04 02:01
→ Windf:所以你指的吃的clock是指哪個現象? 04/04 02:01
→ john0312:你問的是哪個吃Clock? 04/04 02:06
→ john0312:USB接收線路跟電腦之間有一個Clock, DAC自己也有一個. 04/04 02:07
→ john0312:Synchronous下面, 兩個Clock被連在一起 (透過1kHz Frame) 04/04 02:08
→ john0312:Asynchronous下面獨立運作. 04/04 02:08
→ john0312:USB的Jitter需要傳到DAC那邊, 變成Sampling Jitter才有效 04/04 02:08
→ Windf:那這個有效的sampling jitter是怎麼來的? 04/04 02:11
→ Windf:是電腦端造成的jitter+line induced總和的結果嗎? 04/04 02:11
→ john0312:Synchronous下面是這樣的. Async下面只有DAC的石英而已. 04/04 02:14
推 pipi5867:我是覺得很多人都忽略一個簡單的地方 那就是..接地XD 04/04 02:21
推 GoodFriday:這篇應該會有沒有盲測過的人推文說他聽過覺得差超多 04/04 02:23
→ john0312:接第一定要接, 不然電流走USB的地線, 你就科科科了. 04/04 02:23
→ Windf:我繼續問幾個笨問題,jitter單位裡的peak to peak指的是? 04/04 02:25
來看一個方波訊號:
V 9 7
^ <-------><----->
| ***** *** ****
|
| ...
|
| **** **** ****
+--------------------------------------------------------------------> t
123456789123456789
假設平均你每個週期是8, 那我們看到一個波形週期為9, 那這邊
ΔT = 1
我們又看到第二個週期為7, 所以
ΔT = -1
我們累積一段時間之後, 我們看所有週期的ΔT,
然後找最大跟最小的, 例如說
最大ΔT = 2
最小ΔT = -2
那Peak to Peak Jitter = 2 - (-2) = 4
※ 編輯: john0312 來自: 220.134.19.219 (04/04 02:33)
→ Windf:還有為啥jitter會有頻率?例如這篇舉20k的訊號,混17k的 04/04 02:29
→ Windf:jitter? 04/04 02:29
→ john0312:每個訊號都有頻率, 單獨說Jitter = x ps 沒有意義. 04/04 02:35
→ john0312:因為Jitter是指原本頻率的變動. 我們這邊看到的都是週期 04/04 02:36
→ john0312:的變動, 但是頻率等於週期的導數, 所以頻率也是在變動的. 04/04 02:36
→ john0312:舉例, 週期=1us, 頻率等於1MHz, 假如今天Jitter = 04/04 02:37
→ john0312:+/- 10ns, 那代表頻率就會是0.99099~1.0101MHz. 04/04 02:38
推 raygod:推 04/04 08:01
推 Naraka:快推!! 不然別人會知道我念數學的居然看不懂這篇XDDDDDDDDD 04/04 08:19
推 yamatai:用錯誤的前提當然會導出錯誤的結論線的差異不是來自jitter 04/04 09:10
推 sai25:非同步感覺只會差一點點而已 所以我也沒興趣換線.. 04/04 12:45
→ sniper0710:與其用感覺,不如自己弄一條來試試看 04/04 13:31
推 ultimatevic:窩喔>////< 被點名了 好像在上課喔XDD 04/04 13:43
推 borisaladin:推! 原來非同步USB換USB線差異會很小! 受教了O_O 04/04 14:16
→ yeahbo:樓上,事情沒有那麼單純的啦... 還是耳聽為憑 XD 04/04 14:18
推 yamatai:明明就差很多........ 04/05 14:58
→ john0312:如果差很多的話, 那趕快去升級你的DAC吧 (勸敗 04/05 16:28