Re: [交易]徵-高雄 純銀USB線

看板Audiophile (電腦喇叭 音響系統)作者 (Chen John L)時間15年前 (2011/04/04 01:49), 編輯推噓9(9029)
留言38則, 12人參與, 最新討論串3/5 (看更多)
本篇可能對非電資科系的朋友上會有閱讀困難, 在此致歉. 結論於最尾端. 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

04/04 01:55, , 1F
請教一下,該篇文章裡的sampling jitter指的是?
04/04 01:55, 1F

04/04 01:57, , 2F
還有一點,照你的分析,線能造成的jitter十分小
04/04 01:57, 2F

04/04 01:58, , 3F
這樣在adative mode與synchrounous mode,線仍舊不影響不是
04/04 01:58, 3F

04/04 01:58, , 4F
Sampling Jitter是ADC/DAC吃的Clock的Jitter.
04/04 01:58, 4F

04/04 01:58, , 5F
嗎?線造成的jitter與電腦端的jitter是獨立事件吧
04/04 01:58, 5F

04/04 01:59, , 6F
所以是ad/da電路上那個震盪器的jitter?
04/04 01:59, 6F

04/04 02:01, , 7F
AD/DA的震盪線路的Jitter跟USB又是獨立事件.
04/04 02:01, 7F

04/04 02:01, , 8F
其中前者是真正真正要注意的.
04/04 02:01, 8F

04/04 02:01, , 9F
所以你指的吃的clock是指哪個現象?
04/04 02:01, 9F

04/04 02:06, , 10F
你問的是哪個吃Clock?
04/04 02:06, 10F

04/04 02:07, , 11F
USB接收線路跟電腦之間有一個Clock, DAC自己也有一個.
04/04 02:07, 11F

04/04 02:08, , 12F
Synchronous下面, 兩個Clock被連在一起 (透過1kHz Frame)
04/04 02:08, 12F

04/04 02:08, , 13F
Asynchronous下面獨立運作.
04/04 02:08, 13F

04/04 02:08, , 14F
USB的Jitter需要傳到DAC那邊, 變成Sampling Jitter才有效
04/04 02:08, 14F

04/04 02:11, , 15F
那這個有效的sampling jitter是怎麼來的?
04/04 02:11, 15F

04/04 02:11, , 16F
是電腦端造成的jitter+line induced總和的結果嗎?
04/04 02:11, 16F

04/04 02:14, , 17F
Synchronous下面是這樣的. Async下面只有DAC的石英而已.
04/04 02:14, 17F

04/04 02:21, , 18F
我是覺得很多人都忽略一個簡單的地方 那就是..接地XD
04/04 02:21, 18F

04/04 02:23, , 19F
這篇應該會有沒有盲測過的人推文說他聽過覺得差超多
04/04 02:23, 19F

04/04 02:23, , 20F
接第一定要接, 不然電流走USB的地線, 你就科科科了.
04/04 02:23, 20F

04/04 02:25, , 21F
我繼續問幾個笨問題,jitter單位裡的peak to peak指的是?
04/04 02:25, 21F
來看一個方波訊號: 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)

04/04 02:29, , 22F
還有為啥jitter會有頻率?例如這篇舉20k的訊號,混17k的
04/04 02:29, 22F

04/04 02:29, , 23F
jitter?
04/04 02:29, 23F

04/04 02:35, , 24F
每個訊號都有頻率, 單獨說Jitter = x ps 沒有意義.
04/04 02:35, 24F

04/04 02:36, , 25F
因為Jitter是指原本頻率的變動. 我們這邊看到的都是週期
04/04 02:36, 25F

04/04 02:36, , 26F
的變動, 但是頻率等於週期的導數, 所以頻率也是在變動的.
04/04 02:36, 26F

04/04 02:37, , 27F
舉例, 週期=1us, 頻率等於1MHz, 假如今天Jitter =
04/04 02:37, 27F

04/04 02:38, , 28F
+/- 10ns, 那代表頻率就會是0.99099~1.0101MHz.
04/04 02:38, 28F

04/04 08:01, , 29F
04/04 08:01, 29F

04/04 08:19, , 30F
快推!! 不然別人會知道我念數學的居然看不懂這篇XDDDDDDDDD
04/04 08:19, 30F

04/04 09:10, , 31F
用錯誤的前提當然會導出錯誤的結論線的差異不是來自jitter
04/04 09:10, 31F

04/04 12:45, , 32F
非同步感覺只會差一點點而已 所以我也沒興趣換線..
04/04 12:45, 32F

04/04 13:31, , 33F
與其用感覺,不如自己弄一條來試試看
04/04 13:31, 33F

04/04 13:43, , 34F
窩喔>////< 被點名了 好像在上課喔XDD
04/04 13:43, 34F

04/04 14:16, , 35F
推! 原來非同步USB換USB線差異會很小! 受教了O_O
04/04 14:16, 35F

04/04 14:18, , 36F
樓上,事情沒有那麼單純的啦... 還是耳聽為憑 XD
04/04 14:18, 36F

04/05 14:58, , 37F
明明就差很多........
04/05 14:58, 37F

04/05 16:28, , 38F
如果差很多的話, 那趕快去升級你的DAC吧 (勸敗
04/05 16:28, 38F
文章代碼(AID): #1DcBCpZB (Audiophile)
文章代碼(AID): #1DcBCpZB (Audiophile)